Linux源代码下载.docx
《Linux源代码下载.docx》由会员分享,可在线阅读,更多相关《Linux源代码下载.docx(16页珍藏版)》请在冰豆网上搜索。
Linux源代码下载
本文由h541776196贡献
doc文档可能在WAP端浏览体验不佳。
建议您优先选择TXT,或下载源文件到本机查看。
课程设计题目:
下载某个版本的源代码,1.课程设计题目:
下载某个版本的linux源代码,生成一个定操作系统,制的linux操作系统,完成后该系统可以用来作为启动系统使用。
2.如何做的问题?
2.如何做的问题?
如何做的问题
要编译一个最新的内核,内核版本要编译一个最新的内核,您需要首先下载它的源代码在您下载内核的源代码前,您要知道到您要找什么。
首先要问您自己的问题是--您需要一份稳定的还是测试版的内核?
稳定版内核通常版本号第二位用偶数数字--例如,2.0.38、2.2.15、2.2.18和2.4.1是被认为是“稳定”的内核(分别由于其包含0、2、2和4)。
如果您想尝试测试版内核,您通常需要找那些版本号第二位是奇数的号码又最高的内核。
例如,2.3.99和2.1.38都是测试版内核(分别由于其包含3和1)。
内核版本历史2.2系列的内核被认为是较新而且稳定的内核。
如果"较新"和"稳定"是您想要的,查找一个版本号的第三位是最高的2.2内核(2.2.16是目前最新的版本)。
当2.2系列的内核仍在开发中,2.3系列已经开始了。
这个系列是作为将被集成到2.4稳定版系列的新功能和高级功能的测试版。
2.3系列已经到了2.3.99,其开发已经停止。
开发人员已经开始着手2.4.0。
如果您喜欢冒险使用最最新的技术,您可能想使用可以找到的最新的2.4系列内核。
2.4版内核警告信息Onceareal2.4serieskernelcomesout(like2.4.0),don'tassumethatthekernelisreadyforuseonamission-criticalsystemlikeaserver.Eventhough2.4issupposedtobeastableseries,early2.4kernelsarelikelytobenotquiteuptosnuff.Asisoftenthecaseinthecomputerindustry,thefirstversionofanythingcanhavefairlysizablebugs.Whilethismaynotbeaproblemifyou'retestingthekernelonyourhomeworkstation,itisariskyoumaywanttoavoidwhenyoumachineprovidesvaluableservicestoothers.下载内核如果您只是想编译一个您已安装内核的新版本(例如,实现SMP支持),那不需要下载任何代码--跳过此部分继续下一屏。
您可以在http:
//www.kernel.org/pub/linux/kernel上找到内核代码。
当您进入到那后,您将发现内核的源代码按内核版本(v2.2、v2.3等),被组织到多个不同的目录中。
在每个目录中,您将发现文件被冠以"linux-x.y.z.tar.gz"和"linux-x.y.z.tar.bz2"。
这些就是Linux内核的源代码。
您也将看到冠以"patch-x.y.z.gz"和"patch-x.y.z.bz2"的文件。
这些是用来更新前面完整的内核源代码的补丁包。
如果您希望编译一个新的内核版本,您将需要下载这些"linux"文件其中之一。
内核解包如果您已从kernel.org下载一个新的内核,现在是要将其解包时候了。
首先,cd/usr/src。
如果这里有一个存在的"linux"目录,将其改名为"linux.old"("mvlinuxlinux.old",以root权限)。
现在,可以解开新的内核包了。
仍然在/usr/src目录下,输入tarxzvf/path/to/my/kernel-x.y.z.tar.gz或者cat/path/to/my/kernel-x.y.z.tar.bz2|bzip2-d|tarxvf-,根据您下载的源代码是用gzip或bzip2压缩的。
在输入完此命令后,您下载的内核源代码会被释放到一个新的"linux"目录下。
注意--全套内核源代码通常将在硬盘上占用超过50兆空间!
Indexof/pub/linux/kernelNameParentDirectoryHistoric/SillySounds/crypto/people/ports/projects/testing/uemacs/v1.0/v1.1/v1.2/v1.3/v2.0/v2.1/v2.2/v2.3/v2.4/LastmodifiedSize-
20-Mar-200314-Apr-200024-Nov-200103-Nov-201013-Mar-200326-Oct-200714-Feb-200220-Mar-200320-Mar-200320-Mar-200320-Mar-200320-Mar-200308-Feb-200420-Mar-200324-Mar-200420-Mar-200306-Sep-2010
22:
3818:
5514:
5418:
2501:
3420:
5805:
3223:
3122:
5822:
5822:
5823:
0209:
1723:
1219:
2223:
2305:
43
v2.5/v2.6/COPYINGCREDITSREADME
14-Jul-200329-Oct-201013-Mar-199416-Sep-199616-Sep-1996
03:
5005:
1300:
0016:
3616:
36
18K36K12K
Indexof/pub/linux/kernel/v2.4NameParentDirectoryold-test-kernels/snapshots/testing/ChangeLog-2.4.1ChangeLog-2.4.2ChangeLog-2.4.3ChangeLog-2.4.4ChangeLog-2.4.5ChangeLog-2.4.6ChangeLog-2.4.7LastmodifiedSize2.5K2.4K2.5K2.6K3.1K4.3K2.6K
20-Mar-200301-Jun-200502-Dec-200830-Jan-200122-Feb-200130-Mar-200128-Apr-200126-May-200104-Jul-200120-Jul-2001
23:
3009:
4708:
1307:
5701:
0205:
0201:
4301:
2500:
0621:
24
。
。
。
。
ChangeLog-2.4.36.2ChangeLog-2.4.36.3ChangeLog-2.4.36.4ChangeLog-2.4.37.8ChangeLog-2.4.37.9ChangeLog-2.4.37.10LATEST-IS-2.4.37.10drm-4.0.x.tar.bz2drm-4.0.x.tar.bz2.signdrm-4.0.x.tar.gzdrm-4.0.x.tar.gz.signdrm-4.0.x.tar.signlinux-2.4.0.tar.bz2linux-2.4.0.tar.bz2.signlinux-2.4.0.tar.gzlinux-2.4.0.tar.gz.signlinux-2.4.2.tar.bz224-Feb-200820:
5119-Apr-200814:
4107-May-200804:
1931-Jan-201001-Feb-201006-Sep-201006-Sep-201009-Aug-200109-Aug-200109-Aug-200109-Aug-200109-Aug-200104-Jan-200104-Jan-200104-Jan-200104-Jan-200109:
3021:
1205:
3805:
3823:
2923:
2923:
2923:
2923:
2923:
4523:
4523:
4523:
452765842664852008670102K248156K24824819M24823M24820M
22-Feb-200101:
00
linux-2.4.2.tar.bz2.signlinux-2.4.2.tar.gzlinux-2.4.2.tar.gz.signlinux-2.4.2.tar.signlinux-2.4.3.tar.bz2linux-2.4.3.tar.bz2.signlinux-2.4.3.tar.gzlinux-2.4.3.tar.gz.signlinux-2.4.3.tar.signlinux-2.4.4.tar.bz2linux-2.4.4.tar.bz2.signlinux-2.4.4.tar.gzlinux-2.4.4.tar.gz.signlinux-2.4.4.tar.signlinux-2.4.5.tar.bz2linux-2.4.7.tar.gzlinux-2.4.7.tar.gz.signlinux-2.4.7.tar.signlinux-2.4.9.tar.signlinux-2.4.14.tar.gz.signlinux-2.4.14.tar.signlinux-2.4.15.tar.bz2linux-2.4.15.tar.bz2.signlinux-2.4.15.tar.gzlinux-2.4.17.tar.bz2linux-2.4.17.tar.bz2.signlinux-2.4.17.tar.gz
22-Feb-200122-Feb-200122-Feb-200122-Feb-200130-Mar-200130-Mar-200130-Mar-200130-Mar-200130-Mar-200128-Apr-200128-Apr-200128-Apr-200128-Apr-200128-Apr-200126-May-2001
01:
0001:
0001:
0001:
0005:
0305:
0305:
0305:
0305:
0301:
4301:
4301:
4301:
4301:
4301:
26
24824M24824820M24825M24824820M24825M24824821M26M24824824824824823M24828M23M24828M
20-Jul-200121:
2520-Jul-200121:
2520-Jul-200121:
2516-Aug-200118:
3205-Nov-200105-Nov-200123-Nov-200123-Nov-200123-Nov-200121-Dec-200121-Dec-200121-Dec-200123:
3023:
3006:
1806:
1806:
1817:
5217:
5217:
52
…linux-2.4.36.8.tar.signlinux-2.4.36.9.tar.bz2linux-2.4.36.9.tar.bz2.signlinux-2.4.36.9.tar.gzlinux-2.4.36.9.tar.gz.signlinux-2.4.37.1.tar.bz2.signlinux-2.4.37.1.tar.gzlinux-2.4.37.1.tar.gz.signlinux-2.4.37.1.tar.signlinux-2.4.37.2.tar.bz2
19-Oct-200809-Nov-200809-Nov-200809-Nov-200809-Nov-200819-Apr-200919-Apr-200919-Apr-200919-Apr-200907-Jun-2009
21:
2522:
4222:
4222:
4222:
4218:
4518:
4518:
4518:
4519:
53
24830M24837M24824837M24824830M
linux-2.4.37.2.tar.bz2.signlinux-2.4.37.6.tar.gzlinux-2.4.37.6.tar.gz.signlinux-2.4.37.6.tar.sign……linux-2.4.37.tar.bz2linux-2.4.37.tar.bz2.signpatch-2.4.1.signpatch-2.4.2.bz2
07-Jun-200919:
5313-Sep-200909:
4113-Sep-200909:
4113-Sep-200909:
41
24837M248248
02-Dec-200808:
1302-Dec-200808:
1330-Jan-200107:
5622-Feb-200101:
00
30M2482481.1M
patch-2.4.6.bz2patch-2.4.6.bz2.signpatch-2.4.6.gzpatch-2.4.6.gz.signpatch-2.4.6.sign
04-Jul-200104-Jul-200104-Jul-200104-Jul-200104-Jul-2001
00:
0700:
0700:
0700:
0700:
07
1.3M2481.7M248248
3.在Linux下编译内核现在我们来学习在Linux下编译内核。
编译之前,必须知道为什么要编译内核以及内核是一个什么样的东西。
Linux操作系统包括四个部分:
实用工具集;shell;系统程序和运行期库;内核内核所起的作用——可以为其他所有的程序以及服务提供运行环境,分配各种软硬件资源在操作系统中,内核的作用类似于人的大脑。
由于LInux操作系统,是一个开源软件,开放所有的源代码,这为我们定制内核提供了便利条件;在Windows操作系统中,我们常常被很多问题困扰,比如说我们的操作系统在使用一段时间之后,会发现运行速度越来越慢,操作系统所在的磁盘分区容量越来越多,但是由于windows系统不开源,我们不知道为什么会出现这种情况。
不过在linux中,由于所有的内核代码都是开放的,所以只要我们有足够的能力,就可以对这个内核进行定制,以满足我们自己的需求。
这种定制包括:
我们的硬件功能很强,包括很多附加设备。
但是使用的linux操作系统目前没有打开对这些功能和设备的支持,因此可以通过内核编译去获取这些功能。
反过来,如果我们的硬件功能很弱,而linux系统中自带的很多功能和硬件的支持我们都不需要,也可以通过内核定制和编译去掉这些功能以加强我们的系统性能。
或者杜绝一些错误和漏洞的存在。
总之,因为linux系统中给我们提供了定制内核的条件(开源),我们就应该和有能力使用这个条件去打造适合我们自己需要的操作系统。
好了,我们知道了为什么要进行内核编译,下面介绍一下内核编译的步骤:
1.在编译之前,我们要了解当前计算机的软硬件信息。
由于/proc目录下存储的是当前内存的运行值,其实这个文件夹不是硬盘中的数据,而是内存中的数据,因此我们可以通过这个目录下的文件来获得当前系统的硬件环境信息。
比如说cpu、内存、文件系统、pci设备、版本等相关信息。
可以通过less命令看到cpuinfomeminfopcifilesystempartitionversion等信息2.然后第二步,开始获取内核源代码包:
内核源代码包获取分两种情况,第一种是通过在系统安装光盘中获得当前系统的内核源码,这种内核包的格式多数是rpm的第二种是通过在www.kernel.org获得更高版本的内核源码,这种内核包的格式多数是tar.gz的我们现在来讨论第一种方法,从光盘获取——需要挂载第二张光盘。
大家刚才看到的这个37M的软件包就是内核源码包如果没有安装的话,我们使用rpm-ihvkernel-source-2.4.20-8.i386.rpm命令来安装,如果成功,该包会安装在/usr/src目
录下,产生一个linux-2.4.20的文件夹,里面就是内核源码的内容3.但是上面这一步的执行,需要系统的一些底层环境的支持,也就是说需要事前在系统中具备和安装相应的软件包。
否则无法安装内核包,或者安装内核包之后,会在下一步操作中提示出错。
这些软件包括:
gccncursesmakedev86glibc-kernheadercppbinutils那么我们现在先来检查一下——使用rpm-qa|greppackagename就行好了,看来该装的软件都已经有了,所以执行rpm–ihvkernel-source-2.4.20-8.i386.rpm就行了。
4.安装完成之后,我们的/usr/src目录里面就有了内核的源码文件:
就是刚才显示出来的两个目录,其实都是一个目录,另一个链接文件指向的是linux-2.4.20目录,所以cd/usr/srccdlinux-2.4.20
5.现在开始编译:
(由于2.4和2.6内核的编译方法不是完全一样,所以我们分开两种情况讨论)
编译2.4内核:
编译2.6内核
第一步:
makemrproper--清理内核源代码树(清理垃圾信息)makemrproper第二步:
makemenuconfigmakemenuconfigconfig、makexconfig)(交互问答式)(通过旧内核生成)(图形界面下编译)我们在这里推荐使用makemenuconfig这种方法操作最方便最直接在进入内核配置菜单之后,原则上,自己有把握的可以更--配置内核以及内核模块
相关的命令还有makeconfig、makeold
改,没有把握的切记不要乱改,否则会导致编译失败。
另外更改的时候,如果出现*,表示编译进入内核————随系统启动而启动M,表示编译进入模块————不随系统启动而启
动,在需要的时候调用(一些不重要的外部驱动程序就可以作为内核模块编译,这样内核不会过大,也不会影响启动速度)空,表示不编译进入内核也不编译进入模块————放弃这个功能,如果系统不支持这类功能,可以放弃好了下面开始更改。
大家看到了,我改了不少。
现在我都不知道能否编译成功。
但其中有一点需要注意:
NTFS一定要编译进入内核而不是模块;另外,没有把握的不要乱改;还有,内核编译我认为具有很大随机性,编译不成功很正常,比如说我现在的更改就不能保证可以成功。
完成之后,将配置起一个名字,另外最后将其保存。
最后退出的时候,提示保存,这里会将刚才的配置保存为一个名称为.config的配置文件,不管我们使用makemenuconfig还是makeoldconfig、makexconfig、makeconfig,最终都为了生成这个.config文件,以后所有的操作,就会根据这个文件中的内容进行这个文件,存储的就是我们刚才所做的改动,可以less.config查看一下第三步:
makedep--生成依赖性关系第四步:
makebzImage--生成新内核make(2.6内核中将左边三个步骤简化为make)第五步:
makemodules--编译内核模块这三个步骤执行的时间比较长,所以,慢慢等吧!
刚才这一步是执行时间最长的一步。
第六步:
makemodules_install--安装内核模块第七步:
makeinstall--安装内核
(所有的编译步骤最好在字符界面下进行,否则在图形界面下速度会比较慢)另外上面所提到的所有步骤,任何一步完成之后都要检查有没有出错,就是有没有显示error的字样,如果显示任何一步出错都要退回到makemrproper重来大家看到了,我们所有的步骤我刚才都执行完了,没有报错,似乎情况还不错。
但是不要高兴太早,还要进行进一步测试:
1.vi/etc/grub.conf---->查看是否有新的内
核启动项生成(刚才带custom这一项就是新的内核启动项,这步没问题)2.ls/boot---->查看是否有新的内核文件vmli
nuz生成(刚才带custom这一项就是新的内核文件,这步也没有问题)现在差不多行了,但是还要重启,看是否可以新的内核启动系统
以新的启动项进入:
看来已经可以进入系统了,但是在sendmail服务这里会比较慢应该事先将该服务关闭,不过这不会影响新的内核启动。
继续等待。
。
。
我现在已经成功进入系统了,那么执行uname-a检查一下我们现在是否使用新内核:
显示使用的内核是2.4.20-8custom,证明内核编译成功!
4.linuxgcc下载地址和安装
但是gcc-4.2.0.tar.bz2是必须的!
把各个包解压,他们会都存入一个gcc-4.2.0的文件夹,然后执行./configure>make>makeinstall即可!
其中make过程是相当漫长的^_^!
gcc--version测试!
GCCmirrorsitesThesesitesmirrorthegcc.gnu.orgFTPsite(Phoenix,Arizona,USA)directly.OurreleasesarealsoavailableontheGNUFTPserveranditsmirrorsites.ThearchivestherewillbesignedbyoneofthefollowingGnuPGkeys:
Austria:
gd.tuwien.ac.at,thankstoAntonindotSprinzlattuwiendotacdotatBulgaria:
gcc.igor.onlinedirect.bg,thankstoigoratonlinedirectdotbgCanada:
thankstoJamesMiller(jmi