抽象 + 分层
基础平台
操作系统
- 软件治理
- 基础编程接口
kernel
- 存储管理
- IO 管理
- 进程管理
- 网络管理
- 安全管理
内存管理
虚拟内存 + 缺页中断
虚拟内存模式下,整个内存空间被分成很多个连续的内存页。
syscall
动态库
- 浮动地址
- 导出函数表
解析架构
- 需求
- 需求的稳定点, 系统的核心价值
- 需求的变化点, 开放性设计
- 规格
基础计算机
冯 诺伊曼架构
BIOS
- 存储设备的驱动程序,用以识别常规的外置存储设备,比如硬盘、光驱、U 盘。
- 基础外部设备的驱动程序,比如键盘、鼠标、显示器。
- 设备和启动配置的基础管理能力。
- 支持执行外置存储中引导区的机器代码程序。
- 跳转到外置存储引导区的固定地址,把执行权交给该地址上的引导程序。
需求
- 多个软件如何同时运行(多任务的需求)?
- 多个软件如何共同使用计算机上的存储空间(内存管理、文件系统的需求)?
- 多个软件如何共同使用同一个外部设备(设备管理的需求)?
- 多个软件如何相互通讯,如何进行数据交换(进程间通讯、共享内存的需求)?
- 病毒、恶意软件如何治理(安全管理的需求)?
桌面开发
服务端开发
服务治理
软件工程
questions
- 硬盘存储其中一个文件他是怎么存放的数据块和元数据是怎么结构,inode 是什么,还有数据和元数据的索引表,甚至作为文件系统 ext3 的多层表索引和 12 个直接链接,一个单层,和多层索引等等都没说,文件系统的整体架构,特别是到底怎么优化等等也没说,还有虚拟内存,具体程序段怎么映射到物理内存,空余内存怎么管理,虚链表,对应的两难性能问题怎么解决?