电子信息类专业的“操作系统”教学内容设计
2011-04-02陆松年訾小超
陆松年,潘 理,訾小超
(1.上海交通大学 电子信息与电气工程学院,上海 200240;2.上海交通大学 信息安全工程学院,上海 200240)
电子信息类专业的学生学习“操作系统”课程的目的不是设计通用的操作系统,在多种操作系统的环境上开发与专业相关的系统软件和应用软件,安全有效地管理计算机系统和网络系统。因此,电子信息类专业“操作系统”教学和实验的改革应当以理论为基础,应用和开发并重。学生在掌握理论和深入地理解系统后,才能逐步提高设计新的计算机控制和处理系统的能力。要开发计算机通信等大型软件,一定要理解操作系统的基本原理。
1 操作系统教学内容
国内出版的面向计算机专业的“操作系统”教材并不适合电子信息类专业学生的需要。我们编写的本教材具有计算机通信、嵌入式系统和操作系统安全的特色[1]。教学内容除了包括一些操作系统的基本原理外,尽可能多地渗入专业所必须学的内容。
1)进程是操作系统中最基本的概念,进程管理是操作系统中最重要和最活跃的部分,其中包含操作系统中重要的管理思想,如进程控制块、调度策略、进程创建、控制和线程等概念。
2)对于通信专业,编写与通信协议有关的程序和各种应用之间的通信程序的能力是非常重要的,因此教学内容突出进程的通信部分理论、进程之间的互斥和同步、信号量和信号量的应用、管程、信号机构、Solairs门以及管道通信等[1]。
3)分布式和网络系统也与通信专业密切相关,故教学内容也要包括分布式和网络操作系统中的网络通信机制、网络同步和负载分配。在分布式和网络系统中也要涉及同步与互斥、调度算法、分布式文件系统和文件共享等。
4)通信专业还要掌握计算机通信技术和基本程序,突出与计算机通信相关的原理和应用。教学内容包括基本的远程用户间通信、远程登录和执行和远程文件传输等。在编程方面要掌握消息通信、共享内存、信息量、最典型的两个通信协议:TCP和UDP套接字编程,以及Solaris门通信和远程过程调用RPC。
5)学习文件系统的管理思想和技术对于用户实现信息的存储、处理和设计自己的信息存储和管理系统十分重要。电子信息专业学生也要重点学习文件的基本概念、文件的系统调用、文件的标准子例程、文件系统的内部结构(如索引结构、目录结构、打开文件结构等)、文件系统存储资源管理、Linux和Solaris虚拟文件系统(VFS)以及文件系统安全等。
6)Windows系统是当前使用最广泛发展最快的操作系统。在该操作系统中要学习Windows 2000/XP的网络体系架构、Windows Server 2008、Windows 7和操作系统虚拟化技术等。
7)计算机系统安全是当前十分紧迫的问题,操作系统安全对于信息安全专业来说是一个核心研究方向。如系统安全的评估与标准、操作系统安全机制、访问控制、安全审计、操作系统安全设计原理和安全体系结构等。对应用人员,也要掌握系统保护、用户身份验证以及各种程序威胁。此外还要学习与操作系统安全密切相关的拒绝服务攻击、入侵检测、SSL和安全审计等。
8)掌握操作系统向用户提供的主要的实用程序、库函数、系统接口以及软件开发工具,对于熟练地在操作系统的环境下开发系统软件和应用软件是十分重要的。因此,电子信息类专业“操作系统”的教学内容包括有关的实用程序和软件开发工具,如库的生成、维护程序的程序Make、调试排错程序和源代码控制系统等。
9)Shell是UNIX系统最强而有力的系统开发工具,是在UNIX系统中提高工作效率的关键。掌握Shell是从UNIX系统的新手到资深用户或系统管理员的必经之路。因此电子信息类专业的学生必须学习Shell程序设计,包括Shell变量、Shell命令、控制结构、Shell函数和过程等。
10)对于电子和自动化专业,掌握嵌入式系统的开发技术是必需的。在嵌入式系统中要学习嵌入式系统分类、特点、应用领域和发展趋势,嵌入式Linux操作系统实现方法、任务管理与调度算法,嵌入式操作系统构建、裁剪和编译内核,嵌入式Linux操作系统安装、软件开发与调试等。
11)电子信息类专业“操作系统”课程要突出系统管理、网络管理和连网技术。包括UNIX系统管理、网络配置和网络服务、网络服务监控进程、FTP服务器、域名系统、网络文件系统、Web服务器配置与管理。还要学习常用网络管理命令。
2 实验教学内容的设计
“操作系统”不仅是理论性很强的课程,而且也是实践性和技术性很强的课程,学习操作系统不能轻视实践[2]。
实验教学内容除了操作系统基本实验部分,如存储管理、请求分页系统、进程调度和控制、并发线程、死锁、文件系统的用户界面、文件系统设计实验、Shell程序设计、系统管理和网络管理等实验外,对于电子信息类专业还要注重以下几方面实验[3]。
每一个实险,课时是2~4个学时,每学期可以选做其中的5个实验。
1)操作系统与计算机通信相结合
与通信有关的协议较复杂,程序一般也很大。应当加强进程通信有关部分的原理教学和实验,且在每一阶段理论学习后接着安排实验课。如要求学生编制进程控制、进程间数据通信的程序和远程进程通信程序以及Linux消息队列的实现、远程进程TCP和UDP通信、Solaris门函数进程通信和远程过程调用,并完成远程计算机之间的文件传送FTP程序等功能。
2)嵌入式操作系统部分
嵌入式Linux系统的内核裁减、文件系统构建和系统引导是构成嵌入式Linux系统部分最重要的几个环节。具体实验内容包括嵌入式操作系统基本的软件开发和调试技术,嵌入式Linux安装与引导实验、嵌入式操作系统的构建和内核裁减、嵌入式操作系统的软件开发技术。
3)操作系统安全性部分
标识鉴别、访问控制、安全审计、隐蔽信道检测等是操作系统安全性中几个重要的技术。在教学中,我们应结合分析当前桌面操作系统的安全机制,穿插操作系统安全性原理介绍。安排学生对Linux系统中的安全增强模块进行代码分析和配置应用,并促进学生进行安全性增强方面的探索,如开展操作系统登录的可信路径、基于硬件标识的程序权限控制和Linux的安全访问控制等实验。
4)课程设计部分
为了培养和提高学生的大型系统程序设计能力,可以在36学时的课程设计中让学生分组设计以下实验:操作系统进程管理和调度实现、虚拟存储器原理及其实现、Linux的系统调用扩展、Linux的内核模块扩展、系统调用层次上的程序状态监视和基于B/S结构的Linux管理系统等[4]。
3 教学实验平台的选择
由于Linux和OpenSolaris具有开放源码的特性,现在很多公司已经把它们作为其正式的工作平台和服务平台。因此,课程组就选择Linux和OpenSolaris作为学生实验的主要平台,并设计了多层次组合式的实验,以提高学生实际编程能力以及使用和管理系统的能力。
我们已经以Linux系统为平台开设了操作系统模块设计、系统程序设计、应用开发、系统管理和网络管理等十几个实验。从已完成的实验看来,Linux操作系统符合POSIX.1标准,与其他种类的UNIX系统兼容性好,在其上开发的程序可移植性强。
Solaris是Unix类操作系统的典范,是最成功的商业实现版本,也是最安全和最稳定的操作系统之一。为了适应操作系统开源项目的最新发展,在教材中在存储管理、进程管理、进程通信、设备管理和文件系统各章分别对Solaris操作系统中最有特色的相关的原理进行了介绍外,还给出了Solaris门和RPC程序设计示例。
为了将OpenSolaris用于实验教学,除了集中实验外,课后学生可以登录课程组的OpenSolaris服务器,独立设计自己的创新性和综合性实验。
[1]陆松年等.操作系统教程(第3版)[M].北京:电子工业出版社,2010
[2]陆松年,龚玲.课堂教学、网络教室和课程实验三结合的教学方法[J].南京:电气电子教学学报,2009.2,88/89,94
[3]陆松年等.操作系统实验教程[M].北京:电子工业出版社,2010
[4]龚玲,陆松年,薛质."操作系统"课程教学探索[J].南京:电气电子教学学报,2007.10,1-3