E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Linux2.6
Linux2.6
内核 -- 结构的初始化
Linux内核中用到了大量的结构体,在编码规范中也给出了结构体初始化的规则,这篇文章中有对其的解释:http://blog.csdn.net/dlutbrucezhang/article/details/10296897,不过,这篇文章中并没有给出实例分析,下面我写了一段测试程序:#include #include structtest{ inttest_value1; floattest
DLUTBruceZhang
·
2013-08-25 15:00
linux
linux
kernel
指针
内核
结构
Linux2.6
内核 -- 编码风格(3)
9.typedef 内核开发者们强烈反对使用typedef语句。他们的理由是: 1>typedef掩盖了数据的真实类型 2>由于数据类型隐藏起来了,所以很容易因此而犯错误,比如以传值的方式向栈中推入结构 4>使用typedef往往是因为想要偷懒,例如,可能会定义一个这样的形式: typedefunsignedcharuchar 无论如何,尽量少用typedef。 当然,typed
DLUTBruceZhang
·
2013-08-25 13:00
源码
linux
编码
kernel
内核
linux内核
Linux2.6
内核 -- 编码风格(2)
5.每行代码的长度 源代码中要尽可能的保证每行代码长度不超过80个字符,因为这样做可以使代码最适合在标准的80*24的终端上显示。事实上,并不存在一个广泛接受的标准--如果代码行超过80个字符应该折到下一行。 有些开发者会在圆括号内分行,对齐排列函数参数,它看起来就好像下面这样:staticvoidget_new_parrot(constchar*name, unsignedlong
DLUTBruceZhang
·
2013-08-25 10:00
linux
linux
源代码
编码
kernel
内核
Linux2.6
内核 -- 编码风格(1)
像所有其他大型软件一样,Linux制定了一套编码风格,对代码的格式,风格和布局做出了规定。下面我就对2.6内核中的代码约定进行介绍。 1.缩进 缩进风格是用制表位(Tab)每次缩进8个字符长度。这里指的并不是利用8个空格进行缩进。这里的规定很明确,每次缩进通过制表位进行,每个制表位8个字符长度。(这里是不是有点奇怪,我们在编程时是不是用4个字符缩进就行了?) 下面,就看看这个例子
DLUTBruceZhang
·
2013-08-25 10:00
编程
linux
linux
重构
kernel
内核
Linux2.6
内核--抢占
【摘要】本文首先介绍非抢占式内核(Non-PreemptiveKernel)和可抢占式内核(PreemptiveKernel)的区别。接着分析Linux下有两种抢占:用户态抢占(UserPreemption)、内核态抢占(KernelPreemption)。然后分析了在内核态下:如何判断能否抢占内核(什么是可抢占的条件);何时触发重新调度(何时设置可抢占条件);抢占发生的时机(何时检查可抢占的条件
u011068464
·
2013-08-24 22:00
linux2.6
内核链表
一、 链表数据结构简介 链表是一种常用的组织有序数据的数据结构,它通过指针将一系列数据节点连接成一条数据链,是线性表的一种重要实现方式。相对于数组,链表具有更好的动态性,建立链表时无需预先知道数据总量,可以随机分配空间,可以高效地在链表中的任意位置实时插入或删除数据。链表的开销主要是访问的顺序性和组织链的空间损失。 通常链表数据结构至少应包含两个域:数据域和指针域,数据域用于存
u011068464
·
2013-08-24 20:00
Linux2.6
中的Slab层
还记得一个进程创建的时候是什么给它分配的“进程描述符”吗?没错,是slab分配器,那么,这个slab分配器是个什么东西呢? 分配和释放数据结构是所有内核中最普遍的操作之一。为了便于结构的频繁分配和回收,编程人员常常会用到空闲链表。空闲链表中包含可供使用的,已经分配好的数据结构块。当代码需要一个新的数据结构实例时,就可以从空闲链表中抓取一个,而不需要再去执行一些分配内存的代码,这样不仅高效而且使
u011068464
·
2013-08-24 15:00
Linux2.6
内核中链表的实现
对于一个计算机专业的学生,链表这种数据结构对我们来说再熟悉不过了,毕竟在大学的《数据结构》中就讲解过,相信你也自己实现过,它实现起来可能是这个样子:(这里的例子都来自《Linux内核设计与实现》第三版) 假定我们有一个数据结构来描述犬科动物中的一员[cpp] viewplaincopyprint?struct fox { unsigned long tail_length;
u011068464
·
2013-08-24 00:00
Linux2.6
内核--中断线被关闭的情况
中断系统是现代操作系统中不可获取的一个子系统,它由硬件主动触发并发送到CPU,最后由内核调用中断处理程序处理中断。 那么中断有时候需要关闭,这是为什么呢? 一般分为两种情况:1.内核或程序的某些操作需要关中断2.中断正在执行 下面,我来解释下第二种情况。 下面,首先看一张图: 可以看到,图中红色的中断线被触发,那么这时就需要关闭这条中断线上的所有中断(因为中断线是可以共享的且硬
u011068464
·
2013-08-23 23:00
Linux2.6
内核--中断下半部实现方法 工作队列
工作队列子系统是一个用于创建内核线程的接口,通过它创建的线程负责执行由内核其他部分排到队列里的任务。它创建的这些内核线程称作工作者线程。工作队列可以让你的驱动程序创建一个专门的工作者线程来处理需要退后的工作。不过,工作队列子系统提供了一个缺省的工作者线程来处理这些工作。因此,工作队列最基本的表现形式,就转变成了一个把需要退后执行的任务交给特定的通用线程的这样一种接口。 缺省的工作者线程叫做
u011068464
·
2013-08-23 23:00
Linux2.6--中断机制中的 ksoftirqd
Linux中的中断机制被分为两个部分,回应硬件的中断请求的部分成为上半部(一般都是这样),而真正在做处理工作(耗时工作)的部分成为下半部,实现下半部在
Linux2.6
内核中存在三种方法:软中断,tasklet
u011068464
·
2013-08-23 23:00
Linux2.6
内核--VFS层中和进程相关的数据结构
系统中的每一个进程都有自己的一组打开的文件,像根文件系统,当前工作目录,安装点等。有三个数据结构将VFS层和系统的进程紧密的联系在一起,它们分别是:file_struct,fs_struct和namespace结构体。 file_struct结构体定义在文件中。该结构体由进程描述符中的files目录项指向。所有的单个进程相关的信息(如打开的文件和文件描述符)都包含在其中,其结构和描述如下:
u011068464
·
2013-08-23 22:00
Linux2.6
内核--对块IO层操作的讨论
当一个块被调入内存时(也就是说,在读入后或等待写出时),它要存储在缓冲区中。每个缓冲区与一个块对应,它相当于是磁盘块在内存中的表示。块包含一个或多个扇区,但大小不能超过一页,所以一页可以容纳一个或多个内存块。由于内核在处理数据时需要一些相关的控制信息(比如块属于哪个设备,块对应于哪个缓冲区),所以,每一个缓冲区都有一个对应的描述符。该描述符用buffer_head结构体表示,称作缓冲区头,在文件
u011068464
·
2013-08-23 22:00
Linux2.6
内核--对块IO层操作的讨论
当一个块被调入内存时(也就是说,在读入后或等待写出时),它要存储在缓冲区中。每个缓冲区与一个块对应,它相当于是磁盘块在内存中的表示。块包含一个或多个扇区,但大小不能超过一页,所以一页可以容纳一个或多个内存块。由于内核在处理数据时需要一些相关的控制信息(比如块属于哪个设备,块对应于哪个缓冲区),所以,每一个缓冲区都有一个对应的描述符。该描述符用buffer_head结构体表示,称作缓冲区头,在
DLUTBruceZhang
·
2013-08-23 15:00
linux
linux
IO
内存
kernel
磁盘
Linux2.6
内核--VFS层中和进程相关的数据结构
系统中的每一个进程都有自己的一组打开的文件,像根文件系统,当前工作目录,安装点等。有三个数据结构将VFS层和系统的进程紧密的联系在一起,它们分别是:file_struct,fs_struct和namespace结构体。 file_struct结构体定义在文件中。该结构体由进程描述符中的files目录项指向。所有的单个进程相关的信息(如打开的文件和文件描述符)都包含在其中,其结构和描述如下
DLUTBruceZhang
·
2013-08-23 14:00
linux
linux
namespace
kernel
缓存
文件系统
Linux2.6
内核--内存管理(2)--区
由于硬件的限制,内核不能对所有的页一视同仁。有些页位于内存中的特定物理地址上,所以,不能将其用于一些特别的任务。(关于内存分页机制可以查看:http://blog.csdn.net/dlutbrucezhang/article/details/10181535)由于存在这种限制,所以内核会把页划分为不同的区。内核使用区对具有相似特性的页进行分组。Linux必须处理如下两种由于硬件存在缺陷而引起的内
u011068464
·
2013-08-23 12:00
Linux2.6
内核--内存管理(2)--区
由于硬件的限制,内核不能对所有的页一视同仁。有些页位于内存中的特定物理地址上,所以,不能将其用于一些特别的任务。(关于内存分页机制可以查看:http://blog.csdn.net/dlutbrucezhang/article/details/10181535)由于存在这种限制,所以内核会把页划分为不同的区。内核使用区对具有相似特性的页进行分组。Linux必须处理如下两种由于硬件存在缺陷而引
DLUTBruceZhang
·
2013-08-22 15:00
linux
linux
kernel
内存管理
硬件
高端内存
Linux2.6
内核--内存管理(1)--分页机制
在内核里分配内存可不像在其他地方分配内存那么容易。造成这种局面的因素很多。从根本上讲,是因为内核本身不能像用户空间那样奢侈的使用内存。内核与用户空间不同,它不具备这种能力,它不支持简单便捷的内存分配方式。比如,内核一般不能睡眠。此外,处理内存分配错误对于内核来说也绝非是一件简单的事。正式由于这些限制,再加上内存分配机制不能太复杂,所以在内核中获取内存要比在用户空间复杂的多。 首先,我们讨
DLUTBruceZhang
·
2013-08-22 14:00
linux
linux
分页
kernel
内存管理
内核
<转>linux epoll
Linux2.6
内核中提高网络I/O性能的新方法-epollI/O多路复用技术在比较多的TCP网络服务器中有使用,即比较多的用到select函数。
OscerSong
·
2013-08-21 15:00
Linux2.6
内核--中断下半部实现方法 工作队列
工作队列子系统是一个用于创建内核线程的接口,通过它创建的进程负责执行由内核其他部分排到队列里的任务。它创建的这些内核线程称作工作者线程。工作队列可以让你的驱动程序创建一个专门的工作者线程来处理需要退后的工作。不过,工作队列子系统提供了一个缺省的工作者线程来处理这些工作。因此,工作队列最基本的表现形式,就转变成了一个把需要退后执行的任务交给特定的通用线程的这样一种接口。 缺省的工作者线程叫
DLUTBruceZhang
·
2013-08-21 13:00
linux
linux
kernel
内核
中断
工作队列
Linux2.6--中断机制中的 ksoftirqd
Linux中的中断机制被分为两个部分,回应硬件的中断请求的部分成为上半部(一般都是这样),而真正在做处理工作(耗时工作)的部分成为下半部,实现下半部在
Linux2.6
内核中存在三种方法:软中断,tasklet
BruceZhang
·
2013-08-21 09:47
Linux内核设计与实现
Linux内核设计与实现
Linux2.6--中断机制中的 ksoftirqd
Linux中的中断机制被分为两个部分,回应硬件的中断请求的部分成为上半部(一般都是这样),而真正在做处理工作(耗时工作)的部分成为下半部,实现下半部在
Linux2.6
内核中存在三种方法:软中断,tasklet
DLUTBruceZhang
·
2013-08-21 09:00
多线程
linux
linux
unix
kernel
内核
Linux 内核中的 Device Mapper 机制
DeviceMapper是
Linux2.6
内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构,如图1。
又右耳刀
·
2013-08-20 23:00
Linux2.6
内核--中断线被关闭的情况
中断系统是现代操作系统中不可获取的一个子系统,它由硬件主动触发并发送到CPU,最后由内核调用中断处理程序处理中断。 那么中断有时候需要关闭,这是为什么呢? 一般分为两种情况:1.内核或程序的某些操作需要关中断2.中断正在执行 下面,我来解释下第二种情况。 下面,首先看一张图: 可以看到,图中红色的中断线被触发,那么这时就需要关闭这条中断线上的所有中断(因为中断线是可以共享
DLUTBruceZhang
·
2013-08-20 15:00
linux
linux
操作系统
kernel
硬件
处理器
Linux2.6
内核中链表的实现
对于一个计算机专业的学生,链表这种数据结构对我们来说再熟悉不过了,毕竟在大学的《数据结构》中就讲解过,相信你也自己实现过,它实现起来可能是这个样子:(这里的例子都来自《Linux内核设计与实现》第三版) 假定我们有一个数据结构来描述犬科动物中的一员structfox { unsignedlongtail_length; unsignedlongweight; boolis_fantast
DLUTBruceZhang
·
2013-08-20 10:00
数据结构
linux
linux
链表
struct
kernel
利用udev、sys动态创建linux设备结点
在
Linux2.6
内核中,devfs被认为是过时的方法,并最终被抛弃,udev取代了它。Devfs的一个很重要的特点就是可以动态创建设备结点。
jackyard
·
2013-08-16 14:00
Linux2.6
中的Slab层
还记得一个进程创建的时候是什么给它分配的“进程描述符”吗?没错,是slab分配器,那么,这个slab分配器是个什么东西呢? 分配和释放数据结构是所有内核中最普遍的操作之一。为了便于结构的频繁分配和回收,编程人员常常会用到空闲链表。空闲链表中包含可供使用的,已经分配好的数据结构块。当代码需要一个新的数据结构实例时,就可以从空闲链表中抓取一个,而不需要再去执行一些分配内存的代码,这样不仅高效
DLUTBruceZhang
·
2013-08-12 16:00
数据结构
linux
cache
链表
kernel
内核
Linux之module_param()函数学习
一.module_param1.为什么引入 在用户态下编程可以通过main()来传递命令行参数,而编写一个内核模块则可通过module_param()来传递命令行参数.2.module_param宏是
Linux2.6
zhongnanjun_3
·
2013-08-12 13:00
linux2.6
内核链表
一、 链表数据结构简介 链表是一种常用的组织有序数据的数据结构,它通过指针将一系列数据节点连接成一条数据链,是线性表的一种重要实现方式。相对于数组,链表具有更好的动态性,建立链表时无需预先知道数据总量,可以随机分配空间,可以高效地在链表中的任意位置实时插入或删除数据。链表的开销主要是访问的顺序性和组织链的空间损失。 通常链表数据结构至少应包含两个域:数据域和指针域,数据域用于存
u010089238
·
2013-08-10 22:00
Linux 内核 Makefile 体系简单分析
http://blog.chinaunix.net/uid-20543672-id-3065852.html 此文为两年前为好友刘庆敏的书《嵌入式Linux开发详解--基于AT91RM9200和
Linux2.6
u011279649
·
2013-08-10 18:00
linux2.6
内核链表
一、 链表数据结构简介 链表是一种常用的组织有序数据的数据结构,它通过指针将一系列数据节点连接成一条数据链,是线性表的一种重要实现方式。相对于数组,链表具有更好的动态性,建立链表时无需预先知道数据总量,可以随机分配空间,可以高效地在链表中的任意位置实时插入或删除数据。链表的开销主要是访问的顺序性和组织链的空间损失。 通常链表数据结构至少应包含两个域:数据域和指针域,数据域用于存
DLUTBruceZhang
·
2013-08-09 13:00
C++
linux
linux
struct
kernel
单链表
linux模块参数分析
-------------------------------在用户态下编程可以通过main()的来传递命令行参数,而编写一个内核模块则通过module_param()module_param()宏是
Linux2.6
skyflying2012
·
2013-07-30 16:00
linux2.6
内核initrd机制解析
题记很久之前就分析过这部分内容,但是那个时候不够深入,姑且知道这么个东西存在,到底怎么用,来龙去脉咋回事就不知道了。前段时间工作上遇到了一个initrd的问题,没办法只能再去研究研究,还好,有点眉目,索性整理了一下。网络上流传着很多关于ramdisk、initrd的各种版本的分析,我的这篇源于对他们的理解,非常感谢那些前辈的无私奉献,要不然我们这些晚辈学起东西来该是多么艰难呀。在这里需要特别声明的
wenwuge_topsec
·
2013-07-26 08:00
linux
initrd
rootfs
Android LCD(四):LCD驱动调试篇
android 嵌入式入门2013-06-2618:18 704人阅读 评论(2) 收藏 举报关键词:android LCDTFTSN75LVDS83B TTL-LVDS LCD电压背光电压平台信息:内核:
linux2.6
mirkerson
·
2013-07-25 14:00
linux
android
嵌入式入门
S5PXX(三星)
linux OOM
Linux在内存不足的时候不至于出太严重的问题,把无关紧要的进程杀掉;
LINUX2.6
上是杀掉占用内存最厉害的进程;OOMKiller的关闭与激活方式:#echo"0">/proc/sys/vm/oom-kill
chenmeng56
·
2013-07-24 16:52
linux
kernel
Linux
Kernel
linux OOM
Linux在内存不足的时候不至于出太严重的问题,把无关紧要的进程杀掉;
LINUX2.6
上是杀掉占用内存最厉害的进程;OOMKiller的关闭与激活方式:#echo"0">/proc/sys/vm/oom-kill
chenmeng56
·
2013-07-24 16:52
linux
kernel
Linux中select poll和epoll的区别
selectpoll和epoll的区别在LinuxSocket服务器短编程时,为了处理大量客户的连接请求,需要使用非阻塞I/O和复用,select、poll和epoll是LinuxAPI提供的I/O复用方式,自从
Linux2.6
chenhj_wo
·
2013-07-24 10:47
epoll
select
poll
Epoll模型详解
Linux2.6
内核中有提高网络I/O性能的新方法,即epoll。
sharep
·
2013-07-23 00:32
linux
多路复用
网络模型
IPSec-Tools配置
1介绍从
Linux2.6
内核开始,内核就自身带有IPSec模块,配合IPSec-Tools,能很好的实现Linux的IPSec功能。
susansan
·
2013-07-19 22:51
VPN
IPSec
IPSec-Tools配置
1介绍从
Linux2.6
内核开始,内核就自身带有IPSec模块,配合IPSec-Tools,能很好的实现Linux的IPSec功能。
susansan
·
2013-07-19 22:51
***
ipsec
服务器
Linux 2.6内核中提高网络I/O性能的新方法-epoll
Linux2.6
内核中提高网络I/O性能的新方法epoll正如我昨天在“Linux下各类TCP网络服务器的实现源代码”(http://zhoulifa.bokee.com/5345930.html)一文中提到的那样
dkqiang
·
2013-07-18 14:00
Linux设备驱动开发详解-Note(19)---Linux 设备驱动中的异步通知与异步 I/O(2)
Linux设备驱动中的异步通知与异步I/O(2)成于坚持,败于止步
Linux2.6
异步I/O AIO概念与GNUC库函数 Linux系统中最常用的输入/输出(I/O)模型是同步I/O。
xinyuwuxian
·
2013-07-17 20:00
linux
驱动开发
Linux 2.6中断下半部机制分析
http://blog.csdn.net/yicao821/article/details/6670683
Linux2.6
中断下半部机制分析作者:流星摘要 本文主要从使用者的角度对
Linux2.6
cjsycyl
·
2013-07-15 14:00
varnish 初步测试
它可以在FressBSD6/7、
Linux2.6
和Solaris10上使用,并能表现出其高性能。计算机的内存除了主存外,还包括了CPU内的L1、L2,甚至有L3。
tiger.hu
·
2013-07-15 11:00
Linux2.6
内核PCI驱动程序开发
一,PCI相关数据结构说明1.1structpci_driver这个数据结构在文件/linux/pci.h里,这是Linux内核版本2.4之后为新型的PCI设备驱动程序所添加的,其中最主要的是用于识别设备的id_table结构,以及用于检测设备的函数probe()和卸载设备的函数remove()。 structpci_driver{ structlist_headnode; c
159789zhong
·
2013-07-15 09:22
linux
程序开发
PCI驱动开发
Linux2.6
内核PCI驱动程序开发
一,PCI相关数据结构说明1.1structpci_driver这个数据结构在文件/linux/pci.h里,这是Linux内核版本2.4之后为新型的PCI设备驱动程序所添加的,其中最主要的是用于识别设备的id_table结构,以及用于检测设备的函数probe()和卸载设备的函数remove()。 structpci_driver{ structlist_headnode; c
159789zhong
·
2013-07-15 09:54
linux
程序开发
检测设备
Linux2.6
内核PCI驱动程序开发
一,PCI相关数据结构说明1.1structpci_driver这个数据结构在文件/linux/pci.h里,这是Linux内核版本2.4之后为新型的PCI设备驱动程序所添加的,其中最主要的是用于识别设备的id_table结构,以及用于检测设备的函数probe()和卸载设备的函数remove()。 structpci_driver{ structlist_headnode; c
159789zhong
·
2013-07-15 09:41
linux
程序开发
检测设备
Linux中select poll和epoll的区别
details/9295405在LinuxSocket服务器端编程时,为了处理大量客户的连接请求,需要使用非阻塞I/O和复用,select、poll和epoll是LinuxAPI提供的I/O复用方式,自从
Linux2.6
cjsycyl
·
2013-07-12 11:00
android logo:内核、android开机动画
android2012-12-0614:342695人阅读评论(7)收藏举报关键词:android开机logo 开机动画initlogo.rle bootanimation desc.txt平台信息:内核:
linux2.6
manshq163com
·
2013-07-12 10:00
android
S5PXX(三星)
Linux设备驱动开发详解-Note(11)--- Linux 文件系统与设备文件系统(3)
Linux文件系统与设备文件系统(3)成于坚持,败于止步sysfs文件系统与Linux设备模型 1.sysfs文件系统
Linux2.6
内核引入了sysfs文件系统,sysfs被看成是与proc、devfs
·
2013-07-11 18:00
linux
上一页
18
19
20
21
22
23
24
25
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他