什么是操作系统?
这是一副很经典的解释什么是操作系统的图。Kernel就代表的是操作系统,可以看到,他是位于硬件和软件之间的中间方。
- 操作系统是管理计算机硬件和软件资源的程序,是计算机的基石。注意⚠️,这里描述的是操作系统是程序!本质上就是一个程序!
- 操作系统屏蔽了硬件层的复杂性。
- 操作系统的内核是操作系统的核心部分,它负责管理内存、进程、文件、设备等计算机资源。它的好坏决定着系统的性能和稳定性。
比如说Linux、Windows就是一些很成熟的操作系统,他们内部实现的进程调度、文件管理、I/O中断、内存管理等等算法都是很成熟的。为什么当时不能理解操作系统是什么?!
系统调用
进程是完成一个任务的单位,想要完成任务就得请求相应的资源,而资源获取又有不同的权限,因而,进程运行分成两种级别:用户态、系统态。简单地说他们的区别就是:
- 用户态:进程能够直接读取用户程序的所有资源
- 系统态:进程能够访问包括用户的、计算机的所有资源,不受限制
进程运行级别为系统态时,就称之为系统调用。用户程序执行过程中,凡是牵扯到系统资源相关的操作(文件操作、内存管理、进程控制)时,进程就会切换为内核态,进行系统调用,请求操作系统帮用户完成该调用任务。
这些系统调用按功能大致可分为如下几类:
- 设备管理。完成设备的请求或释放,以及设备启动等功能。
- 文件管理。完成文件的读、写、创建及删除等功能。
- 进程控制。完成进程的创建、撤销、阻塞及唤醒等功能。
- 进程通信。完成进程之间的消息传递或信号传递等功能。
- 内存管理。完成内存的分配、回收以及获取作业占用内存区大小及地址等功能。