📄 linux.txt
字号:
3.3.8. Filesystems (档案系统)
这将会有提示要你回答所要支援的档案系统种类,计有:
Standard( minix )— 新的套件不再建立 minix 档案系统,而且很多人不使用它,
但是把它配置在核心里仍然是个好主意。某些″ rescue-disk ″ 程式会用到它,而且
仍然有许多磁片可能用 minix 档案系统,因为 minix 档案系统对於处理磁片方面是最
好的。
Extended fs — 这是扩充档案系统的第一版,现在已经不再使用。使用的时机是,如
果你有需要,你就会知道的。
Second extented — 这是现在新发行的套件所广泛采用的档案系统,你可能会有其中
一种。
xiafs filesystem — 这个档案系统曾经一度很普遍,但是在写这份文件时,我已经不
知道有任何人在使用它了。
msdos — 嗯,你猜对了;如果你想要在 linux 下使用你硬碟中的 MS-DOS 分割区,或
是想将用 MS-DOS 格式化的磁片挂进来的话,回答″ y ″。
ums-dos — 这是一个相当 slick 的档案系统,它能使 MS-DOS 档案系统拥有更多的特
性,像是长档名等等。这对那些不使用 MS-DOS 的人(像我)并不是很有用。
/proc — 这是最 slick 的档案系统之一(我猜这个概念是无耻地从贝尔实验室里偷过
来的)。它不是你硬碟分割区里的任何东西,而是核心与程序之间的档案系统介面。许
多程序工具(像″ ps ″)都会用到它。
如果你已经将它安装好了,有空不妨试试看″ cat /proc/meminfo ″或者是
″ cat /proc/devices ″。有些 shells ,像是 rc ,会用 /proc/self/fd(在其它
系统上为 /dev/fd )来处理输出入。几乎可以确定你在这里得要回答″ y ″,有许多
重要的 Linux 标准工具是靠它来运作的。
NFS — 如果你在网路环境下而且想要分享档案,回答″ y 。″
ISO9660 — 绝大部分的光碟都使用这个档案系统。
OS/2 HPFS — 在编写这份文件的时候,这个档案系统还只支援到 OS/2 HPFS 的读取。
System V and Coherent — 这是为 System V 以及 Coherent 的分割区而设的。
3.3.8.1. 但是我不知道我需要那些档案系统!
好吧,键入″ mount 。″它看起来会像这样:
blah% mount
/dev/hda1 on / type ext2 (defaults)
/dev/hda3 on /usr type ext2 (defaults)
none on /proc type proc (defaults)
/dev/fd0 on /mnt type msdos (defaults)
仔细看看每一行;在” type ”後面的那个字就是档案系统的格式。在这个例子中,我
的 / 和 /usr 分割区是 second extended 格式,我有使用 /proc ,而且挂有一张以
msdos (bleah) 为档案系统格式的磁片。
如果你有使用 /proc ,可以试试″ cat /proc/filesystems ″。它会给你一份目前使
用的核心所支援的档案系统列表。
3.3.9. Character devices (字元设备)
在这里,你将会发现许多设备名称,用来设定你的印表机,汇流排滑鼠,PS/2 滑鼠(
大部分笔记型电脑使用内建的 PS/2 滑鼠),以及一些磁带机驱动程式,selection 。
当有合适的选项时,回答” y ”。
注意:” Selection ”让你能够执行一个程式,这个程式使你可以在 X-windows 之外
使用滑鼠在各个虚拟控制台间做剪贴的动作。如果你有串列滑鼠的话,这真的很棒,因
为它与 X-windows 之间的沟通良好,然而在编写这份文件的时候,它跟 PS/2 滑鼠还
是处不来(它会锁住滑鼠所使用的埠,使得你在杀掉这个 selection 程序之前都不可
能执行 X-windows 。)。
3.3.10. Sound card (音效卡)
如果你对於让隔壁的人保持清醒有兴趣的话,回答″ y ,″然後等一下会有一个配置
程式编译并详细询问你所有关於你的音效卡的问题。
3.3.11. kernel hacking
>这是从 Linus 的 README 里摘录的:
″ kernel hacking ″配置的细节通常会产生一个更大或是更慢的核心(或者是又大又
慢),而且可能因为将一些常式配置成很活跃地去尝试中断一些不良的程式码以便找出
核心里的问题( kmalloc() ),而使得核心变得比较不稳定。所以要产生一个核心″
产品 ″的话,你在这里应该回答″ n ″。
3.4. 现在呢?( The Makefile )
现在应该会有一个讯息告诉你核心已经配置好了,以及要你去″ check the
top-level Makefile for additional configuration,”等等。
所以查看一下 Makefile。你应该不必改变它,但是看看无妨。一旦新核心完成,
你也可以用″ rdev ″指令来改变其中的选项。
4. 编译核心
4.1. 清除与确认
当用来进行配置的指令稿执行完成时,它会告诉你去做″ dep ″跟″ clean 。”所以
要执行″ make dep 。″除非你的电脑真的很慢,否则它不会花太久时间的。Making
depend 确定你已经具备所有必需的要件,像是含入档以及诸如此类的东西。当它完成
後(你也可以在″ make dep ″之前执行它),执行″ make clean 。″这会清除核心
编译的所有目的档以及其它东西。不要忘记这个步骤。
4.2. 编译时期
在执行清除与确认工作之後,你现在可以执行″ make ″或是″ make zdisk 。″
″ make ″将会编译核心,并且留给你一个叫做″ zImage ″的档案(这一类的东西)
。这就是新的核心。″ make zdisk ″做的事也一样,但是它会把核心放到你所希望的
磁片去,只要把这张磁片放在 a:。” zdisk ”对於测试新核心很方便;如果它完全
不行,只要把磁片拿掉再用旧的核心启动即可。
如果你意外地删除了核心或是什麽的,它也是个方便的启动办法。当你把一台磁碟的内
容倾倒到另外一台去时,你也可以用它来安装新的系统(除了这些之外还有更多用途!
NOW how much would you pay ?)。
所有近来的核心都是压缩过的,所以有个” z ″在名字前面。核心是压缩过的,当它
执行的时候会自动将自己解压缩(一个节省磁碟空间的好方法)。
4.3. 其他可以″ make ″的东西
″ make mrproper ″将会做更广泛的″清除″。这个动作有时候是必须的,所以你可
能会希望在每次修补的时候执行它。″ make zlilo ″将会安装核心,然後对它执行
LILO ,使你完成所有开机的准备,但是这只有在 lilo 已经以下列这种方式配置好的
时候才可以:核心为 /vmlinuz , lilo 在 /sbin 下,而且与你的 lilo 配置一致。
4.4. 安装核心
在你已经获得一个看起来能够照你希望运作的新核心之後,现在是安装它的时候了。大
大部份的人使用 LILO( Linux Loader )来做这件事。这是一个相当容易安装的软体
,然而,它会因为配置档而困扰人们。如果你没有最新的版本,查看配置档(不是旧版
的 /etc/lilo/config 就是新版的 /etc/lilo.conf ),看看里面有些什麽,它会告诉
你像这样子的东西:
image = /vmlinux
label = Linux
root = /dev/hda1
...
首先,″ image = ″是设定为已经安装的核心。大部份的人似乎都用 /vmlinuz ,但
是我用 /vmlinux 。″ lable ″ 则是由 lilo 用来告诉你现在要启动的是那个核心或
作业系统,而″ root ″则是这个特别的作业系统的根目录 / 。备份一份旧的核心(
无论什麽档名),然後将你做的 zImage 拷贝进去,(例如,如果你用” /vmlinuz ″
的话,就像这样″ cp zImage /vmlinuz ”)。
接著重新执行 lilo — 在较新的系统上,你可以只执行″ lilo ,″但是在较旧的系
统上,你可能必须执行 /etc/lilo/install 或甚至是
/ect/lilo/lilo -C /etc/lilo/config 。
如果你想知道更多有关於 lilo 的配置,或是你并没有 lilo 但是你想要安装的话,从
你喜欢的 ftp 节点拿最新的版本然後依说明行事。
要能够从硬碟启动你的旧核心其中之一的话(这是另一个在新核心出状况的情况下保护
你自己的方法),把 lilo 配置档中所有的(包括一行)″ image = xxx ″ 拷贝到档
案的最底端,然後把″ image = xxx ″改成″ image = yyy ,″其中的″ yyy ″是
你备份旧核心所存档的名字。接著,把″ lable = xXx ″改成像是” lable = linux-
backup。”然後重新执行 lilo 。
你可能得要加上一行″ delay = x ,″其中的 x 是以十分之一秒为单位的时间,这是
用来使 lilo 在启动前先等一下,所以你可以中断它的执行(例如用 shift 键)。然
後键入所备份的启动映像之 lable (在发生了某些令人不愉快的事情的情况下)。
5. 修补核心
5.1. 使用修补档
核心的小幅更新是以修补档的方式发行。例如,如果你的版本是 1.1.45 ,而且你注意
到出现了一个″ patch46.gz ″可以用来升级它,这代表你可以藉由使用这个修补档将
版本升级到 1.1.46 。你也许会想要先备份 source tree(″make clean ″然後″ cd
/usr/src; tar cvf linux | gzip -c > old-tree.tar.gz″将会为你造出一份 tar 压
缩档,里面就是整个原始程式码与其档案架构。)。
现在接著继续上面的例子,假设你已经取得了″ patch46.gz ″并放在 /usr/src 下。
cd 到 /usr/src 然後执行″ zcat patch46.gz | patch -p0 ″(如果并不是压缩过的
修补档,那麽就执行″ patch -p0 < patch46″)你将会看到许多东西飞逝而过(也许
它们会慢慢跳过,如果你的电脑真的很慢的话)告诉你它正试著应用 hunks ,以及是
否成功。
通常,这个过程快得无法仔细看清楚它的动作,所以你会无法确定它到底有没有成功地
执行。那麽就得找找看一些可能不是那麽顺利的事。cd 到 /usr/src/linux 并找寻档
名有 .reg 的档案。某些版本的修补档(比较旧的版本,它们可能是在比较早期的档案
系统上编译的)会把这些没有成功的操作记录在档名有 # 的档案里。你可以用
″ find ″来替你找;″ find . -name '*.reg' -print ″会处理这个工作。
如果一切正确无误的话,执行第二节跟第三节所讨论的″ make clean ,″″ config
,″以及″ dep ″。
关於 patch 指令另外还有一些选项。patch -s 将会抑制除了错误以外的所有其他讯息
。如果你把核心原始程式码放在 /usr/src/linux 以外的地方,在该目录下用
patch -p1 也可以乾净俐落的执行修补任务。其它的 patch 选项在 manual pages 里
都有很详细的描述。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -