GithubHelp home page GithubHelp logo

os-ex2's Introduction

#lec 3 SPOC Discussion

第三讲 启动、中断、异常和系统调用-思考题

3.1 BIOS

  1. 比较UEFI和BIOS的区别。

UEFT不同于BIOS的是:UEFT是统一的可扩展固件接口,它是用模块化、C语言风格的参数堆栈传递方式、动态链接的形式构建系统;BI OS更加快速安全,更加容易实现,容错和纠错能力较强,运行与32位或者64位,而BIOS是16位,这样就能够提高启动速度。

  1. 描述PXE的大致启动流程。

3.2 系统启动流程

  1. 了解NTLDR的启动流程。

当主引导记录被装入内存后,程序开始运行,活动分区和引导扇区被装入内存,此时,NTLDR从引导扇区被装入并初始化,NTLDR开始运行适当的小文件系统驱动程序,然后NTLDR读boot.ini文件,然后NTLDR开始装载系统。

  1. 了解GRUB的启动流程。
运行后,找到KERNEL,加载到内存,然后通过INITRD镜像文件就可以启动。
  1. 比较NTLDR和GRUB的功能有差异。
 NTLDR是一个系统启动时需要调用的文件,而GRUB是一个多操作系统启动程序,NTLDR功能是系统启动时装载系统功能的一个只读文件,GURB是一个多系统管理程序,用于当计算机有多个系统时允许用户选择使用的系统。
  1. 了解u-boot的功能。
(1)系统引导支持NFS挂载、RAMDISK形式的根文件系统;支持NFS挂载、从FLASH中引导压缩或非压缩系统内核;
(2)基本辅助功能强大的操作系统接口功能;

3.3 中断、异常和系统调用比较

  1. 举例说明Linux中有哪些中断,哪些异常? 中断:I/O中断 时钟中断 和 处理器间的中断 异常:代码运行错误,如除0等。

  2. Linux的系统调用有哪些?大致的功能分类有哪些? (w2l1)

  (1)进程控制(2)文件系统控制(3)系统控制(4)内存管理(5)网络管理(6)socket控制(7)用户管理
 
1. 以ucore lab8的answer为例,uCore的系统调用有哪些?大致的功能分类有哪些?(w2l1)
 
 >
 ucore lab8的answer的系统调用大约有20多个,
 主要有文件操作,进程管理,内存管理等。
 
 
 
 
 
## 3.4 linux系统调用分析
 1. 通过分析[lab1_ex0](https://github.com/chyyuu/ucore_lab/blob/master/related_info/lab1/lab1-ex0.md)了解Linux应用的系统调用编写和含义。(w2l1)
 

>
objdump可以分析二进制的可执行文件,可以用来分析程序。 nm命令可以列出目标文件的符号清单,无参数表示列出所有符号,还可以使用参数查看有条件的符号。 file命令可以检测文件类型,并对不同类型显示更详细的信息。

 
 1. 通过调试[lab1_ex1](https://github.com/chyyuu/ucore_lab/blob/master/related_info/lab1/lab1-ex1.md)了解Linux应用的系统调用执行过程。(w2l1)
 

>
strace常用来跟踪进程执行时的系统调用和所接收的信号,使用-c参数统计每一系统调用的所执行的时间,次数和出错的次数等。首先操作系统确定程序文件的,之后读取用户的文件,设置好内存页、映像,之后运行可执行文件同时管理进程状态,完成一次程序执行,在执行过程中程序还调用了write进行字符串的打印。


 
## 3.5 ucore系统调用分析
 1. ucore的系统调用中参数传递代码分析。
 1. ucore的系统调用中返回结果的传递代码分析。
 1. 以ucore lab8的answer为例,分析ucore 应用的系统调用编写和含义。
 1. 以ucore lab8的answer为例,尝试修改并运行ucore OS kernel代码,使其具有类似Linux应用工具`strace`的功能,即能够显示出应用程序发出的系统调用,从而可以分析ucore应用的系统调用执行过程。
 
## 3.6 请分析函数调用和系统调用的区别
 1. 请从代码编写和执行过程来说明。
   1. 说明`int`、`iret`、`call`和`ret`的指令准确功能
 

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.