Powrót do strony głównej

Usuwanie i486 z Linux: łatka Molnára

Ingo Molnár opublikował łatkę do usunięcia wsparcia procesorów i486 z jądra Linux, co skróci kod o 14 tys. linii kosztem wyłączenia emulatorów CX8 i TSC. Linus Torvalds popiera inicjatywę, zauważając nieaktualność takich CPU. Kompatybilność z systemami wbudowanymi zostanie zachowana.

Łatka na usunięcie i486 z jądra Linux od Molnára
Advertisement 728x90

# Usunięcie wsparcia dla i486 z jądra Linux: patche Molnára i kontekst historyczny

Ingo Molnár, opiekun architektury x86 w jądrze Linux, przygotował patche do całkowitego usunięcia opcji CONFIG_M486, CONFIG_M486SX i CONFIG_MELAN. Pozwoli to wykluczyć wsparcie dla procesorów 486DX, 486SX i AMD ELAN z nowoczesnych kompilacji jądra.

Techniczne konsekwencje usunięcia

Wsparcie dla i486 wymaga emulacji kluczowych instrukcji: CX8 (cmpxchg8b dla operacji atomowych na 64 bitach) i TSC (Time Stamp Counter dla planisty zadań). Taki kod zwiększa złożoność jądra, utrudnia debugowanie i okresowo powoduje błędy.

Usunięcie tych warstw pozwoli skrócić kod o 14 104 linie. W szczególności:

Google AdInline article slot
  • Znikną emulatory CX8 i TSC.
  • Zniknie biblioteka math-emu dla FPU w 486SX.

To zoptymalizuje podsystemy planisty i blokad, zmniejszając obciążenie deweloperów.

Uwaga: Żaden duży dystrybutor nie dostarcza świeżych jąder z opcją M486=y. Aktualne gałęzie Linux na 32-bitowych i486 są praktycznie nieużywane.

Pozycja Linusa Torvaldsa

Linus Torvalds wielokrotnie poruszał ten temat. W 2022 roku zauważył, że emulacja cmpxchg8b na i486 jest bezsensowna: instrukcja jest dostępna na Pentium i wszystkich x86-64. Torvalds zaproponował przejście na gałęzie LTS dla systemów legacy.

Google AdInline article slot

Wcześniej, w 2012 roku, usunięto wsparcie dla i386. 13 lat temu Torvalds proponował usunąć math-emu, ale społeczność powstrzymała się z powodu klonów 486SX wciąż w produkcji. Obecnie konsensus się zmienił.

Kompatybilność z systemami wbudowanymi

Specjalistyczne chipy jak Intel Quark (oparte na i486) obsługują CX8 i TSC natywnie — patche ich nie dotkną. Oryginalne i486 działają ze starszymi dystrybucjami i starymi jądrami.

Nowoczesne 32-bitowe dystrybucje używają X86_PAE, wymagającego CX8. Wsparcie dla czystego 32-bitowego x86 jest minimalne.

Google AdInline article slot
  • Zalety usunięcia:

1. Skrócenie kodu o ponad 14 tys. linii.

2. Uproszczenie planisty i blokad.

3. Mniej błędów od emulacji.

4. Skupienie na relewantnych architekturach.

Co ważne

  • Patche Molnára usuwają CONFIG_M486*, emulatory CX8/TSC i math-emu — minus 14 104 linie kodu.
  • i486 nie są używane z nowoczesnymi jądrami; dystrybucje przeszły na PAE lub 64-bit.
  • Torvalds popiera: emulacja cmpxchg8b jest przestarzała, używajcie LTS dla legacy.
  • Wbudowane Quark nie są dotknięte — mają natywny CX8/TSC.

Całkowita objętość zmian uczyni jądro czystsze dla deweloperów middle/senior pracujących z x86.

— Editorial Team

Advertisement 728x90

Czytaj dalej