życie zabija powoli :)

 

29

kwietnia

2011

Lennart Poettering - współczesny standaryzator linuksa

Innymi słowy - bajeczka na dziś.

Tytułowa osoba może nie jest znana większości użytkowników, ale praktycznie każdy zetknął się z jego rozwiązaniami, o ile korzysta z aktualnych i popularnych dystrybucji.

Chodzi tu głównie o PulseAudio, które wciąż budzi mieszane opinie wśród użytkowników. Serwer dźwiękowy umożliwiający każdej aplikacji mieć własne ustawienia głośności i preferencji urządzeń audio, oraz możliwość przekazywania zdarzeń dźwiękowych na inny komputer/urządzenie poprzez protokół sieciowy.

Drugim projektem, nieco mniej znanym jest systemd, nowy system inicjalizacji dla dystrybucji linuksa, dostępny już w nadchodzącej fedorze 15. Z moich wstępnych testów na exherbo wynika że od wybrania systemu z listy w bootloaderze kernela do ujrzenia zapytania o login (w trybie tekstowym) mija około 10 sekund.

Innymi cechami systemd jest śledzenie działających usług przez initsystem i w razie czego wznawianie ich pracy, możliwość dokładnego profilowania oraz śledzenia drzewa zależności usług, możliwość korzystania z dbus do komunikacji z systemem, integracja z mnóstwem aktualnie wykorzystywanych technologii, a w przyszłości zastąpienie niektórych z nich (np consolekit, gdyż korzystanie z cgroups i automatyczne grupowanie usług i procesów przez systemd praktycznie robi to samo.

Można też wspomnieć o tym że definicje usług są dużo prostsze, a system uruchamiania nie korzysta z języków skryptowych, co ogranicza liczbę zbędnych procesów i zużycie pamięci - to czyni systemd atrakcyjnym dla rozwiązań zintegrowanych (embedded).

Ale to nie o PulseAudio ani bezpośrednio o systemd chciałem pisać. Chodzi o efekt uboczny prac przy systemd i jego integracji w Fedorze.

Podczas rozwoju tego initsystemu na jaw wyszło między innymi że usługi uruchamiane na starcie systemu trzymają tymczasowe dane w różnych miejscach, niekoniecznie do tego przeznaczonych, np. /var/run, /var/lib , /etc/, nawet /dev .

Czyli nie ma ogólnie przyjętego standardu na takie dane. Co więcej próba utrzymania systemd niezależnego od żadnej konkretnej dystrybucji wymagała mnóstwa adaptacji pod każdą konkretną dystrubucjię.

W związku z tym developer zaproponował wprowadzenie katalogu /run w systemie, gdzie udev, systemd i podobne usługi mogą trzymać swoje dane robocze. Chodzi tu o dane które z założenia nie mają przetrwać do kolejnego uruchomienia systemu. Mogą to być pliki socketów, pliki lock, dane robocze udev itp.

Oczywiście spowodowało to gwałtowną dyskusję, a wręcz kłótnie. Głównie odnośnie interpretacji standardu FHS określającego układ katalogów w systemie ( całą kłótnię widać tutaj ). Okazało się że reguł FHS nie naruszono, po prostu niektórzy mieli problemy z czytaniem ze zrozumieniem :].

Zmiana została przyjęta, ale nie była ostatnią. Idąc "za ciosem" developer systemd postanowił poprawić jeszcze kwestię ustawień które każda dystrybucja trzyma w innym miejscu. Chodzi głównie o takie ustawienia jak nazwa komputera, plik z wersją dystrybucji, miejsce zapisu ID komputera, ustawienia klawiatury itp.

Wszystko jest opisane tutaj i z tego co mi wiadomo, większość "dużych" dystrybucji już zgodziła się zaadoptować te zmiany u siebie.

Zmiany spowodują pewną unifikację podstawowej konfiguracji systemowej, co z kolei bardziej ustandaryzuje różne dystrybucje linuksowe.

Zastanawia mnie to, że do tej pory brak takiego ujednolicenia nie stanowił problemu. Może nikt go po prostu nie dostrzegał. Albo nikt nie podejmował się zadania napisania niskopoziomowego programu który poradziłby sobie na każdej dystrybucji linuksa.

Podsumowując, w systemie pojawił się nowy katalog zastępujący role kilku innych, a konfiguracja podstawowych parametrów systemu została bardziej ustandaryzowana.

 
 

22

kwietnia

2011

Pare rzeczy jakich możesz nie wiedzieć o syslinux...

...bo nie są zbyt dobrze udokumentowane ;)

