linux内核的源代码 Linux代码

大家好,linux内核的源代码相信很多的网友都不是很明白,包括Linux代码也是一样,不过没有关系,接下来就来为大家分享关于linux内核的源代码和Linux代码的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

linux内核源码目录在哪linux内核源码

如何查看linux内核源代码?

一般在Linux系统中的/usr/src/linux*.*.*(*.*.*代表的是内核版本,如2.4.23)目录下就是内核源代码(如果没有类似目录,是因为还没安装内核代码)。另外还可从互连网上免费下载。注意,不要总到去下载,最好使用它的镜像站点下载。请在里找一个合适的下载点,再到pub/linux/kernel/v2.6/目录下去下载2.4.23内核。

代码目录结构

在阅读源码之前,还应知道Linux内核源码的整体分布情况。现代的操作系统一般由进程管理、内存管理、文件系统、驱动程序和网络等组成。Linux内核源码的各个目录大致与此相对应,其组成如下(假设相对于Linux-2.4.23目录):

1.arch目录包括了所有和体系结构相关的核心代码。它下面的每一个子目录都代表一种Linux支持的体系结构,例如i386就是IntelCPU及与之相兼容体系结构的子目录。PC机一般都基于此目录。

2.include目录包括编译核心所需要的大部分头文件,例如与平台无关的头文件在include/linux子目录下。

3.init目录包含核心的初始化代码(不是系统的引导代码),有main.c和Version.c两个文件。这是研究核心如何工作的好起点。

4.mm目录包含了所有的内存管理代码。与具体硬件体系结构相关的内存管理代码位于arch/*/mm目录下。

5.drivers目录中是系统中所有的设备驱动程序。它又进一步划分成几类设备驱动,每一种有对应的子目录,如声卡的驱动对应于drivers/sound。

6.ipc目录包含了核心进程间的通信代码。

7.modules目录存放了已建好的、可动态加载的模块。

8.fs目录存放Linux支持的文件系统代码。不同的文件系统有不同的子目录对应,如ext3文件系统对应的就是ext3子目录。

Kernel内核管理的核心代码放在这里。同时与处理器结构相关代码都放在arch/*/kernel目录下。

9.net目录里是核心的网络部分代码,其每个子目录对应于网络的一个方面。

10.lib目录包含了核心的库代码,不过与处理器结构相关的库代码被放在arch/*/lib/目录下。

11.scripts目录包含用于配置核心的脚本文件。

12.documentation目录下是一些文档,是对每个目录作用的具体说明。

一般在每个目录下都有一个.depend文件和一个Makefile文件。这两个文件都是编译时使用的辅助文件。仔细阅读这两个文件对弄清各个文件之间的联系和依托关系很有帮助。另外有的目录下还有Readme文件,它是对该目录下文件的一些说明,同样有利于对内核源码的理解。

在阅读方法或顺序上,有纵向与横向之分。所谓纵向就是顺着程序的执行顺序逐步进行;所谓横向,就是按模块进行。它们经常结合在一起进行。对于Linux启动的代码可顺着Linux的启动顺序一步步来阅读;对于像内存管理部分,可以单独拿出来进行阅读分析。实际上这是一个反复的过程,不可能读一遍就理解。

如何查看linux内核源代码

一般在Linux系统中的/usr/src/linux*.*.*(*.*.*代表的是内核版本,如2.4.23)目录下就是内核源代码(如果没有类似目录,是因为还没安装内核代码)。另外还可从互连网上免费下载。注意,不要总到去下载,最好使用它的镜像站点下载。请在mirrors/里找一个合适的下载点,再到pub/linux/kernel/v2.6/目录下去下载2.4.23内核。

代码目录结构

在阅读源码之前,还应知道Linux内核源码的整体分布情况。现代的操作系统一般由进程管理、内存管理、文件系统、驱动程序和网络等组成。Linux内核源码的各个目录大致与此相对应,其组成如下(假设相对于Linux-2.4.23目录):

1.arch目录包括了所有和体系结构相关的核心代码。它下面的每一个子目录都代表一种Linux支持的体系结构,例如i386就是IntelCPU及与之相兼容体系结构的子目录。PC机一般都基于此目录。

2.include目录包括编译核心所需要的大部分头文件,例如与平台无关的头文件在include/linux子目录下。

3.init目录包含核心的初始化代码(不是系统的引导代码),有main.c和Version.c两个文件。这是研究核心如何工作的好起点。

4.mm目录包含了所有的内存管理代码。与具体硬件体系结构相关的内存管理代码位于arch/*/mm目录下。

