Ludzie nie potrafią załatwić najprostszych spraw


Byłem wczoraj w Urzędzie Skarbowym. Czas w kolejce: ok. 1 godziny. Czas w boksie: 1,5 minuty. Przede mną 5 osób, z których żadna nie była w stanie załatwić sprawy bez opóźnień:

  • ludzie nie wiedzą, czego chcą, po co w ogóle do tego urzędu przyszli
  • jeśli wiedzą, to nie mają ze sobą ani wezwania, ani jego numeru, i nie wiadomo pod co ich podpiąć
  • jak się odnajdą, to nie mają ze sobą nawet kawałka pisma przewodniego, z wyjaśnieniem po co składają to, co składają
  • jeśli już na miejscu to pismo stworzą, to nie wpisują swoich danych i muszą uzupełniać
  • jak przynoszą jakieś dokumenty, to bez kopii; urzędniczka marnuje czas na zrobienie ksero

Trudno się potem dziwić, że są kolejki, jak ludzie do wizyty w urzędzie nie potrafią się przygotować. W sumie to takie rzeczy powinny w szkole być uczone.


Archived comments:

Remigiusz 'lRem' Modrzejewski 2013-04-18 17:55:15

Powinny. Powinny też być jasne instrukcje dołączane do wezwań. Nie żeby pierwszą rzeczą którą robię po otrzymaniu takiego było czytanie ustawy...

sprae 2013-04-18 21:22:57

To nie jest wina ludzi. To jakby winić ludzi, że nie potrafią obsługiwać basha.
Jeśli coś jest dla ludzi powinno służyć im pomocą. Dlatego w Wielkiej Brytanii urzędy wdrożyły TQM, a nawet dostały nagrodę za jakość tego wdrożenia.

abec 2013-04-19 17:16:44

jesli US wzywa czlowieka to jeszcze wymaga pisma przewodniego? Jak mu delikwent dostarczy papierek, to niech sie US martwi, zeby trafil on do wlasciwej teczki.

zdz 2013-04-22 19:52:10

Wypadaloby poinformowac, na ktore wezwanie odpowiadasz i jako kto skladasz.
Jak przynosze umowe, to mam sie spodziewac, ze US sprawdzi wszystkie nazwiska z umowy i podepnie pod ktores z nich kwit?

Więc, często tak sobie benchmarkujesz?


Do tematu wspomagania wolnego dysku mechanicznego szybkim SSD wracam trzy lata później. Celem jest sprawdzenie jak sobie radzi i ile daje dostępne w jądrze linuksa dm-cache.

Co potrzeba?

  • dysk wolny — udział bierze dysk 5400 RPM 160GB
  • dysk na cache, czyli partycja 5GiB na Samsung SSD 830
  • dysk na metadane — partycja 32MiB na powyższym SSD
Pokusiłem się o test real-life. Na wolnym dysku znajdują się obrazy maszyn wirtualnych. W czasie testu w jednej z nich robiona był aktualizacja dwóch pakietów — kernel oraz fedup — oraz usunięcie trzeciego preupgrade. Po aktualizacji cofnięcie tranzakcji. Pomiar wykonany 5 krotnie, skrajne wyniki odrzucone, pozostałe uśrednione. Następnie włączenie cachu na SSD i powtórzenie procedury.

Środowisko:

host: Fedora 18 Spherical Cow z jądrem 3.9.0-0.rc6.git0.1.fc19.x86_64
gość: Fedora 20 Rawhide

Instalacja:
 fedup     noarch      0.7.3-2.fc20               rawhide     67 k
     replacing  preupgrade.noarch 1.1.11-3.fc19
 kernel    x86_64      3.9.0-0.rc6.git0.1.fc20    rawhide     27 M

Pomiar:
% time yum history redo 558 -y
% time yum history undo 558 -y

Decyzje i konfiguracja

Rozdzielenie urządzenia dla metadanych i właściwego cache ma na celu zwiększenie elastyczności rozwiązania. O ile dobór wielkości cache jest prosty (im więcej tym lepiej), to jak z nośnikiem metadanych? Do tego służy następująca reguła:

4MiB + (16bytes * nr_blocks)
A wielkość bloku? To już zależy od charakterystyki obciążenia. Ja przyjąłem “na oko” blok wielkości 64KiB. Przy urządzeniu cache wielkości 5GiB, otrzymujemy porywające zapotrzebowanie 5,25 MiB.

Mamy więc już prawie wszystko: urządzenie do przyspieszenia (sdb), partycję na cache (sda5), partycję na metadane (sda6) i wielkość bloku (64KiB czyli 128 sektorów po 512 bajtów). Potrzebujemy tylko wielkości urządzenia sdb w sektorach:

% blockdev --getsz /dev/sdb 
312581808
Możemy więc utworzyć, zamountować cache i przejść do pomiarów:
% dmsetup create fusiondrive --table '0 312581808 cache /dev/sda6 /dev/sda5 /dev/sdb 128 1 writeback default 0'

% mount /dev/mapper/fusiondrive /var/lib/libvirt/images -o subvol=var_lib_libvirt_images

Wyniki i intepretacja

Zero. Żadnej zauważalnej różnicy. O ile jeszcze procent trafień przy zapisie oscylował w okolicach 4%, to przy odczycie średnia wyszła 0,12%. Czasy sys i user zbliżone - okolice 40s i 50s dla instalacji, w granicach 2,5s dla deinstalacji. Czas real - duży rozrzut, do 83s do ponad 330s. Całkowicie bezużytecznie, nawet nie ma co wykresów robić.

Winny 1 - time yum

Instalacja jądra wydawała się dobrym pomysłem do momentu spojrzenia na wykresy zajętości zasobów przez maszynę wirtualną. Gros czasu obciążenie 100% CPU przy minimalnym użyciu dysku. Powodem było tworzenie obrazu initramfs, a użycie CPU wynika z tworzeni i kompresji pliku cpio. Przydatność do testowania wejścia/wyjścia — żadna. Dodatkowo, yum większość czasu spędzał śpiąc i czekając na procesy potomne wykonujące prawdziwą pracę, w tym czasie nie był mu naliczany czas.

Winny 2 - system plików btrfs

Zarówno dysk sdb, na którym znajduje się obraz maszyny wirtualnej, jak i sama maszyna skonfigurowane są z btrfs. Jest to system plików typu copy-on-write, co oznacza, że dane nigdy nie są nadpisywane. Zapis polega na odczycie danych, zapisaniu zmodyfikowanej kopii gdzieś indziej i uaktualnieniu wskaźników na dysku. Odniesienia do oryginalnej kopii danych znikają (o ile nie ma snapshotów).

Cache działający na poziomie bloków danych nie ma pojęcia, że wrzuca do pamięci podręcznej bloki, do których system plików już nie będzie wracał. Taka już jego uroda, ma ten problem dm-cache, ma go bcache, będzie miał każdy inny. btrfs nie nadaje sie do akceleracji w ten sposób. Dopiero wbudowanie mechanizmów cache SSD w sam btrfs da jakieś sensowne wyniki. Może nawet porównywalne z osiągami ZFS.

W skrócie: benchmarkować to trzeba umieć, panoczku.


