![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
内核
文章平均质量分 82
随心随意随缘
这个作者很懒,什么都没留下…
展开
-
Linux内核中C和汇编使用技巧集锦 —— 持续更新
本文主要是用来存放Linux-3.1.1内核中有关C语言和汇编的使用技巧。在此所记录的一些技巧将会帮助有语言基础的童鞋写出更富艺术性和创造力的代码:-) 。需要注意的是,Linux内核采用GCC编译器进行编译并使用了GCC中的很多扩展特性,所以这些代码并不保证能在其他平台如VC++/DEV-C++中使用。C语言:Const.h:#define __AC(X,Y) (X##原创 2012-01-01 16:34:09 · 7125 阅读 · 0 评论 -
深入详解保护模式下的内存分页机制
386及更高型号处理器使用内存分页机制,这使得同一个线性地址可以被映射为多个物理地址,这种映射是通过分页单元这一特殊的硬件电路实现的。通常程序中所使用的线性地址是由链接器帮我们产生的,而操作系统通过维护每个进程私有的页目录和页表实现线性地址与物理地址之间的转换,转换过程对于进程来说是透明的。此外正如保护模式下的段寄存器提供对整个段的访问控制一样,分页单元在更细粒度的页级层面上提供对整个页的保护机制原创 2011-12-30 17:13:58 · 19062 阅读 · 5 评论 -
【连载】系统启动篇(三)[下]——控制台初始化续
接上文:系统启动篇(三)[上]在计算机中,用于数据传输的方式总共分为两种:①串行通信(Serial Communication),传输数据时只用一根线——按位发送和接受字节,速度慢但能够实现远距离通信,使用串行端口的设备有鼠标和USB等。②并行通信(Parallel Communication),使用多条线将每个数据的二进制位同时进行传输,传输速度较快但因为存在干扰而不能实现远距离通信原创 2012-06-22 23:51:28 · 11658 阅读 · 2 评论 -
初探处理器体系结构及寻址模式
由8086/8088、x86、Pentium发展到core系列短短40年间,处理器的时钟频率几乎已接近极限,尽管如此,自从86年Intel推出386至今除了增加一些有关流媒体的指令如mmx/sse之外,其他新增的大多数指令都可以从最初的指令集中组合实现同样的功能,整个编程模型维持了约有20多年。1、处理器体系结构下的编程模型首先概要的介绍下程序设计模型:图1-1原创 2011-12-17 20:22:01 · 8767 阅读 · 0 评论 -
探本溯源——深入领略Linux内核绝美风光之系统启动篇(一)
从拿到Linux3.1.1版内核源码并搭建好阅读环境开始,到现在大约已经徘徊了两个多月的时间,期间google了大大小小的文章,才刚刚理清了些许思路并找到了阅读的切入口。对于内核初学者来说一个好的指导比什么都重要,有关Linux内核学习的方法论可以参考fudan_abc写的Linux内核修炼之道,作者以其深厚的内核功底加上诙谐幽默的文字对读者娓娓道来,这样的感染力使得我几乎是一口气不断的看完了整个原创 2012-03-14 00:55:53 · 20200 阅读 · 4 评论 -
探本溯源——深入领略Linux内核绝美风光之系统启动篇(二)
在前文结尾处我们提到内核映像的加载是由专用的bootloader比如LILO或是GRUB来实现的,而在x86架构下Linux内核通常使用其中之一的GRUB,它通过执行initrd文件来识别内核映像所在的文件系统进而执行加载,然而有一个需要注意的问题是,并非所有的物理地址空间对内核而言都是可用的,比如其中的某个物理地址范围可能被映射为I/O设备的共享内存,也可能其中的一个物理页框存放着BIOS数据,原创 2012-04-21 01:43:20 · 14671 阅读 · 9 评论 -
系统启动篇(三)[上]
进入main函数后,Linux内核执行硬件检测及初始化工作,即便在此之前BIOS已经对大部分硬件设备进行了相应的初始化,然而Linux并不依赖于BIOS,而是以特定的方式重新初始化相关设备,这样做的目的是为了增强可移植性及健壮性。需要强调的一点是,此时C语言仍旧运行在实模式状态下。拷贝启动参数进入arch\x86\boot\Main.c文件的main函数后,做的第一件事就是将从Ke原创 2012-05-19 23:49:11 · 7678 阅读 · 0 评论 -
探本溯源——深入领略Linux内核绝美风光之系统启动篇(四)
在完成控制台初始化之后,可以看到在arch\x86\boot\Main.c文件的main主函数中接着执行if (cmdline_find_option_bool("debug")),这条if判断语句首先调用cmdline_find_option_bool函数在内核命令行中查找"debug"选项,该函数的实现和在系统启动篇(三)[上]一文中剖析过的cmdline_find_option函数非常相似,原创 2012-08-03 16:19:37 · 9213 阅读 · 7 评论