操作系统是用户与计算机交互的窗口,现代计算机离开了操作系统的支持,将无法进行正常使用。

操作系统的启动过程: BIOS启动 -> 引导区引导程序 -> OS引导程序 -> init程序(不同操作系统可能不同,现在的主流是systemd) -> 执行软件

操作系统需要做好计算机资源的合理利用,以及计算机上 软件的管理,让多个软件和谐共处

操作系统大体可分为以下六个子系统:进程管理、存储管理、输入设备管理、输出设备管理、网络管理、安全管理等。

另一个方面,操作系统的出现提供了基础的编程接口,大幅的降低了软件开发的难度。

操作系统提供了 系统调用 这种需要 使用操作系统内核权限的接口,让普通的程序也能在短期内获得 内核的权限

在程序进行系统调用时,操作系统会 将程序的状态从用户态切换到内核态,然后执行系统调用,返回结果给程序,并恢复成用户态。

这样做的好处在于,避免了普通程序过多的操作系统资源,从另一方面,也是从安全的角度考虑,也有必要存在 用户态和内核态,要不然,每个程序都可以对其他程序所占用的资源进行修改或获取。

这样做的坏处当然也有,进程之间的交互将变得比较麻烦,不像线程之间,直接通过变量交换既能达到目的。

另外,十分重要的一点是:操作系统的这种不同态,使得每个程序都认为自己在独占操作系统

在浏览器普及之前,操作系统一直是用户与计算机的交互窗口。浏览器的出现,改变了这一现状,越来越多的功能都能够通过浏览器实现,操作系统似乎慢慢变得像,只是为了运行浏览器而走的一个过场。