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. 其他等等等等

Clone this wiki locally