Wpis z mikrobloga

#linux #freebsd

Brakuje mi systemu innego niż uniksowe, czy dosowo-windowsowe. Bardzo nie podoba mi się obecny kierunek rozwoju systemów oraz przyjęte wzorce.

Mała instalacja Linuksa lub FreeBSD zajmuje ponad 1GB na dysku. Instaluje się pełno śmieci tylko dlatego, bo trzeba spełnić zależności, które są kuriozalne pod tym względem, że wiele bibliotek potrafi się zainstalować tylko dla jednego małego programiku. Sam system nie dostarcza żadnego własnego sensownego API, które mogłoby zastąpić terminalowe narzędzia zasysające zależności. Do tego ciągłe parsowanie wyników, czasem trudne z powodu możliwości wystąpienia tłumaczeń na inny niż język angielski.

Windows 95 zajmował mniej niż 64MB (jeżeli dobrze pamiętam to coś koło 30MB). Nikt mi nie wmówi, że nie da się zmieścić interfejsu użytkownika i porządnego API z narzędziami w 100MB.

Ciągle korzystamy z rozwiązań, które były obmyślone na małe instalacje z lat 80/90tych. Nikt nie wyobrażał sobie zapewne tak zaawansowanych systemów. Mamy obecnie instalowanych cała masę to samo robiących bibliotek i programów. W efekcie, składamy instalacje z tysięcy niezależnych projektów, które połączone są w koszmarne zależności. To nie są dobre praktyki na tak skomplikowane systemy.

Podoba mi się wybór. Mamy np. różne interfejsy (GTK, E, QT, KDE, X, TK, itd). Ale to też poszło źle. Praktycznie nie da się wykonać instalacji na wyłącznie jednym interfejsie. Zawsze dossie się w zależnościach kilka innych zespołów bibliotek, nawet, gdyby dokładnie wybierać programy tylko z jednego ekosystemu. Do tego pełno jest cross-zależności, np. aplikacje QT potrafią wymagać bibliotek od Gnome. To już skrajność, ale jednak występuje i wpływa na tworzący się śmietnik.

Kolejna rzecz do ogólnie pojęte frameworki, Prosta aplikacja potrafi wymagać ciężkich frameworków, bo z założenia ma być częścią jego ekosystemu. Do tego nie rzadko są rozwiązania mało optymalne, a jedynie prostsze w programowaniu. Mamy, więc cała masę na prawdę ciężkich aplikacji, które oprócz RAMu, konsumują zasoby procesora oraz miejsce na dysku.

Microsoft Office 97 posiada praktycznie więcej funkcji niż przeciętny użytkownik potrzebuje. Word czy Excel z tamtego okresu to demony prędkości i lekkości w porównaniu do najnowszych pakietów biurowych. I nie jest to jedyny przykład oprogramowania. Ja zaliczam tutaj także przeglądarki internetowe, które osiągnęły już szczyty absurdów, stając się prawie oddzielnymi systemami operacyjnymi. Nawet webdesign poszedł w ekstremalnie złym kierunku, a sieć WWW stała się miejscem przepełnionym czymś co ma być ładne, ale brakuje mu wartościowej treści.

Następna rzecz. Zarządzanie współdzieleniem plików to jest koszmar. Da się, ale trzeba się mocno nagimnastykować. Konfigurowanie stałych uprawnień wymaga zaprzęgania całej masy narzędzi. A jest to podstawowa funkcjonalność nowoczesnego systemu, której nie ma out-of-the-box. No, czasem są jakieś wydmuszki.

Nadal nie ma sensownej komunikacji między procesami. Przyjęły się pewne standardy, ale nie są one częścią systemu, więc nie mogą działać optymalnie. Rozwiązania, które się sprawdzają i programiści ich potrzebują niezależnie od ekosystemów, powinny być dostarczane przez system i działać z poziomu jądra.

Ale my mamy nawet obsługę dźwięku poprzez zewnętrzne projekty. ALSA, OSS, PulseAudio, Pipewire - ja to wszystko mam poinstalowane.

