# Four Fundamental OS Concepts ## Complexity 复杂性 操作系统的硬件非常复杂。如果没有操作系统,用户必须直接与硬件交互,这将非常困难。操作系统通过提供抽象来隐藏硬件的复杂性,使用户能够更容易地使用计算机。 这也就意味着,如果处理不当: - 复杂性会“泄露”出来。例如一些第三方驱动程序导致系统崩溃,或者某些功能无法正常工作。 - 安全漏洞。例如2017年,Intel的CPU存在一个名为Meltdown的漏洞。攻击者甚至可以访问kernel模式的内存! - 不同版本的库会导致应用程序可能出问题。(现在我们有了Docker) ### OS Abstracts Hardware 操作系统的抽象 操作系统提供抽象层来隐藏硬件复杂性。例如: - Processor -> Threads 进程 - Memory -> address space 内存地址空间 - Disks, SSD, HDD, etc. -> Files 文件 - Network -> Sockets 套接字 - Machines -> Processes