Drastyczna zmiana struktury Linuksa otwiera drogę do swobody programistów i użytkowników

Drastyczna zmiana struktury Linuksa otwiera drogę do swobody programistów i użytkowników02.09.2014 22:47

Nie tak dawno Matthew Miller, programista stojący na czelespołeczności Fedory, dałdo zrozumienia, że era linuksowych dystrybucji jako podstawowegokanału dystrybucji oprogramowania o otwartym kodzie źródłowym masię ku końcowi. Nawet tak popularne Ubuntu nie budzi już dziśzainteresowania porównywalnego z tym, jakie budziło w minionejdekadzie, nie mówiąc już o dystrybucjach skierowanych doprofesjonalistów. Tymczasem w świecie Linuksa pojawiają się nowe,radykalne pomysły, które mogą na nowo rozbudzić zainteresowanieprogramistów tym systemem, rozwiązując zarazem wiele problemów,doskwierających do tej pory jego zwykłym użytkownikom.

Lennart Poettering, postać w świecie Wolnego Oprogramowaniarównie wybitna co kontrowersyjna (to on jest autorem takichwynalazków jak demon inicjalizacji systemd czy podsystem dźwiękupulseaudio), przedstawił na łamach swojego bloga jeden z takichrewolucyjnych pomysłów, który jeśli się przyjmie, może na dobrezakończyć erę typowych dystrybucji GNU/Linux. Chce on,wykorzystując możliwości tkwiące w systemd oraz systemie plikówbtrfs, całkowicie zmienićsposób, w jaki przygotowywane, rozpowszechniane i instalowanejest oprogramowanie dla Linuksa.

Zdaniem Poetteringa tradycyjne podejście – dystrybucji jakoskrzynki z narzędziami – to świetna sprawa dla jednostek,które chcą zbudować dopasowane do swoich potrzeb systemy. Jest tojednak bardzo niewygodny model we wszystkich innych scenariuszach, wktórych buduje się jeden konkretny obraz systemu dla dużej liczbyinstalacji, czy to na urządzeniach wbudowanych, czy serwerowychinstancjach w chmurze. Tam nie instaluje się pakietów ani ich nieusuwa. Do dyspozycji mamy ściśle określony zbiór plików, bezmożliwości zmiany posiadanego zestawu narzędzi.

Jest to też model bardzo niewygodny dla twórców oprogramowania.Zmuszeni są oddać dystrybucję swoich projektów w ręce opiekunówtakiej Fedory czy innego Debiana i podporządkować się ich cyklowiwydawniczemu (często wolniejszemu, niż by twórca oprogramowaniachciał). W takich warunkach praktycznie niemożliwe jest teżprzeprowadzenie rzetelnych testów – liczba możliwych kombinacjizainstalowanego oprogramowania systemowego jest nieporównywalniewiększa, niż np. w OS X. Swoboda dobierania przez użytkownikówróżnych wersji bibliotek, wtyczek i jednocześnie uruchomionychaplikacji, w tylu różnych linuksowych dystrybucjach, czyni budowęi testowanie aplikacji ogromnie wymagającym zadaniem. Sytuacjępogarsza tylko fakt, że różnice między dystrybucjami niesprowadzają się tylko do numerów wersji zainstalowanegooprogramowania – w praktyce nie istnieje nawet jednolity standardumiejscowienia plików systemowych w katalogach.

Dla użytkowników sytuacja taka jest zaś o tyle niedogodna, żelubią mieć dużo świeżego oprogramowania, tymczasem może sięokazać, że w oficjalnych repozytoriach albo nie będzie tego cochcą, albo będzie jakaś starsza wersja. Przyzwyczaili się zresztądo wygodnego znajdowania, instalowania i aktualizowaniaoprogramowania w Androidzie czy iOS-ie – bez scentralizowanegosklepu z aplikacjami mogą czuć się zagubieni.

Istnieją już metody zaradzenia tym niedogodnościom, ale żadnaz nich nie jest kompleksowa. Ot np. oprogramowanie ze sklepu Ubuntuskupia się wyłącznie na desktopowych aplikacjach, w ogóle nierozwiązując problemu z systemem i jego narzędziami. Chrome OSskupia się na systemie operacyjnym, ale wyłącznie na komputerachosobistych. Docker to tylko kontenery, niewygodne w odniesieniu dodesktopowych aplikacji.

Zespół programistów pracujących nad systemd pracuje nadrozwiązaniem uniwersalnym. Będzie ono kompatybilne z typowymidystrybucjami jako skrzynkami z narzędziami, ale pozwoli nauporanie się z wymienionymi wyżej problemami we wszystkichmożliwych scenariuszach zastosowań Linuksa. Pozwoli producentomoprogramowania na łatwe zbudowanie swoich aplikacji w odpowiednimdla nich środowisku, łatwe instalowanie powstałych tak pakietówprzez użytkowników we wszystkich linuksowych dystrybucjach,zunifikowanie systemu aktualizacji całości zainstalowanegooprogramowania, a także zapewnienie odpowiednich narzędzikryptograficznych, dzięki którym oprogramowanie będzie możnazabezpieczyć przed ingerencją stron trzecich.

