📄 1153.html
字号:
then horrified the TeX so that I could convert the TeX into SGML with <br>
a perl script. Because of the original in TeX, the first version of <br>
this document that appeared on sunsite had two section numbers with <br>
each section (It wouldn't have looked that bad if they weren't <br>
different.). I also realize that it's kind of nonstandard to make <br>
revision numbers negative, but oh well. And if any of the above sounds <br>
kind of stupid, I don't blame you. <br>
7.3. To do <br>
The ``Tricks and tips'' section is a little small. I hope to expand on <br>
it with suggestions from others. <br>
So is ``Additional packages.'' <br>
More debugging/crash recovery info needed. <br>
7.4. Contributions <br>
A small part of Linus' README (Re: kernel hacking options) is <br>
inclusive. (Thanks, Linus!) <br>
uc@brian.lunetix.de (Ulrich Callmeier): patch -s and xargs. <br>
<br>
quinlan@yggdrasil.com (Daniel Quinlan): corrections and additions in <br>
many sections. <br>
nat@nataa.frmug.fr.net (Nat MAKAREVITCH): mrproper <br>
The people who have sent me mail with questions and problems have been <br>
helpful, too! <br>
<br>
7.5. Copyright notice and copying <br>
Copyright (c) Brian Ward, 1994, 1995. <br>
This document may be distributed in any medium as long as it and this <br>
notice remain unaltered. Permission is granted for translation into <br>
any language, so long as the translator's name is added to the <br>
document. There is no warranty on this document and its contents; no <br>
one may be held liable for any unfortunate outcome of its content. <br>
Commercial redistribution is allowed and encouraged; however, it is <br>
strongly recommended that the redistributor contact the author before <br>
the redistribution, in the interest of keeping things up-to-date. The <br>
same is true for translations. <br>
<br>
--------------------------------------------------------------------------- <br>
<br>
Linux 2.0 Kernel Changes <br>
--------------------------------------------------------------------------- <br>
[ 简介 ] [ 目前版本 ] [ 升级须知 ] [ 如何得知目前程序的版本 ] <br>
[ 该到哪里去抓这些更新档案 ] [ 其他 ] [ 後记 ] <br>
--------------------------------------------------------------------------- <br>
简介 <br>
****** <br>
这份文件包括一些 Linux 下重要 package 的最新版的资讯,希望能帮助初次 <br>
接触、升级为 kernel 1.3.xx 的使用者能成功无误的使用新的 kernel。希望 <br>
(虽 然我知道一定会希望落空的...) 以後不会再看到有人问:『为什麽我的 <br>
make 不 能用了?』『怎麽 ps aux 每次都出错?』..... <br>
这份文件理论上应该是 Linux kernel Documentation/Changes <br>
的翻译,不过能力有限,如果你发现有看不懂的 <br>
地方,建议还是翻翻原文吧.... :) <br>
---------------------------------------------------------------------- <br>
目前版本 <br>
********** <br>
- Kernel modules 稳定版: 1.3.57, 测试版: 1.3.69k <br>
- PPP daemon 稳定版: 2.2.0f <br>
- Dynamic linker (ld.so)1.7.14 <br>
- GNU CC 2.7.2 <br>
- Binutils 2.6.0.14 <br>
- Linux C Library 稳定版: 5.2.18, Beta 测试版: 5.3.12 <br>
- Linux C++ Library 2.7.1.4 <br>
- Termcap 2.0.8 <br>
- Procps 0.99a <br>
- Gpm 1.09 <br>
- SysVinit 2.62 <br>
- Util-linux 2.5 <br>
---------------------------------------------------------------------- <br>
升级须知 <br>
********** <br>
Network errors <br>
================ <br>
许多网络的 script 的初始设定会在启动的时候加个 route 到 localhost <br>
(127.0.0.1),但是他们的方法错误。要解决这个问题,从你的网络设定档里面 <br>
找出 "route add -net 127.0.0.1" 并改成 "route add -net 127.0.0.0" 即 <br>
可。 <br>
这个问题出现在 Red Hat 以及从其延伸出去的系统 (Ex: Caldera)。如果 <br>
你正是使用这些系统,修改你的 /etc/sysconfig/network-scripts/ifup-lo, <br>
将 "route add-net $(IPADDR)" 这一行改成 "route add -net 127.0.0.0" 即 <br>
可。 <br>
Booting Changes <br>
================= <br>
kernel 1.3.xx 的 boot 程序做了些改善,现在你可以载入较大的 kernel <br>
(bzImage),另外也可以直接由 loader 来启动 ramdisk (initrd)。有关 <br>
initrd 的部份请参阅 Documentation/initrd.txt。如果想编译较大的 <br>
kernel,请使用 下列的 make 参数:bzImage, bzlilo, bzdisk (各相当於 <br>
zImage, zlilo 和 zdisk)。如果你想使用这项新功能,你必须升级你的 <br>
bootloader。LILO 请升级 为 0.19 (lilo.19.tar.gz),loadlin 请升级到 1.6 <br>
(lodlin16.tgz)。如果你使 用的是罕见的 SysLinux 或是 <br>
etherboot,最新版本分别为 1.3 和 2.0。 <br>
C Library <br>
=========== <br>
Linux 最新的稳定版 C library 是 5.2.18,如果你从 5.0.9 之前版本升级 <br>
为这个版本,请一定务必必须阅读 release.libc-5.2.18,因为 make 及一些重 <br>
要工具可能因升级而无法正常工作。 <br>
目前正在 beta 的版本则是 5.3.12。这版本有些重大改变,一些有□的程序 <br>
可能会遭遇麻烦 (以前的版本用 free() 来处理不是由 malloc() <br>
传回的指标没有 问题,但是新版的 library 就有麻烦了),因此请先仔细阅读 <br>
release.libc-5.3.9! 新版的 library 更正了 dirent 的 bug -- 如果有 <br>
define USE_GNU 的话,将会错将 d->reclen 定义为 d->namlen,但是有些 GNU <br>
package 却是以错为正,例如 GNU make 3.xx。要更正这项错误你必须 path <br>
後重新 compile。(release.libc-5.3.9 中有 make 的 patch <br>
以及何处可取得编译好的 binary) <br>
另外,libc-5.3.x 有保全的漏洞,而 libc-5.3.12 已经补好这个洞。因此如果 <br>
你要使用测试版的 library,请记得使用 5.3.12 版。 <br>
如果你遇到以下的错误讯息: <br>
`fcntl_setlk() called by process 123 with broken flock() emulation' <br>
你也必须升级到 5.2.18 版。1.3.x 版 kernel 增加了 BSD 形式的 flock 系 <br>
统呼叫,如果你使用旧版的 library <br>
就会有这个错误讯息。不过这讯息一点影响 <br>
也没有,因此你可以忽略不管。如果你觉得这个讯息很烦,那就升级你的 <br>
library 吧。如果你又烦又懒,那直接把 kernel fs/locks.c 里面的 <br>
printk(KERN_WARNING "fcntl_setlk() called by process %d with broken <br>
flock() <br>
emulation", current->pid); <br>
去掉然後重新 compile。如果你是使用 aout 格式,你可以升级成 libc-4.7.6 <br>
来解决这个问题。 <br>
Termcap Library <br>
================= <br>
目前 Termcap 的版本是 2.0.8。如果你升级成这个版本,请阅读 README, <br>
取得有关 tegtent 函式更改的重要讯息。 <br>
Procps Utility <br>
================ <br>
kernel 1.3.x 的 /proc 结构已经改了,因此你必须将 proc 升级为 0.99a 版 <br>
而在最新的 kernel 中,档案结构又再次更改,但是 procps <br>
还没有个正式升级版 反应这个改变,所以还是使用 0.99a <br>
吧。你也可以找找流传在外解决让 0.99a 可以 和 kernel 1.3.94 相容的 <br>
patch。 <br>
Kernel Modules <br>
================ <br>
kernel 1.3.x 版几乎已经全部模组化了,也加入了 kerneld。想使用个功能, <br>
你必须更新到最新版的 modules。目前最新的稳定版 modules 是 1.3.57 <br>
(注), beta 版则到了 1.3.69k。这些都可以在你抓 kernel <br>
的同一地点取得,或是到 它的 <br>
Homepage:http://www.pi.se/blox/modules/index.html。注意:如果你载入 <br>
modules 会出现以下的讯息: <br>
gcc2_compiled, undefined Failed to load module! <br>
The symbols fromkernel 1.3.foo don't match 1.3.foo <br>
那就是该换到 1.3.69 的时候了。会出现这个错误是因为你使用最新版的 <br>
binutil,因此大部份的人还是停留在 1.3.57 即可。 <br>
另外一点要注意的,你不能同时把 a.out 和 ELF 支援编译成 modules,否则 <br>
当你为了能够使用 insmod 而用 insmod 来载入 a.out/ELF modules 时会有 <br>
Catch/22 状况发生 (这是啥啊?)如果你的系统主要是 ELF 而你偶尔会需要用到 <br>
a.out,你可以把 a.out 支援编译为 modules,否则你最好把它直接放入 <br>
kernel 之中。如果你还没进入 ELF 的世纪 (不会吧..),在 compiler kernel <br>
时可以 直接把 ELF 支援去掉。另外的另外,在开机就会 mount 上来的 <br>
partition 的 FS 、device driver 记得要 compiler 进 <br>
kernel,不能把它弄成 modules。请不要 夸张到为了完全模组化而忘了把 <br>
ext2fs 和 IDE dirver compiler 进 kernel 里... <br>
*注:在 kernel 目录下已经可以看到 2.0.0 版的 modules 了 <br>
PPP driver <br>
============ <br>
你的 pppd 必须是 2.2.0 版或更新。最新的稳定版本是 2.2.0f 可以在 <br>
ftp://sunsite.unc.edu/pub/Linux/system/Network/serial/ppp/ppp-2.2.0f.tar.gz <br>
取得。 <br>
Named pipes (SysVinit) <br>
======================== <br>
Linux 处理 named pipes 的方式改变了 (从 SunOS 方式变成 "正确" 的方式) <br>
,这使得某些程序因此而失效了,最值得注意的就是 SysVinit。如果你的 <br>
SysVinit 是 2.59 或更早的版本,在 shutdown <br>
时虽然可以正常工作,但是你会看到这样 的错误讯息:INIT: error reading <br>
initrequest 或是这些字不停的在卷动... <br>
如果你使用 NCSA 的 httpd,你必须把 daemon 的 pre-spawn 设为 0,不过我 <br>
建议你直接换成 Apache 的 httpd。 <br>
新的 named pipes 方式也让 Hylafax 发生问题,如果你有 Hylafax daemon, <br>
它会不断用掉 CPU time 直到系统没有 idle time <br>
为止。要修正这个错误,修改 Hylafax 的 port.h,把 <br>
CONFIG_OPENFIFO="O_RDONLY" <br>
改成 <br>
CONFIG_OPENFIFO="O_RDWR" <br>
类似的处理方式 (把 named pipe 开启方式从 read only 改成 read/write) <br>
可以解决因这个改变引起的问题。 <br>
File Locking (Sendmail) <br>
========================= <br>
从 pre2.0.6 (1.99.6) 以後,file locking 方式不能够混用,例如:你不能 <br>
同时使用 flock 和 fcntl 来锁住档案。请参阅 Documentation/lock.txt <br>
取得更 详细资料。这个对较旧版的 sendmail 造成影响 (注)。如果你发现 <br>
sendmail 抱怨 无法 lock aliases.dir (或其他档案),你必须更新 sendmail <br>
到 8.7.x 版。最 新版的 sendmail 可以在 <br>
ftp://ftp.cs.berkeley.edu/ucb/src/sendmail/sendmail.8.7.5.tar.gz <br>
取得。 <br>
*注:这个问题在 elm 2.4 pl 25 之中也会发生。 <br>
Uugetty <br>
========= <br>
旧版的 uugettys 在新 kernel 里会有问题,请更新之。 <br>
ftp://sunsite.unc.edu/pub/Linux/system/Serial/getty_ps-2.0.7h.tar.gz <br>
Kbd <br>
===== <br>
使用非 ASCII 的字元/字型的人,应该升级成: <br>
ftp.funet.fi:/pub/OS/Linux/PEOPLE/Linus/kbd-0.91.tar.gz <br>
*注:这个我也不太了解,不过我没升级好像也没事.... <br>
Console <br>
========= <br>
Linux 的 console type (虽然知道是什麽东西可是不会翻) 改变了。如果 <br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -