Skip to content

zh_Hans: 设计

Frog Chen edited this page Aug 30, 2016 · 5 revisions

源码树设计

  • / kernel.cpp、Makefile等主要而不可缺少的部分
  • /arch/ 所有的模块和驱动都放在这里
  • /arch/${ARCH}/ 为多架构准备的文件夹,目前只有i686
  • /arch/${ARCH}/Boot/ 启动用的代码,例如启动引导
  • /arch/${ARCH}/Basic/ 基础模块(适用于当前架构的),比如基础io、内存、多任务
  • /arch/${ARCH}/Device/ 不能被IOMod抽象或必要的内核空间设备驱动,以及一些抽象层(比如PCI-E的)
  • /arch/${ARCH}/.../ 其他的内核内模块或驱动
  • /arch/${ARCH}/IOMod/ 驱动服务器,用于连接_内核_和_用户空间驱动_

内核设计

百度脑图

Cryst是一个混合内核。它有一些处于内核空间的驱动以及_驱动服务器_,使得_用户空间驱动_可以工作。

这些东西处于内核空间

  1. 内存管理
  2. 进程和线程管理
  3. 驱动服务器
  4. 部分POSIX支持,例如fork和IPC
  5. 内核空闲进程
  6. IDT与GDT管理
  7. 硬件抽象驱动

这些东西处于内核里但运行在用户空间(或进程)

  1. 文件系统
  2. 二进制载入器(例如ELF解析器)

这些东西不在内核里也不运行在内核空间

  1. 图形驱动
  2. 显示驱动
  3. 块设备驱动
  4. 其他等等等等