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就是Intel CPU及与之相兼容体系结构的子目录。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最适合用来学习源码?
LFS + BLFS
你要是能够将这个版本安装好,就会对linux有很好的了解,
从linux系统软件的结构,到sysinit系统的启动,系统各个配置文件的作用,位置,基本配置方法,
……会学会很多很多。
其它各个版本的linux,系统的安装、配置都经过二次包装,仅对自己的发行版有用,
LFS却是使用的 linux的最基本最底层的安装配置方法,得来的经验可以在任何一个发行版上使用。
其安装过程,可以实战源码安装,期间会学到很多关于源码配置,编译的方法。
如何从源码里看Linux内核版本
在Linux内核的顶层Makefile中,顶端就有,格式为
VERSION = 3
PATCHLEVEL = 0
SUBLEVEL = 8
EXTRAVERSION =
NAME = linuxprobe。com
以上的版本号就是3.08《Linux就该这么学》这本书上有详细的介绍
常见的linux有哪几种版本?
常见Linux版本有哪些?CentOS是什么?
Linux是GNU/Linux的缩写,通常指各种Linux发行版的通称。
常见的Linux厂家主要有Redhat/Novell等。
Redhat有两大Linux产品系列,其一是免费的Fedora Core系列
主要用于桌面版本,提供了较多新特性的支持。
另外一个产品系列是收费的Enterprise系列,这个系列分成:AS/ES/WS等分支。
Advanced Server,缩写即AS。AS在标准Linux内核的基础上,
做了性能上的增强,并提高了可靠性,集成了众多常见服务器的驱动程序。
可轻松识别IBM/DELL/HP等常见机架式服务器的磁盘阵列卡等设备。
AS主要版本2.x/3.x/4.x,也就是我们所说的AS3/AS4
每一个版本还有若干个升级,例如最早推出的AS4后,遇到了一些更新
此时就会发布AS4 Update1,以后还会陆续有AS4 Update2/Update3等出现
简称AS4u1/AS4u2/AS4u3等。这和微软的发布形式也是非常类似的,
微软的Windows NT4 从SP1出到SP6,Windows2000从SP1出到SP4。。。。
AS这些Update版本所包含的主要程序包版本都有一定差别,最好不要混用
否则很容易出现问题。Prima和Plesk的安装包,对于各种发行版都有了针对性的设计
在下载页面上,通常都会标识出来,支持哪些版本和哪些update的系统。
ES,是AS的精简版本。他与常见的AS系列的区别是,AS支持到4路以上CPU,
而ES只能支持两路CPU。AS和ES在大多数程序包上并无区别,
只在内核等少数软件包上有差异。
AS和ES的售价差别比较大,通常ES用在随服务器一同购买的OEM版本中
例如购买DELL服务器,搭配的Linux会是ES系列。
如果要搭配AS系列,则需要多花数千元。
WS,是ES的进一步简化版,主要针对企业内部的桌面办公市场,国内较少采用。
Redhat的Fedora Core Linux和Enterprise Linux,都需要遵循GNU协议
即需要发布自己的源代码。
所以,对于免费的Fedora Core Linux,从Redhat网站上可以直接下载ISO刻盘,
还能下载到SRPM的ISO,即程序包源码光盘。
对于收费的Enterprise Linux系列,是一款商业产品,所以网站上不能下载到ISO文件,
需要购买正式授权方可。
由于Enterprise Linux也需要遵循GNU协议,故必须发布源代码。
所以在Redhat的网站上,可以获得AS/ES/WS系列的SRPM源码ISO文件。
这些文件可以被自由的下载,修改代码,重新编译使用。
一个名为Community Enterprise Operating System的项目诞生了。
他的缩写既是CentOS。CentOS社区将Redhat的网站上的所有源代码下载下来,
进行重新编译。重新编译后,由于AS/ES/WS是商业产品,
必须将所有Redhat的Logo和标识改成自己的CentOS标识。
比如将AS4原版的SRPM源码编译后,就成为了CentOS 4.0。
AS4Update1的源码编译后,就成为了CentOS4.1。
AS4Update2的源码编译后,就成为了CentOS4.2。
同理,CentOS的3.x/4.x都对应着相应的版本。
所以我们说,CentOS就是Redhat的AS/ES/WS的免费版本。
使用CentOS,可以获得和AS/ES相同的性能和感受。
CentOS除了提供标准的编号1~4或者1~5的若干张ISO以外,
还提供了最小化1CD的Server光盘。用Server光盘安装好的系统,
就是一个最小化的Linux内核加上常用的httpd/mysql等包
不包含Xwindows桌面等对于服务器无用的软件。
Prima、Plesk、Virtuozzo和都可以安装在CentOS上。
linux 各版本的差异
1.5.1 Linux发行版本介绍
Linux内核(kernel)版本主要有Linux kernel 2.2、2.4、2.6、3.x、4.x,更多更新的内核版本请浏览。
Linux发行商包括Redhat、Debian、Fedora、SUSE、CentOS、Ubuntu、麒麟……
下面来看看其中几个重要的服务端发行版本。
1) Red Hat:Red Hat Linux9.0的内核为2.4.20。在版本9.0后,Red Hat不再遵循GPL协议,成为收费产品(但仍开源),发展的新版本依次为3.x、4.x、5.x、6.x、7.x、8.x。
2) Fedora:Red Hat的一个分支,仍遵循GPL协议,可以认为是Red Hat预发布版。
3) CentOS:Red Hat的另一个分支,以Red Hat发布的源代码重建符合GPL许可协议的Linux系统,即将其源代码的商标LOGO以及非自由软件部分去除后再编译而成的版本,目前CentOS已被Red Hat公司收购,但仍开源免费。