APP下载

操作系统课程的实践教学模式探讨

2010-12-31孙自广唐培和黄镇谨

计算机教育 2010年8期

  摘要:针对操作系统课程实践教学上存在效果不明显、形式难把握的现象,本文在分析了现有实践教学模式的基础上,探讨了若干个国外流行的教学用操作系统内核,对广大教师选择教学用操作系统可起到参考作用。
  关键词:教学改革;操作系统;实践教学
  文章编号:1672-5913(2010)08-0146-03
  中图分类号:G642
  文献标识码:B
  
  1 背景
  
  操作系统课程教学中普遍存在教学与实践脱节的问题。该课程的理论性和综合性比较强,教师在讲解基本原理的时候,往往忽略了实践。学生在学完课程后,很难自己设计一个小型的操作系统。对于国内的普通高校,对实践的要求大都还处于模拟相关算法的层面上。只是简单的进行算法仿真,无法使学生对操作系统的整个工作机制有系统的认识。要提高操作系统课程的教学质量,关键是要加强实践教学的力度。
  本文首先对现有的实践教学模式进行了分析,然后重点探讨了一些现有的教学用操作系统,对广大教师选择教学用操作系统时起到引荐作用。
  
  2 现有实践教学模式分析
  
  国内本科高校由低到高大致可以分为三个层次:教学型大学、教学研究型大学和研究型大学。由于师资力量、硬件环境以及学生素质的差异,目前操作系统实践教学主要采取以下4种模式。
  
  2,1功能模拟
  针对操作系统中一些典型功能或算法,如进程调度、内存分配、页面置换、文件系统、死锁检测、磁盘调度等进行编程实现,可通过操作界面运行程序对功能加以验证。这种模式所涉及的软硬件资源和数据结构都是自建的,并不对真实的系统资源进行访问和修改,因此可以摆脱具体操作系统的限制和软硬件细节。独立实现操作系统的某一模块,所需学时较少,但这并不是设计一个完整的系统。
  
  2,2代码阅读
  阅读并理解具体操作系统的源代码也是学习操作系统设计的一种重要方法。开放的Linux操作系统凝聚了众多软件高手的智慧,因此目前主要分析的是Linux源代码。很多学校选取的是Linux早期版本,如Linux0.11,因为其源代码量较少,可读性好,适合学生在较短学时内阅读理解。计算机大师Tanenbaum设计的Minix也是一个选择,阅读时参照其编写的经典教材《操作系统:设计与实现》。
  
  2,3内核扩展
  首先选择一个内核简单的教学用操作系统,如Nachos,它提供了对时钟和键盘中断、多线程、虚拟存储等的底层支持,代码是开放的。使用内核提供的接口,对基础系统的相关模块进行完善和扩充,例如shell、用户管理、CPU调度、进程同步、虚拟存储以及文件系统功能。
  
  2,4独立设计
  构造一个真正的操作系统是理解操作系统的最佳方法,但难度也最大。国内部分一流研究型大学要求学生独立或合作实现一个结构相对简单但功能较完备的小型操作系统。随着后PC时代的到来,且鉴于Intel指令系统的复杂性,设计一个基于精简指令集处理器的嵌入式操作系统是个不错的方案。这种模式对学生个人能力要求较高。
  一般教学型大学的本科生实践教学大都采用第1、2种模式:教学研究型大学以211高校为主,主要采用第2、3种模式;第3、4种模式是研究型大学的操作系统课程实验的主要模式,主要以985高校为主。
  以地方高校为主的教学型大学,是国内本科教育的主要组成部分,承担着大众化教育的使命。据不完全统计,目前国内高校开办计算机本科专业的院校达700多所,本科生的在校生数量达到90万人,我国虽是一个教育大国,但不是教育强国。国内IT企业普遍缺乏核心技术,是我国软件业发展的软肋,高校作为教育的实施者,不能回避自己的责任。加强操作系统课程的实践教学,是提高计算机专业学生的系统级编程能力的有效途径。纵观国外大学的操作系统教学,大都采用第3、4种模式进行,而且使用的操作系统内核也各有特色。
  
  3 教学用操作系统内核比较分析
  
  加强对国外高校实践教学的学习,是提高国内高校操作系统教学的可行之道。本文下面对常见的教学用操作系统内核进行分析。
  
  3,1Minix
  Minix是荷兰著名的计算机专家A.S.Tanenbaum主持设计的微内核操作系统,目前最新版本是Minix3.1.3a,内核只有4000行代码,存储管理、设备管理和文件系统等功能以用户进程模式工作,系统具备很强的灵活性和安全性。Minix3与以往两个版本有较大改进,功能更加完整,安装更加方便,也可在多种虚拟机上安装。目前加州大学圣克鲁斯分校将Minix3作为教学用操作系统内核,安排有4个开发项目:一个简单的Shell、进程调度器、内存分配和文件系统。
  
  3,2Linux
  Linux是由芬兰赫尔辛基大学的一名叫做LinusTorovalds的大学生于1991年首先开发,后经众多软件高手参与共同开发的功能强大的操作系统。Linux是一个自由软件,它的源代码是开放的。Linux经过十几年的发展,内核不断升级,形成了一个庞大的代码库,短时间内读完最新版本的内核源代码是不现实的。在教学上,一般选择低版本的内核如Linux0.12,有人用C语言对其进行了改写,减少了汇编语句的数量,更加便于阅读。
  
  3,3Nachos
  Nachos的全称是“Not Another CompletelyHeuristic Operating System”,它是一个可修改和跟踪的操作系统教学软件。它给出了一个支持多线程和虚拟存储的操作系统框架,可让学生在较短的时间内对操作系统中的基本原理和核心算法有一个全面和完整的了解。Nachos是美国加州大学伯克莱分校在操作系统课程中已多次使用的操作系统课程设计平台,在美国很多大学中得到了应用。Nachos需要运行在一个模拟MIPS R2/3000的指令集的虚拟机上,移植方便。
  
  3,4JOS
  JOS是美国麻省理工学院的操作系统课程的一个实验性质的微型操作系统,基于Exo-Kemel理念。它提供了一个操作系统的框架,使得学生可以不必花费时间用于太底层的东西,如读写硬盘数据等,而是将时间精力集中于OS的核心部分。国内的清华大学和北京大学的操作系统实验项目使用的也是JOS。
  
  3,5GeekOS
  GeekOS是一个基于X86架构的微型操作系统内核,由美国马里兰大学的教师开发,主要用于操作系统课程设计,目的是使学生能够实际动手参与到一个操作系统的开发工作中,代码有5000多行。作为一个课程设计平台,GeekOS由一个基本的操作系统内核作为基础,提供了操作系统与硬件之间的所有必备接口,实现了系统引导、实模式到保护模式的转换、中断调用及异常处理、FIFO进程调度算法、基本的输入输出以及一个用于存放用户程序的只读文件系统PFAT等。GeekOS中包含7个难度逐渐增加的扩展项目,有详细的帮助文档。
  
  3,6其他教学用操作系统
  (1)OS/161由美国哈佛大学设计,基于MIPS指令集,与Nachos相似,但两者是独立的,没有联系。
  (2)Pintos由美国斯坦福大学的Ben Pfaff设计,该系统是在借鉴Nachos的基础上,为面向X86架构而重新编写的。
  (3)OSKIT由美国犹他大学计算机科学系FLUX研究组编写的一套用于架构操作系统内核、服务器和其他操作系统级软件的框架及模块化的部件和库程序,基于COM思想而设计的。
  (4)PortOS由美国康奈尔大学的教师设计,该系统提供一个运行于Windows上仿真环境,可用于普适计算。
  (5)LittleOS是一个基于Intel32位体系结构保护模式的微型操作系统,LittleOS仅仅初始化了一些必要的硬件,是一个仅提供了键盘中断和时钟中断的框架。
  
  4 实施教学应注意的问题
  
  在借鉴国外的教学用操作系统进行实践教学时,必须看到国内实际情况与国外的差别。首先国内的教学模式与国外都有较大区别,另外由于语言背景不同,学生阅读英文技术文档较为吃力。在实施教学时要注意以下几点:
  (1)最好能提供中文版本的实验指导书,降低学生切入课题的难度;
  (2)对于开发平台中涉及的编译器和模拟器,应该给出确定的版本号和详细的使用指导;
  (3)课题的难度应根据学生具体情况进行调整。
  
  5 结语
  
  操作系统课程中的原理和实践是密不可分的,在实践教学中对内核进行扩展,在实际教学中便于操作。强调实践是教学改革的发展趋势。相信随着实践教学的加强,国内也会出现值得推广的教学用操作系统内