Filozofia Uniksa

in polish •  6 years ago 

W Polskim internecie nie ma za wiele o tej filozofii i raczej trzeba szukać jej po angielskich stronach, a w sumie jest to ciekawe zagadnienie dla informatyki - Filozofia Uniksa.

Unix to stary system (chociaż w sumie dalej żywy - głównie za sprawą systemów inspirowanych nim jak Linux czy OS X [Tutaj są spory czy nie jest Uniksem, bo wywodzi się od niego]) i chociaż systemy różnie sobie radzą z tą filozofią (gdyż zwykle idzie się w stronę "krowiastych aplikacji" o tyle można znaleźć oprogramowanie pisane pod te reguły.

Po pierwsze - oprogramowanie powinno robić tylko tyle ile jest to niezbędne. Odtwarzacz muzyki powinien odtwarzać muzykę, a nie robić za przeglądarkę newsów (...). Powoduje to dodatkowe błędy i problemy.

Po drugie - powinieneś tak starać się tworzyć oprogramowanie by mogło współpracować z innym programem.

I to dwa główne punkty (jeszcze jest parę, ale głównie techniczne). A więc popatrzmy

Reguła KISS

Pierwszy punkt brzmi jak reguła KISS. Powinno się tworzyć tak rzeczy (nie tylko oprogramowanie), by spełniało najbardziej podstawowe role bardzo dobrze.

Dam wam przykład programu Surf. Surf to przeglądarka internetowa. W porównaniu do klasycznych przeglądarek jak Mozilla Firefox czy Google Chrome nie ma przycisków ani systemu zakładek. Co?

A no. Projekt jest bardzo prosty, ma tylko otworzyć stronę internetową i tyle robi. Dzięki czemu ilość błędów można było zminimalizować, gdyż jedna aplikacja robi to co do niej należy.

Kooperacja

Jednak jak możecie się domyślić - nie wszystko jest tak proste, gdyż aplikacje współpracują ze sobą. Dam inny przykład projektu Suckless Tools jakim jest Tabbed. Umożliwia ono uruchamianie aplikacji w zakładkach. Tak więc jeśli chcemy by Surf miał karty - Tabbed umożliwia to nam. Mamy dwie aplikacje, które koegzystują, a zarazem nie są tak rozbudowane (bo nie muszą).

Przykładem może być silnik do odtwarzania muzyki i filmów MPV i nakładka Celluloid.

Ale ...

Lepsze jest wrogiem dobrego. O ile są grupy (jak programiści Suckless), którzy tworzą wiele ciekawych projektów zgodnie z ideą Uniksa (Ja osobiście lubię "sent" - aplikację do tworzenia prostych prezentacji) o tyle ludzie lubią fajerwerki i wybuchy. Warto sobie przypomnieć nasze szkolne prezentacje w Powerpoint - ładne tło, efekty graficzne, czcionka starannie wybierana ... a tutaj przykładowy slajd.

Bardzo proste i przejrzyste prezentacje, które nie wymagają dużo pracy i działają szybko! I to jest kwintesencja filozofii Uniksa.

A jak wygląda oprogramowanie w Linuksie?

Odpowiem tak - różnie. Oczywiście nie da się jednoznacznie każdej aplikacji zrobić zgodnie z filozofią Uniksa. Systemd jest odstępstwem, a Wayland nas przybliża (w porównaniu do Xorg). Jako tako jakby ktoś chciał to by dał radę żyć zgodnie z nią. A to ma swoje plusy jak i minusy. Ale tak ogólnie chciałem Was zaciekawić tematem ;)

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Pierwszy punkt brzmi jak reguła KISS. Powinno się tworzyć tak rzeczy (nie tylko oprogramowanie), by spełniało najbardziej podstawowe role bardzo dobrze.

Warto wspomnieć jak rozwija się ten akronim, ja znam dwie wersje:

  1. KISS = Keep It Short and Simple (mniej więcej - uczyń to krótkim i prostym),
  2. KISS = Keep It Simple Stupid (mniej więdej - uczyń to prostym głupku).

Dawno wyszło to już poza filozofię Unixa, choć być może rzeczywiście w jakiejś mierze z niej pochodzi. Wydaje się, że trzymanie się tej reguły jest banalnie proste - a wcale takie nie jest. Wręcz przeciwnie - to niezwykle trudne. Tylko naprawdę dobrzy programiści potrafią w ten sposób pisać oprogramowanie. Tak samo jak zastosowanie tego w innych dziedzinach - np. tylko naprawdę błyskotliwi ludzie, potrafią wytłumaczyć laikowi w prostu i zrozumiały sposób dowolnie skomplikowane zagadnienia.

Brakuje mi systemu, który wróciłby do korzeni UNIX-a. Skończyło się na tym, że używam Debiana (chociaż teraz akurat Ubuntu, bo nie chciało mi się męczyć za bardzo przy instalacji systemu na nowym kompie), ale coraz mniej rzeczy mi się w Debianie podoba. Pewnie warto byłoby w końcu przyjrzeć się BSD? Czy ktoś tego używa na laptopie może? Zwłaszcza programy do grafiki i sterowniki kart graficznych mnie interesują.

Powodzenia. W sensie Linux po tylu latach tak mnie rozpieścił, że nie umiem w BSD. Bo to takie "Linuksy" z lat 90.

Strzelam, że zależy do od sterowników, bo goście sami portują otwarte sterowniki

P.S.
Problemem jest narzucenie ludziom odruchów pochodzących z Windowsów. To że używanie komputera nawet z Unixopodobnym system polega na używaniu Gnome czy czegoś w tym stylu to kompletna porażka. Ja bardzo długo używałem jako menedżera okien larswm i byłem w stanie robić wszystko dużo szybciej za pomocą skrótów klawiaturowych niż przy pomocy myszki. Niestety larswm już wypadł z większości aktualnych dystrybucji.

masz i3wm