linux理论与编程
文章平均质量分 61
避趋之
生命不息,学习不止
展开
-
Linux 下用户空间与内核空间数据交换的方式
https://www.ibm.com/developerworks/cn/linux/l-kerns-usrs/本系列文章包括两篇,它们文详细地介绍了 Linux 系统下用户空间与内核空间数据交换的九种方式,包括内核启动参数、模块参数与 sysfs、sysctl、系统调用、netlink、procfs、seq_file、debugfs和relayfs,并给出具体的转载 2013-11-27 13:18:28 · 730 阅读 · 0 评论 -
内核定时器,schedule_timeout, ,POSIX timer
一、内核timer1、内核定时器 init_timeout,mod_timer,add_timer ----------- 通过软中断实现。将定时器按照超时时间分为五组,每个tick都会触发执行定时器软中断检查是否有超时的定时器。2、hrtimer ----------- 高分辨率定时器,HRTIMER_CB_SOFTIRQ类型的hrtimer通过软中断实现。3、schedule_原创 2012-10-24 09:01:32 · 3265 阅读 · 0 评论 -
内核同步方法
原子操作spinlock --- 忙等待,不释放cpu。所以用于短时间加锁。 用于中断处理程序时,要同时禁止本地中断。即使用spin_lock_irqsaverwlock --- 比较照顾读锁情况。信号量 --- 得不到信号,就会引起进程休眠rw信号量互斥体 --- 就是可以休眠的转载 2012-09-17 11:22:50 · 578 阅读 · 0 评论 -
netfilter
http://www.cnblogs.com/iceocean/articles/1594196.html转载 2013-11-28 10:48:29 · 871 阅读 · 0 评论 -
符号表,nm命令,EXPORT_SYMBOL 与 EXPORT_SYMBOL_GPL
http://blog.csdn.net/zuosifengli/article/details/7239622http://shaojiashuai123456.iteye.com/blog/840015http://www.cnblogs.com/itech/archive/2012/09/16/2687423.htmlEXPORT_SYMBOL 与 EXPOR转载 2014-02-13 10:52:16 · 2824 阅读 · 0 评论 -
共享内存(指针bug)
http://os.51cto.com/art/201311/418977_all.htmhttp://blog.csdn.net/z741852a2009/article/details/6434073 共享内存中不要出现指向共享内存外的指针,即使是指向共享内存中的指针也不要出现,因为共享内存中的指针值是对首地址哦偏移,不同程序将该段共享内存映射到本程序时,逻转载 2014-02-28 11:43:38 · 2149 阅读 · 0 评论 -
FreeBSD的netgraph
http://blog.csdn.net/dog250/article/details/7421578ngctl list Name: ngctl17626 Type: socket ID: 00000094 Num hooks: 0 Name: lksocket1 Ty转载 2014-07-24 18:06:01 · 2782 阅读 · 0 评论 -
内核线程 + 下半部(软中断,工作队列)
下半部目前包括软中断,tasklet,工作队列。软中断: 编译器静态分配的; 不互相抢占; 只有中断处理程序可以抢占它; 相同类型软中断可以在不同的CPU上同时运行; 大部分软中断处理程序都通过采取单处理器数据或其他技巧来避免加锁。tasklet: 建立在软中断之上; 可以动态生成;原创 2012-09-15 19:09:36 · 2215 阅读 · 0 评论 -
linux内核数据结构
这个很有用,可以借鉴!!!1、链表:双向环形链表2、队列:kfifo3、映射:4、红黑树:5、消息队列:6、slab内存分配机制 --- 就是内存池机制转载 2012-12-03 12:29:47 · 551 阅读 · 0 评论 -
Linux下VLAN功能的实现
http://blog.csdn.net/dyllove98/article/details/8923312转载 2014-09-12 14:52:52 · 1324 阅读 · 0 评论 -
FreeBSD之netgraph简要解析(备份)
http://blog.csdn.net/dog250/article/details/7421578FreeBSD的netgraph真是太帅了,它到底是个什么玩艺呢?知道Linux的Netfilter的不少,那么就用Netfilter来类比吧。netgraph是一个基于图的钩子系统,正如其名称所展示的那样,什么样的图呢?很简单,就是通过边连接的节点,和数据结构里面学到的一样。转载 2013-12-17 17:16:50 · 1598 阅读 · 0 评论 -
linux报文处理
linux启动时,注册函数:转载 2014-08-27 17:46:44 · 5376 阅读 · 0 评论 -
Linux实现的IEEE 802.1Q VLAN
http://blog.csdn.net/dog250/article/details/7354590第一部分:VLAN的核心概念说起IEEE 802.1q,都知道是VLAN,说起VLAN,基本上也没有盲区,网络基础。然而说到配置,基本所有人都能顺口溜一样说出Cisco或者H3C设备的配置命令,对于Linux的VLAN配置却存在大量的疑问。这些疑问之转载 2014-09-16 15:13:13 · 723 阅读 · 0 评论 -
linux 内核(介绍)
linux是类unix系统,但它不是unix系统。尽管linux实现了很多unix的API,但linux没有直接使用unix的源码。遵守GPL v2的版权协议。通常一个内核由负责响应中断的中断服务程序,负责管理多个进程从而分享处理器时间的调度程序负责管理进程地址空间的内存管理程序,和网络、进程通信等系统服务程序共同组成。处理器必然处于三个活动之一:1. 用户空间执行用户进程;2. 内核原创 2012-12-03 10:39:24 · 620 阅读 · 0 评论 -
中断
一、与“异常”的关系中断是由硬件引起;异常:如÷零,缺页等,需要内核来处理时,处理器会产生一个异常。为处理器本身产生的同步中断;二、中断与BH中断处理程序是上半部 top half。bottom half目前有几种:软中断,tasklet,工作队列。三、request_irq注册的软件中断号的中断处理;而通过irq_create_mapping来原创 2012-09-17 17:03:19 · 551 阅读 · 0 评论 -
linux设备
1. 块设备 可以随机访问数据; 磁盘,光盘,flash等;2.字符设备 通过“字符设备节点”这个特殊设备访问;3.网络设备 打破了unix的“所有东西都是文件”的设计原则; 通过套接字接口来访问;4. 杂项设备miscellaneous device原创 2012-12-04 23:34:16 · 563 阅读 · 0 评论 -
进程间通信 IPC
http://www.ibm.com/developerworks/cn/linux/l-ipc/https://www.ibm.com/developerworks/cn/linux/l-ipc/part1/http://www.ibm.com/developerworks/cn/linux/l-ipc/part2/index1.htmlhttp://www.ibm.co原创 2012-12-05 23:15:15 · 1976 阅读 · 0 评论 -
多进程 多线程
多线程程序里不准使用fork,否则用不好可能死锁。转载 2013-04-13 16:56:41 · 640 阅读 · 0 评论 -
linux 进程调度 (update)
参考Robert love的著作:2.6内核版本以后的linux实现了抢占式内核,实现了内核抢占。进程调度顺序:1. 实时进程 > 非实时进程2. 实时进程之间,比较实时优先级,1到99,越大越高。3. 实时优先级相同的实时进程之间,根据调度策略来执行。分FIFO和RR两种。 1)其中RR方式,是轮询的,在3.5.3内核版本中,rt_sched原创 2012-09-13 00:32:18 · 1250 阅读 · 0 评论 -
进程
创建: fork system --- 同步进程。http://blog.csdn.net/hairetz/article/details/8163703http://my.oschina.net/renhc/blog/54582 ------ 此博文有很好的说明。 popen修改: exec:原创 2012-12-09 16:38:29 · 485 阅读 · 0 评论 -
线程
http://blog.csdn.net/liangxiaozhang/article/details/8442735http://blog.csdn.net/gszhy/article/details/8468503 线程:线程属性互斥锁条件变量线程数据信号量 --- 其实与进程信号量用的是同一套函数,只是可能参数不同而已!读写锁:非标准的。线程独有的:线程I转载 2013-01-10 15:58:36 · 555 阅读 · 0 评论 -
/proc/modules, /proc/devices, /dev
http://blog.csdn.net/ghostyu/article/details/8085163http://www.cnblogs.com/wanghetao/archive/2012/06/02/2532183.html/proc/devices/中的设备是通过insmod加载到内核的,是驱动程序生成的。它可产生一个major供mknod作为 参数,/d转载 2013-07-26 15:33:41 · 4329 阅读 · 0 评论 -
红黑树
使用案例: 如 linux内核中,完全公平调度策略CFS的运行队列 使用"红黑树"方法管理进程。红黑树是“半平衡二叉树”!效率好!!!//因为:树里面最长路径不会大于最短路径的两倍。使用rb_entry、rb_insert_color、rb_erase等。linux代码关键结构体如下:struct rq { ----原创 2012-09-12 17:54:26 · 809 阅读 · 0 评论 -
proc目录
http://wenku.baidu.com/view/17df4e6bb84ae45c3b358cc8.htmlLinux下/proc目录简介1. /proc目录Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内转载 2013-07-26 16:37:52 · 597 阅读 · 0 评论 -
Linux 系统内核空间与用户空间通信的实现与分析
http://www.ibm.com/developerworks/cn/linux/l-netlink/多数的 Linux 内核态程序都需要和用户空间的进程交换数据,但 Linux 内核态无法对传统的 Linux 进程间同步和通信的方法提供足够的支持。本文总结并比较了几种内核态与用户态进程通信的实现方法,并推荐使用 netlink 套接字实现中断环境与用户态进程通转载 2013-11-27 12:01:43 · 709 阅读 · 0 评论 -
多线程,信号!!!
http://linux.die.net/man/7/pthreadshttp://www.ibm.com/developerworks/cn/linux/l-threading.htmlhttps://www.ibm.com/developerworks/cn/linux/l-cn-signalsec/转载 2014-08-12 16:03:04 · 607 阅读 · 0 评论