Archived comments:

DeHa 2013-04-15 15:19:11

Czyli eksperyment dowiódł, że btrfs jest faktycznie CoW. ;)

zdz 2013-04-15 15:29:57

Mooooo!

LCF 2013-04-15 16:00:35

Huh,

A nie prościej wszystko przemigrować na SSD, zamiast jakieś wynalazki z cachami ?

zdz 2013-04-15 17:00:45

Oczywiście, że łatwiej i za parę lat ekonomicznie to będzie uzasadnione. Na dzień dzisiejszy rozwiązania pamięci hierarchicznej sprzedają się dobrze.

tap 2013-11-25 14:43:31

Zrobiłem teścik bcache - taki organoleptyczny.

Bcache na 2x 120GB SSD (samsung pro i kingston jakiś szybki) w raid1 na linuxowym md + 4x 1TB Segate w raidz1 i na tym zfs.

Bez ssd-ków trzy chodzące równolegle tary powodowały zawał systemu. Load szedł w kosmos, próba zrobienia zfs list kosztowała czasem nawet kilkanaście sekund.

Z bcache 10 chodzących równolegle tarów, load na poziomie 2-3 (8 fizycznych rdzeni HT, więc znikomy), system reponsywny, nadal możliwe było dowalenie jakiejś jeszcze operacji dyskowej. Co ciekawe, 10 tarów wykonało się szybciej (182s) niż 3 tary (270s).

bcache fkoz jako write-back - dlatego na MD, dlatego na dwóch różnych SSD.

zdz 2013-12-18 13:35:31

Przecież ZFS ma natywną obsługę cache na SSD, dlaczego przez bcache?

Jednoprzewodowe finito


Wcześniejsze problemy z onewire najwyraźniej wynikły z mojej nieumiejętności lutowania. Rozwiązaniem była wymiana przejściówki rs232-onewire — działającą sprezentował mi kolega z byłej pracy. Następnie, po kilku jesienno-zimowych wieczorach zanudzania Remigiusza pytaniami, osiągnąłem zadowalający efekt:


Rozkład temperatur w mieszkaniu

Pytonowy matplotlib nie jest jednak dla mnie wystarczająco przejrzysty. Po kilku próbach połączenia obrazków wykresu i planu mieszkania wewnątrz pytona zrezygnowałem i z niesmakiem zrobiłem

os.system("/usr/bin/convert -composite ...

W międzyczasie właściwy Projekt P61107 też poszedł do przodu. Udało mi się zaprojektować przebieg ścieżek i zlutować płytkę. Niestety wciąż brakuje czasu na skalibrowanie jej w warunkach bojowych i oprogramowanie, nie mówiąc już o zrobieniu prezentacji na jakiś TLUG. Za parę tygodni mija rok, jak zainteresowałem się tematem.


Archived comments:

sprae 2013-03-07 22:32:39

Bardzo ładna wizualizacja. Ciekawe czy da się takie gradienty zrobić prosto w SVG na podstawie punktów pomiarowych.

rozie 2013-03-10 08:20:04

RSa masz natywnego czy via USB? Ile termometrów? Ogólnie fajnie by było, jakbyś napisał trochę więcej o technikaliach.

Może po 10 latach w końcu się zbiorę i zrobię. A to nie było kompa 24/7, a to nie było RSa, a to nie było czasu... ;/

zdz 2013-03-10 09:00:40

Rozie w poprzednim wpisie, zalinkowanym w pierwszym zdaniu, napisałem wprowadzenie. 7 termometrów, RS na USB (PL 2303), wykorzystałem okablowanie strukturalne w domu.
Temat z jednej strony ograny na maksa (milion stron o tym jest), z drugiej strony może warto dorzucić trochę więcej ilustracji o opisów. Podejrzewam, że w tym roku go jeszcze opiszę :)

lemiel 2013-03-11 13:16:13

A jaką przejściówkę dostałeś?
Może zamiast Prolifica FTDI?

Pożegnanie z em1


Przyzwyczaili się już do em1 i podobne w miejsce eth0? Jeśli nie, to dobrze, bo wygląda na to, że znowu się zmieni.

Kay Sievers zaimplementował w udev nowe polityki nazewnictwa, znacznie rozszerzające ofertę biosdevname. Admin ma do wyboru kilka sposobów określania nazwy sieciowej wraz z możliwością wyłączenia tego w cholerę.

Wbudowane sieciówki ethernetowe już nie będą emX, a enoX. Dokładane mogą mieć nazwę zależną od "hotplug id" slotu (ensX) bądź od id gniazda PCIe (enpXsY). Oczywiście urządzenia wielofunkcyjne nazwy mają odpowiednio dłuższe, jak enpXsYfZ.

Dla hardcorowców pozostają nazwy z osadzonym adresem MAC - wwx028037ec0200 (tutaj ww jest przedrostkiem urządzenia WWAN; jak łatwo się domyślić, en w poprzednich przykładach oznacza Ethernet).

Szerszy opis na wiki oraz w kodzie źródłowym.

Ender Srender


Saga Endera wraz z Bean's Quartet to przykład jak trudno utrzymać poziom pisząc serię książek. Albo jak wąska tematyka jest dla mnie ciekawa ;-)

Wybrałem kolejność niechronologiczną, najpierw książki o Enderze, potem serię Cieni. W efekcie rollercoaster. Grę, pominąwszy harrypotterność (stado uzdolnionych dzieci w szkole, a bohater tytułowy najważniejszy i w ogóle najbardziejszy) czyta się świetnie. Co ciekawe, aspergeryczne geeki nie mogą się utożsamić z Enderem z uwagi na rozbuchaną empatię tegoż.

Kolejne trzy książki lecą w przepaść pitu-pitu. Pierwsza jeszcze trzyma poziom, ale kolejne osiągają szczyty rozwodnienia. Dość powiedzieć, że flota, która startuje w Mówcy, dolatuje do celu trzy książki później.

Potem rewind i wracamy do wydarzeń z początku wraz z Cieniem Endera. To bardzo przyjemny powrót do dynamiki pierwszej książki, naprawdę odświeżające doznanie. Byłem autentycznie podjarany tak jak na początku sagi. Odpocząłem od MacGuffinów w postaci aiúa.

Niestety kolejne Cienie zaczynają się znowu robić męczące. Jestem w połowie trzeciej książki (Shadow Puppets) i mam wrażenie, że ktoś pomylił uniwersa. Znowu jakieś pitolenie, jakieś wojny w Indiach, jakieś pierdoły. Aż można zapomnieć, że kilkanaście lat wcześniej ludzkość napierdzielała statkami kosmicznymi, tłukła (dwa razy!) buggersów, że w tle tego wszystkiego krąży Jane. Zamiast tego spacer po pakistańskich wiochach.

Przede mną jeszcze dwie książki z serii Cieni: of the Giant i in flight, potem spinająca obydwie odnogi Shadows Alive. A za rok wizja hollywódzka w postaci filmu. Postaraj sie Pan, panie Card!


Archived comments:

Michał 2012-11-15 11:00:41

