操作系统中最重要的三个抽象概念:进程(线程)、地址空间、文件;
任何计算机程序都需要存储和检索信息;
首先想到的是使用使用其自身的地址空间存储信息;
但是有一些问题:虚拟地址空间大小有限、信息无法持久化、信息的共享不方便;
总而言之,信息依附于进程存在是不方便的;
更好的方法是利用长期存储性质的介质存储信息——这里介绍的是磁盘。
磁盘只要支持读写操作,就可以解决长期存储的问题,而且只要磁盘够大,空间大小的限制也不是问题。同时也能够支持不同的进程(线程)并发存取的需求。
但是还有一些问题需要解决:
1)如何找到想要的信息;
2)如何防止一个用户读取另一个用户的数据;
3)如何知道那个空间是空闲的;
这里对磁盘使用一种新的抽象来解决这个问题——文件;
=====================================================
文件是一个抽象概念,是逻辑概念。是进程创建的信息逻辑单元。
文件可以存在一些操作:打开、关闭、新增、删除、修改等;
文件受操作系统管理,以上操作的实现都是操作系统设计的重要内容。
操作系统处理文件的部分称为文件系统。
从用户角度来看:文件在用户眼中的表现形式,由什么组成,如何给文件命名,如何保护文件,可以对文件进行哪些操作;
从设计人员角度看:如何记录空闲存储区(位图、链表)、一个逻辑磁盘块中有多少个扇区等等
====================================================
用户层面的内容——文件、目录
====================================================
设计人员层面的内容——文件系统的实现、文件系统的管理和优化
====================================================
文件系统相关链接:
文件系统理解(带着问题一步步深入):https://segmentfault.com/a/1190000019065683?utm_source=tag-newest
理解文件系统:https://blog.csdn.net/M_jianjianjiao/article/details/83241821
文件系统理解(简要讲了一些分层结构):https://blog.csdn.net/hearbeat/article/details/82191724
Linux文件系统详解(讲解得很详细):https://www.cnblogs.com/alantu2018/p/8461749.html
对文件系统理解:https://www.cnblogs.com/shangye/p/6177993.html
文件相关操作命令(参数讲解比较详细):https://www.linuxidc.com/Linux/2018-04/151801.htm
Linux文件操作相关命令(文字总结):https://www.cnblogs.com/fu-yong/p/9061829.html
Linux中文件操作命令(太简略):https://blog.csdn.net/weixin_44402973/article/details/87516368
Linux文件操作命令(带截图):https://www.jianshu.com/p/599e1f79bc6f?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation