burningcodes 原创作品转载请注明出处《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 1.学习感受 经过这两个多月的Linux内核之旅,对Linux内核有了初步的认识。在这过程之中付出了很多,也收获了很多,尤其是写blog的方式,不仅能记录所学,还能加深对知识的理解。通过这门课,虽然只是认识了内核的很小一部分,但是最主要的是学会了学习源码的方...

burningcodes 原创作品转载请注明出处《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 在 从迷你型Linux内核理解进程调度的原理  一文中已经介绍过简化版的linux内核进程进程调度,这篇文章将深入linux源码进一步分析linux进程调度的原理。 1.进程调度的时机 进程调度主要有以下几个时机: 中断处理过程中:中断处理包括时钟中断、I/O中断、系...

burningcodes  原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 1.elf文件格式 目标文件主要分为三种类型: 可重定位文件(Relocatable File) 包含适合于与其他目标文件链接来创建可执行文件或者共享目标文件的代码和数据。 可执行文件(Executable File) 包含适合于执行的一个程序。 共享目标文件(Shared Object Fi...

burningcodes  原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 1.进程管理中的关键数据结构 在进程管理中用到了几个关键的数据结构,这里先给出关键结构间的大致关系: 最主要的是三个数据结构: thread_union(linux-3.18.6/include/linux/sched.h#2241) thread_info(linux-3.18.6/arch/x86/include/asm/thread_info...

burningcodes  原创作品转载请注明出处《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 上一篇文章中分析了系统调用的基本原理,通过跟踪源码将应用层系统调用和内核层的系统调用联系在了一起,回顾点这: 理解系统调用的原理(一)。 这篇文章在上文的基础上主要解决两个问题: 进一步分析system_call中做了哪些操作 中断处理与系统调用的区别和...

burningcodes  原创作品转载请注明出处《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 1.参数传递 系统调用也需要参数,但是它在内核态下的参数传递方式和用户态下不太一样,不是通过栈而是通过寄存器来存放参数(在64位系统中用户程序的参数也变为用寄存器存放),若参数个数不超过6个可以使用ebx, ecx,edx,esi,edi,ebp来存放(eax中存放系...

Linux内核课第三次作业。burningcodes + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 1.给内核加入调试信息 ubunte32位下要安装 libncurses5-dbg 库,直接apt-get安装即可。 打开图形化内核配置: make menuconfig 1 make menuconfig ...

Linux Kernel课第二次作业。 burningcodes  原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 1.什么是内核 计算机其实是由一堆硬件组装成的机器,计算机结构大致如下: Linux内核其实就是专门与硬件打交道的,它向下能与硬件交互,向上提供了系统调用接口,是连接应用和底层硬件必不可少的部分。我们平时使用的Linux操...

Linux内核课第一周作业。本文在ubuntu14的环境下进行实验 burningcodes 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 1.AT&T与Intel汇编 linux下gcc采用的是AT&T的汇编格式,而windows下都是采用Intel汇编格式,他们之间的差别主要如下: 寄存器命名: AT&T中寄存器名字前带%,如%eax,而inte...

+
跳转到评论