操作系统集成实验环境 Engintime OS Lab 简介
操作系统是高等院校计算机专业的一门重要基础课,也是众所周知的教学难度很大的一门课,其难点主要在于实验教学环节。为了降低操作系统实验教学的难度,北京英真时代科技有限公司经过三年的潜心研究,成功开发出了操作系统集成实验环境 —— Engintime OS Lab(以下简称 OS Lab)。
OS Lab 很好地解决了高校目前采用的实验方案所遇到的各种问题,可以使学生在有限的时间内深入操作系统内核做真正的操作系统实验,帮助学生加深对操作系统设计原理和算法的理解。
OS Lab 主要包括一个面向教学的开源操作系统 EOS 和一个用于编辑、编译和调试 EOS 的可视化 IDE 环境,下面介绍OS Lab的主要特点:
OS Lab已经完全接入了 开放实验管理平台。首先,该平台可帮助用户系统管理实验中的各个环节。教师可通过浏览器随时随地访问该平台,可以高效管理实验课信息,并全面掌握学生的实验情况,还可以自动统计出勤情况,实时掌握实验进度,自动评分等功能。学生可通过浏览器访问该平台查看实验课信息,在线填写实验报告,下载已提交的作业。学生还可使用配套的实验软件完成试验任务,并通过网络自动向该平台提交实验数据和源代码。
EOS 教学操作系统的特点:
EOS 不仅是一个教学操作系统,还是一个比较贴合实际的操作系统。EOS 融合了 Windows 和 Linux 的设计理念,使用了对象技术,其结构介于微内核和宏内核之间,API 和 Windows 基本一致,可以使学生了解目前实际操作系统的技术。
提供了包括引导程序在内的全部 EOS 源代码,源代码可读性极高。EOS 源代码总数被控制在一万行(通常低于一万行的源代码才认为是可读的),全部由汇编语言和 C 语言编写,包含了大量用于帮助学生理解代码的注释,学生可以在短时间内通读并理解全部源代码。
实验门槛低。EOS 的进程管理、内存管理、IO 管理等模块间的耦合性极低,学生在做各模块的实验时,不必了解其它模块,很容易入门。
提供《EOS 操作系统实验教程》。每个实验都提供了检验实验结果正确与否的方法,可以有效降低教师验收实验的劳动强度。由于 EOS 的灵活性和可扩充性都很高,教师可以根据学生和教学情况调整实验的难度。
IDE 环境的特点:
安装运行在 Windows 上,用于实验的 PC 无需安装多种操作系统,大大降低了实验室的管理难度。
类似 Visual Studio 的可视化 IDE 环境,易学易用。
一键编译 EOS。修改完 EOS 源代码后,按 F7 即可完成对整个 EOS 的编译和链接,生成 EOS 的引导程序、加载程序和内核程序,同时生成用于开发 EOS 应用程序的 SDK 文件夹。
一键启动调试 EOS。按 F5 即可将编译好的 EOS 引导程序、加载程序和内核程序装入软盘镜像,并启动虚拟机(Virtual PC 或 Bochs),开始对 EOS 的调试执行。OS Lab 支持 C 源码级的 EOS 内核调试,支持反汇编,可在内核中设置断点,可随意查看、修改内核变量和 CPU 寄存器的值。
可以编译和调试 EOS 应用程序。
可以编译和调试 Windows 的 C/C++ 应用程序。
可使用图形化的方式显示进程线程列表、进程控制块、线程控制块、线程运行轨迹、物理内存、虚拟内存、就绪线程队列、二级页表、全局描述符表、记录型信号量、互斥型信号量、对象类型、磁盘调度、设备、串口、键盘、控制台等重要的操作系统数据,使用户可以随时观察操作系统内部的运行情况,从而更加直观、形象的理解操作系统原理。
提供了完善的配套资料:
在操作系统实验教学的各个环节,OS Lab都提供了完善的配套资料。这些资料包括文档、幻灯片、源代码参考答案以及为教师准备的培训录像以及为学生准备的教学录像等。在这些配套资料的帮助下,教师可以方便、灵活的组织学生开展操作系统实验。所有配套资料都可以从OS Lab的产品光盘中获得。主要的文档资料包括《EOS操作系统实验教程》、《OS Lab 实验教师参考》、《Engintime OS Lab 安装与使用指南》等
实验题目清单
一、实验环境的使用
熟悉操作系统集成实验环境 OS Lab 的基本使用方法。
练习编译、调试 EOS 操作系统内核以及 EOS 应用程序。
二、操作系统的启动
跟踪调试 EOS 在 PC 机上从加电复位到成功启动的全过程,了解操作系统的启动过程。
查看EOS启动后的状态和行为,理解操作系统启动后的工作方式。
三、进程的创建
练习使用EOS API函数CreateProcess创建一个进程,掌握创建进程的方法,理解进程和程序的区别。
调试跟踪 CreateProcess 函数的执行过程,了解进程的创建过程,理解进程是资源的分配单位。
四、线程的状态和转换
调试线程在各种状态间的转换过程,熟悉线程的状态和转换。
通过为线程增加挂起状态,加深对线程状态的理解。
五、进程的同步
使用 EOS 的信号量编程解决生产者—消费者问题,理解进程同步的意义。
调试跟踪 EOS 的信号量的工作过程,理解进程同步的原理。
修改 EOS 信号量算法,使之支持等待超时唤醒功能(有限等待),加深理解进程同步的原理。
六、时间片轮转调度
调试EOS的线程调度程序,熟悉基于优先级的抢先式调度。
为EOS添加时间片轮转调度,了解其它常用的调度算法。
七、物理存储器与进程逻辑地址空间的管理
通过查看物理存储器的使用情况,并练习分配和回收物理内存,从而掌握物理存储器的管理方法。
通过查看进程逻辑地址空间的使用情况,并练习分配和回收虚拟内存,从而掌握进程逻辑地址空间的管理方法。
八、分页存储器管理
学习i386处理器的二级页表硬件机制,理解分页存储器管理原理。
查看EOS应用程序进程和系统进程的二级页表映射信息,理解页目录和页表的管理方式。
编程修改页目录和页表的映射关系,理解分页地址变换原理。
九、页面置换算法与动态内存分配
掌握OPT、FIFO、LRU、LFU等页面置换算法。
掌握可用空间表及分配方法。
掌握边界标识法以及伙伴系统的内存分配方法和回收方法。
十、串口设备驱动程序
调试 EOS 串口驱动程序执行写请求的处理过程,了解驱动程序工作原理和意义,理解中断在设备 I/O 中的重要作用。
为串口驱动程序增加读请求的处理过程,进一步加深对驱动程序的理解。
十一、磁盘调度算法
通过学习EOS实现磁盘调度算法的机制,掌握磁盘调度算法执行的条件和时机。
观察EOS实现的FCFS、SSTF和SCAN磁盘调度算法,了解常用的磁盘调度算法。
编写CSCAN和N-Step-SCAN磁盘调度算法,加深对各种扫描算法的理解。
十二、基本输入输出
加深对操作系统设备管理基本原理的认识,掌握键盘中断、扫描码等概念。
掌握EOS对键盘设备和显示器终端的处理过程。
十三、扫描FAT12文件系统管理的软盘
通过查看FAT12文件系统的扫描数据,并调试扫描的过程,理解FAT12文件系统管理软盘的方式。
通过改进FAT12文件系统的扫描功能,加深对FAT12文件系统的理解。
十四、读文件和写文件
了解在EOS应用程序中读文件和写文件的基本方法。
通过为FAT12文件系统添加写文件功能,加深对FAT12文件系统和磁盘存储器管理原理的理解。
课程设计题目清单 1、实现多级反馈队列调度算法2、修改动态内存分配算法3、将标准输出重定向到磁盘文件或串口设备4、改进文件系统5、实现缺页中断处理功能和页面置换6、使用命名管道实现进程间通信7、使用软中断实现系统调用并启用x86特权级安全机制
选择 OS Lab 和 Linux Lab 的建议 |
OS Lab和Linux Lab作为两款优秀的软件产品,都能满足高校操作系统实验课程的需要,并且具有各自的特点,您可以同时使用这两款产品。如您暂时只能从中选择一款产品,下面的表格对这两款产品提供的开源操作系统进行了比较,可帮助您做出正确的决定。
开源操作系统 | EOS 1.2(由OS Lab提供) | Linux 0.11(由Linux Lab提供) |
复杂度 | 比Linux 0.11简单 | 比EOS 1.2复杂 |
内核数据可视化 | 提供17个内核数据可视化功能 | 提供8个内核数据可视化功能 |
开发者 | 北京英真时代 | Linus Torvalds |
源代码 | 约一万行C语言和NASM汇编代码。 | 约两万行C语言和AT&T汇编代码。 |
协议 | 私有协议 | 开源协议 |
技术支持 | 北京英真时代 | 北京英真时代、Old Linux社区 |
配套教材 | 哈尔滨工程大学刘刚老师主编的《操作系统实验教程》,同时提供纸质版和免费电子版。 | 赵炯博士编写的《Linux内核完全注释》及北京英真时代编写的《Linux内核实验教程》,均提供纸质版和免费电子版。 |
系统调用标准 | 与Win32 API函数类似。可以帮助学生学习Windows应用程序开发。 | 遵守POSIX标准。可以帮助学生学习UNIX/Linux应用程序开发。 |
系统调用 入口方式 | 未使用中断入口方式,直接使用简单的C语言函数调用方式,易于理解。 | 使用中断入口方式,过程较复杂,但与主流商业操作系统的实现方式一致。 |
Shell命令 | 简单、少量的Shell命令,不支持Shell编程。 | 基本的Linux Shell命令,支持简单的Shell编程。 |
预编译的应用程序 | 无。需要用户自己开发。 | 有。例如vi程序等,用户也可自己开发。 |
应用程序可执行文件格式和调试方式 | 应用程序使用PE格式的可执行文件,支持源码级调试。 | 应用程序使用aout格式的可执行文件,不支持调试。 |
进程与线程模型 | 支持先进的进程和内核级线程模型。 | 仅支持进程,用户可添加内核级线程。 |
X86硬件特性 | 未使用硬件安全特性,内核及应用程序都在Ring0级运行。未使用硬件任务切换机制,使用自定义的任务切换。 | 内核在Ring0级运行,应用程序在Ring3级运行。使用硬件任务切换机制完成进程上下文切换,过程较复杂。 |
进程虚拟地址空间 | 使用二级页表机制,隐藏了分段机制,进程拥有4GB的平坦虚拟地址空间。 | 使用了分段加二级页表的方式,进程可使用64MB的虚拟地址空间。 |
磁盘设备 | 不支持硬盘设备,只支持软盘设备。 | 支持硬盘设备和软盘设备。 |
文件系统 | 支持软盘上的FAT12文件系统。 | 支持硬盘上的MINIX 1.0文件系统。 |
适用对象 | 高职 / 应用型本科 / 研究型本科 | 应用型本科 / 研究型本科 |
高校教师可免费使用 OS Lab,现在就联系我们吧!