Syslinux jest bootloaderem, czyli programem który umożliwia uruchomienie systemu operacyjnego. Pozwala on na start z dysku/usb/dyskietki/sieci/cdrom, obsługuje różne systemy plików, ma wsparcie dla GPT, obsługę menu i różne inne fajerwerki ;)

Większość funkcji jest opisana, ale są dwie do których ciężko się dokopać, a mogą pomóc w niestandardowej konfiguracji lub systemie który ma problemy ze startem.

W katalogu gdzie zainstalowane są dane syslinux (na ogół /usr/share/syslinux lub /usr/lib/syslinux)
znajdują się moduły (pliki *.c32) oraz obrazy MBR.

Generalnie mamy tam mbr.bin, altmbr.bin oraz gptmbr.bin z wariantami _c oraz _f. Czyli generalnie 9 plików.

gptmbr.bin odpuścimy sobie - jest on używany przy stosowaniu partycjonowania GPT.

Najpierw mbr.bin - jest to standardowy MBR używany przez syslinux. Powoduje on wystartowanie z pierwszego dysku podanego przez BIOS i odszukanie partycji z flagą boot.

Wersja _c ma dodatkową funkcję która sprawia że podczas przytrzymania ctrl w trakcie startowania systemu syslinux ustawi dysk z którego startuje jako pierwszy dysk w systemie (gdy bios tego nie zrobił z jakiegoś powodu).

Wersja _f robi to samo, tylko że automatycznie.

altmbr.bin to MBR który ignoruje flagę boot na partycji i nie poszukuje takiej partycji w systemie. Zamiast tego wymaga podania mu numeru partycji, do której ma przejść podczas startu. Jest to przydatne przy współdzieleniu dysku z systemem windows.

Aby tego dokonać do pliku altmbr.bin należy dopisać jeden bajt z numerem partycji która ma zostać uruchomiona. Np

echo -ne "\x01" >> altmbr.bin 
cat altmbr.bin > /dev/sdc

Poprawny plik będzie mieć 440 bajtów.

Warianty _c i _f robią to samo co w przypadku mbr.bin.

Natomiast gdy wszystkie metody zawiodą, (a urzadzenie startuje spod kontrol qemu) pozostaje zmiana bootloadera. Są płyty główne gdzie syslinux nie działa, za to poprawnie startuje grub2.

 
 

21

kwietnia

2011

kroczki naprzód

Pracuję w nowym dziale niecale dwa miesiące, a już mam za sobą pierwszy egzamin oracle, a w przyszłym miesiacu jadę na szkolenie. Co prawda nie daje mi to jeszcze certyfikatu - do tego trzeba kilku egzaminow, ale jest szansa na ich osiągnięcie.

W porownaniu z helpdeskiem, gdzie przez blisko 4 lata pracy nigdzie mnie nie wysyłano i nie proponowano mi żadnych sposobów rozwoju, jest to dramatyczna zmiana na lepsze. Poziom stresu jest z powodu tych egzaminów nieco podwyższony, ale coś za coś. Prawda?

 
 

Miniblog

14 września 2011, 22:19:53 | klucz ssh na gitorious |

Od niedawna przyłapałem się na tym że na gitorious.org przestał działać mój klucz ssh. Próba ponownej instalacji klucza powodowała jego odrzucanie ( " ssh key invalid " ).

Problem polega na tym ze zamiast user@host na końcu klucza trzeba wpisać swój email jaki podaliśmy przy rejestracji w gitorious.org. Być może problem nie dotyczy wszystkich, ale u mnie było to jedyne działające rozwiązanie.

04 lipca 2011, 12:48:34 | Tunelowanie esx po ssh |

Szybka notatka na przyszłość; aby wbić się na serwer ESX za pomocą vSphere poprzez tunel SSH, trzeba przeforwardować porty 443, 902, 903 oraz dodać wpis do hosts postaci

127.0.0.1 esxhost

bez tego nie pójdzie. Posiadanie wpisu określającego 127.0.0.1 jako "localhost" też z jakiegoś powodu nie wystarcza i dostaje się tajemnicze informacje o nieprawidłowym hoście, braku łączności itp.

02 sierpnia 2010, 20:12:02 | [mini] nietypowy problem CUPS |

ERRDOS - ERRbadaccess 
(Invalid open mode.) opening 
remote spool Test Page

W takiej sytuacji należy w windows w wlaściwościach drukarki odznaczyć "drukuj bezpośrednio na drukarkę". Dziwne, ale zostawię to sobie tutaj na przyszłość.