譯註: 翻譯誤謬難免, 若有任何意見或指正, 請和 jesse[at]debian.org.tw 聯絡。
The post-halloween document. v0.49
(aka, 2.6 - what to expect)
Dave Jones
(Updated as of 2.6.3)
這份文件列出在 Linux Kernel 2.6 中的新功能、您在使用它時可能會遇到的
問題、並指出一些可以拿來試試的新特色。
提醒您, 文中提到的『請和 foo@bar.com 連繫』同時也意指您該 cc 一份到
linux-kernel@vger.kernel.org。
您可以在下列網址找到本文件的最新版本:
http://www.codemonkey.org.uk/docs/post-halloween-2.6.txt
感謝許多朋友(多到我無法一一列出)提供相當有價值的意見及建議。
這份文件主要針對 x86 平台, 不過極大部份文中提到的特色在所有的平台上
都適用。
各種語言版本:
Spanish - http://www.terra.es/personal/diegocg/post-halloween-2.6.es.txt
German - http://www.kubieziel.de/computer/halloween-german.html
Polish - http://soltysiak.com/linux/post-halloween-2.6.pl.html
pt_BR - http://www.maluco.com.br/docs/post-halloween-2.6-pt_BR.txt
http://people.nl.linux.org/~thiago/docs/post-halloween-2.6-pt_BR.txt
Applying patches.
~~~~~~~~~~~~~~~~~
- 在 2.4 和之前的 kernel 中, 套用 patches 的建議方式是像這樣的...
gzip -cd patchXX.gz | patch -p0
不過在 2.6 中, Linus 在 diffs 中多加了一層路徑, 因此, 在待 patch
的目錄中套用 patch 時, 必須改用 -p1。
Reporting bugs.
~~~~~~~~~~~~~~~
Kernel 中大部份的子系統都有他們自己的郵件論壇(mailing list)。你可以
將各子系統相關的問題回報到這些郵件論壇中。如果你不確定該送到哪一個
郵件論壇, 請將你的問題送到 linux-kernel@vger.kernel.org。
ACPI - acpi-devel@lists.sourceforge.net
Bluetooth - bluez-devel@lists.sourceforge.net
DVB - linux-dvb@linuxtv.org
Ext2 - ext2-devel@lists.sourceforge.net
Firewire - linux1394-devel@lists.sourceforge.net
SCSI - linux-scsi@vger.kernel.org
USB - linux-usb-users@lists.sourceforge.net
XFS - linux-xfs@oss.sgi.com
Known gotchas.
~~~~~~~~~~~~~~
一再地有人重覆詢問這些已知的 bugs。這裡是相關的處理方式。
- 在 kernel 解壓縮後, 畫面上就沒有任何輸出了?
請確定您的 .config 中
CONFIG_INPUT=y
CONFIG_VT=y
CONFIG_VGA_CONSOLE=y
CONFIG_VT_CONSOLE=y
很多人用 make oldconfig 套用他們 2.4 的 .config 時會碰到這樣的問題,
這常是因為 CONFIG_VT 沒有設成 y。
- 有些人會遇到另一個 bug: NICs 收不到封包 (舉例來說, 儘管 server 有
送出 DHCP release, 但 NIC 就是沒收到)。請將您開機的參數加上『noapic』
、『acpi=off』, 或是同時加上這兩個。
- (也許和上一個問題有關連) VIA APIC routing 現在無法正常運作。請加上
『noapic』的開機參數。
- 無法載入模組? 請更新您的工具(請見下文 modules 的部份)。
- depmod 抱怨 Unresolved symbols? 在 $PATH 中, modutils 的 depmod 是
不是排在 module-init-tools 的 depmod 之前呢? (身為 $USER 和 $ROOT
時, $PATH 有可能不同)
Regressions.
~~~~~~~~~~~~
(這些是現在還有問題的部份)
- hptraid/promise drivers 針對私有 RAID 格式的部份現在是壞的, 可能以後
會轉為使用 device-mapper。
- 一些檔案系統還需要花一些心力 (Intermezzo、UFS、HFS、HPFS..)
- 目前不支援 UMSDOS fs, 這個部份等待重新撰寫。
- EFS (has a blocksize problem, depending on the device that the
filesystem is being mounted on)
- 部份 drivers 因為尚未改用新的 APIs, 目前無法編譯。
- 有些人在使用 rpm 時會碰到問題, 特別是 Red Hat 9 的使用者。這是一個已知
的 rpm bug。
解決方式: 在執行 rpm 前, 先執行『export LD_ASSUME_KERNEL=2.2.5』。
目前這被認定是 db4 和 O_DIRECT 間搭配的問題。
必需從 2.4 移植過來的部份
~~~~~~~~~~~~~~~~~~~~~~~~~
- HFSPlus
- SuperH 64
已經移除的功能
~~~~~~~~~~~~~~
- khttpd 被拿掉了。
- 不再支援舊的 Direct Rendering Manager (DRM) (For XFree86 4.0)。請更新至
XFree86 4.1.0 以後的版本。
- 不再支援 LVM1。請見下面 Device-mapper 的部份。
- System call table 不再 exported。之前依賴這個的模組現在都無法運作。
- 支援 soundmodem hamradio 的部份被移除。這個部份以 userspace 的方案取代。
http://www.baycom.org/~tom/ham/soundmodem
- 不再支援直接從軟碟開機。請改用 syslinux 一類的 boot loader。『make bzdisk』
依然可用 (現在它也是使用 syslinux)。
- 從 2.1.90pre2 起, callout tty devices (/dev/cua) 就被宣告為 deprecated。
現在這個部份正式被拿掉了。
Deprecated/obsolete features.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- devfs will be obsoleted in favour of udev (http://www.kernel.org/pub/linux/utils/kernel/hotplug/)
- boot time root= parsing changed.
ramdisks are now ram instead of rd and cm206 is cm206cd (instead of
cm206).
Additionally, cciss driver needs the numeric device ID passed instead of
the device name.
- usbdevfs will be going away in 2.7. The same filesystem can
be mounted as 'usbfs' in recent 2.4 kernels, and in 2.5.52
and above, which is what the filesystem will furthermore be
known as.
- elvtune is deprecated (as are the ioctl's it used).
Instead, the io scheduler tunables are exported in sysfs (see below)
in the /sys/block//queue/iosched directory.
Jens wrote a document explaining the tunables of the new scheduler at
http://www.lib.uaa.alaska.edu/linux-kernel/archive/2002-Week-44/att-deadline-iosched.txt
- Using sysctls by numeric values is deprecated, and will go away
in the next development series.
Modules.
~~~~~~~~
- 重新撰寫 kernel 中的 module loader。
- 你得改用這裡的模組相關工具
http://www.kernel.org/pub/linux/kernel/people/rusty/modules/
- 該網頁也提供了 RPM 格式, 並向前相容的模組工具組。
- Debian sarge/sid 或是 Conectiva snapshot 的使用者只需
『apt-get install module-init-tools』
- kernel 現在會釋放(free)模組中 __init 和 __initdata 的部份。
- For Red Hat users, there's another pitfall in "/etc/rc.sysinit".
During startup, the script sets up the binary used to dynamically load
modules stored at "/proc/sys/kernel/modprobe". The initscript looks
for "/proc/ksyms", but since it doesn't exist in 2.6 kernels, the
binary used is "/sbin/true" instead.
This, eventually, will keep modules from working. Red Hat users will
have to patch the "/etc/rc.sysinit" script to set
"/proc/sys/kernel/modprobe" to "/sbin/modprobe", even
when "/proc/ksyms" doesn't exist.
- 模組的檔名尾由 .o 改為 .ko。
- 一些版本(較舊)的『mkinitrd』不會搜尋檔名尾為 .ko 的模組。如果你碰到
這樣的問題, 請更新 mkinitrd。
Kernel build system.
~~~~~~~~~~~~~~~~~~~~
- The build system is much improved compared to 2.4.
You should notice quicker builds, and less spontaneous rebuilds
of files on subsequent builds from already built trees.
- 新的圖形介面設定工具。
『make xconfig』現在需要 qt 函式庫才能運作。
『make gconfig』則使用 gtk 函式庫。
- Make menuconfig/oldconfig has no user-visible changes other than speed,
whilst numerous improvements have been made.
- Several new debug targets exist: 'allyesconfig' 'allnoconfig' 'allmodconfig'.
- Note: The new configuration system is not CML2 related.
- Also note: Whilst some ideas were taken from it, Keith Owens'
kbuild-2.5 project was not integrated.
- "make" is now the preferred command, without a target; it does
and modules.
- "make -jN" is now the preferred parallel-make execution.
Do not bother to provide "MAKE=xxx"
- The build is now much less verbose. If you want to see exactly what's
going on, try "make V=1" or set KBUILD_VERBOSE=1 in your environment.
- 'make kernel/mm.o' will build the named file, provided a
corresponding source exists. This also works for (non-composite)
modules. (FIXME: broken for modules right now?)
- 『make kernel/』會編譯某個子目錄及其下目錄中的所有檔案。
- 完全不需要『make dep』。
- 'make help' provides a list of typical targets, including debugging targets.
- You can now build in a separate tree from the source by doing
make O=builddir
IO subsystem.
~~~~~~~~~~~~~
- 大量改寫了 block 及 memory management layers, 相較於 2.4, 你應該可以
明顯地感受到 throughput 的增加。
- 關於這方面的任何意見請回報給 Jens Axboe 和 Andrew
Morton 。
- 有兩個不同的 IO elevator 可供選擇。預設是使用 anticipatory IO
scheduler。若想選用 deadline scheduler, 請在開機的 kernel command
line 中加上『elevator=deadline』。
- For some workloads the anticipatory scheduler is around 10% slower
than deadline. Most notably, database workloads which seek all over the
disk performing reads and synchronous writes. Database folks will likely
want to boot with elevator=deadline to get that last bit of performance back.
- Assorted changes throughout the block layer meant various block
device drivers had a large scale cleanup whilst being updated to
newer APIs.
- The size and alignment of O_DIRECT file IO requests now matches that
of the device, not the filesystem. Typically this means that you
can perform O_DIRECT IO with 512-byte granularity rather than 4k.
But if you rely upon this, your application will not work on 2.4 kernels
and will not work on some devices.
block device size support.
~~~~~~~~~~~~~~~~~~~~~~~~~~
- 感謝 Peter Chubb 的努力, 現在 block devices 在 32-bit 的平台上可以
支援到 16TB, 在 64-bit 平台上則是支援到 8EB。
- To use the new BLKGETSZ64 ioctls, you'll need updated file-utils.
(Currently only jfsutils 1.0.20 has this change, patches for other
filesystems are still pending merging)
- The old 'struct statfs' is not able to describe large devices - the
statfs() system call will now return -EOVERFLOW for such devices.
A new system call called statfs64() with a new structure has been added
to support large devices. It it unknown at time of writing how many
userspace utilities have been converted to take advantage of this
syscall when available.
POSIX ACLs & Extended attributes.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Userspace 工具可以在 http://acl.bestbits.at 取得。
VM Changes.
~~~~~~~~~~~
- 不再支援 version 0 的 swap partitions (反正現在都在用 v1 了, 如果你
不確定的話, 請重新 mkswap 一次)。
Linux 2.0.x 使用 v0 swap space, Linux v2.1.117 起支援 v1。mkswap(8)
可以將 swap space 格式化成這兩者之一。
- 納入 Rik van Riel 的 rmap vm 中的 『reverse mappings』。VM 在高負載
下的表現應該會比較好。
- VM 的任何誤動作請回報至 linux-mm@kvack.org。
- The VM explicitly checks for sparse swapfiles, and aborts if one is found.
- /proc/sys/vm/swappiness defines the kernel's preference for pagecache over
mapped memory. Setting it to 100 (percent) makes it treat both types of
memory equally. Setting it to zero makes the kernel very much prefer to
reclaim plain pagecache rather than mapped-into-pagetables memory.
- The bdflush() syscall is now officially deprecated. The syscall
does nothing, and prints a stern warning to users. The functionality
is replaced by the pdflush daemons.
- 由於一些改變, 使用 swap files 的速度應該和 swap partitions 差不多。
- 在 2.4 中可以支援到 64 個 swap files。然而在 2.6 中, 數量減少為 32。
和 2.4 相同, 這些檔案可以高達 64GB。不過你需要有較新的 util-linux,
才有支援 >2GB 的 mkswap。
Kernel preemption.
~~~~~~~~~~~~~~~~~~
- 被熱烈討論的 preemption patched 被納入 2.6 了。
加入這個後, 你可以發現(特別是一些多媒體的軟體)延遲(latencies)大幅降低。
- 要注意的是, 還是有些該暫時 disable preemption 的地方我們沒有 disable
它。這些情況都發生在使用 per-CPU data 時。
- 如果你在 syslog 中看到『xxx exited with preempt count=n』, 別慌張, 這
並非嚴重錯誤(non fatal), 不過這表示有些地方 unclean。
(有人取得 lock, 但是卻沒有 unlock 就 exit 了)
- 如果你在 kernel preemption enabled 的情形下發現高延遲的特定 code path,
請向 Andrew Morton 和 Robert Love 。
回報的內容應該是像這樣的『我的 xyz 程式的 latency 一般是 yyy, 但是如
果我做 foo 的話, latency 會達到 xxx ms 之譜』, 其中 foo 是像『刪除很
大的目錄』這一類的動作。
Process scheduler improvements.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- 另外一個常被提及的特點。Ingo Molnar 改寫 process scheduler, 讓它使用
O(1) algorithm。使用時, 在低負載的情形下你不會感覺和以前有什麼不同,
但在有大量的 processes 時, scalability 會有所提升, 特別是在大型的
SMP 系統上。
- Scheduler 現在可以分辨 Hyperthreading SMP, 並且會把 processes 分散
到不同的 physical CPU 上, 而非只是單純地在 logical 的 CPU 間分配。
- Robert Love 寫了一些改變 scheduler 特性的工具程式 (binding
processes to CPUs 等等)。你可以在 http://tech9.net/rml/schedutils
取得這些工具。
- sched_yield() 的特性有很大的改變。使用這個 system call 的 task
現在有可能會 sleep 相當長一段時間。不是真的希望放掉 processor
一段時間的 tasks 最好不要大量使用這個 function。不過, 很不幸的,
一些 GUI 程式 (像 Open Office) 非常大量地使用這個 function,
所以在負載比較高時, 效能就變得很糟糕。看起來這個 2.6 的新特性
已經做得相當不錯, 不過一些 user-space 的軟體需要修正一下。
- 上述的特性一樣適用於在 kernel 中使用 yield() 的情況。
- 2.6 新增管理 task 和處理器間相依關係(affinity)的 system calls:
sched_getaffinity() 和 sched_setaffinity()
- 相關問題請回報給 mingo@redhat.com 和 rml@tech9.net。
- Debian 的使用者如果遇到 mp3 播放跳音、滑鼠移動不順, 可以試著
把 X server renice 成 -10。
你可以用『dpkg-reconfigure xserver-common』來改變預設的 priority,
或者, 如果你不是用 debconf 管理 /etc/X11/Xwrapper.config 的話, 直
接編輯這個檔案。
- 多處理器環境下的 balacing of IRQs 可以用 irqbalance
(http://people.redhat.com/arjanv/irqbalance/) 這個程式來處理。
- David Mosberger 維護了一個網頁, 列出 O(1) scheduler 一些現存的『已知
問題(known gotchas)』, 請見 http://www.hpl.hp.com/research/linux/kernel/o1.php
PCI.
~~~~
- 新增支援 PCI domain。對大部份的人來說, 這只不過是所有 PCI 插槽的名字前面多
了『0000:』而已。但對擁有較大型伺服器的人來說, 這意味著他們現在可以存取
所有的 PCI 裝置。
- 加入更多的熱插拔(hotplug)驅動程式, 其中包含一個虛擬的(fake) PCI 熱插拔
驅動程式, 讓沒有這一類硬體設備的人也可以測試熱插拔功能。
Random.
~~~~~~~
- /dev/hwrandom 支援像新的 VIA Cyrix CPUs 上的 HW RNG 一類的新硬體
(這個現在也 backport 到 2.4 了)
- rng-tools 可以在 http://sourceforge.net/projects/gkernel 找到。
Fast userspace mutexes (Futexes).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Rusty Russell added functionality that allows userspace to have
fast mutexes that only use syscalls when there is contention. Used by
NPTL.
- Additional information on futexes can be found in Ulrich Dreppers
paper on the subject at http://people.redhat.com/drepper/futex.pdf
- Bert Hubert has written some documentation on this functionality
at http://ds9a.nl/futex-manpages
epoll
~~~~~
Davide Libenzi wrote an event based poll replacement that got
included in 2.6. More info available at
http://www.xmailserver.org/linux-patches/nio-improve.html
http://lwn.net/Articles/13587/
Threading improvements.
~~~~~~~~~~~~~~~~~~~~~~~
- Ingo Molnar 花了不少心力在改進 2.6 的 threading。下面列出部份的改進:
- Generic pid allocator (arbitrary number of PIDs with no slowdown,
unified pidhash).
- Thread Local Storage syscalls
- sys_clone() enhancements (CLONE_SETTLS, CLONE_PARENT_SETTID, CLONE_SETTID,
CLONE_CLEARTID, CLONE_DETACHED)
- POSIX thread signals stuff (atomic signals, shared signals, etc.)
- Per-CPU GDT
- Threaded coredumping support
- sys_exit() speedups (O(1) exit)
- Generic, improved futexes, vcache
- New, threading related ptrace features
- exit/fork task cache
- /proc updates for threading
- API changes for threading.
- Users should notice a significant speedup in basic thread operations.
This is true to a lesser extent even for old-threading userspace libraries
such as LinuxThreads.
- Regressions should go to Ingo Molnar and
phil-list@redhat.com. Regressions could happen in the area of signal
handling and related threading semantics, plus coredumping.
- Native Posix Threading Library (NPTL).
Ulrich Drepper worked closely with Ingo on the threading enhancements, and
developed a 1:1 model threading library. You can find out more about NPTL at
http://people.redhat.com/drepper/nptl-design.pdf
Enhanced coredumping.
~~~~~~~~~~~~~~~~~~~~~
- 2.6 offers you the ability to configure the way core files are
named through a /proc/sys/kernel/core_pattern file.
You can use various format identifiers in this name to affect
how the core dump is named.
%p - insert pid into filename
%u - insert current uid into filename
%g - insert current gid into filename
%s - insert signal that caused the coredump into the filename
%t - insert UNIX time that the coredump occurred into filename
%h - insert hostname where the coredump happened into filename
%e - insert coredumping executable name into filename
You should ensure that the string does not exceed 64 bytes.
- Multithreaded processes 現在也能 dump core 了。
Input layer.
~~~~~~~~~~~~
- Possibly the most visible change to the end user. If misconfigured,
you'll find that your keyboard/mouse/other input device will no longer work.
2.6 offers a much more flexible interface to devices such as keyboards.
- The downside is more confusing options.
In the "Input device support" menu, be sure to enable at least the following.
--- Input I/O drivers
< > Serial i/o support
< > i8042 PC Keyboard controller
[ ] Keyboards
[ ] Mice
(Also choose the relevant keyboard/mouse from the list)
- If you find your keyboard/mouse still don't work, edit the file
drivers/input/serio/i8042.c, and replace the #undef DEBUG
with a #define DEBUG, recompile and reinstall.
When you boot, you should now see a lot more debugging information.
Forward this information to Vojtech Pavlik
- If you use a KVM switcher, and experience problems, booting with the boot
time argument 'psmouse_noext' should fix your problems.
- Users of multimedia keys without X will see changes in how the kernel
handles those keys. People who customize keymaps or keycodes in 2.4
may need to make some changes in 2.6
- Users wanting support for the PC speaker need to enable CONFIG_INPUT_PCSPKR,
or you won't get a single beep.
- Synaptics touchpad users may be interested to check out
http://w1.894.telia.com/~u89404340/touchpad/
- In 2.4 users of Japanese keyboards were able to type '|' or
'\' characters without loading any custom keymap on the
console. With the keymap in 2.6, this is not possible
anymore. People with these keyboards have to load a keymap
with loadkeys rebuilt from the source, since loadkeys in some
vendor distributions cannot load keycodes larger than 127.
There is a patch to fix this, but it has not been integrated
(http://tinyurl.com/t75a).
- A FAQ on common problems with the new input layer is available
at http://lwn.net/Articles/69107/
PnP layer.
~~~~~~~~~~
- 在 2.6 kernel 中, 對像早期 ISAPnP 卡一類的隨插即用裝置的支援有
很大的改進。新的程式的作法類似處理 PCI 裝置的方式 (probe、
remove、callbacks 等等), 並且納入存取 PnP BIOS 的程式。
- 和 plug & play 功能相關的回報請送給 Adam Belay 。
ALSA.
~~~~~
- The advanced linux sound architecture 被納入 2.6 中。
相較於舊有的 OSS drivers, 它提供相當大的功能提升, 不過它需要
新的 userspace 工具。
- 許多 distros 已經支援 ALSA 好一陣子了, 所以你可能已經有所需
的工具。如果沒有的話, 你可以在 http://www.alsa-project.org/
取得。
- ALSA 可以使用 snd_pcm_oss/snd_pcm_mixer 模組模擬 OSS 介面。
如果你的音效卡沒有發出任何聲音的話, 你得執行 alsamixer 來
unmute /dev/mixer 看不到的 channels。
- OSS drivers 依然存在, 且可以正常運作。不過 2.4 中對 OSS drivers
的諸多更新/修正並沒有被納入 2.6 中, 而且當 2.6 正式發行時, OSS
drivers 是否還會存在現在還不是很清楚。長遠的目標是希望能讓大家
轉移到(更好的) ALSA 上面。
AGP.
~~~~
- The agpgart driver got a long overdue cleanup which involved
splitting it into an agpgart core, and per-chipset drivers.
You may need to adjust your modules configuration to autoload
the chipset drivers on loading the agpgart module.
- Generic AGP 3.0 support is now included.
DRI.
~~~~
- Direct rendering in 2.6 hasn't had much (if any?) testing on
older versions of XFree86. Feedback on whether 4.1 works would
be useful.
Faster system calls.
~~~~~~~~~~~~~~~~~~~~
- Systems that support the SYSENTER extension (Basically Intel Pentium-II
and above, and AMD Athlons) now have a faster method of making the
transition from userspace to kernelspace when a syscall is performed.
- Pentium Pro also has SYSENTER, but due to errata, is unusable.
- Without an updated glibc, this will not be noticable.
- VMWare 4 users may get crashes due to this.
Zwane Mwaikambo wrote a patch for a "nosysenter" option which is worth
googling for if there isn't a vmware update available.
- Regressions to torvalds@osdl.org and libc-alpha@sources.redhat.com
procps.
~~~~~~~
- The 2.6 /proc filesystems changed some statistics, which confuse older
versions of procps. Rik van Riel and Robert Love have been maintaining a
version of procps during the development of 2.6 which tracks changes to
/proc which you can find at http://tech9.net/rml/procps/
- Alternatively, the procps by Albert Cahalan now supports the altered formats
since v3.0.5 -- http://procps.sf.net/
- The /proc/meminfo format changed slightly which also broke gtop in strange
ways. Likely this also broke some of the KDE/GNOME panel applets.
Framebuffer layer.
~~~~~~~~~~~~~~~~~~
- James Simmons has reworked the framebuffer/console layer considerably for
2.6. Support for some cards is still lagging a little, but it should be
functionally no different than previous incarnations.
- boot time arguments may have changed depending on your driver.
an example of the change is..
append = "video=radeon:1024x768-24@100"
needs to become..
append = "video=radeonfb:1024x768-24@100"
- Current userspace tools (fbset for eg) are not yet updated,
and won't function as expected.
- The VESA framebuffer now enables MTRRs for the framebuffer memory range during
initialisation (Note: PCI cards only).
If you notice screen corruption, please report this, along with an lspci output,
so your card can be blacklisted.
- Any problems should go to
IDE.
~~~~
- The IDE code rewrite was subject to much criticism in early 2.5.x, which
put off a lot of people from testing. This work was then subsequently
dropped, and reverted back to a 2.4.18 IDE status.
Since then additional work has occurred, but not to the extent
of the first cleanup attempts.
- Known problems with the current IDE code.
o Simplex IDE devices (eg Ali15x3) are missing DMA sometimes
o Most PCMCIA devices have unload races and may oops on eject
o Modular IDE does not yet work, modular IDE PCI modules sometimes
oops on loading
o ide-scsi is completely broken in 2.6 currently. Known problem.
If you need it either use 2.4 or fix it 8)
- IDE disk geometry translators like OnTrack, EZ Partition, Disk Manager
are no longer autodetected. The only way forward is to remove the translator
from the drive, and start over, or use boot parameters depending on the
type of remapper used :-
hdx=remap63 - add 63 to each sector (For OnTrack DM)
hdx=remap - remap 0->1 (For EZDrive)
- See also the CD Recording section for some important changes
related to IDE CD writers.
IDE TCQ.
~~~~~~~~
- IDE 裝置的 tagged command queueing 被納入核心中。
- 這並非適用在所有的 controllers 和 devices 的組合之上, 因此,
使用時請小心。
意即: ** 請勿將 IDE TCQ 用於任何重要的資料之上。
It's likely bad combinations will be blacklisted as and when discovered.
- If you didn't choose the "TCQ on by default" option, you can enable
it by using the command
echo "using_tcq:32" > /proc/ide/hdX/settings
(replacing 32 with 0 disables TCQ again).
- Report success/failure stories to Jens Axboe with
inclusion of hdparm -i /dev/hdX, and lspci output.
SCSI.
~~~~~
- Various SCSI drivers still need work, and don't even compile.
- Various drivers currently lack error handling.
These drivers will cause warnings during compilation due to
missing abort: & reset: functions.
- Note, that some drivers have had these members removed, but still
lack error handling. Those noticed so far are ncr53c8xxx, sym53c8xx
- large dev_t support allowing thousands of disks to be
supported (was 128 or 256 in the 2.4 series)
- major code cleanup, initially to support the block layer (bio)
improvements have led to:
- better throughput (?) [less double handling of data]
- per HBA locks (there was a single io_request_lock in
the 2.4 series)
- more flexible interface to HBA drivers
- better hotplug support, especially for USB mass storage
and ieee1394 sbp2 devices [well it's work_in_progress]
- improved error processing and scanning code (support for
large, sparse lun spaces)
- lots of scsi driver internals available via sysfs
v4l2.
~~~~~
- The video4linux API finally got its long awaited cleanup.
- xawtv, bttv and most other existing v4l tools are also compatible
with the new v4l2 layer. You should notice no loss in functionality.
- See http://bytesex.org/v4l/ for more information.
Quota reworking.
~~~~~~~~~~~~~~~~
新的 quota 系統需要新的相關工具。支援 32 bit uids。
http://www.sf.net/projects/linuxquota/
CD Recording.
~~~~~~~~~~~~~
- Jens Axboe 讓利用 ATAPI 裝置燒錄光碟時可以使用 DMA。因此, 和 2.4
相較, 現在燒錄光碟的速度應該變快很多, 並且較不容易出現 buffer
underruns 一類的問題。
- 如果你使用較新版的 cdrecord, 不再需要 ide-scsi 就可以直接使用 IDE
光碟燒錄機。
- 從光碟抓取音軌現在也使用 DMA 了, 你應該可以感受到明顯地變快。新版
的 cdda2wav 請在這裡取得:
*.kernel.org/pub/linux/kernel/people/axboe/tools/
- Send good/bad reports of audio extraction with cdda2wav and burning with
the cdrecord to Jens Axboe
- Currently only 'open by device name' works in cdrecord.
cdrecord -dev=/dev/hdX -inq
- More info at http://lwn.net/Articles/13538/ & http://lwn.net/Articles/13160/
USB:
~~~~
- USB host controller drivers were renamed in 2.6. They are now
uhci-hcd for UHCI controllers.
ohci-hcd for OHCI controllers.
ehci-hcd for EHCI (USB 2.0) controllers.
- Very little user visible changes, the only noticable 'major' change
is that there is now only one UHCI driver. As noted elsewhere, usbdevfs
was renamed to usbfs.
- USB-storage has changed behaviour. A device which is disconnected and
then reconnected is not reassociated with the old /dev node.
- USB storage also got several performance enhancements.
- USB 'gadget' support.
There's a new "USB Gadget" API supporting USB devices that
run Linux inside. Examples include PDAs, cable modems,
and some printers. That API is how the driver for the
USB Device Controller (UDC) hardware talks with portable
"gadget drivers". A gadget driver is what makes that
hardware act like a "network link" or a "printer".
When you don't want to write a gadget driver in the kernel,
then "gadgetfs" lets you do it in user mode programs.
Each endpoint appears as a single file, so it's a lot
simpler than "usbfs". Currently it's purely synchronous,
but it should be natural for someone to add AIO support.
See http://www.linux-usb.org/gadget for more information
about this API framework, including a pthreaded example
"gadgetfs" program. See the 2.6 kerneldoc for API info.
Nanosecond stat:
~~~~~~~~~~~~~~~~
The stat64() syscall was changed to return jiffies granularity.
This allows make(1) to make better decisions on whether or not it
needs to recompile a file. Not all filesystems may support such precision.
Filesystems:
~~~~~~~~~~~~
A number of additional filesystems have made their way into 2.6.
Currently it supports: ext2, ext3, reiserfs, jfs, xfs, minix, romfs,
iso9660, udf, msdos, vfat, ntfs (ro), adfs, amiga ffs, apple macintosh hfs,
BeOS befs (ro), bfs, efs (ro), cramfs, free vxfs, os/2 hpfs, qnx4fs,
sysvfs, ufs.
Whilst these have had testing out of tree, the level of testing
after merging is unparalleled. Be wary of trusting data to immature
filesystems. A number of new features and improvements have also
been made to the existing filesystems from 2.4.
Reports of stress testing with the various tools available would
be beneficial.
Generic VFS changes.
~~~~~~~~~~~~~~~~~~~~
- Since Linux 2.5.1 it is possible to atomically move a subtree to
another place. The usage is...
mount --move olddir newdir
- Since 2.5.43, dmask=value sets the umask applied to directories only.
The default is the umask of the current process.
The fmask=value sets the umask applied to regular files only.
Again, the default is the umask of the current process.
- Directories can now be marked as synchronous using chattr +S,
so that all changes will be immediately written to disk.
Note, this does not guarantee atomicity, at least not for all filesystems
and for all operations. You *can* be guaranteed that system calls will
not return until the changes are on disk; note though that this does have
has some significant performance impacts.
devfs.
~~~~~~
- devfs was somewhat stripped down and a lot of duplicate functionality
was removed. You now need to enable CONFIG_DEVPTS_FS=y and mount
the devpts filesystem in the same manner you would if you were not
using devfs.
EXT2.
~~~~~
- 2.5.49 included an extension to ext2 which will cause it to not attach
buffer_head structures to file or directory pagecache at all, ever.
This is for the big highmem machines. It is enabled via the `-o nobh'
mount option.
- The ext2 filesystem is now using finer-grained locking which yields reduced
context switch rates and higher throughput on large SMP machines.
EXT3.
~~~~~
- The ext3 filesystem has gained indexed directory support, which offers
considerable performance gains when used on filesystems with directories
containing large numbers of files.
- In order to use the htree feature, you need at least version 1.32 of
e2fsprogs.
- Existing filesystems can be converted using the command
tune2fs -O dir_index /dev/hdXXX
- The latest e2fsprogs can be found at
http://prdownloads.sourceforge.net/e2fsprogs
- The ext2 and ext3 filesystems have new file allocations policies (the "Orlov
allocator") which will place subdirectories closer together on-disk. This
tends to mean that operations which touch many files in a directory tree are
much faster if that tree was created under a 2.6 kernel.
Reiserfs.
~~~~~~~~~
- Reiserfs now supports inode attributes such as immutable.
(Also included in 2.4.17, so not really 'new').
- Relocated/non-standard size journal support (also backported
to 2.4.22pre3)
- Support for writes larger than 4KB in size, which means speedups
on large file writes, esp in append mode, should also be more
SMP friendly.
- Variable blocksize support. (Ie, you can choose any blocksize
in the range of 1024 .. PAGE_CACHE_SIZE, must be power of 2).
- A bug in kmail was triggered by some optimisations in reiserfs in 2.6
Upgrading kmail should fix this, or mounting the reiserfs partition
with 'nolargeio=1'
NFS.
~~~~
- Basic support has been added for NFSv4 (server and client)
- Additionally, kNFSD now supports transport over TCP.
This experimental feature is also backported to 2.4.20
- Interoperability reports with other OS's would be useful.
- v1.0.3 of nfs-utils supports the newer 2.6 kernels change
of kdev_t type. You can grab it at http://nfs.sourceforge.net
- Problems to nfs@lists.sourceforge.net
NTFS.
~~~~~
- 2.6 納入新的 NTFS driver。和舊的 driver 相比, 它有下列主要的好處:
- SMP and reentrant safe。
- 支援大於 4kB 的 cluster sizes。
- 完整支援 W2K/XP/W2K3 的 sparse files。
- 支援 mmap()。
- 更穩定, 並且速度比先前的 NTFS driver 快得多。
- 仍舊是 read-only, 不過支援在不改變檔案大小的情況下, 安全地覆寫
該檔案。
- 在 http://linux-ntfs.sf.net 有更多的相關資訊。
sysfs.
~~~~~~
簡單來說, 如果 driver 要表現它們的內容的話, sysfs
filesystem 是比 /proc 好的方式。
這個 filesystem 一定會被編譯在 kernel 中, 並且可以像其它的
virtual filesystem 一般地 mount 上來。只要用 cat(1) 和
echo(1), 不需要其它特別的 userspace 工具就能存取它。tree(1)
也是一個不錯的工具, 可以用來瞭解它整體的架構。
mount -t sysfs none /sys
在 Documentation/filesystems/sysfs.txt 中有更多的資訊。
JFS.
~~~~
IBM's JFS was merged for 2.6. (And backported to 2.4.20, but
it was still a new feature here first. You can read more about JFS at
http://www-124.ibm.com/developerworks/oss/jfs/index.html
XFS.
~~~~
The SGI XFS filesystem has been merged, and has a number of userspace
features. Users are encouraged to read http://oss.sgi.com/projects/xfs
for more information.
The various utilities for creating and manipulating XFS volumes can
be found on SGI's ftp server:
ftp://oss.sgi.com/projects/xfs/download/download/cmd_tars/xfsprogs-2.5.4.src.tar.gz
CIFS.
~~~~~
支援 common internet file system (CIFS) 的相關工具和文件可以在
http://us1.samba.org/samba/Linux_CIFS_client.html 取得。
FAT.
~~~~
不再支援 CVF (Compressed VFAT)。這表示你將無法存取 DriveSpace partitions。
HugeTLBfs.
~~~~~~~~~~
Files in this filesystem are backed by large pages if the CPU
supports them. See Documentation/vm/hugetlbpage.txt for more details.
Internal filesystems.
~~~~~~~~~~~~~~~~~~~~~
/proc/filesystems will contain several filesystems that are not
mountable in userspace, but are used internally by the kernel
to keep track of things. Amongst these filesystems are futexfs
and eventpollfs.
Kernel Asynchronous I/O (AIO) Support
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Support for kernel AIO has been included in 2.6.
AIO enables even a single application thread to overlap I/O
operations with other processing, by providing an interface
for submitting one or more i/o requests in one system call
(io_submit) without waiting for completion, and a separate
interface (io_getevents) to reap completed i/o operations
associated with a given completion group.
The following is a quick summary of what works today as
expected:
- AIO read and write on raw (and O_DIRECT on blockdev)
- AIO read and write on files opened with O_DIRECT on
ext2, ext3, jfs, xfs
And what doesn't work as expected or is not currently
supported:
- AIO read and write on files opened without O_DIRECT
(i.e. normal buffered filesystem AIO). On ext2, ext3,
jfs, xfs and nfs, these do not return an explicit
error, but quietly default to synchronous or rather
non-AIO behaviour (i.e io_submit waits for i/o to complete
in these cases). For most other filesystems, -EINVAL is
reported.
- AIO fsync (not supported for any filesystem)
- AIO read and write on sockets (doesn't return an
explicit error, but quietly defaults to synchronous
or rather non-AIO behaviour)
You need to install libaio-0.3.92 (available at
http://www.kernel.org/pub/linux/kernel/people/bcrl/aio/)
if you are writing AIO applications which use the native
AIO interfaces.
More info is available at http://lse.sf.net/io/aio.html
Profiling.
~~~~~~~~~~
- A system wide performance profiler (Oprofile) has been included in 2.6.
With this option compiled in, you'll get an oprofilefs filesystem
which you can mount, that the userspace utilities talk to.
You can find out more at http://oprofile.sf.net/
- You need a fixed readprofile utility for 2.6.
Present in util-linux as of 2.11z
Improved BIOS table support.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Linux 現在支援數種新的 BIOS extensions。
Simple boot flag support.
~~~~~~~~~~~~~~~~~~~~~~~~~
The SBF specification is an x86 BIOS extension that allows improved
system boot speeds. It does this by marking a CMOS field to say
"I booted okay, skip extensive POST next reboot".
Userspace tool is at http://www.codemonkey.org.uk/projects/sbf/sbf.c
More info on SBF is at http://www.microsoft.com/hwdev/resources/specs/simp_bios.asp
EDD Support.
~~~~~~~~~~~~
- Support for BIOS Enhanced Disk Drive Services (EDD) was added,
which exports information on what the BIOS thinks is the boot
drive and other useful info to /sys/firmware/edd
- Matt Domsch is interested in hearing success/fails on this code
with some simple tests decribed at http://linux.dell.com/edd/results.html
Improved system monitoring.
~~~~~~~~~~~~~~~~~~~~~~~~~~~
- lm_sensors.
- Shipped in vendors kernels for years, lm_sensors is now part of mainline.
It does however have a different interface. (/sysfs instead of /proc
- http://www.xs4all.nl/~thospel/ASIS/bin/psensors is a handy script
for parsing the new sysfs fields.
- IPMI. (Intelligent Platform Management Interface)
- IPMI is a standard for monitoring the hardware in a system.
- Project home page: http://openipmi.sourceforge.net
- Specification: http://www.intel.com/design/servers/ipmi/spec.htm
x86 CPU detection.
~~~~~~~~~~~~~~~~~~
- The CPU detection code got a pretty hefty shake up. To be certain your
CPU has all relevant workarounds applied, be sure to check that it was
detected correctly. cat /proc/cpuinfo will tell what the kernel thinks it is.
- Likewise, the x86 MTRR driver got a considerable makeover.
Check that XFree86 sets up MTRRs in the same way it did in 2.4
(Failures will get logged in /var/log/XFree86.log)
- Early PII Xeon processors and possibly other early PII processors
require microcode updates either from the BIOS or the microcode driver
to work around CPU bugs the O(1) scheduler exposes.
You can find the relevant microcode tools at
http://www.urbanmyth.org/microcode/
- Any regressions in both should go to mochel@osdl.org Cc: davej@codemonkey.org.uk
Extra tainting.
~~~~~~~~~~~~~~~
Running certain AMD processors in SMP boxes is out of spec, and will taint
the kernel with the 'S' flag. Running 2 Athlon XPs for example may seem to
work fine, but may also introduce difficult to pin down bugs.
In time it's likely this tainting will be extended to cover other out of
spec cases.
Additionally, the new modules interface will taint the kernel if you try
to 'force' a module to load with insmod -f.
Power management.
~~~~~~~~~~~~~~~~~
- 2.6 contains a more up to date snapshot of the ACPI driver. Should
you experience any problems booting, try booting with the argument
"acpi=off" to rule out any ACPI interaction. ACPI has a much more involved
role in bringing the system up in 2.6 than it did in 2.4
- The old "acpismp=force" boot option is now obsolete, and will be ignored
due to the old "mini ACPI" parser being removed.
- software suspend is still in development, and in need of more work.
Use with SMP and/or PREEMPT not advised.
- The ACPI code will do basic sanity checks on the DMI structure in the BIOS
to determine the date it was written. BIOSes older than year 2000 are
assumed to be broken. In some circumstances, this assumption is wrong.
If you see a message saying ACPI is disabled for this reason, try booting
with acpi=force. If things work fine, send the output of dmidecode
(http://www.nongnu.org/dmidecode/) to acpi-devel@lists.sf.net
with an explanation of why your BIOS shouldn't be blacklisted.
CPU frequency scaling.
~~~~~~~~~~~~~~~~~~~~~~
Certain processors have the facility to scale their voltage/clockspeed.
2.6 introduces an interface to this feature, see Documentation/cpufreq
for more information. This functionality also covers features like
Intel's speedstep, and the Powernow! feature present in mobile AMD Athlons.
In addition to x86 variants, this framework also supports various ARM CPUs.
You can find a userspace daemon that monitors battery life and
adjusts accordingly at: http://sourceforge.net/projects/cpufreqd
Background polling of MCE.
~~~~~~~~~~~~~~~~~~~~~~~~~~
The machine check handler has been extended so that it regularly polls
for any problems on AMD Athlon, and Intel Pentium 4 systems.
This may result in machine check exceptions occuring more frequently
than they did in 2.4 on out of spec systems (Overclocking/inadequate
cooling/underated PSU etc..).
LVM2 - DeviceMapper.
~~~~~~~~~~~~~~~~~~~~
The LVM1 code was removed wholesale, and replaced with a much better
designed 'device mapper'.
- This is backwards compatible with the LVM1 disk format.
- Device mapper does require new tools to manage volumes however.
You can get these from ftp://ftp.sistina.com/pub/LVM2/tools/
Debugging options.
~~~~~~~~~~~~~~~~~~
During the stabilising period, it's likely that the debugging options
in the kernel hacking menu will trigger quite a few problems.
Please report any of these problems to linux-kernel@vger.kernel.org
rather than just disabling the relevant CONFIG_ options.
Merging of kksymoops means that the kernel will now spit out
automatically decoded oopses (no more feeding them to ksymoops).
For this reason, you should always enable the option in the
kernel hacking menu labelled "Load all symbols for debugging/kksymoops".
Testing with CONFIG_PREEMPT will also increase the amount of debug
code that gets enabled in the kernel. Kernel preemption gives us
the ability to do a whole slew of debugging checks like sleeping
with locks held, scheduling while atomic, exiting with locks held, etc.
Compiler issues.
~~~~~~~~~~~~~~~~
- The recommended compiler (for x86) is still 2.95.3.
- When compiled with a modern gcc (Ie gcc 3.x), 2.6 will use additional
optimisations that 2.4 didn't. This may shake out compiler bugs that
2.4 didn't expose.
- Do not use gcc 3.0.x on x86 due to a stack pointer handling bug.
- gcc 2.96 is not supported with CONFIG_FRAME_POINTER=y due to a stack
pointer handling bug.
Security concerns.
~~~~~~~~~~~~~~~~~~
Several security issues solved in 2.4 may not yet be forward ported
to 2.6. For this reason 2.6.x kernels should not be tested on
untrusted systems. Testing known 2.4 exploits and reporting results
is useful.
SELinux.
~~~~~~~~
NSA Security-Enhanced Linux (SELinux) was merged in 2.6.
SELinux defaults to not being config'd in. If you
config it in it defaults to enabled. If you also config the bootparam
you can use that param to disable it, otherwise selinux=1 is redundant
as that's the default.
You can obtain SELinux tools and an example policy configuration from
http://www.nsa.gov/selinux
Networking.
~~~~~~~~~~~
- ebtables
The bridging firewall code was merged. To manage these you'll
need the ebtables tool available from
http://users.pandora.be/bart.de.schuymer/ebtables/
More on bridge-nf can be found at http://bridge.sourceforge.net
- Bridged packets can now be 'seen' by iptables.
- IPSec
Linux finally has IPSec support in mainline. Use the KAME tools port on
http://sourceforge.net/projects/ipsec-tools
For more info see http://www.lib.uaa.alaska.edu/linux-kernel/archive/2002-Week-44/1127.html
Also Bert Hubert has a howto at http://lartc.org/howto/lartc.ipsec.html
Additionally, ipsec-utils is at http://sourceforge.net/projects/ipsec-tools
Herbert Xu also has patches against FreeSWAN 2.00 to allow its userspace
to use the 2.6 IPSec functionality. They can be downloaded from
http://gondor.apana.org.au/~herbert/freeswan/
An additional HOWTO is at http://www.ipsec-howto.org
- Some applications may trigger the kernel to spit out warnings about
'process xxx using obsolete setsockopt SO_BSDCOMPAT' .
- Bind 9.2.2 checks for #ifdef SO_BSDCOMPAT in correctly,
so a recompile is all that is needed.
- bind9-host from debian testing triggers, though the 'host' package doesn't.
- process `snmpd' is using obsolete setsockopt SO_BSDCOMPAT
- process `snmptrapd' is using obsolete setsockopt SO_BSDCOMPAT
- ntop uses obsolete (PF_INET,SOCK_PACKET)
- Users of boxes with >1 NIC may find that for eg, eth0 and eth1 refer to
the opposites of what they did in 2.4. This is a bug that will be fixed
before 2.6.0. One option (or management workaround) for this is to use
'nameif' to name Ethernet interfaces. There is a HOWTO for doing this at
- Support for various new RFCs.
- RFC3173 (IP Payload Compression).
- RFC3041 (IPv6 Privacy Extensions).
- RFC2473 (IPv6 in IPv6 tunnels).
- RFC2960 (SCTP - see below).
- Linux reaches congestion collapse when subjected to heavy network load.
NAPI fixes this amongst other things and therefore improving network
performance.
More info at http://www.cyberus.ca/~hadi/usenix-paper.tgz and
ftp://robur.slu.se/pub/Linux/net-development/NAPI/
- IPVS (IP Virtual Server)
http://www.linuxvirtualserver.org/
- RFC 2960 - SCTP (Stream Control Transmission Protocol)
SCTP is an IP based, message oriented reliable transport protocol with
congestion control, support for transparent multi-homing and multiple
ordered streams of messages. RFC2960 defines the core protocol.
More information about the protocol can be found at
http://www.ietf.org/rfc/rfc2960.txt
and about the Linux kernel implementation at
http://lksctp.sourceforge.net
- ANSI/IEEE 802.2 LLC type 2 Support
Full implementation of LLC 1 and 2 stack, used by Appletalk, IPX and Token
Ring, also needed for the out of the tree, not yet functional NetBEUI
stack and for the for Linux SNA.
This is based on the stack released under the GPL by Procom Inc. for the
2.0.30 Linux kernel.
Crypto
~~~~~~
- A generic crypto API has been merged, offering support for various
algorithms (HMAC,MD4,MD5,SHA-1,SHA256,SHA384,SHA512,DES,Triple DES EDE,
Blowfish, Twofish, Serpent, AES, CAST5, CAST6)
- This functionality is used by IPSec and the crypto-loop. It's possible
that it will later also be available for use in userspace through a crypto
device, possibly compatible with the OpenBSD crypto userspace.
- The in-kernel loopback device can now do crypto using the CryptoAPI.
May need new userspace tools.
- A 2.4->2.6 cryptoloop migration guide is at http://clemens.endorphin.org/Cryptoloop_Migration_Guide.html
Ports.
~~~~~~
- 2.6 支援數個新的平台。
- x86-64 (AMD Hammer)
- ppc64
- UML (User mode Linux)
請見 http://user-mode-linux.sf.net 以取得更多的資訊。
- uCLinux: m68k(w/o MMU), h8300 and v850。 sh 也新增了一個 uCLinux 的選項。
- The 64 bit s390x port was collapsed into a single port, appearing
as a config option in the base s390 arch.
- In the opposite direction, arm26 was split out from arm.
- x86 architecture also got 'subarch' support to support 'strange' x86
boxes (usually big boy toys). Currently supported subarchs include
- ES7000
- PC9800 (incomplete merge)
- VISWS (Was in 2.4, but now maintained again)
- Voyager. (http://www.hansenpartnership.com/voyager/)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Revision history:
0.49 - additional pt_BR translation URL.
Note about cciss & root= device ID
Mention kmail/reiserfs bug
Add pointer to input layer FAQ.
Update EDD URL.
Update polish translation.
Update brazil translation url.
0.48 - gadgetfs
cryptoloop howto URL.
Mailing list pointers.
0.47 - Add futex paper URL.
Correct libc-alpha mailing list.
Jeff Garzik shouldn't get IRQ routing problems
Clarify syslinux necessity for boot disks.
Add depmod to common gotchas
Add EFS regression
Add mkinitrd note to modules section.
Various grammar cleanups
Mention tree(1) in sysfs section
SELinux corrections.
Duh, numerical sysctls are deprecated not syscalls.
Document seperate build dir feature.
/proc/stat changes broke more than just DOTS.
Add Japanese keyboard issue to input section.
0.46 - Update akpm's email address.
Mention LLC in the networking section.
Added link to 2.6 migration guide.
0.45 - DEVFS is obsolete.
Add pt_BR translation.
0.44 - lm_sensors.
x86 subarch support.
Add link to Joseph Pranevich's 2.6 doc.
Mention chattr +S
Update dmidecode URL
Fix sbf.c URL
Fix typos (s/proprietory/proprietary/)
add URL to patched cdda2wav.
Mention which filesystems does 2.6 actually supports.
Add a small note about SELinux
Add a few more RFCs which we now support in the Networking section
Change IPVS to IPVS (IP Virtual Server)
Mention additional encryption algorithms that crypto api supports
Add a few things to TODO section
Add URL to AIO.
Polish translation URL added.
Fix up a stray davej@suse.de that I missed.
Update spanish translation URL.
0.43 - oprofile URL changed.
Update Linus' email
Drop report of buggy Red Hat 3.2.2-5 gcc.
Remove reference to Jens' hacked cdrecord, standard version is now ok.
PC Speaker note added.
Mention elevator=deadline for database folks.
Merge two deprecated sections.
Update URL to xfsprogs.
Mention Conectiva module-init-tools
Mention acpi=force, and DMI blacklist.
DRI CFT on X4.1
Pentium Pro SYSENTER is broken.
Update Alans list of IDE bugs
Add geometry translator workarounds.
Mention swapfile limitations.
Update Reiserfs new features.
Move some features marked as 'deprecated' to 'removed'.
Add 'needs forward porting' section.
Pointer to synaptics touchpad driver webpage.
Update ipsec utils URL.
Mention usb-storage changes.
Modules are now .ko instead of .o
Mention how to change elevator on command line.
Document statfs64()
ext3 data=journal mode should now be fixed.
Fix iosched pathname.
Document USB changes.
Add SCTP to Networking.
s/2.5/2.6/ in most of the doc.
Mention AIO.
Add additional IPSEC howto URL.
Deprecate numeric sysctls
0.42 - CONFIG_LOG_BUF_SHIFT is now sanity checked by Kconfig
Hyperthreading scheduler improvements.
ALSA OSS emulation.
32bit uids in new quota.
Not all filesystems support nanosecond stat.
Note that NTFS still isn't R/W
Mention CryptoLoop.
0.41 - V=0 is now default. Document V=1
s/Redhat/Red Hat/ everywhere.
Added vmware sysenter note.
MTRR for vesafb
Various grammar fixes.
Selectable elevators.
PCI domains
0.40 - Callout tty devices are removed.
Added note about modules in Red Hat 9
0.39 - irqbalance note added.
Added ntop, snmp tools obsolete messages.
Added link to David Mosberger's O(1) page.
Mention Herbert Xu's FreeSWAN patches.
Add CONFIG_VGA_CONSOLE to the list of gotchas.
Add note about 2.4 .config's to gotchas.
Reword devpts note.
0.38 - Fixed URL to nameif
0.37 - devfs users now need to mount devpts.
mention h8300 port.
mentioned NTFS rewrite.
0.36 - Include Doug Gilberts 'positive SCSI spin'.
Mention NAPI.
Reword the CPU bug workaround that the O(1) scheduler exposes.
Added 'Known Gotchas' section
0.35 - Note about KDE panel applets.
mount --move, dmask, fmask
Removed note about oprofile utilities being underdeveloped.
Mention ext2 locking, and ext2/ext3 orlov allocator.
0.34 - Remove people.redhat.com NPTL URLs on Ulrich Dreppers request.
Added note about s390x going away.
Various kbuild updates.
Note about swap files.
Added note about -p1 vs -p0
Lots of typo fixes from Randy Dunlap.
RPM from RH9 seems to have problems.
0.33 - Networking RFCs section added.
0.32 - Added Soundmodem userspace replacement URL.
0.31 - ext3 data=journal breakage noted.
0.30 - Athlon powernow is now supported.
0.29 - Mention NIC renumbering and ACPI/APIC NIC bugs.
0.28 - SO_BSDCOMPAT obsolete messages, nfsutils.
0.27 - radeon -> radeonfb
0.26 - Added info about readprofile.
0.25 - Added cdrecord example. Added URL to Spanish translation.
0.1->0.24 - Unrecorded history
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Other Links.
http://www.kernelnewbies.org/status/
http://bugzilla.kernel.org/
http://www.kniggit.net/wwol26.html
http://thomer.com/linux/migrate-to-2.6.html
TODO: (Please mail me a few lines about these if you are
the owner of these).
PCI IDs (new_id, agpgart try_unsupported)
libsysfs
kdev_t changes?
ISDN rewrite?
AFS
DVB
Hangcheck timer
/proc/sysrq-trigger
libata
initramfs ?