跟我一起写操作系统

    返回首页    发表留言
本文作者:李德强
          第一节 开发目标
 
 

一、系统内核

        现今,计算机、互联网已经成为人们生活中不可缺少的一部分。数以万计的软件让我们为之目眩,无数的应用软件、工具、游戏等等。或者用于娱乐,或者用于工作,有的小巧精干,有的功能强大,有的大型游戏更是真实、炫丽。然而它们都有一个共同的特征,就是它们都是应用软件,必须运行在某一种操作系统平台下。也就是说,这些软件想要运行,必须有操作系统为它们做为基本运行依托。那么,什么是操作系统?操作系统是用来管理计算机系统的,现代计算机系统的主要任务是在相互竞争的程序之间有序地控制中央处理器、内存以及其他外部设备的分配。操作系统是配置在计算机硬件上的第一层软件,是对硬件系统的第一次扩充。

        上世纪90年代Linux操作系统内核的诞生成为计算机操作系统历史上的一个里程碑。开源、自由的系统内核为广大的计算机爱好者提供了学习和发展操作系统的机会,它让越来越多的人有机会了解一个操作系统内核的实现过程。Linux是真正的多任务、多用户的操作系统。

        接下来我们就要以Linux内核为参考,开发一套属于我们自己的操作系统。需要说明的是,我们要开发的操作系统内核的实用性并不是很高,其主要的目的是为了让大家了解操作系统内核的实现原理以及其内部的动作方式。作为一个操作系统,用户界面是必不可少的,我们这里也是以Linux为参考,只作一些文本方式的命令行界面,而并不打算花大量的精力去做一个精美的图形化界面。

 

二、微内核与宏内核

        首先我们先来了解一下系统内核的两种不同的实现方式——微内核与宏内核。

        微核心的设计理念,是将系统服务的实作,与系统的基本操作规则区分开来。它实作的方式,是将核心功能模组化,划分成几个独立的程序,各自运行,这些程序被称为服务。所有的服务程序,都运行在不同的地址空间。只有需要绝对特权的程序,才能在具特权的执行模式下运行,其余的程序则在使用者空间运行。

        宏内核简单的说就是把整个内核设计成一个大程序,它的所有功能都集中在一个层次,对外提供一个完整的内核界面,即系统调用。内核中的各种函数可以相互直接调用,汇编程序和C程序可以相互跳转和调用,用一个整体的大程序来实现内核功能,没有微内核的分层结构。宏内核的好处是简单,便于理解和实现。Linux之所以很快的流行,也在于它采用宏内核,设计简单。相对于微内核来说,宏内核的效率略高。基本上每个系统调用只需要经过一个函数调用就可以实际作用于硬件层,速度很快。

        操作系统内核结构可以分为三个层次:应用程序接口、内核和硬件,如下图所示:

        应用程序想要调用系统内核功能,只需要通过应用程序接口进行系统调用,来调用系统内核的系统调用函数。而系统内核会对程序的请求做出相应的处理。如果该功能需要使用硬件,则调用硬件驱动程序访问相应的硬件设备接口,并将响应的结果反馈给应用程序。

    返回首页    返回顶部
  看不清?点击刷新

 

  Copyright © 2015-2018 问渠网 辽ICP备15013245号