Brakuje mi solidnego, jednolitego systemu. Taki system mógłby powstawać na podstawie sprawdzonych rozwiązań. Ciągle jesteśmy jednak w latach 80/90tych, które oskryptowaliśmy Pythonem i Perlem.

Nie uważam, że Linuks czy BSD powinny iść inną drogą. Po prostu brakuje mi czegoś innego. Składaki mają swoje plusy, a ja po prostu widzę niezagospodarowaną przestrzeń. Przeglądam sobie od czasu do czasu hobbystyczne projekty OSów, ale w większości są to w pewnym sensie klony uniksowe. Dodając pozostałe projekty to mamy chyba 100% klonów rozwiązań z lat 80/90tych.

Ehhh. No cóż.
  • 27
@rtp_diov: Nie zrozumiałem kwestii związanej z menadżerami pakietów. Ja napisałem, że dobrze, że są. Możesz jaśniej wyrazić swoją opinię?

Co do własnego systemu to zdaję sobie świetnie sprawę z tego, że to bardzo dużo roboty, ale ja nie stawiam sobie za cel stworzenia czegoś co będziesz mieć może na swoim desktopie, czy serwerze. Ja chcę się dobrze bawić programowaniem i robić fajne rzeczy. Zainteresowani sami się z czasem znajdą, a ja
@rtp_diov: Nie zrozumiałem kwestii związanej z menadżerami pakietów. Ja napisałem, że dobrze, że są. Możesz jaśniej wyrazić swoją opinię?


A przepraszam ja myślałem, że piszesz że dobrze że powstały takie instalatory co były na windows jak każda instalka ściągana z innej strony.

Nie mam pojęcia, czy zajmę się pisaniem systemu. Na razie piszę własny instalator i robię to samo co Ty, tylko, że z FreeBSD :)

To jest najlepszy sposób na
To jest najlepszy sposób na początek i uzyskania systemu który naprawdę fajnie działa z dobrym konfigiem. Najpotrzebniejsze narzędzia np. do partycjonowania opakowałem sobie w swoje API i z tego korzystam w instalatorze. Najcięższy był dla mnie etap partycjonowania, wsparcia dla obsługi bios/uefi i róznych konfiguracji (jak np. instalacja obok windowsa). Ale robię to tak warstwami najpierw najniższa typu szyfrowanie dysku, boot, zram, potem sieciowa dnssec itd aż środowisko podstawowe. I w sumie
Bardzo ciekawe, że się tak złożyło, że oboje robimy coś tak bardzo podobnego, tylko na inne systemy.


@psiversum: Tak, mam wrażenie, że ostatnio trochę osób stwierdziło podobnie, że jakość wielu dystrybucji (jak np. ubuntu) nie nadaje się do poważnego zastosowania a w reszcie intalatory są średnie. powstaje też np. instalator do archa rozwijany przez kilka osób w pythonie (aczkolwiek mi nie pasuje akurat). instalacja systemu komendami jak w archu jest strasznie
@rtp_diov: ja piszę zupełnie inaczej. Gdyby przeliczyć czas spędzony nad moim instalatorem to byłyby jakieś 2 dni łącznie. Niedawno zacząłem pisać.

Piszę bardzo prosty kod, dzieląc wszystkie funkcje na pliki, które są ładowane gdy są potrzebne. Oddzielny plik odpowiada np. za partycjonowanie dysku bez szyfrowania, a oddzielny z szyfrowaniem. Dodatkowo, każde menu to oddzielny plik. Funkcji używam tylko jako API, cała magia jest jako moduły, czyli doładowywanie kodu we właściwym momencie.
@psiversum: Przecież jest mnóstwo alternatyw dla systemów Unixopodobnych. Masz Smalltalk, masz Oberona, masz Plan9 i Inferno. Masz Mezzano napisanego w CommonLispie. Masz DuskOS napisany w Forth. Tyle że te systemy nigdy nie przebiją się do mainstreamu, bo, pomijając sterowniki dla współczesnego hardware'u, nie mają współczesnej przeglądarki, która ogarniałaby całe współczesne webowe gówno. Jednak był czas, że ludzie używali komputerów bez internetu. Dziś każdy ma wybór.

Tragedia sukcesu Unixa jest analogiczna, i