深入理解计算机操作系统学习笔记、一

前言

《深入理解计算机操作系统》这本书是操作系统领域内非常经典的书,只要在网上搜索操作系统的书籍,必然会有人推荐这一本书,这本书也被各路大牛所推荐。虽然之前在图书馆借过这本书,但是匆匆看了一遍,只是记住了皮毛,最近下决心买了本纸质版的书,准备重读经典,顺便写下读书的收获与思考。

这本书的中文名字感觉有些“吓人”,初学者一看到深入理解往往会有些畏惧。其实英文名是“computer systems a programmer’s perspective ”可以理解为从一个程序员的角度看操作系统,这样听起来就接地气多了。

系统级I/O

为什么要学习系统级I/O(Unix I/O)

虽然高级别的IO封装好了很多函数例如printf,scanf,我们不用关心Unix IO,直接就可以使用,但是学习Unix IO还有很多好处,例如:

  • 理解Unix I0可以帮助理解其他的系统概念,因为IO和其他系统概念之间经常是相互依赖的。IO在进程的创建中有关键作用,进程的创建在不同进程之间的文件共享起到重要作用;

Unix I/O

在linux中,所有的IO设备都被映射成文件,输入和输出被当成是对文件的读写操作,这样,linux内核就可以提供一个应用接口,来统一地处理处理输入和输出,这个应用接口就是Unix IO。

文件

常见的文件有两类:

  • 普通文件(regular file)包含任意的数据,应用程序通常要区分文本文件text file和二进制文件binary file,而linux内核认为文本文件和二进制都一样。
  • 目录directory:目录包含一组链接link的文件,其中每一个链接都把一个文件名filename映射到一个文件上。
  • 套接字Socket:socket也是一个文件,用来警醒进程之间的网络通信

系统中的每一个文件都是根目录的后代,所有文件的关系类似于一个数结构,文件的根节点就是根目录。在目录的层次结构里,位置是用路径名来表示。路径名分为两种:

  1. 绝对路径名:是以一个斜杠/开始的,表示从根节点开始。
  2. 相对路径名:是以文件名开始的,表示从当前所在的工作目录开始。

猜你喜欢

转载自blog.csdn.net/shida_hu/article/details/82953861
今日推荐