Wstęp:
Linux 2.6.0 ukazał się w grudniu 2003 mając 5929913 linii kodu, 212 MB. Jest w nim wiele zmian w stosunku po jądra 2.4.x. Dużą część kodu napisano od zera!
Oto niektóre z nowych możliwośći jądra 2.6.x:
- obsługa do 64 procesorów (źródło: http://www.alstor.com.pl/pl/alstor:dla_prasy/id=39)
- zaimplementowano kompletną obsługę mechanizmu Intel PAE (Physical Address Extension), który pozwala większości nowych systemów 32-bitowch na uzyskanie dostępu do 64 GB pamięci RAM
- udoskonalono zarządzanie przerwaniami (IRQ balancing) na maszynach wieloprocesorowych.
- udoskonalono też obsługę urządzeń blokowych, które na maszynach 32-bitowych mogą uzyskać dostęp do przestrzeni dyskowej o maksymalnym rozmiarze 16 TB, dla maszyn 64-bitowych jest to natomiast aż 8 EB (eksabajtów).
- wprowadzono ponadto wiele zmian w obsłudze systemów plików Linuksa - ext2 i ext3. Dodano tzw. atrybuty rozszerzone (ang. extended attributes) oraz listy kontroli dostępu zgodne ze standardem POSIX - ACL.
- dodano obsługę nowych systemów plików: JFS (IBM), XFS (SILICON GRAPHICS)- wcześniej tylko jako łatki
- poprawiono obsługę systemu plików FAT 12, wykorzystywanego przez część przenośnych odtwarzaczy MP3.
- usprawniono dostęp do partycji NTFS - dodano możliwość zapisu na partycjach NTFS
- możliwość utworzenia ponad czterech miliardów unikatowych numerów UID i GID. Także liczba identyfikatorów procesów (PID) wzrosła do 1 miliarda!
- obsługa USB 2.0 oraz wprowadzenie sterowników ALSA (Advanced Linux Sound Architecture) jako domyślnego standardu dźwięku w miejsce przestarzałego, choć ciągle stosowanego jeszcze podsystemu OSS (Open Sound System).
- Udoskonalona też obsługa urządzeń multimedialnych - teraz możemy jeszcze łatwiej używać takiego sprzętu, jak tunery telewizyjne i radiowe oraz kamery internetowe. Dodano sterowniki do urządzeń typu DVB (Digital Video Broadcasting), popularnych np. w przystawkach telewizyjnych (ang. settop box).
- udoskonalenie obsługi urządzeń do komunikacji bezprzewodowej czy o możliwości wykorzystania ekranów dotykowych
- wiele usprawnień dla laptopów (m.in. lepsze zarządzanie energią - pełna obsługa ACPI)
- wywłaszczalne jądro
- i wiele innych
Inne zmiany (ważne dla developerów):
- <linux/malloc.h> został zastąpiony przez <linux/slab.h>.
- wartość HZ (mierzenie czasu - poniekąd znane z zadań lab ;)) została zwiększona do 1000 dla architektury x86. Licznik jiffy został nazwany jiffies_64.
- nowa funkcja czekająca ndelay() - może czekać X nanosekund :)
- nowy typ lock'a seqlock() do blokowania małych i często używanych sekcji krytycznych
- asynchroniczne we/wy
- unified device model - model urządzeń + jego "vizualna" reprezentacja sysfs zamontowana (zazwyczaj) na /sys.
- wprowadzenie schedulera działającego w czasie stałym
- wprowadzenie tak zwanego odwrotnego odwzorowania stron (ang. reverse mapping).
- inny mechanizm zarządzania modułami
- i inne
Autor: Piotr Włodarczyk, pw209226@students.mimuw.edu.pl