首页 > 学院 > 开发设计 > 正文

ioctl那些事儿

2019-11-07 23:54:09
字体:
来源:转载
供稿:网友

往事点点

刚学嵌入式的时候,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位的参数有所不同,需要内核自己实现。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表