Mój Linux. Aby być bardziej poprawnym, powinienem mówić o moim ,,Linux Box'', bo pod ,,Mój Linux'' rozumiem system operacyjny, dobór aplikacji których używam ale także sprzęt i zadania, które musi wykonać maszyna. Czyli ogólnie ,,komputer''.
Sprzęt:
Po modernizacji w styczniu 2005 stałem się użytkownikiem Semprona
2200+ przetaktowanego z 1,5GHz na 1,8GHz, maszynka posiada
512MB ramu i jak na razie sprawdza się znakomicie. Wcześniej
używałem Celerona 333MHz@416MHz z 224MB ramu, więc...
Swap to szczątkowo używana partycja wielkości 100MB. Jeden podłączony
na stałe dysk Maxtora ATA/100 5400RPM, 40GB, maks. transfer
w okolicach 33MB/s, zajęty zwykle w około 30-50% (Hej, jak nie zbiera
się divx-ów to się tak ma! ;) Z dysku jestem zadowolony, bo jest względnie
szybki jak na czasy w których go kupowałem (kosztował mnie 350zł,
obecnie za te pieniądze można mieć oczywiście coś o wiele lepszego).
Monitor 17" LG Flatron F700B, który zresztą już pokazał pierwsze defekty kilka dni po zakupie. Był w serwisie, na szczęście jako-tako to poprawili (wymienili kineskop). Balans kolorów się po serwisowaniu drastycznie pogorszył, ale to na szczęście szło wyregulować poprzez OSD monitora więc ogólnie wyszedłem na swoje.
Karta dźwiękowa to SB Live!1024, z której jestem bardzo
zadowolony.
Karta graficzna to Radeon 7500, podarowany mi przez
rmrmg. Wcześniej używałem karty Matrox G200, kupionej dawno temu za
chyba 65zł na Allegro. Karta ma świetne wsparcie pod Linuksem,
niestety działa tylko z AGP 1x/2x, a moja nowa płyta główna to już AGP 8x,
więc karty tej już w tę płytę włożyć nie mogłem. Z Radeona zdjąłem za to
jego firmowy zestawik chłodzący i zastąpiłem radiatorem ściągniętym z tego
G200 - takie pasywne chłodzenie temu Radeonowi wystarczy, a pozbyłem się
hałaśliwego wiatraczka.
Drukarka to laserówka HP LaserJet 5L nabyta na Allegro (cena: 410zł razem z tonerem HP) - jestem z tej drukarki bardzo zadowolony, mogę z czystym sercem polecić każdemu linuksiarzowi.
Obecnie jestem podłączony do internetu przez lokalną sieć radiową. Używam karty D-Link 520+ na układzie ACX100. Texas Instruments nie oferuje wsparcia linuksowego dla tego chipsetu, ale na SourceForge jest hostowany projekt OS tworzący sterowniki m.in. do niej. Tak że nie narzekam.
Aplikacje:
Mój ulubiony (jedyny używany) edytor tekstu to Vim, klient poczty i newsów to
Sylpheed-Claws, choć znakomitą większość poczty obsługuję przez www gmaila. Shell to Zsh, środowisko graficzne to w większości Gnome. Do
multimediów amarok/mplayer.
Do WWW Ogniolisek i ewentualnie Opera. Do składania tekstów
LaTeX i OpenOffice. W sumie bardzo
standardowy zestaw. Aha, większość czasu (99,9%) spędzam w X-ach, a nie
w VT. XTermów używam za to dość intensywnie.
QuaTrin Linux:
To najciekawszy kawałek konfiguracji. Bo jestem jedyną osobą, która
tego używa. Nie używam żadnej dystrybucji, QuaTrin Linux złożyłem
do kupy ,,tymi ręcami''. System jest trochę jak LinuxFromScratch, tyle że
budowany jeszcze bardziej ,,samodzielnie'', bez żadnych podręczników,
instrukcji obsługi, skryptów budujących czy zestawu źródeł do skompilowania.
QuaTrin Linux wykorzystuje HBS jako swój system pakietów, trzyma
się norm FHS, system skryptów startowych to aktualnie automagiczny
model simpleinit (usługi automatycznie ustalają między sobą
kolejność uruchamiania/zamykania wykorzystując zależności provides/depends,
nieco jak np. modprobe robi to z modułami jądra. System jest dostosowany do
tego, czego oczekuję. Żadnych fajerwerków, automagicznych konfiguratorów,
nic z tych rzeczy. Choć automatycznie startuje w X-ach bez potrzeby
logowania. Wolę utylitaryzm od hardkorowego fanatyzmu.
Co do nazwy, to ,,QuaTrin'' ma pewne znaczenie. Słowo pochodzi w prostej linii od quatrain, a wywodzi się z tekstów Nostradamusa i jest prawdopodobnie przekręconą przez Nostiego nazwą czterowiersza. Albo, jak sugerują niektórzy, należy to widzieć właśnie jako QuaTrin, dwa atomy ukazujące dwie najważniejsze liczby Istniejącej Rzeczywistości - 4 i 3. Cztery to liczba nauki, liczba człowieka. Fizyczna strona istnienia, materia. 3 to liczba ducha, Boga, mistycyzmu i duszy. QuaTrin to tylko symbol, przypominający o dualnej istocie człowieka i świata, o tym że każdy medal ma dwie strony, a każdy kij dwa końce (z pominięciem procy, która końce ma trzy ;)
Sam system jest mi bardzo miły. Kiedyś nosiłem się z myślą przesiadki na PLD, ale sobie w końcu odpuściłem - zacząłem zestawiać listę pakietów, które bym musiał zaraz po instalacji zmienić, i wyszło tego jednak zbyt dużo. Poza tym \hoppke chyba nie jest typem który zadowala się jakimś gotowym rozwiązaniem. Wszystko musi robić sam. Ech. Poza tym mam sentyment do swojego systemu. QuaTrin Linux to mnóstwo mojej pracy, pracy która teraz codziennie zwraca mi się z nawiązką.
A filozofia systemu jest prosta - praktycznie wszystko jest kompilowane ze źródeł, system jest bardzo nowoczesny jeśli idzie o wersje oprogramowania. Nie ma podziału na pakiety *-libs i *-devel, bo przy budowaniu pakietu z góry wiem, co będzie mi potrzebne. Niepotrzebna dokumentacja czy insze pliki po prostu nie trafiają nigdy do pakietów. W sumie bardzo proste, prawda? Ewentualne niespójności w obrębie systemu pakietowania mam głęboko gdzieś, w końcu to mój system. Może i mam nieporządek na biurku, ale to moje biurko i mój nieporządek. Ja wiem, gdzie co leży i umiem się w tym odnaleźć. QuaTrin Linux istnieje tylko dla Grzegorza Niewęgłowskiego, więc to on jest jedynym który mówi, jak to wszystko powinno wyglądać. Taki jest Linux, prawda? Elastyczny.
,,Ideologia'' mojego systemu:
Stara szkoła, choć model ten powoli zaczyna wracać do łask u coraz większej
liczby użytkowników z tego co widzę. System sztywny, dostrojony
maksymalnie do maszyny na której działa. Wszystkie możliwe pakiety
własnoręcznie skompilowane z niestandardową często optymalizacją,
tak, aby uzyskać jak najmniejszy kod wynikowy i zajętość dysku oraz pamięci
(bez tego ręczna kompilacja to marnowanie czasu). Często (praktycznie
wszędzie gdzie się da) rezygnuję z mechanizmów NLS aby oszczędzić miejsce na
dysku i pamięć operacyjną, zwłaszcza gdy polskie tłumaczenia są
niespecjalnie dobre. Nie używam polskojęzycznej dokumentacji ze względu na
częste pomyłki, nieścisłości lub zwykłą nieaktualność. Kernel buduję raczej
monolityczny niż modularny, system plików Ext3, dysk
posiada tylko niedużą partycję swap i pojedynczą, wielką partycję
na której leży cały system - /, /usr, /home, /boot itp.
W QuaTrin stosuję tzw. ,,konfigurację implodującą'', tzn. taką, która zapada się sama w sobie i pozbawiona jest części, które nie są absolutnie konieczne w danym zastosowaniu. Widać to np. w skryptach startowych czy sekwencji uruchamiającej X-y - aby osiągnąć największą wydajność (to mój priorytet, zaraz obok ergonomii) warstwa konfiguracyjno-pośrednicząca powinna być jak próżniowe opakowanie torebki kawy - jak najściślej przylegać do kawy, tfu, maszyny. Nie ma miejsca na żadne automatyczne konfiguratory, na dostosowywanie konfiguracji maszyny w locie przez kudzu, jakiekolwiek sekwencje if..else, ładowanie zbędnych modułów, daemonów czy linkowanie ze zbytecznymi dla zaplanowanej pracy maszyny bibliotekami. Takie rzeczy po prostu nie są potrzebne w już skrystalizowanym systemie, a mogłyby wprowadzać dodatkowe opóźnienia i niepotrzebnie obciążać system. Nie jestem fanatykiem, a po prostu lubię funkcjonalność. W końcu jaki normalny kierowca wozi w swoim aucie trzy zapasowe akumulatory, pięć kół ,,na wszelki wypadek'' oraz dwa foteliki dziecięce ,,bo co jeśli spotkam autostopowiczkę z dwójką małych dzieci?''. Pewnie, absurd. Ale dystrybucje są często tak właśnie konstruowane.
Nie mam np. żadnego dedykowanego pliku w którym określam nazwę fontu ekranowego i mapę klawiatury, zamiast tego po prostu od razu wywołuję ,,setfont/loadkeys'' z odpowiednimi argumentami. Sekwencja startowa prosta, zrobiona za pomocą alternatywnego programu /sbin/init ("simpleinit" z util-linux). Nie używam też żadnego spoolera wydruku, zamiast tego mam jeden skrypt który bez kolejkowania od razu drukuje dokumenty (ghostscript z wyjściem na /dev/lp0) - w końcu to ja sam pracuję z moją drukarką, więc nie potrzebuję spoola.
System nie jest tak uniwersalny jak dystrybucje, ale za to jest od nich o ładnych kilkadziesiąt procent mniejszy, szybszy i całkowicie dostosowany do moich wymagań - nic dziwnego, skoro to ja go budowałem.
Rys historyczny:
(chcę to wynotować dopóki jeszcze nie zatarły
się wszelkie ślady:)
Początek systemu QuaTrin mogę chyba datować na
początek roku 1998 (zapewne luty), przynajmniej takie daty nosiły
najstarsze pliki jakie gdzieś mi się zapodziały w otchłaniach systemu.
Pierwsza Era QuaTrin to okres w którym intensywnie korzystałem z bazy danych
pakietów podobnej do tej, której używa Slackware (część skryptów do obsługi
tej bazy wziąłem ze Slackware, część wystrugałem samodzielnie). Ale
ta baza danych przestała mi wystarczać, więc postanowiłem przestawić się na
coś z większym potencjałem. Ostatecznie wahałem się między pakietami .deb
i .rpm, ale wybór padł na .rpm. Uznałem, że skoro RPM jest używany
w paru dużych dystrybucjach, to powinien się szybciej rozwijać od narzędzi
Debiana. Uznałem, że RPM będzie miał większe wsparcie, wprowadzane nowe
funkcje itp. Niestety, potem się okazało że to nie jest takie proste :) Ale
nie żałowałem wyboru, bo RPM się dobrze sprawdzał. W każdym razie Druga Era to
era rpm-owego QuaTrin. Powolne przerabianie pakietów TGZ na RPM, początkowo
albo przez pisanie bardzo, bardzo prymitywnych plików .spec, albo przez
używanie checkinstall. Niestety, nie umiem już wyznaczyć momentu
w którym rozpoczęła się Druga Era. Muszę przyjąć jako ten moment datę
instalacji najstarszego pakietu jaki mam obecnie w bazie RPM, bo innych
dowodów nie mam. W chwili pisania tych słów najstarszym pakietem jest nmap,
datowany na czwartek, 28 marca 2002 roku. Ale z pewnością Druga
Era zaczęła się wcześniej, tyle że nie zachowali się starsi świadkowie
tamtych czasów. Następnie przyszła Trzecia Era, era świadomego pisania
plików .spec. Był to moment rezygnacji z usług checkinstall.
Ostatni pakiet zbudowany z pomocą checkinstall jaki znalazłem w mojej bazie
to dosfstools z datą 02 kwietnia 2002 roku. Więc przyjmę, że to właśnie
w kwietniu 2002 skończyła się Druga i rozpoczęła Trzecia Era.
Trzecia Era trwała aż do pewnej dużej utraty danych, połączonej z wymianą
dysku. W tamtym też momencie niestety straciłem wszystkie napisane
własnoręcznie pliki .spec - baza danych z informacjami o pakietach i same
pakiety przetrwały, ale bez plików .spec nie byłem w stanie ich
przekompilować i musiałem wszystkie spece pisać od nowa. Tutaj datę mogę
poznać po tym, że przy okazji pisania specy na nowo zmieniłem nieco ich
styl, np. zamiast dwuczłonowych określeń dla kategorii pakietu, np.
"System/Biblioteki" zacząłem używać wyłącznie określeń jednoczłonowych, np.
po prostu "Biblioteki". Granica pomiędzy erą Trzecią i Czwartą zdaje się
przebiegać gdzieś między styczniem a lutym 2003, bo mam w bazie
zainstalowane dwa ,,przełomowe'' pakiety, z 18 stycznia 2003 mam masqmail
z kategorii "Aplikacje/Internet", a następny pakiet to dopiero t1lib z 14
lutego 2003 z kategorii "Biblioteki". Aż gdzieś na początku roku 2004
opętała mnie myśl o stworzeniu własnego systemu pakietów, wzorowanego na
praktycznie wszystkim co znałem. I w lutym 2004 intensywnie dłubałem
już przy HBS, czyli Hierophant Build System. Staram się by
system ten wymagał jak najmniej czynności ze strony użytkownika, ale
jednocześnie nie tracił "powera". Jak na razie świetnie się sprawdza
i jestem z niego zadowolony o wiele bardziej niż z RPM...
Przybliżona Chronologia:
Najpóźniej dziewiąty lutego 1998:
Era Pierwsza, Latająca Ryba. Początek QuaTrin, system z pakietami slackopodobnymi.
Najpóźniej 28 marca 2002:
Era Druga, Kamień Wśród Gór. QuaTrin konwertuje na Erpemizm.
2002, początek kwietnia:
Era Trzecia, Światło Na Wodzie. Zaczynam pisać własne, prawdzie pliki .spec
2003, początek lutego:
Era Czwarta, Drzewo Sandałowe. Wyrabiam własny styl pisania specy.
2004, około lutego:
Era Piąta, Zmierzwiona Wiewiórka. Przechodzę na własny system pakietowania, HBS.