Mieszasz sagi, za Wikipedią:
"Cień Endera (...) to pierwsza część Sagi Cienia. (...) Jest, jak sam autor określił, pewnym eksperymentem, powieścią "paralelną". Nie jest to sequel do sagi o Enderze lecz wstęp do Sagi Cienia.

zdz 2012-11-15 11:09:13

Ci sami bohaterowie, ciąg historyczny, świat. Faktycznie wciskanie pod skrzydła Endera może nie być prawidłowe, poprawiłem wpis.
Ale wciąż — początek super, a potem równia pochyła.

mmazur 2012-11-15 12:33:32

Nie czytałem niczego poza książkami o Enderze, bo nie chcę sobie rozwadniać, ale dla mnie Mówca Umarłych > Gra Endera w stopniu bardzo dużym. Ale to wynika z istotności tematyki w moim dzieciństwie i z faktu, że Gra to w znacznie większym stopniu nawalanka.

ramzes 2012-11-15 13:01:06

Grę Endera przerobiłem w lecie jakoś, ale nie wciągnęła mnie na tyle, aby kontynuować. Chyba nie moja bajka tak do końca.

hcz 2012-11-15 20:02:00

Kiedy czytam na okładce książki "Pierszy tom sagi takiej czy owakiej", to mam ochotę uciekać.

Kiedyś przeczytałem cały cykl "Rama" Arthura C. Clarke i żałuję, że nie skończyłem na pierwszej części.

F18: śliska sprawa


F18: śliska sprawa

W nabliższy wtorek przypada pierwsza z planowanych dat wydania Fedory 18. Wydania nie będzie. Po serii opóźnień spodziewany termin to połowa grudnia. Coś mi jednak mówi, że nowej Fedory nie zobaczymy w tym roku.

Większość nowości w F18 jest już w zasadzie skończona, obsuwę wprowadza jeden element — anaconda, czyli instalator. W poprzedniej wersji mieliśmy przepisanie backendu odpowiedzialnego za pamięć masową. Obecnie zupełnie nowy — ale nieskończyny! — interfejs użytkownika całkowicie rozpieprzył terminarz wydania.

Przy okazji przestała działać duża część funkcjonalności, np. aktualizacja już zainstalowanej wersji. Tym sposobem aktualizacja z użyciem yum na żywym systemie, opisana w wiki jako unsupported and not recommended!, jest jedyną działającą.

Samobieżne narzędzie do aktualizacji fedup dopiero co się pojawiło. O sensownym przetestowaniu nie ma mowy.

Wszystkie duże zmiany w distro powinny mieć awaryjny plan wycofania w przypadku problemów. Dla instalatora go nie było. Dodatkowo RH, płacący części programistów, przesunął ich do stabilizowania RHEL7 zamiast do kończenia instalatora.

Ta sytuacja jest niestety bolesnym przykładem zależności Fedory od Red Hata i niedojrzałości procedur zatwierdzania dużych zmian.


Archived comments:

sprae 2012-11-02 20:32:18

Zapomnieli, że przewidywany czas kodowania trzeba pomnożyć przez 3 ;-)

Airborn 2012-11-03 12:08:39

Aż wstyd się przyznać, że ciągle na F16 siedzę, ale ponoć tutaj też trochę problemów z updatem może być.

zdz 2012-11-07 20:23:52

i się ślizgło, expected release 2013-01-08

yZZuF 2012-11-09 10:10:38

Chciałem wczoraj wypróbować F18. Zatrzymałem się na partycjonowaniu. Nie byłem w stanie użyć LUKSa. Rzeczywiście jeszcze trochę brakuje aby móc tego używać.

P61107: dygresja na jeden przewód


Ostatnio w ramach hobby zlutowałem interfejs rs232-1wire. Magistrala 1wire jak sama nazwa wskazuje wymaga dwóch kabelków (GND i dane). Reszta elementów to gniazdko DB9 i kilka drobiazgów, łączna cena elementów nie przekracza 2zł.

Po podłączeniu z jednej strony czujki temperatury DS18B20, a z drugiej komputera, zaczęły się schody. digitemp był stanie wykryć czujnik, ale odczyty zwracały błąd - 85°C, wskazujący na problem z zasilaniem. Dla testu zrobiłem też paczkę z owfs. Zachowanie identyczne, a do tego po fakcie znalazłem w źródłach gotowy .spec dla RPM.

Mam więc zagwodzkę, którą nie wiem już z której strony ugryźć.

Problemem wydaje mi się interfejs RS232. Nie mam w posiadaniu komputerów z fizycznie obecnym tym portem, mam dwie przejściówki USB-RS232. Zasilanie USB to 5V, chińskie przetworniki mogą nie być w stanie wytworzyć potrzebnego dla RS232 ±15V. Do tego jedna z przejściówek pluje do logów:

ftdi_sio ttyUSB0: CSIZE was set but not CS7-CS8

Jedynym odstępstwem od schematu, jaki zrobiłem, było zastosowanie równolegle dwóch rezystorów 3k3Ω zamiast jednego 1k5Ω. Inna opcja, która mi zostaje, to zrobienie odrobinę bardziej skomplikowanego układu z tranzystorami i wyprowadzonym zasilaniem. Tylko ta opcja a) wymaga pociągnięcia 3 przewodów dla obsługi 1wire; b) psuje mi koncepcję.

Otóż wetknięcie czujnika temperatury w nieużywany gniazdka sieciowe w każdym pokoju to nie problem. Gorzej, że zaczyna mi brakować przewodów do mojego urządzenia wyniesionego. Mam w punkcie docelowym wyprowadzoną pojedyńczą skrętkę. Raspi ma interfejs ethernetowy 100MBps, więc do pracy wystarczą dwie pary. Kolejną parę planuję wykorzystać na doprowadzenie zasilania. Zostają dwa przewody, idealne na 1wire zasilany pasożytniczo. O jeden przewód za mało na doprowadzenie dedykowanego prądu.

A ta cała dygresja sprowadza się do tego, że sprzęg optyczny w P61107 jest w całości zasilany pasożytniczo z RS232. Jeśli przejściówka USB nie będzie w stanie poprawnie go zasilić, to w zasadzie wdepnąłem w ślepy zaułek.


Archived comments:

sprae 2012-09-16 20:48:27

Może dokup Arduino zamiast tych konwerterów USB/COM. Albo zrób obsługę 1-Wire na jakimś ATTiny.
Bo nie wiem jakie te konwertery mają czas reakcji na ustawianie sygnałów DTR.

zdz 2012-09-17 21:40:51

Hm, z pożyczonym DS9490 (1wire na USB) wszystko wydaje się działać nienagannie. To niestety nic nie daje w przypadku jeśli te przejściówki USB nie dadzą rady z _właściwym układem_.

Projekty 61107 i 1434 aktualizacja 1


Skompletowałem już pełen zestaw elementów. Włącznie z Raspberry Pi, które znacząco ułatwi kilka etapów projektu. Mam również jedną z poszukiwanych publikacji.

Jednocześnie poległem na ręcznej próbie wytrasowania ścieżek na płytce. Postanowiłem wspomóc sie programem. Pierwszego starcie z linuksianym PCB również nie zaliczam do sukcesów. (Czy ktoś nie może zrobić dobrego programu do projektowania płytek zgodnego z wytycznymi GNOME?).

