- 博客(5)
- 收藏
- 关注
原创 Linux内核模块通知链实现原理(阅读笔记)
Linux内核提供了一种很有趣的特性,也就是所谓的通知链(notifier call chain),这个特性不只是在模块的加载过程中会使用到,在内核系统的其它组件中也常常会使用到。通过通知链,模块或者其他的内核组件可以向其感兴趣的一些内核事件进行注册,当该事件发生时,这些模块或者组件当初注册的回调函数将会被调用。内核模块机制中实现的模块通知链module_notify_list就是内核中众多通知链
2015-08-30 23:29:26 778
原创 param_check_int的实现解析
param_check_int宏的定义如下:#define param_check_int(name, p) __param_check(name, p, int)#define __param_check(name, p, type) \ static inline type __always_unused *__check_##name(void) { return(
2015-08-28 12:57:00 1468 2
原创 在Ubuntu下运行tinyhttpd及其测试例子
在Ubuntu下运行tinyhttpd及其测试例子需要进行一定的修改,才能运行在ubuntu上面,httpd.c修改如下:/* J. David's webserver *//* This is a simple webserver. * Created November 1999 by J. David Blackstone. * CSE 4344 (Network concepts),
2015-08-27 10:06:12 3627 1
原创 LinuxI/O端口和I/O内存的访问接口
设备通常会提供一组寄存器来用于控制设备、读写设备和获取设备状态,即控制寄存器、数据寄存器和状态寄存器。这些寄存器可能位于I/O 空间,也可能位于内存空间。当位于I/O 空间时,通常被称为I/O端口,位于内存空间时,对应的内存空间被称为I/O 内存。 1.I/O 端口 常用接口有inb,outb,inw,outw,inl,outl。其中,in代表从指定端口读入数据,out代表
2015-08-26 20:33:23 1086
原创 Linux前台进程的实现
个人猜想,没有验证,没看到tcsetpgrp()的源码(T_T)。Linux前台进程的实现:把控制终端的STDIN文件(即标准输入)的拥有者设为指定的某个进程(组),这样,当我们在键盘输入的时候,产生的控制信号(如ctrl+c产生的SIGINT信号),将会发给STDIN文件的拥有者,即前面设定的某个进程(组),从而达到控制其状态的作用。而后台进程由于不是该文件的拥有者,所以接收不到
2015-08-25 01:07:26 670
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人