Niemożliwe? Jeszcze kilka lat temu faktycznie byłoby toniemożliwe. Teraz Poettering chce wykorzystać udostępnianą przezsystem plików btrfs konstrukcję subwolumenów.Nie mają one nic wspólnego z subwolumenami ZFS, nie sąurządzeniami blokowymi. Należy o nich myśleć jak o wyodrębnionychpodprzestrzeniach nazw systemu plików, do których można uzyskaćdostęp przez najwyższego poziomu subwolumen (najczęściej będzieto root), ale które można też swobodnie montować w wybranymmiejscu.

Na bazie tej konstrukcji powstają migawki takie jak usr, root,runtime, framework, app i home. Przykładowo – usr jest pełnymdrzewem /usr w konkretnej wersji, który można sobie oznaczyćwedług schematu, np.usr:org.fedoraproject.FedoraWorkstation:x86_64:23.4 (czyli kompletne/usr z 64-bitowej Fedory 23.4). Aplikacja w takim systemie możejednak wymagać innego zestawu bibliotek, niż dostarczane przezFedorę w tej wersji, więc dostaje dostęp do subwolumentu typuruntime, np. runtime:org.gnome.GNOME3_20:x86_64:3.20.1 –zawierającego tylko konkretne biblioteki GNOME. Aplikacja możepotrzebować własnego szkieletu systemu operacyjnego – wtedyskorzysta z subwolumenu typu root, np.root:revolution:org.fedoraproject.FedoraWorkstation:x86_64, w którymznajdują się odpowiednio wypełnione katalogi /etc i /var.Aplikacja może wreszcie też być kompletnym pakietem, normalnieinstalowanym w /opt – wówczas trafi do subwolumenu o nazwie np. app:org.libreoffice.LibreOffice:GNOME3_20:x86_64:133

Popakowany w taką strukturę Linux zachowuje się całkiemciekawie. Podczas startu montowany jest katalog root z jednego zsubwolumenów root a następnie pasujący do niego (z tego samegodistro i o tej samej architekturze) subwolumen usr. Kiedy użytkownikzaloguje się do systemu, jego system plików w /home montowany jestz ostatniej migawki jego subwolumenu typu home. Kiedy użytkownikchce uruchomić kontener z systemem operacyjnym, łączy sięodpowiednie subwolumeny root i usr. Gdy trzeba uruchomić aplikację,podpinany jest jej subwolumen app wraz odpowiednim subwolumenemruntime. Wszystkie te subwolumeny mogą jednocześnie istnieć wwielu wersjach, nie wchodząc ze sobą w konflikty. Rozwiązuje toteż ewentualne problemy z aktualizacjami – jeśli dany subwolumennie jest w stanie wystartować, system odpala jego wcześniejsząmigawkę.

Może to wydawać się skomplikowane, ale przy automatycznymzarządzaniu montowaniem subwolumenów przez systemd, użytkowniktego nawet nie widzi. Miejsce także nie jest marnowanezwielokrotnieniem partycji – btrfs zapewnia automatycznądeduplikację tych samych plików. W przedstawionym przez Lennartaprzykładzie można zobaczyć, jak na jednym wolumenie btrfs możewspółistnieć kilka wersji Fedory, Mageia, Arch Linux, bibliotekiGNOME i KDE, LibreOffice i Firefox, oraz kilku użytkowników.Aktualizacja subwolumenów jest również trywialna, dziękimożliwości aktualizacji obrazów systemowych przez pliki różnicowe(delta). Systemd tworzyłby migawkę obecnej wersji, zmieniałby jąplikiem różnicowym, a następnie montował uaktualniony wolumenjako aktualny.

Doprowadzenie desktopowego Linuksa do takiej postaci zajmiejeszcze trochę czasu, choć już w 2015 możemy spodziewać sięwydań Fedory, w których pierwsze elementy tego rozwiązania będąwprowadzane. Wciąż trzeba opracować kilka mechanizmów, któreistnieją tylko na papierze, w szczególności związanych zszyfrowaniem, uwierzytelnianiem i weryfikowaniem poprawności danych.Na pewno też stara linuksowa gwardia będzie na ten nowy szalonypomysł Poetteringa patrzyła tak jak wcześniej patrzyła napulseaudio czy systemd. Jednak to właśnie te tak bardzo nieuniksowerozwiązania są dziś standardem w świecie desktopowego Linuksa,więc czemu i ten pomysł nie miałby okazać się sukcesem? Jak dotej pory nikt nie pokazał niczego równie uniwersalnego, corozwiązywałoby wszystkie wcześniej wymienione problemy.

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.