Linux znany jest ze swojej wszechstronności i możliwości działania na wielu platformach – od superkomputerów po zegarki. Teraz entuzjaści technologii posunęli się jeszcze dalej, prezentując minimalistyczną wersję systemu operacyjnego Linux działającą… w arkuszu kalkulacyjnym Microsoft Excel.
Za projektem stoi użytkownik GitHub o pseudonimie „NSG650”, który opublikował kod źródłowy pod nazwą „LinuxInExcel”. Kluczowym elementem całego przedsięwzięcia jest biblioteka DLL o nazwie „fun.dll”, którą można skompilować za pomocą darmowej wersji środowiska Visual Studio od Microsoftu. To właśnie ta biblioteka umożliwia integrację emulatora z Excelem.
Excel jako interfejs użytkownika
W sercu projektu znajduje się emulator „mini-rv32ima”, który emuluje architekturę RISC-V. Po skompilowaniu do postaci biblioteki DLL, można go załadować i uruchomić przy pomocy makr VBA w Excelu. Wymaga to jednak ręcznego wskazania ścieżki do pliku DLL w kodzie makra oraz aktywowania obsługi makr w ustawieniach bezpieczeństwa Excela. Twórcy zaznaczają, że z racji potencjalnego zagrożenia bezpieczeństwa, najlepiej uruchamiać projekt na maszynie testowej lub w środowisku wirtualnym.
Choć na niektórych komputerach projekt nie zadziałał pomimo szerokich uprawnień makr, to YouTuber o nicku Enderman przygotował zmodyfikowaną wersję, która jest znacznie bardziej funkcjonalna. Nie tylko umożliwia wyświetlanie wyniku działania systemu w komórkach Excela, ale również pozwala na wprowadzanie komend tekstowych bezpośrednio w jednej z nich.
Działa, ale z ograniczeniami
Twórca modyfikacji zapewnia, że uruchomienie znanego edytora tekstu „vim” również jest możliwe. Jednak z powodu braku możliwości przesłania klawisza „Escape”, nie da się efektywnie edytować tekstu. Dodatkowo inne klawisze sterujące powodują po prostu przejście do sąsiednich komórek arkusza.
Od strony technicznej, rozwiązanie to można opisać jako minimalistyczny emulator, który startuje jądro Linuxa dla architektury RISC-V wraz z podstawową powłoką tekstową. Całość komunikuje się z użytkownikiem właśnie za pośrednictwem Excela, który służy jako interfejs wejścia-wyjścia.
W opublikowanym materiale wideo Enderman tłumaczy szczegółowo, w jaki sposób zrealizowano komunikację z systemem za pomocą techniki odpytywania (polling).
Nie pierwszy taki eksperyment
Warto przypomnieć, że w lutym tego roku świat obiegła informacja o podobnym projekcie, w którym Linux został uruchomiony wewnątrz pliku PDF. Tam również wykorzystano emulator RISC-V, ale oparty na technologii WebAssembly, kompatybilnej z dokumentami PDF. Choć interfejs graficzny był uproszczony, system działał i pozwalał nawet na wprowadzanie danych za pomocą wirtualnej klawiatury.
W porównaniu z tamtym rozwiązaniem, wersja „LinuxInExcel” jest znacznie bardziej wydajna, ponieważ korzysta z natywnie skompilowanej biblioteki DLL, a nie z emulacji w przeglądarce.
Projekt ten może nie mieć zastosowania w codziennej pracy biurowej, ale z pewnością pokazuje, jak kreatywność programistów potrafi przesuwać granice tego, co uważamy za możliwe. Czy Excel stanie się kolejną platformą systemów operacyjnych? Raczej nie – ale jako demonstracja technologiczna, to imponujący eksperyment.