北京英真时代科技有限公司为了满足国内高校提升计算机系统实验教学水平的迫切需要,经过两年潜心研发,成功在 Windows 平台上将“IA-32、GCC、Linux、C 语言”集成在一起,发布了“计算机系统集成实验环境 CS Lab”软件产品。CS Lab 配套实验方案成熟,资料齐全,已经完全可以满足各种类型高等院校(包括高职、大专、本科)计算机系统实验教学的要求。由于 CS Lab 对计算机系统实验教学改革有着巨大的推动作用,一经推向市场,就受到了广大高校教师和学生的欢迎。
计算机系统课程是高校计算机相关专业一门重要的基础课,在整个计算机专业的课程体系中占据了举足轻重的地位,近年引起了越来越多高校师生的重视。全面、系统的学习计算机系统的相关知识,对于学生深入理解计算机的工作方式十分重要,并可以为后续的操作系统、计算机组成原理等课程打下坚实的基础。
目前国内高校普遍采用的计算机系统教材主要有两本。一本是由龚奕利老师翻译的国外经典教材《深入理解计算机系统》。另外一本是由袁春风老师针对国内学生特点和教学体系而编著的《计算机系统基础》。CS Lab 专门针对这两本教材设计了软件功能、课堂演示内容和实验题目,非常适合与这两本教材配套使用。
CS Lab 成功将 GCC 编译器、GDB 调试器、源代码编辑器软件完美结合在一起,提供了一个用户界面和操作习惯都类似于 Visual Studio 的可视化 IDE 环境,操作简单,易学易用。如果学生之前使用过 Visual Studio,很快就可以学会使用 CS Lab,减少了学生学习多种编程工具的负担。
为了满足计算机系统实验教学的需要,本产品还提供了如下特点:
CP Lab已经完全接入了 开放实验管理平台。首先,该平台可帮助用户系统管理实验中的各个环节。教师可通过浏览器随时随地访问该平台,可以高效管理实验课信息,并全面掌握学生的实验情况,还可以自动统计出勤情况,实时掌握实验进度,自动评分等功能。学生可通过浏览器访问该平台查看实验课信息,在线填写实验报告,下载已提交的作业。学生还可使用配套的实验软件完成试验任务,并通过网络自动向该平台提交实验数据和源代码。
同时支持 Intel 和 AT&T 两种语法的汇编语言。CS Lab 支持 C 语言和 32 位汇编语言混合编程,在编写汇编语言程序时可以选择 Intel 语法或 AT&T 语法。并且可以在汇编程序中添加断点,并进行单步调试,帮助学生从汇编语言的角度理解计算机系统的行为。
在调试 C 源代码或汇编代码时,CS Lab 可以在“反汇编”窗口中显示相应的反汇编代码,并可以在 Intel 语法或 AT&T 语法间随时切换,也可以选择是否在反汇编窗口中显示反汇编对应的源代码。在反汇编窗口也同样可以添加断点并进行单步调试,这对于学生理解C语言生成的汇编代码有很大帮助。
支持使用C语言(C99标准)编写应用程序和动态链接库。CS Lab 允许用户使用符合 C99 标准的 C 语言编写 Windows 应用程序和动态链接库。CS Lab 提供了强大的调试功能,允许用户在 C 源代码中添加断点,并单步调试。在调试 C 源代码的同时,用户可以随时查看变量的值、反汇编、内存值、调用堆栈、寄存器的值等信息。
调试可执行文件,对其进行逆向工程。CS Lab 提供了调试可执行文件功能,可以对不含调试信息的可执行文件进行逆向工程,通过阅读其反汇编代码,并对其运行时行为进行调试,从而可以了解一个可执行文件的内部信息。此功能可以让学生从另外一个角度理解计算机系统,并帮助学生掌握逆向工程、计算机安全等课程的入门知识。
查看寄存器的值。每当程序中断执行时,都可以在“寄存器”窗口中查看 IA-32 处理器中所有寄存器的值,包括通用寄存器、段寄存器、浮点寄存器和状态寄存器等。如果寄存器的值发生了改变,还会用红色显示出来。可以帮助学生学习 IA-32 处理器的各项功能,并从处理器的角度理解计算机系统的行为。
查看内存。每当程序中断执行时,都可以在“内存”窗口中查看指定位置的内存。如果内存中的值发生了改变,还会用红色显示出来。此功能对于学生从内存的角度理解程序和数据的含义有很大帮助。
查看栈。每当程序中断执行时,可以在“栈”窗口中查看内存中的栈,包括栈顶附近的内存值,寄存器 ESP、EBP 在栈中的位置,以及函数对应的栈帧等信息。如果内存值或寄存器的值发生了变化,还会用红色表示出来,对于当前的栈帧,会用粗体显示。查看栈功能对于学生理解C语言函数的调用过程,栈帧的构造过程,栈内数据的访问方式,以及递归调用等重点难点内容有很大的帮助。
查看调用堆栈。每当程序中断执行时,可以在“调用堆栈”窗口中查看 C 语言函数的调用关系,方便学生了解函数之间的调用层次,掌握 C 语言程序的执行过程。
提供了查看二进制文件功能。CS Lab 提供了查看二进制文件中各个字节值的功能,使用此功能可以方便学生查看对象文件或者可执行文件中的二进制数据,帮助学生理解二进制文件中的内容。
提供了一套精心设计的演示样例。CS Lab 提供了 40 多个演示样例,覆盖了计算机系统中所有重要的概念,包括数据的机器级表示和处理、程序的转换及机器级表示、程序的链接和运行等,既可供教师在课堂上演示使用,也可供学生在实验中学习,帮助学生理解相关的知识点。
提供了完善的配套资料。这些资料包括文档、源代码参考答案以及培训录像等。在这些配套资料的帮助下,教师可以方便、灵活的组织学生开展计算机系统实验。部分核心文档还提供 Word 版本,方便二次编辑。所有配套资料都可以从 CS Lab 的产品光盘中获得。
实验题目清单
实验环境的使用
数据的机器级表示和处理
IA-32指令系统
C语言程序的机器级表示
二进制炸弹
缓冲区溢出攻击
转储可执行文件信息
模拟加载动态链接库
*Linux中的地址转换
*IA-32保护模式下的中断处理
*Linux中的系统调用
*Linux中的I/O操作
注:带*的实验题目需搭配我公司另外两款软件 ASM Lab 和 Linux Lab 来完成实验。