Najświeższe wydanie jądra Linux zamyka drzwi przed procesorami x86, które nie udostępniają licznika Time Stamp Counter. Dla większości współczesnych użytkowników to kosmetyczna zmiana, ale dla entuzjastów utrzymujących muzealne konfiguracje oznacza koniec oficjalnego wsparcia. Decyzja przybliża Linuksa do standardów już dawno przyjętych w świecie innych systemów operacyjnych i upraszcza sam kod jądra.
Pożegnanie z epoką przed-Pentium
Konstrukcje takie jak Intel 80486 czy wczesne warianty Pentium nigdy nie posiadały sprzętowego licznika TSC, wprowadzonego dopiero z procesorami Pentium w wersji „P54C”. Przez ćwierć wieku deweloperzy jądra utrzymywali więc rozbudowaną, alternatywną logikę odmierzania czasu – odwołującą się do archaicznych układów na płycie głównej i przerywaczy programowych. Podobny krok w stronę porzucenia 486 wykonał Microsoft już w połowie lat 2000, gdy najnowsze wydania Windows wymagały obsługi instrukcji CMPXCHG8B. Linux, tradycyjnie bardziej konserwatywny, dopiero teraz decyduje się przeciąć kolejną linę wstecznej kompatybilności.
Dlaczego TSC stał się obowiązkowy
Time Stamp Counter to 64-bitowy rejestr inkrementowany przy każdym takcie zegara procesora. W praktyce służy jako precyzyjne źródło synchronizacji dla harmonogramu zadań, obsługi przerwań i licznych mechanizmów wydajnościowych. Bez niego system musi polegać na starszych timerach: PIT, RTC czy wprowadzonym później HPET. Te jednak oferują niższą dokładność oraz większe opóźnienia. Utrzymywanie wielu ścieżek kodu komplikowało testowanie, zwiększało ryzyko błędów i ograniczało możliwości dalszej optymalizacji. Usunięcie obsługi konfiguracji „bez TSC” to więc nie tylko symbolicze odcięcie się od przeszłości – to także realne odchudzenie jądra i zmniejszenie liczby wyjątków w krytycznych sekcjach odpowiedzialnych za odmierzanie czasu.
Konsekwencje dla użytkowników i ekosystemu
Według statystyk projektów takich jak Debian Popcon czy Arch Linux Hardware Database, udział procesorów sprzed 1995 roku wśród aktywnych instalacji wynosi promile. W praktyce zmiana dotknie głównie kolekcjonerów sprzętu retro oraz niektóre ultradługowieczne systemy wbudowane, które i tak często pracują na zamrożonych wersjach jądra. Zyskuje natomiast cała reszta społeczności: krótszy czas kompilacji, mniejszy rozmiar binariów i jaśniejszy kod źródłowy. Łatwiejsze stanie się także przenoszenie nowych funkcji do gałęzi LTS, bo utrzymywanie odgałęzień dla egzotycznych ścieżek timerów przestaje być konieczne.
Element szerszego trendu ewolucji systemów operacyjnych
Minimalne wymagania sprzętowe linuksowego jądra rosły już wcześniej – wystarczy przypomnieć rezygnację z i386 w 2012 roku czy wygaszanie wsparcia dla 32-bitowego ARM w niektórych dystrybucjach. Producentom sprzętu łatwiej wówczas udostępniać nowoczesne rozszerzenia, a twórcom oprogramowania wykorzystać pełnię możliwości platformy, od wirtualizacji po zaawansowane funkcje bezpieczeństwa. Porzucenie przedpotopowych układów bez TSC wpisuje się więc w naturalny cykl rozwoju, gdzie priorytetem staje się nowa funkcjonalność, energooszczędność i bezpieczeństwo, a nie bezwzględne utrzymanie zgodności z każdą płytą komputerową rodem z lat 80.