Podjąłem decyzje o użyciu polecanego przez Dosia DipTrace. Jednak jest to program pod MS Windows, więc jego użycie czeka na wypełnienie się długiego łańcucha zależnych zdarzeń. Łańcuch kończy się przywróceniem do działania maszyny wirtualnej z tym systemem.


Archived comments:

LCF 2012-07-31 16:56:12

Co jest skomplikowanego w postawieniu wirtualnej maszyny z windowsem ?

zdz 2012-07-31 17:18:49

W tym przypadku żonglowanie dyskami.

pecet 2012-07-31 17:31:54

gdzie kupiłeś pi, i ile cię wyniosło z przesyłką do polandii?

zdz 2012-07-31 17:42:50

pecet: na RS components, 178 PLN z karty zeszło.

pecet 2012-07-31 17:55:43

> Despatch expected in 17 week(s)

wow, just wow

DTJ 2012-07-31 21:51:17

Czy to ma jakiś związek z IEC 61107? Jeśli tak to pewne interesujące publikacje są na chińskim serwerze pubn.com

sprae 2012-07-31 22:20:06

Użyj płytki uniwersalnej :)

_DooM 2012-08-01 13:03:25

Użyj Eagle, albo KiCada

zdz 2012-08-02 08:40:07

DTJ: bingo. Serwer wydaje się miec dośc ciekawą zawartość, dziękuję za link.

_Doom: kicad na pierwszy rzut oka da radę. Co prawda workflow jest jakiś kosmiczny i zupełnie nieintuicyjny (Panie, żeby ctrl-c/ctrl-v nie działało), ale dam mu szansę.

Ogólnie to taka smutna obserwacja: wpis, w którym w zasadzie nie ma treści wywołuje o wiele więcej komentarzy, niż taki z solidną zawartością.

Mikrolobbysta


Przypomniałem sobie ostatnio o jednej sprawie w której wysyłałem pismo dłuższy czas temu. Z mapy widziałem, że kwestia została rozwiązana po mojej myśli, natomiast sprawdziłem jak to wygląda słownie-opisowo . I tu niespodzianka.

Oto fragment pisma, które wysłałem w połowie października 2010:

A to z kolei fragment Uchwały nr LIII/1550/10 Rady Miasta Gdańska z dnia 28 października 2010:

Zadziwiające podobieństwo, nieprawdaż? W ten sposób przesunąłem granicę dzielnicy o 300 metrów. Pora zabrać się za pisanie ustaw :)


Archived comments:

torero 2012-07-16 11:13:43

Hm. A nie sądzisz, że przydałoby nam się parę województw więcej na wschodzie? Np. lwowskie i pińskie? :)

zdz 2012-07-16 11:19:02

Zapiszę do TODO, na wypadek kolejnego przesuwania granic ;)

Zal 2012-07-16 11:39:58

Już myślałem, że przenieśli mnie z Chełmu na Ujeścisko, ale nie. Nie załapałem się :P

Paweł Ciupak 2012-07-16 17:38:27

> Hm. A nie sądzisz, że przydałoby nam się parę województw więcej na wschodzie? Np. lwowskie i pińskie? :)

E, lepsze byłyby na zachodzie, np. chociebuskie i budziszyńskie, nie mówiąc już o strzałowskim :P.

Nie wierz nigdy Chińczykom


Korpo, w którym pracuje dostało ostatnio kary. Szef szefów napisał do wszystkich, że jesteśmy w plecy 76 milionów dolarów. Ale mamy się nie martwić, bo jest w budżecie rezerwa i pracownicy nie będą musieli dopłacać. A w ogóle to wina Chińczyków.

Zaczęło się od tego, że zaczęliśmy dla nich robić silnik do helikoptera. Do 12 miejscowego transportowca. Takiego latającego busika. W końcu znamy się i na silnikach (Pratt&Whitney to my) jak i helikopterach (Sikorsky Aircraft to też my). Wszystko szło świetnie, helikopter latał, więc nasi inżynierzy polecieli do Chin zobaczyć jak się spisuje.

I się zdziwili. W helikopterze brakowało 10 miejsc. Za to były jakieś karabiny, działka, miejsce dla strzelca itp. Na zdziwione “No!” i “Non!” (nasi byli z Kanady) Chińczycy odpowiedzieli, że gdzieś tam wspominali, że równolegle z wersją cywilną opracują też latadło wojskowe.

I faktycznie mają również helikopter cywilny. Ale to zupełnie inna konstrukcja, tonę cięższa i w związku z tym używająca silników produkcji francuskiej, bo nasze się nie nadały. My na pocieszenie mamy kary za handel bronią z Chinami. I strasznie słabe cover story w które nikt nie wierzy.

Sprawę w szczegółach opisał Sean Gallagher na łamach arstechnica.


Archived comments:

torero 2012-07-07 21:51:21

Słowa kluczowe "Chiny" oraz "broń" wygenerowały u mnie potrzebę zamieszczenia nie aż tak znów offtopicznego linku:
http://kaleson987.wrzuta.pl/audio/9KWFx0fzXeK/piotr_bukartyk_-_anonimowa_zolta_raczka

Upstreaming systemd units


More and more distributions ship unit definition files as a part of systemd integration. Sadly, upstreaming effort is very low profile and downstream units begin to diverge. I’ve spent some time during last month to push unit definitions upstream into the software I use.

Starting with ladvd. Actually, Sten merged service unit definition about a year and a half ago. Recent changes in systemd allowed unit to be simplified.

Next was hdapsd. Evgeni preliminary accepted patches, so it seems systemd unit will make into the first hdapsd commit in three years. Probably together with other patches waiting, like HP and Apple notebooks support. My patch contains udev rule, as this is an example of hardware-activated service.

I also patched rrdcached, implementing socket-activation and providing two units definitions. Tobias merged my patches in trunk. This gives us timely, on-demand start up and no lost connections even during rrdcached restart.

uptimed will ship unit files in 0.3.18, also. Radek is the new upstream and he happily took patches.

I also have got a patch for aiccu, but I did not send it. There was no upstream activity in the last 5 years and I'm not entirely happy with my patch, as it disturbs platform-agnosticy. I've implemented Type=notify behaviour, marking unit active only if tunnel was established. That makes After=aiccu.service work in expected ways.

Writing unit definition is simple. Hooking up autotools stuff is more complicated, but man 7 daemon contains very helpful snippets. You may need to add something like AC_OUTPUT([etc/mydaemon.service]) to mangle mydaemon.service.in into mydaemon.service by replacing ExecStart=@prefix@/sbin/mydaemon with whatever prefix was passed to ./configure.

If you do not want to use helper functions provided by systemd, you can reimplement logic directly in the application. For example, look at this simple patch implementing socket activation in iodine.

It is often useful for a daemon to open a default config file. Location of this file should be provided at build time. Debian tend to use /etc/mydaemon/mydaemon.conf location, while Fedora is more about /etc/mydaemon.conf. Removing the path from the unit file makes it simpler and more reusable between distributions.

