reklama

Nowoczesny system operacyjny uruchomiono na komputerze z 1993 roku

Strona główna Aktualności

O autorze

Hodowca maszyn wirtualnych i psów, poza tym stary linuksiarz, bonvivant i śmieszek. W 2012 roku napisał na DP o algorytmie haszowania Keccak i wciąż pamięta, jak on działa.

Na tle tych wszystkich problemów z nowoczesnymi procesorami, ciekawie jest zastanowić się nad pytaniem, jaki jest najstarszy procesor, na którym można uruchomić współczesne oprogramowanie. Singapurski inżynier Yeo Kheng Meng nie tylko zastanowił się, ale i zaprezentował coś, co musi budzić uznanie. Uruchomił nowoczesny system operacyjny na komputerze z 1993 roku, z procesorem AMD5x86, będącym ulepszonym klonem Intela 80486 (i486).

Współczesne systemy operacyjne projektowane są na architektury przynajmniej 32-bitowe (tak, wiemy że istnieją nowe systemy na maszyny 8-bitowe). Pierwszym 32-bitowym procesorem x86 był oczywiście Intel 80386, pokazany po raz pierwszy w 1985 roku, a produkowany aż do 2007 roku, ze względu na potrzeby rynku sprzętu wbudowanego. Wsparcie dla procesorów 80386 zostało już jednak dawno zarzucone. Od strony Windowsa ostatnim, który je wspierał, był Windows 95 (i to w szczególnych okolicznościach, nie wszystkie bowiem procesory 80386 można było nazwać faktycznie 32-bitowymi). Od strony Linuksa, 80386 był jednak wspierany aż do 2012 roku, porzucono go dopiero wraz z wydaniem kernela 3.7.

Może więc kolejny 32-bitowy procesor, czyli 80486, a raczej i486, by użyć jego oficjalnej nazwy? Ten wprowadzony na rynek w 1989 roku (i również produkowany do 2007 roku) procesor, z punktu widzenia oprogramowania niewiele różni się od 80386, ma raptem kilka dodatkowych instrukcji. Ostatnim wspieranym systemem Microsoftu, który uruchamiał się na takim sprzęcie, był Windows 98. A jak z Linuksem? Niespodzianka. Mamy 2018 rok, a Linux wciąż oficjalnie wspiera i486.

To, że Linux wspiera tak starą architekturę nie oznacza, że uruchomimy na tym jakąkolwiek normalną dystrybucję, oferującą skompilowane pakiety. Popularny Debian w 2016 roku porzucił wsparcie dla starych procesorów Pentium, potrzebuje co najmniej procesora 686/Pentium 2. Istnieje jednak dystrybucja, która nie powinna mieć takich ograniczeń. To Gentoo Linux, w którym wszystko kompilujemy sobie sami, na taki sprzęt, jaki się nam podoba.

Pierwszy raz zainstalowaniem współczesnego Gentoo Linuksa na tak starym sprzęcie pochwalił się niejaki Theodore Head, użytkownik serwisu Stack Exchange. Zrobił on to na laptopie Compaq LTE Elite 4/75CX, korzystając z faktu, że instalator Gentoo jest skompilowany na i486, a później, podczas instalacji można zrekompilować całe oprogramowanie na docelową architekturę, w tym właśnie i486. Co najważniejsze, nie trzeba tego robić na starożytnym procesorze, powolniejszym przecież nawet od procesora Raspberry Pi. Gentoo oferuje wygodne narzędzia kompilacji skrośnej, dzięki której możemy przygotować pakiety dla starej maszyny np. na nowiutkim Ryzenie Threadripperze.

Niestety Head oprócz swojego wpisu niczego nie pokazał, i to zainspirowało Yeo Kheng Menga, inżyniera z Singapuru, do własnej, lepiej udokumentowanej próby. Już wcześniej znany on był z takich eksperymentów, uruchomił wcześniej na komputerze i486 dystrybucję Damn Small Linux, tyle że z kernelem 2.4.31, wydaną w 2005 roku. Działał też w drugą stronę, zainstalował np. na współczesnym pececie Windowsa 3.11.

Aby cytując prezydenta Donalda Trumpa, uczynić i486 wielkim znowu, pan Yeo sięgnął ponownie po swoją maszynę z procesorem i486, IBM PS/1 Consultant 2133 19C. Co ciekawe, to nie jest tak naprawdę i486, ale jego kompatybilny klon, AMD 5X86, taktowany zegarem 133 MHz, o wydajności porównywalnej z pierwszymi procesorami Pentium. Do tego 64 MB RAM (kto miał w 1993 roku 64 MB RAM?), karta graficzna Cirrus Logic, karta Ethernetu 10 Mbit/s, SoundBlaster 16, oraz jedyne elementy z naszych czasów, tj. sprzętowy emulator stacji dyskietek 1,44 MB oraz czytnik kart Flash, udających twarde dyski.

Zgodnie z sugestią pana Heada, kompilacja odbyła się na innym, nowocześniejszym komputerze, laptopie Thinkpad T430 z procesorem i7-3520M. Cały proces został w szczegółach opisany na GitHubie – po kolei należy przygotować sobie dysk instalacyjny Gentoo, skonfigurować sieć i SSH, przygotować partycje, skopiować na dysk podstawowe pliki systemowe (stage3) i zainstalować bazowy system. Później konfiguracja – i rekompilacja kernela z odpowiednio ustawionymi flagami. Przy okazji człowiek przypomina sobie, jak to wyglądało kiedyś, gdy budowanie linuksowych kerneli było zajęciem dla każdego użytkownika.

Efekt jest spektakularny. Maszyna z 1993 roku startuje z pełnym, nowoczesnym systemem operacyjnym. Rozruch zajmuje jej 11 minut, wyłączenie 5,5 minuty. Można sobie na to wszystko popatrzeć na powyższym filmiku. Oczywiście o realnej pracy na takim sprzęcie nie ma co myśleć, tu jednak trzeba uruchomić coś z epoki, np. DOS-a.

Jedno trzeba przyznać: poziom wsparcia oferowanego przez Linuksa dla starożytnego sprzętu, jeszcze z minionego stulecia, jest po prostu niezrównany. Wygląda to tak, jakby wciąż byli ludzie opiekujący się tym kodem i sprawdzający, czy wszystko działa dobrze w nowych kernelach.

© dobreprogramy
reklama

Komentarze

reklama