ioctl那些事儿

来源:互联网 发布:无法初始网络小引擎 编辑:程序博客网 时间:2024/06/11 21:59

往事点点

刚学嵌入式的时候,ioctl还是ioctl。后来,变成了ioctl、unlocked_ioctl和compat_ioctl。再后来,ioctl就没有见过ioctl了。源于笔者的冷漠,一直都不以为然。今天,笔者略有愧疚,查了一下前因后果。
在大内核锁时代,ioctl是包裹于大内核锁中的,多个ioctl之间不会有并发问题。自然,大内核锁淡化了之后,unlocked_ioctl应运而生。注意到,unlocked代表没有被锁。所以并发需要在unlocked_ioctl内部实现锁来处理。
在64位处理器时代,出现了32位应用,需要调用64位内核ioctl的需求。于是,便有了compat_ioctl。32位ioctl系统调用的参数会和64位的参数有所不同,需要内核自己实现。

0 0
原创粉丝点击