操作系统
什么是操作系统?
- 硬件: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 解析 |