
Разработчиците на ядрото на Linux сериозно обмислят да премахнат кода, който поддържа легендарните процесори i486, пуснати преди няколко десетилетия. Още преди две години и половина Линус Торвалдс, „бащата” на Linux, предложи да се направи това, но инициативата му не получи одобрение от общността на разработчиците. Сега ситуацията е по-различна и изглежда моментът за промяна е настъпил.
Освен i486, планът предвижда прекратяване на поддръжката на ранни варианти на i586 (P5, Pentium) и техните производни. Според Phoronix, общността е била потърсена със съответно предложение по този въпрос от Инго Молнар, който поддържа x86 архитектурата на Linux ядрото.
Легендарният процесор
80486, или i486, е 32-битов x86 микропроцесор от четвърто поколение на Intel, който бе представен през 1989 г. и наследи 80386. Тактовата честота на процесора в последните му версии достига 100 MHz, а общият брой транзистори надхвърля 1,5 милиона.
80486 беше първият процесор на Intel, който включваше интегриран математически копроцесор i487 (в DX вариантите на чипа). Преди това чипове от този тип, предназначени да ускорят операциите с числа с плаваща запетая (FPU), бяха инсталирани в отделен цокъл на дънната платка.
В допълнение, процесорът 80486 въведе един интегриран кеш за инструкции и данни с размер от 8 до 16 KB. Различни версии на процесори, базирани на 80486, са произвеждани до 2007 г., включително от трети страни – по-специално от AMD, Cyrix и IBM.
Разработката на 80486 беше ръководена от Пат Гелсингър, доскоро главен изпълнителен директор на Intel. Той заемаше тази позиция от началото на 2021 г. до декември 2024 г.
i586 включва петото поколение процесори Intel – оригиналните Pentium и Pentium MMX. Първият процесор на Intel от шесто поколение (i686) е Pentium Pro, на базата на който беше създаден и Pentium II.
Корекциите на Молнар
Предложеният от Молнар набор от корекции, ако бъде одобрен, ще изключи x86 процесори, които нямат инструкцията CX8/CMPXCHG8B и регистъра TSC, от поддръжката в ядрото на Linux.
Командата CMPXCHG8B сравнява 64-битовата стойност, съхранена в регистрите с общо предназначение EDX:EAX (съответно горните и долните 32 бита), със стойността в паметта. Ако са равни, съдържанието на регистрите ECX:EBX замества стойността в паметта, в противен случай стойността от паметта се поставя в EDX:EAX. Инструкцията модифицира нулевия флаг на ZF.
TSC (Time Stamp Counter) е 64-битов регистър, който съхранява броя на циклите на процесора от последното му нулиране. За да се получи съдържанието на TSC, се използва асемблерната инструкция RDTSC; когато се извика, стойността на TSC се поставя в регистрите EDX:EAX.
Инструкцията CX8 и регистърът TSC се появяват за първи път в процесорите Intel Pentium.
Торвалдс одобрява
Молнар вярва, че освобождаването на Linux от отдавна остарелия i486 код ще намали тежестта върху разработчиците на ядрото. Освен това, обемът на кода на ядрото ще бъде намален с повече от 14 хиляди реда.
През 2025 г. кодовата база на ядрото на Linux надхвърли 40 милиона реда код. Около 4,5 милиона от тях се използват за реализиране на поддръжка на различни хардуерни архитектури, включително x86, ARM и RISC-V.
Както отбелязва Молнар, разработчиците в момента трябва да поддържат слоеве, които осигуряват съвместимост с древни 32-битови процесори (x86_32), включително библиотеката math-emu, която емулира математическия копроцесор (FPU) на i487.
Според него, значителна част от премахвания код се намира в math-emu, но дори и без него, ядрото на Linux ще „отслабне” с 1081 реда, ако решението за отказване от поддръжката на i486 бъде прието положително от други разработчици.
По-рано Линус Торвалдс, който ръководи разработването на ядрото на Linux, лично се изказа в полза на сбогуването с i486. Според него „няма реална причина, поради която който и да е разработчик да отдели дори една секунда от времето си за решаване на подобен проблем”, тоест с поддържане на съвместимост със старото семейство процесори 80486.
Време ли е наистина?
През октомври 2022 г. „бащата” на Linux вече предложи да се премахне поддръжката за i486 от ядрото, но съответното решение така и не беше взето. Този път шансовете за успех на инициативата могат да се считат за по-големи.
Разработчиците на Linux, като правило, не бързат да се разделят с код на ядрото, който е отговорен за съвместимостта с вече безполезен хардуер. Ядрото на Linux загуби поддръжката за i386 през 2012 г. по инициатива на Торвалдс.
През 2023 г. Linux 6.7 напълно премахна кода, който гарантираше, че ще работи на компютри с процесори Intel Itanium, базирани на архитектурата IA-64. Торвалдс обаче беше нарекъл технологията „мъртва” две години преди това решение.
В началото на 2021 г. разработчиците на Linux решиха да премахнат поддръжката за повече от 1000 графични процесора от ядрото на Linux и 20 стари процесора с различни архитектури. Повечето от тях са базирани на ARM, но има и MIPS чипове.