摘要:
一、编译链接过程 1.预处理,处理代码中的宏定义和 include 文件,并做语法检查. gcc -E -o hello.cpp hello.c -32 2.编译成会变代码 gcc -x cpp-output -S -o hello.s hello.cpp -m32 3.汇编成目标代码 gcc -x 阅读全文
摘要:
1.task_struct的数据结构 1235struct task_struct { 1236 volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */ 1237 void *stack; 1238 atomic_t usag 阅读全文
摘要:
一、实验截图 二、系统调用流程图: 三、总结:系统调用过程分析 linux的系统调用过程:用户程序→C库(即API):INT 0x80 →system_call→系统调用服务例程→内核程序。我们常说的用户API其实就是系统提供的C库。 系统调用是通过软中断指令 INT 0x80 实现的,而这条INT 阅读全文
摘要:
一.知识点回顾 1.计算机的“三个法宝”:存储程序计算机,中断,函数调用堆栈; 2.操作系统的“两把宝剑”:中断上下文的切换(保存现场和恢复现场),进程上下文的切换。 二.实验内容 1.启动menuos 执行命令 cd LinuxKernel/ qemu -kernel li 阅读全文