Linux 内核集成实验环境 Engintime Linux Lab
来源:英真时代 | 作者:某某 | 发布时间: 2022-09-21 | 2229 次浏览 | 分享到:
众所周知,操作系统是高等院校计算机科学相关专业的一门重要课程。同时,操作系统也是一门实践性很强的课程,绝大多数高校都开设了操作系统实验课程。随着开源操作系统 Linux 在服务器、桌面和移动平台的大规模应用,以及从国家战略层面对信息安全的重视和信息系统自主可控的强烈需求,操作系统课程的重要性更加凸显。然而,由于种种原因,部分高校的操作系统的实验环节一直相对薄弱,已经不能适应现代高等教育的要求,以及企业对人才的需求。


Linux 内核集成实验环境 Engintime Linux Lab 简介

      众所周知,操作系统是高等院校计算机科学相关专业的一门重要课程。同时,操作系统也是一门实践性很强的课程,绝大多数高校都开设了操作系统实验课程。随着开源操作系统 Linux 在服务器、桌面和移动平台的大规模应用,以及从国家战略层面对信息安全的重视和信息系统自主可控的强烈需求,操作系统课程的重要性更加凸显。然而,由于种种原因,部分高校的操作系统的实验环节一直相对薄弱,已经不能适应现代高等教育的要求,以及企业对人才的需求。

      北京英真时代科技有限公司为了满足国内高校提升操作系统实验教学水平的迫切需要,以“实例学习”法授课过程中遇到的主要问题作为突破点,经过三年潜心研发,成功发布了“Linux 内核集成实验环境 Linux Lab”软件产品。Linux Lab配套实验方案成熟,资料齐全,已经完全可以满足高等院校操作系统实验教学的要求。由于Linux Lab对操作系统实验改革有着巨大的推动作用,一经推向市场,就受到了广大高校教师和学生的欢迎。

      Linux 内核集成实验环境 Linux Lab 软件产品具有以下主要特点:

      Linux Lab已经完全接入了 开放实验管理平台。首先,该平台可帮助用户系统管理实验中的各个环节。教师可通过浏览器随时随地访问该平台,可以高效管理实验课信息,并全面掌握学生的实验情况,还可以自动统计出勤情况,实时掌握实验进度,自动评分等功能。学生可通过浏览器访问该平台查看实验课信息,在线填写实验报告,下载已提交的作业。学生还可使用配套的实验软件完成试验任务,并通过网络自动向该平台提交实验数据和源代码。


      提供了一个绝佳的操作系统实例。Linux Lab提供的Linux 0.11操作系统是一个可以直接运行于x86硬件平台的类UNIX的小型开源操作系统,有若干本优秀的中文书籍对Linux 0.11的源代码和实现方法进行过详细的介绍,在互联网上也有很多资料可以参考,国内已经形成了很好的学习氛围,并且已经有部分高校成功将其应用于操作系统实验课程,总结了大量宝贵的教学经验。Linux 0.11的源代码主要使用C语言编写,总量不超过两万行。所有源代码文件都按照功能模块进行了划分,主要包括了进程管理、存储器管理、设备管理、文件系统等模块,完全可以与主流操作系统原理教材配套使用。学生在深入分析和理解Linux 0.11的源代码后,也可以按照自己的意愿对感兴趣的模块进行修改,甚至添加新的模块,为学生提供了极大的自由发挥空间。Linux Lab在原版Linux 0.11的基础上还进行了多项改进,使之更加适合于国内操作系统实验教学。



     提供了一个可视化的集成实验环境。Linux Lab提供了一个用户界面和操作习惯都类似于Visual Studio的可视化IDE环境,操作简单,易学易用,可避免学生学习多种不同IDE环境,对学生在参加工作后使用Visual Studio进行软件开发有很大帮助。集成实验环境可直接在Windows上安装,实验室无需安装多种操作系统,可有效降低管理和维护成本。集成实验环境是专为编译、调试Linux操作系统而设计的,使得编译、调试Linux操作系统就像编译、调试本地程序一样简单。修改Linux源代码后,一个命令(按F7)即可完成对整个Linux的编译和链接,一个命令(按F5)即可启动Bochs虚拟机软件,开始对Linux内核进行交叉调试。集成实验环境支持C源代码和汇编代码的可视化调试,还支持反汇编。学生可在内核的C语言代码或汇编语言代码中设置断点,可随意查看、修改内核变量或寄存器的值。Linux Lab可使用图形化的方式显示进程列表、进程控制块、进程运行轨迹、物理内存、二级页表、全局描述符表、信号量、tty0缓冲区等重要的操作系统数据,使用户可以随时观察操作系统内部的运行情况,从而更加直观、形象的理解操作系统原理。


      提供了完善的配套资料。在操作系统实验教学的各个环节,Linux Lab都提供了完善的配套资料。这些资料包括文档、幻灯片、源代码参考答案以及为教师提供的培训录像以及为学生提供的教学录像等。在这些配套资料的帮助下,教师可以方便、灵活的组织学生开展操作系统实验。所有配套资料都可以从Linux Lab的产品光盘中获得。主要的文档资料包括《Linux 内核实验教程》、《Linux Lab 实验教师参考》、《Engintime Linux Lab 安装与使用指南》等


      希望我们的努力能够帮助您培养出基础知识更扎实的学生。

