UP | HOME

操作系统

Table of Contents

什么是操作系统?

  • 硬件:CPU、RAM、硬盘、网络等
  • OS:
    • 内核服务:如文件系统(FS)、进程、内存、网络等
    • 系统调用
  • 用户应用:如shell(sh)、编译器(cc)、数据库(DB)等

内核

Kernel是计算机资源的守护者

  • 当打开计算机时,Kernel总是第一个被启动
  • Kernel程序只有一个,它维护数据来管理每一个用户空间进程
  • Kernel同时还维护了大量的数据结构来帮助它管理各种各样的硬件资源,以供用户空间的程序使用
  • Kernel同时还有大量内置的服务

    例如,Kernel通常会有文件系统实现类似文件名,文件内容,目录的东西,并理解如何将文件存储在磁盘中
    
    所以用户空间的程序会与Kernel中的文件系统交互,文件系统再与磁盘交互
    

操作系统的目的

  • 在多个应用之间复用硬件
  • 隔离应用程序, 保证安全,彼此错误不会相互影响
  • 允许合作的应用程序之间共享资源
  • 为了可移植性而抽象硬件
  • 提供有用的服务

高效vs易用

高效性需要在low-level接近硬件进行操作,而易用性需要提供high-level的可移植接口。因此,实现既简单可移植又高效的接口是个挑战

强大vs简单

想要提供强大的操作系统服务来辅助应用程序运行,但又期望其拥有简单的接口以便于程序员理解和使用。目标是提供既简单又功能强大的接口

灵活vs安全

内核具备灵活的接口。希望给程序员完全的自由,但是实际上又不能是真正的完全自由,因为不想要程序员能直接访问到硬件,干扰到其他的应用程序,或者干扰操作系统的行为

Next:系统调用 Home: xv6 解析