Linux OS
mythfish
这个作者很懒,什么都没留下…
展开
-
Linux initial RAM disk(initrd)介绍
initrd是为了支持linux启动的两个阶段,而设计的临时根文件系统。通常,initrd内包含多种可执行文件和驱动库,用于实现最后挂载真实的根文件系统,并在之后卸载临时的initrd根文件系统并释放相应的内存。在很多嵌入式的Linux系统中,没有使用其他真实的根文件系统,而采用initrd做为最后使用的根文件系统。 initrd被绑定到内核,并伴随内核启动过程被加载。initrd内部包含了必要的可执行文件和系统文件以支持Linux第二阶段的启动过程。 创建initial RAM disk原创 2010-06-28 22:45:00 · 2321 阅读 · 0 评论 -
Linux内核源码分析(1)——compiler.h分析(1)
Linux的内核源码都会包含文件linux/compile.h,所以先分析该文件内的内容,作为开篇。 1 汇编编译时不定义的内容 该文件的第一个内容是对宏__ASSEMBLY__的判断,这个宏的作用是避免在进行汇编编译的时候,不定义后续相关内容。这个宏通过在编译器中用-D选项中加入,参数AFLAGS也包含该宏定义。在汇编时编译器会定义__ASSEMBLY__为1。 #ifndef __ASSEMBLY__ 1.1 Sparse工具检测使用的属性定义原创 2010-07-06 22:05:00 · 661 阅读 · 0 评论 -
Linux内核源码分析(1)——compiler.h分析(2)
1.2 内核模块的宏定义 接下来是宏__KERNEL__的判断,后续部分的内容是内核模块相关的宏定义,不用于用户进程的代码。 #ifdef __GNUC__ #include #endif 这个部分说明,如果采用的是GNU C的编译器,包含gcc相关的头文件compiler-gcc.h。这个文件的分析在后续的文章中详细描述。 #define notrace __attribute__((no_instrument_function)) 宏notrace的定义,这个宏用于修饰函数,说原创 2010-07-16 01:04:00 · 758 阅读 · 0 评论 -
Linux内核源码分析(1)——compiler.h分析(3)
2 内核代码有效的定义 第一个部分介绍了汇编代码不使用的定义。下面开始介绍一下对内核代码有效的定义。 /* * Allow us to mark functions as 'deprecated' and have gcc emit a nice * warning for each use, in hopes of speeding the functions removal. * Usage is: * int __deprecated foo(void) */ #ifn原创 2010-07-19 00:22:00 · 955 阅读 · 0 评论 -
Eclipse CDT + QEMU 调试linux内核
注:本文为转贴,并非原创。 感谢作者:YangNas 以下为原文,原封未动。 本文参考自: http://issaris.blogspot.com/2007/12/download-linux-kernel-sourcecode-from.html (由于blogspot目前被和谐,所以大家需要翻墙才能查看原文。) 有关调试的好处我想大家都不言自明了。本文章摘自原文,但加入了原文中没有说明的一些细节内容。 我的系统环境是:Ubuntu 9.10 + eclipse-cpp-galileo-SR1-lin原创 2010-07-18 22:22:00 · 682 阅读 · 0 评论 -
Linux内核源码分析(3)——compiler-gcc[x].h分析
这部分简要介绍一下不同版本gcc编译器特有的头文件。这里只介绍gcc3和gcc4的头文件。 1、GCC3 #if __GNUC_MINOR__ = 3 # define __used __attribute__((__used__)) #else # define __used __attribute__((__unused__)) #endif #if __GNUC_MINOR__ >= 4 #define __must_check __attribute__((warn_unused原创 2010-07-22 01:18:00 · 3886 阅读 · 0 评论 -
Linux内核源码分析(2)——compiler-gcc.h分析
在第一节分析了compiler.h文件,定义了当编译器为GCC时包含文件compiler-gcc.h。该文件是gcc编译器通用的定义。现在开始解析该文件的compiler-gcc.h。 /* Optimization barrier */ /* The "volatile" is due to gcc bugs */ #define barrier() __asm__ __volatile__("": : :"memory") barrier函数在之前介绍过了,就是做内存栅栏,它原创 2010-07-22 00:58:00 · 1284 阅读 · 0 评论 -
Linux内核分析之内存管理
1、内存管理涉及的知识 (1)计算机内存访问机制 (2)linux内存访问机制 (3)linux内存管理源码原创 2010-07-26 23:49:00 · 666 阅读 · 0 评论