You want to test the unit file in the field, typically in Rawhide or similar distribution. After a release cycle or two, when you have all bugs ironed out, you should submit unit file upstream.

AF_DBUS is coming


Looks like Collabora's efforts to bring D-Bus into the kernel are getting close to release. It's not a revolution, but it is really nice to have.

From my perspective, the D-Bus daemon has three main tasks:

  • deciding where messages should be delivered (routing)
  • actually delivering messages
  • starting delivery sources on-demand

Third point is already intercepted by systemd and upstart (BusName= and start on dbus-activation), so we are left with message delivery and routing.

D-Bus messages have source and destination, sometimes multiple destinations. Just like TCP/IP packets, which sometimes have multicast destinations. For TCP/IP, we already have world-class delivery stack in Linux. And we have clear separation between mechanism — kernel TCP/IP stack using routing table to forward packet — and policy — routing deamons like quagga or bird. Routing daemons manipulate routing table in kernel, but are not needed to actually move the packets.

That's how I see D-Bus—in—kernel. The kernel moves the message. D-Bus daemon should only modify kernel routing table putting “deny” and “allow” where appropriate. D-Bus daemon will no longer deliver messages, leaving message juggling to kernel. This separation will fix long-standing problems with D-Bus deamon early start and restarts. Message passing will be available all the time, D-Bus routing daemon won't need to run uninterruptably. Or at all.

Just like basic networking works right now without routing daemons.


Archived comments:

mh 2012-06-20 14:41:31

Yay! Do you know if/how will be implemented sniffing?
Currently there is dbus-dump[1] which uses strace (sic!) attached to dbus-monitor process.
If message passing will be in kernel, we can't use strace ;/

[1] https://github.com/mvidner/dbus-dump

z 2012-06-20 14:59:02

I guess pcap interface will be extended, so tcpdump will work with it. Just like it allows sniffing USB & Bluetooth traffic now (see "tcpdump -D").

Khorne 2012-06-20 16:39:28

Nice! I love the idea, esp. for embedded Linux systems. Very useful.

Rich 2012-06-21 09:47:25

Oh dear, we need less dbus not more.

Khorne 2012-06-21 09:58:39

@Rich: why do you think that?

I've seen a lot of devs reinventing the RPC wheel with shm, sockets, pipes and whatnot. Dbus is a good solution to that problem.

Thunderbolt na płytach głównych to Thunderbolt na Windows?


Prawie półtorej dekady braku większej styczności z platformą MS Windows spowodowało, że zupełnie nie kojarzy mi się ona z komputerami określanymi jako PC. Opowieści o wyglądzie Windows 7 czy 8 mają dla mnie posmak wizyty w zoo. Owszem, gdzieśtam żyją antylopy i żyrafy, ale codziennie życie wygląda zupełnie inaczej.

Analogicznie z obsługą hardware. A kiedyś przecież prezentacja obsługi USB przez Windows była równoznaczna z prezentacją możliwości samego USB! Śledziło się newsy o zmianach czynionych przez Microsoft i oglądało obrazki z wersji testowych z odczuciem zerkania w przyszłość.

Zarysowanie się w społecznej świadomości Mac OS X i rozszerzenie rynków, na którym Microsoft nie dominuje (tablety, komórki, urządzenie wbudowane)... zanika zależność sprzętu od konkretnego systemu operacyjnego. Nowe technologie nie pojawiają się dopiero wtedy, gdy Windows ma do nich sterowniki.

Obecnie dziwnie mi się odbiera szum typu w 2012 Thunderbolt będzie szeroko obsługiwany. No jak, przecież obsługa TB była już rok temu, teraz pora zająć się ciekawszymi, nowszymi rzeczami (np. 802.11ac). Thunderbolt w Linuksie po prostu działa, nie ma nad czym się zastanawiać. Podobnie jak z USB3.0. Nota bene, cztery lata po wprowadzeniu standardu, obecny Windows nadal nie obsługuje go sam z siebie.


Archived comments:

sprae 2012-06-18 18:33:20

Jeśli chodzi o Metro, to tu jest ładnie i jasno wytłumaczone z czego ono czerpie. http://channel9.msdn.com/Series/Projektowanie-aplikacji-w-stylu-Metro/Czym-jest-Metro--Projektowanie-aplikacji-w-stylu-Metro-cz-3
Równie dobrze mógłbyś pokazać paski narzędziowe jakiś starszych aplikacji i porównać z tym co zapodałeś.

Co do hardware to Windows nie było nigdy nadzwyczaj szybkie w jego implementacji. Chodzi o taka dogłębną, a nie tylko żeby działało. Bo tyle to zapewni każdy producent.
To samo było z x86-64. Linux obsługiwał praktycznie od początku, ale dopiero teraz zaczyna mieć to sens. Zarówno wydajnościowy jak i optymalny.
Każdy system ma jakieś syfy. Niektóre z nich wychodzą np. w Androidzie. Co potwierdził nawet Intel. Linux ma tą zaletę, że jest gruntownie przetestowany taki jaki jest, mając przy tym duże możliwości i dlatego warto go wkładać w różne specjalizowane urządzenia bardziej niż jakiś RTOS czy BSD.

darkjames 2012-06-18 22:18:55

x86-64? x86-x32 jest teraz na topie :)

z 2012-06-19 09:20:08

darkjames: x86-32 jest na topie chyba pośród gentoowców. Intelowa zabawka, dla słabo wyposażonych andoridowych telefonów na x86.

Terenowym lub służbowym


Taka mała nowelizacja prawa mi się zamarzyła:

Samochody zarejestrowane na firmę powinny być oznaczone logotypem i nazwą firmy która je posiada lub leasinguje, umieszczonym w widocznym miejscu, o wymiarach co najmniej 25x15cm.

Archived comments:

LCF 2012-06-15 21:56:42

http://a4.sphotos.ak.fbcdn.net/hphotos-ak-snc7/475318_307223906026476_1413477501_o.jpg

Liczy się ?

pecet 2012-06-15 22:07:08

dlaczego, chcesz karać kogoś za to że lepiej od ciebie zarabia lub prowadzi działalność gospodarczą?

heh 2012-06-16 01:14:24

@pecet: bo jest polakiem.

webpage scanner 2012-06-16 09:17:07

a co z samochodami firmowymi które mają zostać "cywilne" - np wewnętrzna kontrola?

zdz 2012-06-16 10:04:52

LCF: z uwagi na to, że koty są super, można zaliczyć.

Pecet: dlaczego uważasz, że to miałoby znaomiona "kary"?

ws: nie widzę uzasadnienia.

Remigiusz 'lRem' Modrzejewski 2012-06-16 12:58:21

A ja się spytam: po co?

zdz 2012-06-16 14:45:46

Lrem: w przypadku dylematu "jebnąć czy nie jebnąć" spełniałyby rolę analogiczną do emblematów "baby on board".

Remigiusz 'lRem' Modrzejewski 2012-06-16 14:48:30

W sumie racja. Jestem za.

Linux automatic user ACL management


You may have not noticed, because it just works in Linux. Every time user logs in, Access Control Lists on a few important devices nodes are set for him. And every time his session becomes inactive, ACL are revoked. It looks like this:

