前言"Linux下一切皆文件",这是Linux的一个基本设置理念同时也是Linux的设计哲学所在。这篇博
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
前言"Linux下一切皆文件",这是Linux的一个基本设置理念同时也是Linux的设计哲学所在。
这篇博客,笔者首先总结一下我自学习Linux以来,到目前自己对“Linux下一切皆文件”的感悟和理解,其次再讨论Linux中的缓冲区机制。
提示:以下是本篇文章正文内容,下面案例可供参考
一、从硬件角度理解"Linux下一切皆文件"首先需要再次明确Linux操作系统的主要目的或者作用:
对上,方便用户使用——为用户提供稳定的、高效的、安全的使用环境。
对下,管理好计算机繁杂的软硬件资源;

其次需要明确的是文件无外乎由两部分构成:内容和属性
内容决定文件“是什么”(数据含义)。
属性决定文件的“如何用”(权限、存储、类型)。
比如一个普通文件:
他的内容是文本、二进制数据;
他的属性是文件名、权限、大小、时间戳等。
我们可以通过write、read等修改文件内容,也可以用chmod函数修改文件的权限等属性。
初识Linux:常见指令介绍,文件权限的更改,以及粘滞位的理解-CSDN博客

那么思维发散一下,我们能否将这些硬件的自身状态、操作方法抽象为“内容+属性”,并用统一的接口修改这些硬件呢?
已知的是Linux似乎正是将系统资源(如硬件设备等)抽象为文件,提供统一的文件操作接口(open, read, write, close等)。使得无论操作对象是普通文件、目录、设备,用户都可以通过相同的文件系统与之交互。
从理解硬件是种“文件”到其他系统资源的抽象对于计算机上诸多的硬件资源,我目前认为操作系统通过:先整理,再管理的方法管理这些硬件。
所谓先整理,在管理。这是笔者从进程PCB的创建受到的启发。OS为方便管理不同的进程会为其创建PCB,其中包含着进程的所有属性信息,那管理硬件是不是也可以通过创建某种数据结构来实现管理呢?
①假设OS为方便管理各种硬件资源会为其创建某种数据结构——这里想象成某种结构体struct file,该结构体中记录着该硬件的各种属性信息和行为函数——即IO操作。

②通过对冯诺依曼体系结构的抽象,将计算机抽象为存储器和其他。这个其他中包括cpu和各种硬件设备,这么划分的原因是这些硬件都要与内存进行IO操作。我们不妨暂将所有硬件的IO操作抽象为两个函数read( )和write( )。
通过上述两点,创建一个struct file结构体,其中有着各硬件的状态信息和函数行为:
代码语言:javascript代码运行次数:0运行复制struct file{ //内容 int type; int status; …… //属性 int (*write)();//函数指针 int (*read)(); ……}登录后复制 菜鸟下载发布此文仅为传递信息,不代表菜鸟下载认同其观点或证实其描述。
版权投诉请发邮件到 cn486com#outlook.com (把#改成@),我们会尽快处理
Copyright © 2019-2020 菜鸟下载(www.cn486.com).All Reserved | 备案号:湘ICP备2023003002号-8
本站资源均收集整理于互联网,其著作权归原作者所有,如有侵犯你的版权,请来信告知,我们将及时下架删除相应资源