分享
 
 
 

Linux 核心安装

王朝system·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

Linux对于许多用户的介绍是十分强大的、可配置的操作系统。在过去,一套类似于Unix的操作系统对大多数人来说是不可能实现的。不是该操作系统4位数的标价,而是它的硬件,即使是现在使用个人免费的SCO Unixware它还需要SCSI设备,我们中的许多人为减少花费而使用IDE设备。随着Linux的日益强大有件工作不得不在这简单的操作系统上完成:根据你的硬件和操作配置你的核心。

当前安装的核心是1.2.x或更早的建议更新;不管怎样,用新的2.0.x核心,更新是必要的。核心可以从安装包中取得,如Red Hat、Caldera、Debian 等等,这是一样的(几乎包含一切)核心。当更新核心看起来是一件让人气馁的事时,使用已经安装的核心也不坏,更新对于你的系统来说是好的。

--------------------------------------------------------------------------------

为什么自找麻烦?

标准的核心安装是一种尝试工作(就象许多系统一样),尽可能安装一套可用的Linux系统,就这一点而论,核心很膨胀它包含对于一般机器所不需要的代码。标准安装也可能没有一些用户所需的代码。

当然,当你购置了新的硬件等你就需要升级你的核心了。在同一个系列中升级通常相当直观,当你升级时,比如说从1.2.x到2.0.x,这工作正是本文章的范围,需要有点悟性(哈哈)。最好找一张最新销售的CD开始——这对于更新到试用的2.1.x核心一样实用。

--------------------------------------------------------------------------------

核心的版本号

所有的Linux核心包含由点隔开的三个数字。第一个数是核心的版本。我们现在是第三版(2.),一些人可能使用版本号为1的核心,并且我知道至少还有人在用版本0核心。

第二个号码是核心的主号,主号也是数字(包括0)表示稳定性。这样,这些核心将没有一些BUGS,他们经过相当大量的测试。当某个版本含有一些小BUGS,它们将被升级,以使硬件兼容或加强核心对付黑客。如,核心2.0.30,避开对2.0.29报表BUG的支持,它包含几个补丁包括保护SYN避免服务器受攻击。核心带有零主号是发展中的核心。这些可能未经测试,可能但不经常中断你正运行的软件包,有时候,为了更好的工作,用户需要采用在下一个稳定的核心发表之前的最新的、最好的支持核心。这就向对真理一样没有异议,这对系统有本质上的改变。

最后一个号码是次号它因每一次改动而增加。如果你看到核心版本2.0.8,你知道它是核心2.0,稳定的核心,它已经是第九次发表了(我们从零开始记数)。

--------------------------------------------------------------------------------

假设

我憎恨作任何假设,它们通常令我心痛。所以我需要提到一些事情那样我们不会在同样的遭遇下工作。为了编译一个核心,你需要一些东西,首先,我假设你已经安装了2.0.x核心,所有的基础包也许更多,你还需要安装gcc 2.7和所有支持gcc的库。你还需要libc库和binutils、bin86包(通常是标准销售版安装的一部分)。如果你是下栽的或从CD上拷的,你还需要tar和gunzip包,当然你还需要磁盘空间,建议7MB下栽,20MB解压,更多一些用来编译。

无须多说,我们研究的许多事情需要以root登录。如果以非特权用户下载了核心并且你有/usr/src目录的写权力,你仍能在成为root之前做许多事。对于Linux新手,我非常建议尽可能以非特权用户(type:su -face)使用仅当一些工作必须使用root。总有一天,你将高兴有此习惯。谨记,有二种系统管理员,当以root登录时能不经意的使安装失事,这样谁愿意做呢。

--------------------------------------------------------------------------------

获得/升级源程序

Linxu核心源程序可以从大量的FTP站点和几乎每一张Linux销售CD上得到。新手可到ftp.funet.fi最主要的站点上找Linux核心,你可以从该站点上一系列镜象站点上下栽Linux核心。选择一个最近的站点有助于减少internet整体通信量。

一旦你获得源程序,拷入/usr/src目录。创建一个目录放置你用tar解压的源文件。我建议目录以版本号命名如 linux-2.0.30 或kernel-2.0.30,用以下命令为目录建立一个叫linux连接

ln -sf linux-2.0.30 linux

我在连接命令中使用了-f因为你已经在/usr/src中有了一个核心源连接,(一些版本的ln(如3.13),强制选项(-f)将不起作用,你不得不必须首先解除连接再建立连接。在版本3.16中运行正确)现在你仅仅有一个问题就是如果linux是一个目录,不是连接,如果你有这个问题,你不得不在继续前更改目录的名字:

mv linux linux-2.0.8

现在执行下列命令:

tar xzvf linux-kernel-source.tar.gz

我有一习惯总是在tar参数中包括w(等待确认)。下来让我们看着.tar.gz 或.tgz文件解压到自己的目录,用ctrl-C中断再去掉w继续命令。这样一来我能阻止解压到当前目录。

一旦你解开了核心,这正是你执行修补程序的最佳时机如果你需要的话。假如你不希望运行2.0.30核心,但你希望使用tcp-sy-cookies.把该补丁(tcp-syn-cookies-pathc-1)拷贝到/usr/src目录执行以下命令:

patch < tcp-syn-cookeis-patch-1

该命令实现修补核心。在/usr/src目录中寻找以扩展名为.rej的文件。这些文件严格的说不是修补文件。它们也许并补重要,但需要细心的阅读。如果你安装了Red Hat系统并装了一些并不是全部的核心源程序,(SPARC,PowerPC,etc.),你将看到一些文件,如果这不是你所需要的,哪就行了。

--------------------------------------------------------------------------------

准备工作

给你一个忠告,在我们转到核心源程目录和开始编译前,让我们检查所需的连接,在你的/usr/include子了目录有以下连接:

asm - /usr/src/linux/include/asm

linux - /usr/src/linux/include/linux

scsi - /usr/src/linux/include/scsi

现在,你要知到为什么要标准的文件检索路径。如果你不把最新的核心放入/usr/src/linux(通过连接),上面的连接将不会找到目标文件核心编译将会失败。

--------------------------------------------------------------------------------

怎样进行下一步

一旦万事俱备,转到/usr/src/linux。现在你也许想停下细读一下文档文件,实际上如果你有些特别的硬件,或几种光驱驱动程需要自己动手设置,他们通常这样做,当引导时这些驱动程序将给出警告,这并不碍事他们照常工作少,阅读扩展名为.txt .h .c的文件。通常我发现他们具有共性且易于配置。如果你不想冒险,你没必要做。记住你照样可以解开tar文件(或再次安装.rpm文件)恢复前的文件。

--------------------------------------------------------------------------------

开始编译

我建议首先执行以下命令:

make mrproper

当核心源程序在以前条件下这条命令不是必需的,但这培养一个好习惯。这命令保证旧的文件不在使用。

--------------------------------------------------------------------------------

配置核心

现在,你可以配置核心,首先,你要了解一点关于模块的知识。楔块就像你特意插入核心中的某些东西,如果你家中一个小网络并且有时想用一下(但并不经常),也许你想把网卡编译成一个模块。使用这个模块,机器必运行和存取/libs下的模块,意思是驱动程序(IDE,SCSI等但必须是NFS支持的网卡),文件系统(通常是ext2但也可以是nfs)和核心类型(最好是elf)必须编译在内并且不能是模块,模块只有核心引导时才起作用,驱动程序(来网络)的存取,和文件系统安装。这些文件必须编译在核心内否则将能安装启动分区。如果安装启动分区和网络,你需要网络系统文件,和己经编译的网卡。

为什么要使用模块?模块化使核心变的更简捷,它减少核心释放大量的受保护的空间。模块的安装和卸载使用的空间是可重复分配利用的。如果你打开机器有90%以上的时间用到一个模块,编译它。运用这类模块是浪费内存的,原因是一旦你编译了楔块它们同样将占用大量的内存,核心需要一些代码来挂上模块。记住,核心在保护空间运行,但模块并不是。这么说,我并不经常使用我的设备。我把它编译成只支持ext2,ide和elf。而我一直使用网卡,我把其它的编译成模块:如out,java,floppy,iso9960,msdos,minix,vfat,smb,nfs,smc-ultra(ethernet card),serial,printer,sound,ppp,等等。它们许多只是在这或那用上那么几分钟。

下一步是配置核心。这而我们有三种选择--目的相同,我建议使用一种图形方法。以前是简单的输入:make config。开始一系列提问。而且,如果你答错了,你只有按ctrl-c从新再来一遍。你甚至不能按一定顺序重复,一些问题与以前的提问有关。如果你有绝对的理由不能使用任何一种图形方式,那碰到麻烦你一定会找我的。

我建议使用make menuconfig 或make xconfig中的一种。假如使用menuconfig,你必须安装ncurses-d

全文:代码实验室

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有