Linux期末总结

摘要: Linux内核学习总结 1.计算机是如何工作的? 存储程序计算机工作模型 X86汇编基础 汇编一个简单的C程序分析其汇编指令执行过程 2.操作系统是如何工作的? 三个法宝——存储程序计算机、函数调用堆栈、中断机制; 借助Linux内核部分源代码模拟存储程序计算机工作模型及时钟中断 在mykernel 阅读全文
posted @ 2016-04-29 22:22 20135105 阅读(430) 评论(0) 推荐(0) 编辑

Linux内核及分析 第八周 进程的切换和系统的一般执行过程

摘要: 学习笔记: 一、进程调度与进程调度的时机分析 1.不同类型的进程有不同需求的调度需求: 第一种分类: —I/O-bound:频繁的进行I/O,通常会花费很多时间等待I/O操作的完成 —CPU-bound:计算密集型,需要大量的CPU时间进行运算 第二种分类: —批处理进程:不必与用户交互,通常在后台 阅读全文
posted @ 2016-04-16 13:27 20135105 阅读(210) 评论(0) 推荐(0) 编辑

Linux内核及分析 第七周 可执行程序的装载

摘要: 实验步骤 1. 更新menu,用test.c覆盖test_exec.c 2. 把init 和 hello 放到了rootfs.img目录下,执行exec命令的时候自动加载了hello程序 3. 执行exec 4. 运行stopped的menu 5. gdb进行跟踪分析 总结 1. 创建新进程 2. 阅读全文
posted @ 2016-04-08 16:37 20135105 阅读(236) 评论(0) 推荐(0) 编辑

Linux内核及分析 第六周 分析Linux内核创建一个新进程的过程

摘要: 实验过程 1.github上克隆相应的mengning/menu.git 2.测试menuOS,测试fork直接执行结果 3.配置调试系统,进入gdb调试,利用file linux-3.18.6/vmlinux和target remote:1234来配置加载初始调试环境 4.在linux内核进程创建 阅读全文
posted @ 2016-04-03 08:48 20135105 阅读(158) 评论(0) 推荐(0) 编辑

Linux内核及分析 第五周 扒开系统调用的三层皮(下)

摘要: 实验内容: 1.执行rm menu -rf命令,强制删除原有的menu 2.使用git命令 git clone https://github.com/mengning/menu.git 克隆新的menu 3.在test.c中,在main函数中增加两个MenuConfig 4.增加对应的GetPid函 阅读全文
posted @ 2016-03-26 16:20 20135105 阅读(134) 评论(0) 推荐(1) 编辑

Linux内核及分析 第四周 扒开系统调用的三层皮(上)

摘要: 在网上查询getpid函数的C语言代码以及其嵌入式汇编语句 C语言代码: 嵌入式汇编语句: 再用gcc将该函数代码进行编译。通过输入指令./getpid即可得出目前进程号为:29895 5.修改getpid.c,改为嵌入式汇编语句,保存并退出后,使用以下命令gcc getpid -o getpid. 阅读全文
posted @ 2016-03-20 16:32 20135105 阅读(221) 评论(0) 推荐(0) 编辑

《Linux内核设计与实现》 第一二章学习笔记

摘要: Unix的特点 Unix现在已经发展为一个支持抢占式多任务、多线程、虚拟内存、换页、动态链接和TCP/IP网络的现代化操作系统。 操作系统是计算机完成基本功能和系统管理的核心,内核是操作系统的核心。在系统中运行的应用程序通过系统调用来与内核通信。 内核提供的服务主要有: Linux是类Unix系统, 阅读全文
posted @ 2016-03-17 19:50 20135105 阅读(182) 评论(0) 推荐(0) 编辑

Linux内核及分析 第三周 Linux内核的启动过程

摘要: 实验过程: 打开shell终端,执行以下命令: cd LinuxKernel/ qemu -kernel linux-3.18.6/arch/x86/boot/bzImage-initrd rootfs.img 执行完毕后会弹出QEMU窗口,输出Linux内核启动信息,启动成功后显示Menuos 输 阅读全文
posted @ 2016-03-13 15:06 20135105 阅读(312) 评论(0) 推荐(0) 编辑

Linux内核及分析 第二周 操作系统是如何工作的?

摘要: 计算机是如何工作的? 存储程序计算机工作模型,计算机系统最最基础性的逻辑结构; 函数调用堆栈,高级语言得以运行的基础,只有机器语言和汇编语言的时候堆栈机制对于计算机来说并不那么重要,但有了高级语言及函数,堆栈成为了计算机的基础功能; enter --pushl %ebp --movl %esp,%e 阅读全文
posted @ 2016-03-06 17:13 20135105 阅读(202) 评论(0) 推荐(0) 编辑

Linux内核及分析 第一周 计算机是如何工作的?

摘要: C语言代码: int g(int x) { return x + 5; } int f(int x) { return g(x); } int main(void) { return f(5) + 1; } 反汇编代码: g: pushl %ebp 将ebp的值压栈,同时esp向下移动4个字节 mo 阅读全文
posted @ 2016-02-28 22:47 20135105 阅读(133) 评论(0) 推荐(0) 编辑