# getfacl /dev/video0
getfacl: Removing leading '/' from absolute path names
# file: dev/video0
# owner: root
# group: video
user::rw-
user:zdzichu:rw-
group::rw-
mask::rw-
other::---

Works like this:


Audio device access for user “zdzichu” is only granted when this user has an active session. If no one is logged in, or user “tomek” has an active session, then “zdzichu” access is revoked.

And works internally like this...

Which devices are affected?

In theory, the devices belonging to the seat used by user. In addition to peripherals, access to a few subsystems is granted. Best practice is to classify your device — some classes have the privilege of being ACL-managed. The logic lies in 70-uaccess.rules in udev configuration. Devices of the following classes are made accessible: ID_GPHOTO2, ID_HPLIP, ID_CDROM, ID_FFADO, ID_SMARTCARD_READER, ID_PDA, ID_REMOTE_CONTROL, ID_INPUT_JOYSTICK, ID_MEDIA_PLAYER. Names are self-explanatory.

In future, this classification will let administator decide which classes are granted to local user.

Some subsystems are treated specially, access is allowed without further classification. Those subsystems are: sound, video4linux, dvb, drm.

We need to go deeper

Classification from previous paragraph is really an abstraction layer. The ACL granting is handled at the lowest level in file /usr/lib/udev/rules.d/73-seat-late.rules by this line:

TAG=="uaccess", ENV{MAJOR}!="", RUN+="/usr/lib/systemd/systemd-uaccess $env{DEVNAME} $env{ID_SEAT}"

The systemd-uaccess helper is run for each device with uaccess tag (tagging itself happens in 70-uaccess.rules). On my system, there are a few devices affected:

# udevadm info --export-db | grep -cE "TAG.*uaccess"
9

Example: USB-to-RS232 converter

There is no proper class for this gizmo. We can either invent one and send the patch to upstream, or short-circuit logic by tagging device directly. For simplicity, let’s take the second route, keeping in mind it’s discouraged :)

After plugging in our device, use udevadm info to see what udev knows about it and what makes it special. It may be a serial number, specific values of vendor id or product id, type, model or any other property. For my device, I will differentiate on model. Create a simple rule:

# cat /etc/udev/rules.d/92-usbserial-for-user.rules 
SUBSYSTEM=="tty", ENV{ID_MODEL}=="USB_Serial_Converter", TAG+="uaccess"
From now on, every time this converter is plugged in, an active user will gain access to /dev/ttyUSB0 thanks to ACLs.

This leaves us with important question:

Who is an active user?

This information is managed by logind. CLI interaction is provided by loginctl:

# loginctl 
   SESSION        UID USER             SEAT            
        36        502 tomek            seat0           
         2        500 zdzichu          seat0    

# loginctl show-session -p Active 36
Active=no

# loginctl show-session -p Active 2
Active=yes

Thus, ACLs for currently active user “zdzichu” are applied. Start of new session is signalled by pam_systemd module, which should be included in PAM stack. logind by itself watches for active VT console. In other implementations, like for example kmscon, explicit calls on console switch are needed. Calls to logind, of course.

(This section probably needs to be expanded)

Daemons

What to do if you have daemon requiring access to device nodes? Should it start its own session and keep it active? The answer is no. Daemons should be added to the appropriate group. For example, CCTV daemon should be in group video, which has access to /dev/video*.

Group ownership of device nodes is of course managed by udev:

# grep video /usr/lib/udev/rules.d/*
/usr/lib/udev/rules.d/50-udev-default.rules:# video4linux
/usr/lib/udev/rules.d/50-udev-default.rules:SUBSYSTEM=="video4linux", GROUP="video"

Yes, that’s an UNIX way.

By the way, you don’t want users permanently added to groups like audio or video. Such user would be able to ssh into the machine while you are using it and spy on you using webcam, microphone etc. Access to such critical peripherals should only be granted for active user.

What could possibly go wrong?

Everything. There’s a lot of moving parts. Hopefully, most of them are very simple. And with this document, you’ll know what parts to check.

One quite complicated aspect is finding the link between current graphical session and Xorg socket in /tmp. This could go wrong, and will go wrong if you have per-user /tmp dirs¹. In this case current user will have no sound, no accelerated GUI etc.

Standard installations require pam_systemd to be included in PAM stack. pam_systemd(8) man page contains example snippet.

¹ — this could be fixed by looking for X socket in abstract namespace first. Nobody needed it done, yet.

Look into the past

Information here applies to the last couple of Fedora releases.

Some time ago, ACL modifications were done by udev working with ConsoleKit database. The rules were different. Devices had to be TAGed with TAG+="udev-acl" or variables like ENV{ACL_MANAGE}="1" were used. This no longer applies.

Rok czytania na rzecz Wspólnoty


Niedługo minie rok od zawiązania się naszej Wspólnoty Mieszkaniowej. W tym czasie rozrywek dostarczały mi pasjonujące lektury:

  • Ustawa o Własności Lokali z 24 czerwca 1994 - kopalnia złota praw i możliwości. Jak to, możecie sprzedać moje mieszkanie za puszczanie głośnej muzyki? (art 16.)
  • Ustawa o Gospodarce Nieruchomościami - To do zarządzania budynkiem jako firma musimy mieć człowieka z licencją? really?
  • Prawo budowlane - My, deweloper, nie przekażemy wam Dziennika Budowy, bo tam jest napisane, że zapomnieliśmy wylać fundamentów (art. 3 pkt 16)
  • rozporządzenie MSWiA z dnia 7 czerwca 2010 roku w sprawie ochrony przeciwpożarowej budynków - Grilla na balkonie też nie mogę rozpalić? (§ 4. pkt 1., 5)
  • Rozporządzenie Ministra Gospodarki z dnia 04 maja 2007r. w sprawie szczegółowych warunków funkcjonowania systemu elektroenergetycznego - zakład energetyczny jest generalnie nietykalny, a za 40h braku prądu przysługuje 7,66 zł bonifikaty.
  • Ustawa o zbiorowym zaopatrzeniu w wodę - nie płacisz 2 miesiące za wodę, to Ci ją odetną.
  • Rejestr Klauzul Niedozwolonych UOKiK - Nie odpowiada wam odbiór techniczny mieszkania w niedzielę o 3 w nocy? Zapłaćcie karę!
  • Ustawa o dostępie do informacji publicznej - i co z tego, że nie jestem stroną, mam prawo wiedzieć co mi za płotem budują

Jak widać, aktów prawnych wpływających na nasze życie, nakładających obowiązki jest multum. Szokujące jest jednak, że ludzie kupujący mieszkania za kilkaset tysięcy złotych nie znają nawet tych kilku stron UoWL. Nie zdają sobie sprawy, że poza mieszkaniem kupują udział (i obowiązki) w częściach wspólnych. Że jak przepali się żarówka, to nie ma jakieś spółdzielni, która ją wymienia, tylko idzie to bezpośrednio z ich kasy. Że za odsnieżanie i sprzątanie trzeba płacić. Itd. itp.

Zdarzają się również Asy nie patrzące nawet w plany zagospodarowania przestrzennego. Potem z wielkimi oczami dowiadują się, że w ich ogródku będzie biegła dwupasmowa droga z tramwajem, planowana od 10 lat. Albo inaczej, że wygodna droga dojazdowa do bloku istnieje tylko na makiecie dewelopera, a nie w jakimkolwiek budżecie Miasta na najbliższe ćwierćwiecze.

*** **Archived comments:** **Sigvatr** _2012-05-20 21:22:49_

> Ustawa o zbiorowym zaopatrzeniu w wodę - nie płacisz 2 miesiące za wodę, to Ci ją odetną.

I to jest dziwne?

**zdz** _2012-05-20 21:40:45_

Dla niektórych tak (patrząc na listę wpłat od mieszkańców, z których co lepsi nie zapłacili od roku ani złotówki a się awanturują).

**LCF** _2012-05-20 21:43:43_

Ludzie umów nie czytają żadnych tylko podpisują wszystko jak leci, a Ty oczekujesz, że ktoś będzie zastanawiał się nad planem zagospodarowania przestrzennego.

Dla mnie mimo wszystko numer jeden to osoby, które budują/kupują domy/mieszkania na terenach zalewowych i są zdziwienie, że jest powódź. Rzeka 50m od domu jakoś nie dała im wcześniej do myślenia, że coś może być na rzeczy ;-D

**zdz** _2012-05-20 21:45:04_

Nie no, co Ty, powodzie? I co z tego, że 5 lat temu było tu wody po szyję? :)

**LCF** _2012-05-20 21:45:42_

Btw. bycie "członkiem" zarządu wspólnoty mieszkaniowej to niezły syf. Lepiej sobie darować to i życie staje się spokojniejsze. Wypróbowałem i jestem szczęśliwy.

**zdz** _2012-05-20 21:49:54_

Tylko wiesz, nie ma chętnych, żeby ponegocjować umowy z dostawcami i usługodawcami, poszukaj tańszych opcji, egzekwować gwarancję od dewilopera. Słowem - dbać o kieszeń. Mam wrażenie, że jak osoby, którym się jeszcze coś chce nie przypilnują całego folwarku, to zapłacimy tu więcej o dyszkę, tu o 50 pln, za jakiś niekonieczny przegląd itd. i kwoty za utrzymanie poszybują w górę. W tej chwili 1,80/m² bez mediów to dobra stawka. Bez pilnowania mogłaby być 2x taka.

**LCF** _2012-05-20 22:03:05_

Jasne, to wszystko jest racja. Pytanie tylko ile warty jest twój czas. To wszystko zajmuje masę czasu, pieniędzy np. telefony. Jak się zastanowiłem ile mi to zajmuje czasu w miesiącu to wyszło, że lepiej popracować godzinkę i porobić to co się lubi, żeby pokryć opłaty niż spędzić 10h na obniżaniu ich. Ot takie moje przemyślenie, chodź jeszcze 2 roku temu sądziłem, że przecież tylu debili nie może być na świecie i na pewno da się to wszystko normalnie pozałatwiać.

Btw. kogo macie jako zarządce ? U mnie Polzen to przez pierwsze 3 miesiące coś robił, później stopniowo ograniczył się tylko do wystawiania not obciążeniowych.

**zdz** _2012-05-20 22:05:39_

Admista. Generalnie sprawdzają się, czasem np. podpowiedzą co w piśmie do sądu napisać. Czasem trzeba im przypomnieć, że mieli się czymś zająć. W ogólnym rozrachunku jednak jesteśmy zadowoleni.

**Remigiusz 'lRem' Modrzejewski** _2012-05-21 14:24:38_

Dyszka tu, dyszka tam... Jej. Wyobraź sobie administrację zamawiającą zupełnie niepotrzebną usługę za 800pln, na protesty wspólnoty odpowiadającą "już i tak nie możemy zrezygnować, bo zaksięgowane". I tak w kółko.

Zły peleng


Dzisiaj kolejny krok w prywatnej eksploracji kosmosu. Co prawda z nieprzewidzianymi problemami (SpaceX Launch aborted. 7 minutes ago), ale zawsze duże wydarzenie. Nic więc dziwnego, że transmitowane w mediach na żywo.

Gdy więc w RSSach przy porannej kawie mignęło mi zdanie Zobacz gdzie znaleźć transmisję na żywo - live i streaming w Internecie kliknąłem, żeby zobaczyć. I co? Link prowadzi do jakiego meczu piłki kopanej.

No kurde. Dzieją się naprawdę ważne rzeczy, a w mediach o niecałych dwóch tuzinach facetów pocących się na trawniku. Wciskają wszystkim tematy interesujące może kilka procent społeczeństwa, absolutnie bez wpływu na życie. A rozwój całej ludzkiej cywilizacji wspomniany gdzieś na ostatnich stronach, jeśli w ogóle.

Słusznie zauważa WO, że pomija się rekordowe tempo budowy A2 w zamian marudząc, że na jakieś tam mecze nie będzie otwarta. Who the fuck cares? Nawet jeśli skończą A2 za pół roku, to dalej będzie wzorowym przykładem budowy dróg i dalej będzie służyła społeczeństwu. A polscy “kibice” w większości i tak nie będą z niej korzystać, bo kilkanaście PLN za przejazd nie mieści się w ich budżetach. I nie są w stanie ogarnąć wyzwań pokonywanych przez rocket science.

A może nie powinienem wychowywać się na sci-fi?

Chciałbym więcej LXC


Od kilku lat Linux ma w jądrze implementację kontenerów o krótkiej nazwie LXC. W przypadku wcześniejszych rozwiązach typu VServer czy OpenVZ dokumentacji było mnóstwo i wszędzie można się było natknąć na jakieś slice'y i inne hostingi. LXC zaś jest jakby zupełnie niezauważone. Mam więc takie małe RFP — niech osoby zajmujące się tym tematem robią więcej prezentacji na linuksiastych imprezach!.

Solaris ma swoje Zones od ośmiu lat i generalnie wzbudza zachwyt. W dużej mierze dzięki działającej i rozbudowanej otoczce w postaci zoneadm, którą łatwo się wszystkim zarządza. Możliwości jądra Linuksa już dawno przewyższają Solarisa w kwestii kontenerów, tylko konfiguracja wciąż mocno kuleje. A może jestem w błędzie i tylko mi się wydaje, że przy LXC trzeba się ostro narzeźbić?

Mówisz — masz. Michał zaczął pisać.


Archived comments:

wstretny anonim 2012-05-07 14:35:06

W Bielsku na tegorocznym DWO była prezentacja ;-)
http://www.megiteam.pl/blog/2012/3/12/lxc-kontener-pingwinow/

zdz 2012-05-07 15:21:42

Ooo, jak najbardziej godne pochwały. Na wrocławskiej sesji linuksowej też temat został napoczęty, ale czasu zabrakło.
Są gdzieś nagrania z DWO?

Grzegorz 2012-05-07 19:43:06

Wł. śledzenie ;)

radmen 2012-05-07 21:29:07

Rootnode po zaliczeniu ogromnego faila przebudowuje architekturę w oparciu o LXC. Może @Ahes później będzie miał o czym mówić? ;)

Bzyx 2012-05-08 23:24:22

Nagrania z tegorocznego DWO na pewno będą, sam nagrywałem wszystkie prelekcje i cały nagrany materiał został przekazany głównemu organizatorowi.
Otwartą kwestią jest to kiedy zostaną opublikowane w sieci.

wolvverine 2012-06-12 15:17:39

<a href="http://wolvverine.jogger.pl/2012/06/12/lxc-linux-containers-cgroup-control-groups-proces-containers/" >http://wolvverine.jogger.pl/2012/06/12/lxc-linux-containers-cgroup-control-groups-proces-containers/ </a>
Będzie sukcesywnie uzupełniane.

zdz 2012-06-14 19:53:32

Czytam z uwagą. Dziękuję! :-)

Michał &quot;wolvverine&quot; Panasiewicz 2012-06-27 03:24:11

po macoszemu trochę jest o konfiguracji sieci ale z czasem pewnie uzupełnię.
generalnie:bridge,tun/tap,ns3

PS. jak możesz zamień wpis adresu na link

Michał &quot;wolvverine&quot; Panasiewicz 2012-06-28 15:21:49

i chyba najlepszy aktualnie: openvswitch (Xen citrix używa go jako podstawy do wirtualizacji sieci) - opis niedługo.

Projekt 61107


Na początku miesiąca przyszła większość elementów potrzebnych do kontroli umysłów rozpoczęcia Projektu 61107 i siostrzanego Projektu 1434.

[elementy]

Brakuje jeszcze kilku ważnych szczegółów, jak np. płytki prototypowej. Nie jest to pilny problem. Projekt(y) z założenia weekendowe, więc z uwagi na rozpoczęcie sezonu wyjazdów, jakieś efekty osiągnę pewnie za pół roku :-/


Archived comments:

DeHa 2012-04-18 16:52:00

Co będzie?

zdz 2012-04-18 16:57:14

DH: można spekulować ;-)

sprae 2012-04-18 17:02:44

Coś z podczerwienią. Tylko co to za układy ST? Na początku pomyślałem, że 555, ale to wątpliwe raczej.

mmazur 2012-04-18 19:36:22

Ja tam obstawiam, że zdzichu zacznie kręcić fetyszowate pornole z użyciem różnych części elektronicznych zamiast standardowych igieł, sznurków i takich tam.

systemd: Jolu, pokaż Panom cel


Jak pisałem dwa lata temu, systemd pozbywa się pojęcia runleveli, dając w zamian cele. Cel jest swego rodzaju punktem synchronizacji, w którym system zapewnia określoną funkcjonalność. Zależności między celami, tak jak między innymi jednostkami, nie są liniowe:

Otwórzmy powyższy obrazek i zastanówmy, co ja pacze?

Na początek legenda. Czarna strzałka oznacza, że wskazywany cel jest wymagany przez wskazujący (Requires=). Zielona wskazuje na kolejność, wskazywany musi się aktywować do końca, zanim systemd przejdzie do wskazywanego (After=). Czerwona oznacza konflikt (Conflicts=). Jak widać shutdown.target konfliktuje ze wszystkich, czyli aktywacja shutdownu powoduje zwinięcie wszystkich innych celi.

Jak widać w górnej-lewej części obrazka: nss-lookup.target nie wymaga network.target. Jeśli jednak z jakiegoś powodu network.target zostanie aktywowany, to nss-lookup.target wykona się po nim — zielona strzałka.

Przy systemd nie można za bardzo powiedzieć o kolejności przy starcie systemu. Tutaj wybiera się docelowy stan systemu i osiąga go poprzez przywołanie wszystkich zależności. Analizę co się dzieje łatwiej jednak prowadzić od końca.

Załóżmy więc, że system ma działać w trybie graficznym. Celem jest więc graphical.target, który z grubsza można porównać z runlevelem 2. w debianowatych. 4. w Slackware, 5. w starych redhatowych, SUSE i Archu — umożliwia logowanie użytkowników w trybie graficznym.

Jako pierwsze aktywowane zostaną wymagania sysinit.target (A special target unit covering early boot-up scripts). Ten zaciąga przestrzenie wymiany (swap.target), lokalne systemy plików (local-fs.target), w tym również szyfrowane z pytaniem o hasło, jeśli potrzeba (cryptsetup.target). Aktywacje tej trójki odbywają się równolegle. Kiedy zakończą się aktywacje i wystartowane zostaną usługi dla tego celu, sysinit.target zostaje osiągnięty.

Umożliwia to przejście do basic.target. Zadaniem tego jest dodatkowo uruchomienie wszystkich gniazd, na których słucha systemd (sockets.target). System w tym stanie może przejść do trybu ratunkowego (rescue.target) który daje powłokę odzyskiwania systemu. Przypominając: mamy zamountowane lokalne systemy plików, włączony swap i zainicjowane podstawowe mechanizmy dystrybucji. Taki runlevel 1.
Tu warto wspomnieć o trybie awaryjnym emergency.target. Jest to absolutnie minimalny stan, w którym można próbować naprawić całkowicie zepsuty system. Odpowiada niemal uruchomieniu jądra z parametrem init=/bin/sh, daje jednak możliwość kontynuacji normalnego uruchamiania po naprawie.

Stąd system może przejść również multi-user.target. Jest to podstawowy stan linuksa — działają prawie wszystkie demony, użytkownicy moga logować się na konsolach (dzięki zaciągnięciu getty.target). Pachnie jak runlevel 3. multi-user.target nie wymaga trybu ratunkowego, ale jeśli takowy był uruchomiony, to musi skończyć się wykonywać przed przejściem w m-u.target — zielona strzałka.

Z aktywnego multi-user.target już tylko krok do uruchomienia graficznego zarządcy logowania i osiągnięcia zadanego graphical.target.

Większość z tych etapów opisana jest na stronie manuala systemd.special.

Skąd brany jest cel przy starcie systemu? Zazwyczaj wskazuje go łącze symboliczne: /usr/lib/systemd/system/default.target -> graphical.target. Administrator może je przesłonić podając w linii poleceń jądra frazę systemd.unit=.

Cele są punktami, do których przypisujemy usługi do uruchomienia w obecnym stanie. Weźmy np. wiszące luzem na obrazku cele po prawej stronie. Taki bluetooth.target aktywowany jest przez pojawienie się urządzenia obsługującego BT:

/usr/lib/udev/rules.d/99-systemd.rules:SUBSYSTEM=="bluetooth", TAG+="systemd", ENV{SYSTEMD_WANTS}="bluetooth.target"

i powoduje wystartowanie odpowiedniej usługi:

/etc/systemd/system/bluetooth.target.wants/bluetooth.service.

Podobnie można np. przywiesić usługi do wystartowanie w związku z kartą dźwiękową do sound.target.

Nie należy zapominać, że start to tylko jeden z etapów życia systemu. Wdzięczny do omówienia, gdyż powoduje kaskadę aktywacji różnych celi. W normalnym użytkowaniu jest to jednak bardzo specyficzna sytuacja i nie należy się na niej skupiać w celach innych niż akademickie.

Obrazek wygenerowany grepem z systemctl dot.