📄 00000001.htm
字号:
<HTML><HEAD> <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人: <A HREF="mailto:Dinosaur.bbs@bbs.ee.nthu.edu.tw">Dinosaur.bbs@bbs.ee.nthu.edu.tw</A> (无责任恐龙), 信区: Linux <BR>标 题: kernel Change.doc 中文翻译 <BR>发信站: ☆清华电机☆ (Mon Jun 17 23:39:39 1996) <BR>转信站: Interaction!news.sinica!news.cc.nctu!thccx4!news.ee.nthu!star <BR> <BR> 简介 <BR>****** <BR> <BR> 这份文件包括一些 Linux 下重要 package 的最新版的资讯,希望能帮助初次 <BR> 接触、升级为 kernel 1.3.xx 的使用者能成功无误的使用新的 kernel。希望 (虽 <BR> 然我知道一定会希望落空的...) 以後不会再看到有人问:『为什麽我的 make 不 <BR> 能用了?』『怎麽 ps aux 每次都出错?』..... 这份文件理论上应该是 Linux <BR> kernel Documentation/Changes 的翻译,不过能力有限,如果你发现有看不懂的 <BR> 地方,建议还是翻翻原文吧.... :) <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>********** <BR> <BR> Network errors <BR>================ <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> <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> <BR> Booting Changes <BR>================= <BR> <BR> kernel 1.3.xx 的 boot 程序做了些改善,现在你可以载入较大的 kernel <BR> (bzImage),另外也可以直接由 loader 来启动 ramdisk (initrd)。有关 initrd <BR> 的部份请参阅 Documentation/initrd.txt。如果想编译较大的 kernel,请使用 <BR> 下列的 make 参数:bzImage, bzlilo, bzdisk (各相当於 zImage, zlilo 和 <BR> zdisk)。如果你想使用这项新功能,你必须升级你的 bootloader。LILO 请升级 <BR> 为 0.19 (lilo.19.tar.gz),loadlin 请升级到 1.6 (lodlin16.tgz)。如果你使 <BR> 用的是罕见的 SysLinux 或是 etherboot,最新版本分别为 1.3 和 2.0。 <BR> <BR> C Library <BR>=========== <BR> <BR> Linux 最新的稳定版 C library 是 5.2.18,如果你从 5.0.9 之前版本升级 <BR> 为这个版本,请一定务必必须阅读 release.libc-5.2.18,因为 make 及一些重 <BR> 要工具可能因升级而无法正常工作。 <BR> <BR> 目前正在 beta 的版本则是 5.3.12。这版本有些重大改变,一些有□的程式 <BR> 可能会遭遇麻烦 (以前的版本用 free() 来处理不是由 malloc() 传回的指标没有 <BR> 问题,但是新版的 library 就有麻烦了),因此请先仔细阅读 release.libc-5.3.9! <BR> 新版的 library 更正了 dirent 的 bug -- 如果有 define USE_GNU 的话,将会错将 <BR> d->reclen 定义为 d->namlen,但是有些 GNU package 却是以错为正,例如 GNU <BR> make 3.xx。要更正这项错误你必须 path 後重新 compile。(release.libc-5.3.9 <BR> 中有 make 的 patch 以及何处可取得编译好的 binary) <BR> <BR> 另外,libc-5.3.x 有保全的漏洞,而 libc-5.3.12 已经补好这个洞。因此如果 <BR> 你要使用测试版的 library,请记得使用 5.3.12 版。 <BR> <BR> 如果你遇到以下的错误讯息: <BR> <BR> `fcntl_setlk() called by process 123 with broken flock() emulation' <BR> <BR> 你也必须升级到 5.2.18 版。1.3.x 版 kernel 增加了 BSD 形式的 flock 系 <BR> 统呼叫,如果你使用旧版的 library 就会有这个错误讯息。不过这讯息一点影响 <BR> 也没有,因此你可以忽略不管。如果你觉得这个讯息很烦,那就升级你的 library <BR> 吧。如果你又烦又懒,那直接把 kernel fs/locks.c 里面的 <BR> <BR> printk(KERN_WARNING <BR> "fcntl_setlk() called by process %d with broken flock() <BR> emulation\n", current->pid); <BR> <BR> 去掉然後重新 compile。如果你是使用 aout 格式,你可以升级成 libc-4.7.6 <BR> 来解决这个问题。 <BR> <BR> Termcap Library <BR>================= <BR> <BR> 目前 Termcap 的版本是 2.0.8。如果你升级成这个版本,请阅读 README, <BR> 取得有关 tegtent 函式更改的重要讯息。 <BR> <BR> Procps Utility <BR>================ <BR> <BR> kernel 1.3.x 的 /proc 结构已经改了,因此你必须将 proc 升级为 0.99a 版 <BR> 而在最新的 kernel 中,档案结构又再次更改,但是 procps 还没有个正式升级版 <BR> 反应这个改变,所以还是使用 0.99a 吧。你也可以找找流传在外解决让 0.99a 可以 <BR> 和 kernel 1.3.94 相容的 patch。 <BR> <BR> Kernel Modules <BR>================ <BR> <BR> kernel 1.3.x 版几乎已经全部模组化了,也加入了 kerneld。想使用个功能, <BR> 你必须更新到最新版的 modules。目前最新的稳定版 modules 是 1.3.57 (注), <BR> beta 版则到了 1.3.69k。这些都可以在你抓 kernel 的同一地点取得,或是到 <BR> 它的 Homepage:<A HREF="http://www.pi.se/blox/modules/index.html。注意:如果你载入">http://www.pi.se/blox/modules/index.html。注意:如果你载入</A> <BR> modules 会出现以下的讯息: <BR> <BR> gcc2_compiled, undefined Failed to load module! <BR> The symbols fromkernel 1.3.foo don't match 1.3.foo <BR> <BR> 那就是该换到 1.3.69 的时候了。会出现这个错误是因为你使用最新版的 <BR> binutil,因此大部份的人还是停留在 1.3.57 即可。 <BR> <BR> 另外一点要注意的,你不能同时把 a.out 和 ELF 支援编译成 modules,否则 <BR> 当你为了能够使用 insmod 而用 insmod 来载入 a.out/ELF modules 时会有 <BR> Catch/22 状况发生 (这是啥啊?)如果你的系统主要是 ELF 而你偶尔会需要用到 <BR> a.out,你可以把 a.out 支援编译为 modules,否则你最好把它直接放入 kernel <BR> 之中。如果你还没进入 ELF 的世纪 (不会吧..),在 compiler kernel 时可以 <BR> 直接把 ELF 支援去掉。另外的另外,在开机就会 mount 上来的 partition 的 FS <BR> 、device driver 记得要 compiler 进 kernel,不能把它弄成 modules。请不要 <BR> 夸张到为了完全模组化而忘了把 ext2fs 和 IDE dirver compiler 进 kernel 里... <BR> <BR> <BR>*注:在 kernel 目录下已经可以看到 2.0.0 版的 modules 了 <BR> <BR> PPP driver <BR>============ <BR> <BR> 你的 pppd 必须是 2.2.0 版或更新。最新的稳定版本是 2.2.0f 可以在 <BR> <BR><A HREF="ftp://sunsite.unc.edu/pub/Linux/system/Network/serial/ppp/ppp-2.2.0f.tar.gz">ftp://sunsite.unc.edu/pub/Linux/system/Network/serial/ppp/ppp-2.2.0f.tar.gz</A> <BR> <BR> 取得。 <BR> <BR> Named pipes (SysVinit) <BR>======================== <BR> <BR> Linux 处理 named pipes 的方式改变了 (从 SunOS 方式变成 "正确" 的方式) <BR> ,这使得某些程式因此而失效了,最值得注意的就是 SysVinit。如果你的 SysVinit <BR> 是 2.59 或更早的版本,在 shutdown 时虽然可以正常工作,但是你会看到这样 <BR> 的错误讯息:INIT: error reading initrequest 或是这些字不停的在卷动... <BR> <BR> 如果你使用 NCSA 的 httpd,你必须把 daemon 的 pre-spawn 设为 0,不过我 <BR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -