《深入Linux内核架构》读书笔记

本文首先介绍了udev的工作原理,解释了udev如何响应内核的热插拔消息来创建设备节点。接着详细阐述了Linux信号处理机制sigaction中的SA_RESTART标志,说明其如何在信号处理后重启被中断的系统调用。

1.  关于udev (Page.318)

每当内核检测到设备时,都会创建一个内核对象,并向用户空间发送一个热插拔消息,该消息包含了驱动程序为设备分配的主从设备号。udevd守护进程监听该消息,并根据消息在/dev中创建对应的项,接下来就可以从用户层访问该设备了。

由于引入了udev机制,/dev不再放置到基于磁盘的文件系统中,而是使用tmpfs(ram磁盘文件系统),这意味着设备节点不是持久性的,系统关机/重启后就会消失。

 

[2013/9/26]

2. 关于sigaction处理机制中的“SA_RESTART“ 。(Page.659~660)

int sigaction(int signum, const struct sigaction *act,  struct sigaction *oldact);
struct sigaction{
    void (*sa_handler)();   /* SIG_DFL, SIG_IGN或函数名 */
    void (*sa_sigaction)(int, siginfo_t *, void *); /* 新机制 */
    sigset_t sa_mask; /* 阻塞设置 */
    int sa_flag;          /* 指定处理机制 */
};
sa_flag包含SA_RESTART时表示:如果信号中断了某个系统调用,在信号处理函数执行完毕后,自动重启该系统调用。
SA_RESTART“前世今生”的详细介绍可参考《深入Linux内核架构》的第659页~660页。
 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值