#lec 3 SPOC Discussion
- 比较UEFI和BIOS的区别。
- 描述PXE的大致启动流程。
- 了解NTLDR的启动流程。
- 了解GRUB的启动流程。
- 比较NTLDR和GRUB的功能有差异。
- 了解u-boot的功能。
-
举例说明Linux中有哪些中断,哪些异常?
-
Linux的系统调用有哪些?大致的功能分类有哪些? (w2l1) linux的系统调用数量有上百个。其功能可分为:进程控制,文件系统控制,系统控制,内存管理,网络管理,socket控制,用户管理和进程间通信。
-
以ucore lab8的answer为例,uCore的系统调用有哪些?大致的功能分类有哪些?(w2l1)
以下是ucore的系统调用: [SYS_exit] sys_exit, [SYS_fork] sys_fork, [SYS_wait] sys_wait, [SYS_exec] sys_exec, [SYS_yield] sys_yield, [SYS_kill] sys_kill, [SYS_getpid] sys_getpid, [SYS_putc] sys_putc, [SYS_pgdir] sys_pgdir, [SYS_gettime] sys_gettime, [SYS_lab6_set_priority] sys_lab6_set_priority, [SYS_sleep] sys_sleep, [SYS_open] sys_open, [SYS_close] sys_close, [SYS_read] sys_read, [SYS_write] sys_write, [SYS_seek] sys_seek, [SYS_fstat] sys_fstat, [SYS_fsync] sys_fsync, [SYS_getcwd] sys_getcwd, [SYS_getdirentry] sys_getdirentry, [SYS_dup] sys_dup, 大致功能可分为:文件操作,进程管理,内存管理等。
- 通过分析lab1_ex0了解Linux应用的系统调用编写和含义。(w2l1)
objdump用于反汇编得到机器码,了解程序的实际操作过程。 nm用于了解可执行文件的符号定义,符号表了解程序定义了那些常量,使用了那些系统提供的宏。 file用于读取文件类型的相关信息。 在编写时将系统提供的接口信息和相关参数传入寄存器,通过软中使用系统调用,使用内核资源。
- 通过调试lab1_ex1了解Linux应用的系统调用执行过程。(w2l1) strace用于统计程序运行时系统调用的次数和时间分布情况。
+ 采分点:说明了strace的大致用途,说明了系统调用的具体执行过程(包括应用,CPU硬件,操作系统的执行过程)
- 答案没有涉及上述两个要点;(0分)
- 答案对上述两个要点中的某一个要点进行了正确阐述(1分)
- 答案对上述两个要点进行了正确阐述(2分)
- 答案除了对上述两个要点都进行了正确阐述外,还进行了扩展和更丰富的说明(3分)
- ucore的系统调用中参数传递代码分析。
- ucore的系统调用中返回结果的传递代码分析。
- 以ucore lab8的answer为例,分析ucore 应用的系统调用编写和含义。
- 以ucore lab8的answer为例,尝试修改并运行ucore OS kernel代码,使其具有类似Linux应用工具
strace
的功能,即能够显示出应用程序发出的系统调用,从而可以分析ucore应用的系统调用执行过程。
- 请从代码编写和执行过程来说明。
- 说明
int
、iret
、call
和ret
的指令准确功能