人人车网站建设,wordpress font.googleapis,公司网站建设前期情况说明,关键少数大家好昨晚看到一个同学在群里提问#xff0c;想简单回答这个问题#xff0c;我的答案可能不是最全面的#xff0c;文章最后的两篇技术文大家可以看看#xff0c;大家也可以说下自己的看法。fd的发明我觉得是计算机的一个壮举#xff0c;因为对于应用程序来说#xff0c;…大家好昨晚看到一个同学在群里提问想简单回答这个问题我的答案可能不是最全面的文章最后的两篇技术文大家可以看看大家也可以说下自己的看法。fd的发明我觉得是计算机的一个壮举因为对于应用程序来说只要拿到了fd就可以对磁盘进行操作了发明计算机操作系统的人简直就是一个天才。Linux一个计算机内核计算机都是以任务的形式存在的所以对于用户来说我们能看到的一定是一个个不同的任务。然后一个任务「线程、进程」才会实际去事情比如打开一个文件然后这个文件fd就会关联上磁盘上的某个位置fd对对应一个struct file结构体这个结构体描述了这个文件的很多信息比如文件的路径、读写的位置、权限、谁操作过它等等。我觉得看了这个图应该可以回答上面提出的问题了只有从操作系统拿到了句柄fd才能链接到磁盘上的文件系统的某个文件和数据才可能对它进行读写。Linux有一个思想「一切皆文件」其实是想把一些模糊的东西对用户不友好的东西都用文件的形式表现出来如果所有的操作都可以通过打开文件操作它那真的是非常完美的。这是一种思想可以认为是面向对象的思想这样就不难知道为什么我们写驱动都会有一个file_operation结构体如果设计不是如此那么应用需要拿到驱动的数据就需要用其他非标准的接口这个可以参考一些rtos的实现没有文件系统的rtos如果做到标准化就会有很多私有的接口比较经典的可以看看liteos。什么叫做硬件抽象层就是把设备的数据给应用去使用「同类设备的hal层接口相同」看了这些还是觉得Linux比较美妙。这也是需要驱动创建设备文件mknod的原因。参考两篇文章https://jishuin.proginn.com/p/763bfbd56679https://mp.weixin.qq.com/s/hLq7Pp8CkJD9B-Xqym50dA