Linux 实践操作涉及到很多部分,只能一部分一部分的消化吸收,很多内容需要不停的实践总结

1.内核的重新编译及升级

LINUX是操作系统最基本的部分,它为众多外部应用程序提供了对计算机硬件访问和进程、内存等管理。内核通常可以分为单内核、双内核及微内核,还有一种现代意义上混和内核。传统的UNIX和LINX是单内核。单内核对硬件提供了大量的抽象,在HAL之使用原语实现进程、文件等管理。内核代码高度集成,运行在内核空间,容易出现问题。但是效率比较高。现在的LINUX虽然是单内核,但是可以运行时调入内核模块,可以方便的扩展内核。

【1】确定当前使用LINUX的内核版本:uname –r 。

Linux内核版本采用两棵树形式发布,一棵是stable,另一棵是unstable。 版本发布的形式是x.y.z,当前x由2升为3.但使用的大部分是2.y用来确定stable和unstable。其中偶数是stable,奇数是unstable,目前大部分使用的是2.6。最后一位是小补丁。这个只针对3.0以前的通用规则,3.0以后以年份来决定版本。

Linux基本实验操作(1)_LINUX

【2】确定你想要编译的内核及为什么要编译一个新内核

内核编译是非常复杂的,而且选项众多,一不小心就会编错,所以编译之前一定要想好,你为什么要编译内核。通常编译一个内核的理由如新硬件老内核不支持或者应用需要使用新内核的某个功能,但老内核不支持。等等这些理由都是促使你进行内核编译的。编译内核也有两种方式,一种是编译成模块,另外一种是直接编译到内核之中。前一种是动态加载,后一种是内核的一个组成部分。前一种如tipc都是这样的。

【3】确定要编译的内核源码和补丁包

标准LINUX内核发布的官方网站http://www.kernel.org。分发的模式是全源码方式,还有一种是patch方式。第二种方式,需要你有一个基本的源码。首先我们登陆kernel 源码网站如下图所示:

Linux基本实验操作(1)_应用程序_02

根据需要下载相应的内核,并将需要编译的内核源码解压到/usr/src/下。经过编译过后,我们会得到三个文件,将这三个文件放在/boot目录下,并修改GRUB启动文件就可以使用新的内核了。

Linux基本实验操作(1)_空间_03

【4】编译内核实战

1)首先下载内核源码包http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.0.tar.gz,并将之上传解压到/usr/src下。

    #tar -xzvf linux-3.0.tar.gz  -C /usr/src

如果是使用patch,需要一个版本一个版本的打patch,比喻说你当前是2.6.26,你要升到2.6.28,你需要下载两个patch,2.6.27.patch和2.6.28.patch,然后使用bzcat ..patch| patch -pl

2)启动make menuconfig对内核进行定制化

    #make menuconfig

3)使用make bzImage进行

    #make bzImage

4)使用make modules进行模块编译,以上这两步都非常耗时间。

    #make modules

前面二步实际上可以直接使用make all或者make 就可以搞定。如果以前编译过,可以使用make clean或者make mrproper删除以前的配置。

5)使用make modules_install进行模拟安装

   #make modules_install

6)使用make install安装到/boot目录下,也可以手动安装。

7)修改grub启动顺序和创建initd*.img使用mkinitrd命令。

Linux基本实验操作(1)_操作系统_04

2.软件包安装与发布

   Linux的软件包安装方式,同WINDOWS不同,LINUX有三种方式,一种是×××,×××安装,通常是固定模式,解压后,使用config和make及make install这三个步骤就可以安装。另一个是编译包安装,有些应用软件是使用二进制发布,也就是说它针对特定的CPU架构和不同的LINUX发布平台,已编译好了相应的二进制包,通常以REDHAT为基础的是RPM包,以Ubuntu是dep包。常见的RPM包有如下一些选项参数:

Linux基本实验操作(1)_LINUX_05

还有一种安装方式,取决于你所有LINUX分发系统,如以Feduara 为基础的READHAT及CENTOS,有一个默认的YUM安装。这些通常都支持在线更新,如果要本地更新,或者更新在线升级的源时,需要修改/etc/yum.resp.d/下的源文件配置。

Linux基本实验操作(1)_空间_06