手写操作系统之操作系统架构

系统资源

  1. 总线,负责连接各种其它设备,是其它设备工作的基础。
  2. .CPU,即中央处理器,负责执行程序和处理数据运算。
  3. 内存,负责储存运行时的代码和数据。
  4. 硬盘,负责长久储存用户文件数据。
  5. 网卡,负责计算机与计算机之间的通信。
  6. 显卡,负责显示工作。
  7. 各种 I/O 设备,如显示器,打印机,键盘,鼠标等。

系统架构

1.宏内核结构
2.微内核结构
宏内核有极致的性能,微内核有极致的可移植性、可扩展性。

系统功能

1.内核接口层,定义了一系列接口,主要有两点内容,如下:1. 定义了一套 UNIX 接口的子集,我们出于学习和研究的目的,使用 UNIX 接口的子集,优点之一是接口少,只有几个,并且这几个接口又能大致定义出操作系统的功能。2. 这套接口的代码,就是检查其参数是否合法,如果参数有问题就返回相关的错误,接着调用下层完成功能的核心代码。内核功能层,主要完成各种实际功能,这些功能按照其类别可以分成各种模块,当然这些功能模块最终会用具体的算法、数据结构、代码去实现它。

2.内核功能层的模块如下:1. 进程管理,主要是实现进程的创建、销毁、调度进程,当然这要设计几套数据结构用于表示进程和组织进程,还要实现一个简单的进程调度算法。2. 内存管理,在内核功能层中只有内存池管理,分两种内存池:页面内存池和任意大小的内存池,你现在可能不明白什么是内存池,这里先有个印象就行,后面课程研究它的时候再详细介绍。3. 中断管理,这个在内核功能层中非常简单:就是把一个中断回调函数安插到相关的数据结构中,一旦发生相关的中断就会调用这个函数。4. 设备管理,这个是最难的,需要用一系列的数据结构表示驱动程序模块、驱动程序本身、驱动程序创建的设备,最后把它们组织在一起,还要实现创建设备、销毁设备、访问设备的代码,这些代码最终会调用设备驱动程序,达到操作设备的目的。

3.内核硬件层,主要包括一个具体硬件平台相关的代码,如下:1. 初始化,初始化代码是内核被加载到内存中最先需要运行的代码,例如初始化少量的设备、CPU、内存、中断的控制、内核用于管理的数据结构等。2. CPU 控制,提供 CPU 模式设定、开、关中断、读写 CPU 特定寄存器等功能的代码。3. 中断处理,保存中断时机器的上下文,调用中断回调函数,操作中断控制器等。4. 物理内存管理,提供分配、释放大块内存,内存空间映射,操作 MMU、Cache 等。5. 平台其它相关的功能,有些硬件平台上有些特殊的功能,需要额外处理一下。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值