
内核基础知识
leileicaocao
这个作者很懒,什么都没留下…
展开
-
Linux内核入门(六)—— __attribute__ 机制
http://blog.youkuaiyun.com/yunsongice/article/details/5538020GNU C的一大特色(却不被初学者所知)就是__attribute__机制。__attribute__是用来设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。__attrib转载 2013-05-22 09:06:51 · 466 阅读 · 0 评论 -
Linux内核入门(二)——用户态向内核态切换
http://blog.youkuaiyun.com/yunsongice/article/details/5471077那么,程序什么时候使用用户栈,什么时候使用内核栈呢?对,系统调用。也就是执行printf、open、read、write执行C语言库函数时,其最终会用到对应的系统调用,如sys_open、sys_read等。这时候就切换到内核栈。1 Linux的堆栈切换转载 2013-05-22 09:06:02 · 625 阅读 · 0 评论 -
Linux内核入门(一)——体系架构(转)
http://blog.youkuaiyun.com/yunsongice/article/details/5470283Linux是一套免费使用和自由传播的类Unix操作系统,它最先用于基于x86系列CPU的计算机上。这个系统是由世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。我们不去介绍操作系统的历史了,也不管操转载 2013-05-22 09:05:47 · 501 阅读 · 0 评论 -
Linux内核入门(三)—— C语言基本功
http://blog.youkuaiyun.com/yunsongice/article/details/5471096 linux是一个复杂的软件系统,其内核源代码往往会用到一些在应用程序设计中部常见语言成分和编程技巧,这些都是分析内核源代码的基本功,希望大家能重点掌握。 首先,gcc编译器从语言里吸收了“inline”和“const”。inline函数的大量使用,有利于提高运行转载 2013-05-22 09:06:16 · 761 阅读 · 0 评论 -
Linux内核入门(五)——必要的硬件知识
http://blog.youkuaiyun.com/yunsongice/article/details/5478032要想弄懂Linux内核的工作原理,就必须懂点基本的硬件知识。这里我们主要介绍Intel 80x86系列CPU保护模式下最核心的部件中几个寄存器的作用,这些寄存器在Linux内核运行时起着至关重要的作用。至于其他那些各式各样的硬件设备,我们在讲解设备驱动时会针对具体的驱动程序来介转载 2013-05-22 09:06:41 · 829 阅读 · 0 评论 -
Linux内核入门(七)—— 必要的编译知识
http://blog.youkuaiyun.com/yunsongice/article/details/5538416所有的内核代码,基本都包含了include/linux/compile.h这个文件,所以它是基础,涵盖了分析内核所需要的一些列编译知识,本博就分析分析这个文件里的代码:#ifndef __LINUX_COMPILER_H#define __LINUX_COMPILE转载 2013-05-22 09:07:03 · 410 阅读 · 0 评论 -
调用函数时 寄存器到底发生了那些变化
一直存在比较模糊的概念,因此用一个例子强化记忆。Linux x86 gcc3.2.3 AT&T格式的汇编代码如下:voidfun(){int a = 'A';}voidmain(){int b;fun();return;}开转载 2013-05-22 09:07:16 · 706 阅读 · 0 评论 -
Linux内核入门(四)—— 内核汇编语言规则
http://blog.youkuaiyun.com/yunsongice/article/details/5471099任何一个用高级语言编写的操作系统,其内核源代码中总有少部分代码是用汇编语言编写的。读 过Unix Sys V源代码的读者都知道,在其约3万行的核心代码中用汇编语言编写的代码约2000行,分 成不到20个扩展名为.s和.m的文件,其中大部分是关于中断与异常处理的底层程序,还有就是转载 2013-05-22 09:05:30 · 562 阅读 · 0 评论