清华大学操作系统OS(向勇、陈渝)视频地址:http://www.xuetangx.com/courses/course-v1:TsinghuaX+30240243X+sp/about
在ucore实验中,一些基本的常用工具如下:
命令行shell: bash shell -- 有对文件和目录操作的各种命令,如ls、cd、rm、pwd...
系统维护工具:apt、git
- apt:安装管理各种软件,主要在debian, ubuntu linux系统中
- git:开发软件的版本维护工具
源码阅读与编辑工具:eclipse-CDT、understand、gedit、vim
- Eclipse-CDT:基于Eclipse的C/C++集成开发环境、跨平台、丰富的分析理解代码的功能,可与qemu结合,联机源码级Debug uCore OS。
- Understand:商业软件、跨平台、丰富的分析理解代码的功能,Windows上有类似的sourceinsight软件
- gedit:Linux中的常用文本编辑,Windows上有类似的notepad
- vim: Linux/unix中的传统编辑器,类似有emacs等,可通过exuberant-ctags、cscope等实现代码定位
源码比较和打补丁工具:diff、meld,用于比较不同目录或不同文件的区别, patch是打补丁工具
- diff, patch是命令行工具,使用简单
- meld是图形界面的工具,功能相对直观和方便,类似的工具还有 kdiff3、diffmerge、P4merge
开发编译调试工具:gcc 、gdb 、make
- gcc:C语言编译器
- gdb:执行程序调试器
- ld:链接器
- objdump:对ELF格式执行程序文件进行反编译、转换执行格式等操作的工具
- nm:查看执行文件中的变量、函数的地址
- readelf:分析ELF格式的执行程序文件
- make:软件工程管理工具, make命令执行时,需要一个 makefile 文件,以告诉make命令如何去编译和链接程序
- dd:读写数据到文件和设备中的工具
硬件模拟器:qemu -- qemu可模拟多种CPU硬件环境,本实验中,用于模拟一台 intel x86-32的计算机系统。类似的工具还有BOCHS, SkyEye等
markdown文本格式的编写和阅读工具(比如阅读ucore_docs)
编写工具 haroopad
阅读工具 gitbook
80386有四种运行模式:
实模式、保护模式、SMM模式和虚拟8086模式。
实模式:80386加电启动后处于实模式运行状态,在这种状态下软件可访问的物理内存空间不能超过1MB,且无法发挥Intel 80386以上级别的32位CPU的4GB内存管理能力。
保护模式:支持内存分页机制,提供了对虚拟内存的良好支持。保护模式下80386支持多任务,还支持优先级机制,不同的程序可以运行在不同的优先级上。优先级一共分0~3 4个级别,操作系统运行在最高的优先级0上,应用程序则运行在比较低的级别上;配合良好的检查机制后,既可以在任务间实现数据的安全共享也可以很好地隔离各个任务。
物理内存地址空间是处理器提交到总线上用于访问计算机系统中的内存和外设的最终地址。一个计算机系统中只有一个物理地址空间。
线性地址空间是在操作系统的虚存管理之下每个运行的应用程序能访问的地址空间。每个运行的应用程序都认为自己独享整个计算机系统的地址空间,这样可让多个运行的应用程序之间相互隔离。
逻辑地址空间是应用程序直接使用的地址空间。
段机制启动、页机制未启动:逻辑地址->段机制处理->线性地址=物理地址
段机制和页机制都启动:逻辑地址->段机制处理->线性地址->页机制处理->物理地址
操作系统是控制软件,管理应用程序,为应用程序提供服务,杀死应用程序,分配资源,管理外设
抽象:CPU - 进程,内存 - 地址空间,磁盘 - 文件
OS位于硬件层之上,软件应用层之下,是个中间层的系统软件。
OS分为Shell(界面)和Kernel(内核)
并发(concurrent,交替运行) vs 并行(parallel,同时运行)
注意:区分并发和并行。 //并发指的是在一段时间内有多个程序可以运行。
//并行指的是在一个时间点上有多个程序可以同时执行。
操作系统管理的主要的三个资源:CPU(CPU调度,进程,线程)、内存(物理内存,虚拟内存)、磁盘(文件系统)、与硬件相关的底层(中断、IO、设备驱动)