操作系统 - 概述
简介
操作系统存在于计算机软件和硬件之间,协调软件和硬件。
操作系统管理的硬件:CPU管理、内存管理、终端管理、磁盘管理、文件管理、网络管理、电源管理、多核管理
操作系统的接口
- 使用显示器:printf;
- 使用CPU:fork;
- 使用文件:open、read…
存储程序的主要思想:将程序和数据存放到计算机内部的存储器中,计算机在程序的控制下一步一步的执行。

其中IP(也称为PC)是程序计数器,用来记录当前想要执行的指令地址(这是计算机组成原理的相关知识),从而根据指令地址在存储器中取出对应的指令,进而将指令送到CPU中进行执行(这是可以理解为在处理不同的指令时,相当于不同的图灵机),重复地进行取指、执行的操作,这也就是计算机工作的基本原理。
实地址模式和保护模式:
操作系统篇-浅谈实模式与保护模式 - 卫卐 - 博客园 (cnblogs.com)
实地址模式:计组课学的8086CPU实际上就是实地址模式,其计算地址为物理地址(physicaladdress)=段值(segment) * 16 + 偏移(offset)
存在的问题:
- 无法支持多任务
- 程序的安全性无法得到保证。
保护模式:全部32条地址线有效,可寻址高达4G字节的物理地址空间。计算物理地址时,段值不再直接计算得到物理地址,而是仅仅变成了一个索引,这个索引指向了一个数据结构的一个表项,表项中详细定义了段的起始地址、界限、属性等内容。这个数据结构就是全局描述符GDT(LDT),GDT的作用是用来提供段式存储机制,这种机制是段寄存器和GDT中的描述符共同提供的。每个描述符在GDT中占8字节,也就是 2 个双字,或者说是 64 位。
感觉这个就类似于计网中的协议,每个字段的0,1分别代表什么含义,在这里就是GDT表,然后通过对应的规则就可以得到实际的地址。
操作系统篇-分段机制与GDT|LDT - 卫卐 - 博客园 (cnblogs.com)
使用操作系统的几种方式:命令行,图形窗口,应用程序,上层应用调用操作系统, 实际上就是一些C语言加上一些定义好的重要函数。这些函数实际上就是操作系统的接口。
操作系统的接口就是系统调用, 也就是直接与计算机硬件打交道的函数。

POSIX表示可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX ),POSIX标准定义了操作系统应该为应用程序提供的接口标准。这是因为不用的操作系统平台提供的相同功能的接口名称可能不一样。
操作系统篇-调用门与特权级(CPL、DPL和RPL) - 卫卐 - 博客园 (cnblogs.com)
为了信息的安全,防止用户轻易的进入操作系统造成破坏,需要将内核程序和用户程序隔离!

在分段机制中,特权级总共有4个特权级别,从高到低分别是0、1、2、3,数字越小表示的特权级别越大。如下图所示:
较为核心的代码和数据将被放在特权级较高的层级中。处理器将用这样的机制来避免低特权级的任务在不被允许的情况下访问位于高特权级的段中。如果处理器检测到一个访问请求是不合法的,将会产生常规保护错误。有时候也将高特权级称为内层,低特权级称为外层。
(1)CPL
CPL是当前执行的程序或任务的特权级。它被存储在CS和SS的第0位和第1位上。通常情况下,CPL代表代码所在的段的特权级。当程序转移到不同特权级的代码段时,处理器将改变CPL。只有0和3两个值,分别表示用户态和内核态。
(2)DPL
DPL表示段或门的特权级。它被存储在段描述符或者门描述符的DPL字段中(《操作系统篇-分段机制与GDT|LDT》中有提到),当当前代码段试图访问一个段或者门,DPL将会和CPL以及段或者门选择子的RPL相比较,根据段或者门类型的不同,DPL将会区别对待。
(3)RPL
RPL是通过段选择子的第0和第1位表现出来的。RPL是代码中根据不同段跳转而确定,以动态刷新CS里的CPL,在代码段选择符中。
当CPL < DPL时,也就是程序的特权级 < 段或门的特权级时,才能进入内核,正常执行。

主要研究的内容
- 进程/线程;
- 并发/锁;
- 内存管理与调度;
- I/O原理;