摘要:
Linux内核学习总结 武西垚 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 对Linux系统的理解及学习Linux内核的心得 1、收获 在Linux内核分析这门课的学习过程中,我对 阅读全文
摘要:
http://www.cnblogs.com/wuxiyao/p/5220677.htmlhttp://www.cnblogs.com/wuxiyao/p/5247571.htmlhttp://www.cnblogs.com/wuxiyao/p/5272748.htmlhttp://www.cnbl 阅读全文
摘要:
第一种分类: I/O-bound:频繁进行I/O,并且需要花费很多时间等待I/O完成 CPU-bound:计算密集,需要大量的CPU时间进行运算 I/O-bound:频繁进行I/O,并且需要花费很多时间等待I/O完成 CPU-bound:计算密集,需要大量的CPU时间进行运算 第二种分类: 批处理进 阅读全文
摘要:
预处理、编译、链接和目标文件的格式 可执行程序是怎么得来的 以C语言为例,c代码经过编译器的预处理,编译成汇编代码,由汇编器编译成目标代码,再链接成可执行文件,由操作系统加载到cpu里来执行。 (截图) 预处理负责把include的文件包含进来及宏替换等工作 可执行文件是使用共享库的。 把库里的东西 阅读全文
摘要:
进程的描述 操作系统三大功能: 进程管理(最核心最基础) 内存管理 文件系统 进程描述符task_struct数据结构 task _ struct:为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息。struct task_struct数据结构很庞大。 进程的状态 阅读全文
摘要:
20135332武西垚 由于本周实验是在Kali虚拟机上进行操作的,具体实现过程中的代码和实验楼里的环境有一定的差异,在解决了各种报错之后终于完成了实验,在这次的实验报告中将较为详细的记录实验过程中遇到的问题以及解决方案,以便以后更加熟练地理解与掌握Kali的操作原理和步骤。 实验——分析syste 阅读全文
摘要:
实验目的: 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用 实验过程: 查看系统调用列表 get pid 函数 API侧重于向上层提供给定的服务,而系统调用则侧重于通过软中断向下层的内核发出一个明确的请求。API属于用户态,而系统调用属于内核态。 操作系统提供的API函数库都会遵循 阅读全文
摘要:
Unix现在已经发展为一个支持抢占式多任务、多线程、虚拟内存、换页、动态链接和TCP/IP网络的现代化操作系统。 操作系统是计算机完成基本功能和系统管理的核心,内核是操作系统的核心。在系统中运行的应用程序通过系统调用来与内核通信。 内核提供的服务主要有: Linux是类Unix系统,但不是Unix, 阅读全文
摘要:
总结部分: Linux内核源代码: Arch 支持不同cpu的源代码;主要关注x86 Init 内核启动的相关代码;主要关注main.c,整个Linux内核启动代码start_kernel函数 Kernel 核心代码 installing t 阅读全文
摘要:
作者:武西垚 深入理解函数调用堆栈 堆栈是C语言程序运行时必须的一个记录调用路径和参数的空间 堆栈的作用 函数调用框架 传递参数 保存返回地址 提供局部变量空间 堆栈相关的寄存器 esp,堆栈指针,指向栈顶 ebp,基址指针,指向栈底,在C语言中用作记录当前函数调用基址。 其他关键寄存器 cs(代码 阅读全文