清华大学——操作系统OS(向勇、陈渝)
在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
操作系统是控制软件,管理应用程序,为应用程序提供服务,杀死应用程序,分配资源,管理外设
抽象:CPU - 进程,内存 - 地址空间,磁盘 - 文件
OS位于硬件层之上,软件应用层之下,是个中间层的系统软件。
OS分为Shell(界面)和Kernel(内核)
并发(concurrent,交替运行) vs 并行(parallel,同时运行)
注意:区分并发和并行。 //并发指的是在一段时间内有多个程序可以运行。
//并行指的是在一个时间点上有多个程序可以同时执行。
操作系统管理的主要的三个资源:CPU(CPU调度,进程,线程)、内存(物理内存,虚拟内存)、磁盘(文件系统)、与硬件相关的底层(中断、IO、设备驱动)