实验题目清单

一、实验环境的使用

  • 熟悉 Linux 内核集成实验环境Linux Lab的基本使用方法。

  • 练习编译、调试 Linux 内核以及 Linux 应用程序。 

二、操作系统的启动

  • 跟踪调试 Linux 在 PC 机上从加电复位到成功启动的全过程,了解操作系统的启动过程。

  • 查看 Linux 启动后的状态和行为,理解操作系统启动后的工作方式。

三、Shell 程序设计

  • 了解 Shell 在 Linux 中的重要作用。

  • 学会编写简单的 Shell 脚本程序。

四、系统调用

  • 深入了解 Linux 系统调用的执行过程,建立对系统调用的正确认识。

  • 学会增加系统调用及添加内核函数的方法。 

五、进程的创建

  • 掌握创建子进程和加载执行新程序的方法,理解创建子进程和加载执行新程序的不同。

  • 调试跟踪fork和execve系统调用函数的执行过程。

六、进程的状态和进程调度

  • 调试进程在各种状态间的转换过程,熟悉进程的状态和转换。

  • 通过对进程运行轨迹的跟踪来形象化进程的状态和调度。

  • 掌握 Linux 下的多进程编程技术。 

七、信号量的实现和应用

  • 加深对进程同步与互斥概念的理解。

  • 掌握信号量的使用方法,并解决生产者—消费者问题。

  • 掌握信号量的实现原理。 

八、地址映射与内存共享

  • 深入理解操作系统的段、页式内存管理。包括理解段表、页表,以及逻辑地址、线性地址、物理地址的映射过程。

  • 查看二级页表映射信息,理解页目录和页表的管理方式。

  • 编程实现段、页式内存管理上的内存共享,从而深入理解操作系统的内存管理。 

九、页面置换算法与动态内存分配

  • 掌握OPT、FIFO、LRU、LFU、Clock等页面置换算法。

  • 掌握可用空间表及分配方法。

  • 掌握边界标识法以及伙伴系统的内存分配方法和回收方法。

十、字符显示的控制

  • 加深对操作系统设备管理基本原理的认识,掌握键盘中断、扫描码等概念。

  • 掌握 Linux 对键盘终端和显示器终端的处理过程。 

十一、proc 文件系统的实现

  • 掌握 proc 文件系统的实现原理。

  • 掌握文件、目录、索引节点等概念。 

十二、MINIX 1.0 文件系统的实现

  • 通过查看 MINIX 1.0 文件系统的硬盘信息,理解 MINIX 1.0 的硬盘管理方式。

  • 学习 MINIX 1.0 文件系统的实现方法。

  • 改进 MINIX 1.0 文件系统的实现方法,加深对 MINIX 1.0 文件系统的理解。 

 课程设计题目清单 1、实现多级反馈队列调度算法2、修改动态内存分配算法3、信号量机制的实现和应用4、进程间共享内存的实现与应用5、页面置换算法的设计与实现6、实现内核级线程7、实现基于内核栈切换的进程切换8、MINIX文件系统  

选择 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文件系统。

适用对象

高职 / 应用型本科 / 研究型本科

应用型本科 / 研究型本科




高校教师可免费使用 Linux Lab,现在就联系我们吧!