5.drivers目录中是系统中所有的设备驱动程序。它又进一步划分成几类设备驱动,每一种有对应的子目录,如声卡的驱动对应于drivers/sound。

6.ipc目录包含了核心进程间的通信代码。

7.modules目录存放了已建好的、可动态加载的模块。

8.fs目录存放Linux支持的文件系统代码。不同的文件系统有不同的子目录对应,如ext3文件系统对应的就是ext3子目录。

Kernel内核管理的核心代码放在这里。同时与处理器结构相关代码都放在arch/*/kernel目录下。

9.net目录里是核心的网络部分代码,其每个子目录对应于网络的一个方面。

10.lib目录包含了核心的库代码,不过与处理器结构相关的库代码被放在arch/*/lib/目录下。

11.scripts目录包含用于配置核心的脚本文件。

12.documentation目录下是一些文档,是对每个目录作用的具体说明。

一般在每个目录下都有一个.depend文件和一个Makefile文件。这两个文件都是编译时使用的辅助文件。仔细阅读这两个文件对弄清各个文件之间的联系和依托关系很有帮助。另外有的目录下还有Readme文件,它是对该目录下文件的一些说明,同样有利于对内核源码的理解。

在阅读方法或顺序上,有纵向与横向之分。所谓纵向就是顺着程序的执行顺序逐步进行;所谓横向,就是按模块进行。它们经常结合在一起进行。对于Linux启动的代码可顺着Linux的启动顺序一步步来阅读;对于像内存管理部分,可以单独拿出来进行阅读分析。实际上这是一个反复的过程,不可能读一遍就理解。

源代码开放的操作系统是

1. Linux操作系统是一个计算机操作系统,其内核名为“Linux”。

2. Linux操作系统是自由软件和开放源代码发展中最著名的例子之一。

3.严格来说,“Linux”仅指内核,但实际上人们常用它来指代整个基于Linux内核的操作系统(也称为GNU/Linux),这包括了各种人机界面、应用和服务软件。

4. Linux软件通常被称为Linux发行版,它们是基于一系列组件的。

5.一般的Linux发行版包含大量软件,如开发工具、数据库、Web服务器(例如Apache)、X Window、桌面环境(如GNOME和KDE)和办公套件(如OpenOffice.org)等。

6. Linux内核最初是为英特尔386微处理器设计的,现在它支持从个人电脑到大型主机,甚至包括嵌入式系统在内的各种硬件设备。

7. Linux最初是个人狂热爱好者的产物,但现在已经成为广泛支持的一种操作系统,包括IBM和惠普等计算机业巨头。

8.许多人认为,与其他商用Unix系统和微软Windows相比,作为自由软件的Linux具有低成本、高安全性、更值得信赖的优势。

9.操作系统是控制其他程序运行、管理系统资源并为用户提供操作界面的系统软件集合。

10.早期的操作系统包括TRS-DOS、ROM OS、TI-99/4、Commodore PET、64和VIC-20等。

11.非Unix商业操作系统包括CPM操作系统、MP/M-80、UCSD P-system、Mini-FLEX、SSB-DOS和CP/M-86等。

12. Unix及类似系统包括A/UX(Apple UNIX)、Unix、微软Xenix、Chorus OS、Cromix、UNIflex和OS-9等。

13.其他操作系统包括Acorn Arthur、ARX、RISC OS、RISCiX、Amiga OS、Atari ST TOS、MultiTOS、MiNT等。

14.苹果电脑的操作系统包括Apple DOS、ProDOS、Mac OS和Mac OS X等。

15. BeOS和A/UX是Digital/康柏(Compaq)的操作系统。

16.微软的操作系统包括MS-DOS、Xenix、Microsoft Bob和基于MS-DOS的Windows系列等。

17.智能手机操作系统包括Windows Mobile系列、Embedded Linux(如Moblin)、Symbian OS等。

18.还有其他操作系统,如动态可扩展操作系统MIT的Exo Kernel、华盛顿大学的SPIN、哈佛大学的VINO、伊利诺伊大学的Choices和ReactOS等。

阅读剩余
THE END