Windows vs Linux: porównanie architektury, część 1
1 lipca 2007, Keyto
Linux nie jest darmową kopią Windowsa. Systemy te różnią się nie tylko wizualnie, co widać, nie tylko funkcjonalnie, co się często wspomina i nie tylko prawnie, co podkreśla się na każdym kroku. Różnice między nimi są na tyle fundamentalne, że czasem w ogóle ciężko je porównywać. I jest ich tyle, że można by sporządzić całą długą listę.
Niniejsza tyczy się rozwiązań architektury systemu Windows, które są eufemistycznie mówiąc kłopotliwe, ale żyć z nimi trzeba. (Oj, trzeba.) Przez Windows rozumiem tutaj rodzinę NT/2k/XP/Vista, głównie jednak XP Professional. Wielokrotnie czytałem antymicrosoftowe „spisy” różnych autorów, którzy narzekali na wiersz poleceń (ubogi w Windowsie i bardzo bogaty w Linuksie), problematyczność tak instalacji jak i uaktualnień różnorakiego oprogramowania (tu padało zaraz porównania do Linuksowego apt-get, emerge lub rpm). Pisze się też o złych ustawieniach domyślnych uprawnień użytkownika i administratora i tak dalej, i tak dalej. Są to według mnie niedogodności duże, ba, ogromne, ale nie zmienia to faktu, że coś się z nimi zrobić da – lepiej bądź gorzej. Na przykład w Windows można przecież utworzyć konto zwykłego użytkownika, w Linuksie zaś odblokować sobie konto roota i pracować na nim do woli. Problem z głowy. Podkreślam: można coś z tym zrobić i nie wnikam tutaj, czy ktoś to robi, czy nie. Nie neguję zdania, że domyślna konfiguracja Windows jest „politycznie niepoprawna”. To zestawienie tyczy się jednak rozwiązań architektury, których tknąć ani rusz. Tak z powodu całkowitej niemożności, jak i z powodu „wykolejenia” założeń systemu.
W trakcie komentowania dopuszczam się z premedytacją pewnych, czasem drastycznych uproszczeń. Moim celem jest aby artykuł był zrozumiały dla każdego, kto ma podstawowe informacje o systemach operacyjnych i proszę aby Ci, którzy się na rzeczy znają nie dostawali od razu drgawek i o tym pamiętali.
Strefa Zero, czyli: Kolektywne administrowanie
W systemach operacyjnych występuje jak wiadomo pojęcie użytkownika. Na konto użytkownika można się zalogować i działać na komputerze ile dusza zapragnie. Z jednym „ale”. Pewna grupa funkcji, jest zastrzeżona dla użytkownika zwanego administratorem systemu. To fakt powszechnie znany. Może to być UNIXowy root, może to być NetWareowy supervisor czy jakiś inny admin. Cechą wspólną jest to, iż ten użytkownik to Pan i Władca, będący dla systemu tym, czym Zeus dla starożytnych Greków. Tak – o ile nie mówimy o Oknach Microsoftu, bo tutaj sprawa się komplikuje. Otóż flagowy produkt z Redmond jak niektórym wiadomo (a innym nie), posiada co najmniej dwóch administratorów. Jednym z nich jest użytkownik administrator, drugim użytkownik SYSTEM. Standardowe, wbudowane konto, jak gdyby „agent” z trylogii Matrix Wachowskich. Jeśli popatrzymy na listę procesów w Menadżerze zadań to prawdopodobnie większość z nich będzie własnością użytkownika SYSTEM. Jego własnością są także zbiory techniczne, takie jak np. katalog System Volume Information (SVI). Domyślnie jedynym właścicielem tegoż katalogu jest nasz elektroniczny przyjaciel i aby w ogóle sprawdzić jego zajętość należy dopisać użytkownika administrator do listy akceptowalnych użytkowników. (Można dopisywać również innych ale nie polecam.)
W następnych punktach postaram się krótko wytłumaczyć, że w tym szaleństwie jest metoda i że SYSTEM jest Windowsowi potrzebny dla zapewnienia pełnej funkcjonalności. Teraz jednak krótka refleksja, na temat jego istnienia w ogóle. W informatyce, jak wiadomo każdy problem można rozwiązać na kilka sposobów. Czy wszystkie są jednakowo proste? Zdecydowanie nie. Lepsze są te prostsze, co jest zasadą sprawdzoną życiowo. Jak pisałem na początku, w systemach operacyjnych, co do zasady, istnieje jeden administrator i to jest proste. Fakt istnienia drugiego, w dodatku automatu, może powodować pewne – delikatnie mówiąc – komplikacje. Taki prymitywny przykład: prawie żaden przeciętny użytkownik nie wie jak dostać się do katalogu SVI. Gdybym chciał napisać jakieś paskudztwo, które zbiera informacje o hasłach, projektach i rozkładzie dnia człowieka używającego Windows, to składowałbym te informacje właśnie tam. Przede wszystkim do SVI nikt nie zagląda. Ba, często zdarza się, że użytkownicy są nieświadomi jego istnienia. Po wtóre katalog ten ma wręcz magiczną własność zmiany zajętości miejsca na dysku i to w porywach do kilkuset megabajtów na plus bądź na minus. (Składowane są tam informacje dotyczące „przywracania stanu systemu”.) Idealne miejsce. Co ważniejsze, pisanie wirusa w ogóle jest tym efektywniejsze, jeśli uda się zainfekować pliki wykonywalne użytkownika o dużych uprawnieniach. No więc znów pada na użytkownika SYSTEM. Sam SYSTEM przecież nie zaprotestuje, bo to nie sztuczna inteligencja.
Analizując architekturę Okien zdawałoby się, że wprowadzenie tego „agenta” było niezbędnie konieczne… Czy na pewno? O tym za chwilę.
I Życie jest iluzją
…czyli start systemu.
Zróbmy głosowanie, który z systemów: Windows czy Linux uruchamia się szybciej. Jak znam życie większość zagłosuje za Windowsem. I to jest dowód dla tezy, że z demokracją trzeba ostrożnie. Proponuję przeprowadzić doświadczenie. Zmierzmy stoperem czasy ładowania obu systemów, przy czym proponuję zacząć od Windowsa – włączamy komputer, obserwujemy komunikaty POST lub obrazek producenta (jak kto lubi) i dochodzimy do chwili gdy na ekranie pojawia się manager ładowania systemów (GRUB, LILO, etc.) lub system zaczyna się po prostu ładować. Uruchamiamy stoper. Teraz nuda. I nuda. Nuda – system coś tam mieli, a my siedzimy i ziewamy. Jeszcze moment i pojawia się okienko logowania. No i błąd! Większość użytkowników właśnie wyłączyłaby stoper… a ładowanie trwa nadal. Podajemy hasło i obserwujemy jak uruchamia się środowisko graficzne. Przepraszam. Środowisko graficzne i system. Windows kończy ładowanie – w zależności od konfiguracji – kilkanaście do kilkudziesięciu sekund po zalogowaniu użytkownika.
![]()
Rys.1 Ładowanie Linuksa (źródło: Bootchart.org)
Aby przeanalizować powody dla których tak a nie inaczej rozwiązano tę sprawę należy zacząć od podstaw, czyli przyjrzeć się bliżej pojęciu kernela systemu. Śmieszna sprawa – wszyscy posługujemy się pojęciem System Operacyjny a tak dokładnie to nie wiadomo co to jest. Jeśli nie da się czegoś ściśle zdefiniować można podać katalog cech opisujących dane pojęcie. Jednakże specjaliści od systemów operacyjnych nie są zgodni nawet co do tego. Niby w większości cechy się pokrywają ale zawsze jest jakieś „ale”. Nawet biblia systemów operacyjnych – książka Silberschatza (por. A. Silberschatz, P. Galvin „Podstawy Systemów Operacyjnych”) podaje dwie definicje. Ogólnie, najczęściej, przyjmuje się, że system operacyjny jest to jeden program, który działa w komputerze nieustannie od momentu uruchomienia systemu aż do jego wyłączenia (bądź restartu). Wszystkie inne programy są programami użytkowymi. Jak pisze Silberschatz: „System operacyjny jest podobny do rządu. Dostarcza środków do właściwego użycia zasobów komputera. I podobnie jak rząd nie wykonuje sam żadnej użytecznej funkcji. Po prostu tworzy środowisko, w którym inne programy mogą wykonywać użyteczne funkcje.” W tym ujęciu system operacyjny, to pojęcie jednoznaczne z kernelem. Inaczej mówiąc, można postawić znak równości pomiędzy słowem kernel a technicznym pojęciem systemu operacyjnego. Powszechnie jednak określenia „System Operacyjny” używa się dla wszystkich programów dostarczanych przez producenta w odpowiedzi na zamówienie na środowisko pracy. Stąd też przyjęło się mówić Linux na całość systemu, choć nazwa ta oznacza w istocie sam kernel. Ja kiedy piszę o kernelu używam pełnej nazwy – system operacyjny, natomiast całość oprogramowania określam krótko jako system.
Teraz zaczynają się schody. Zadania stawiane kernelowi są sformułowane bardzo nieprecyzyjnie. Nie wiadomo, czy zarządzanie oznacza tylko blokowanie bądź zezwalanie na korzystanie z zasobów (na przykład karty sieciowej), czy też ma dostarczyć program (choćby szczątkowy) ich obsługi. W praktyce nie jest to takie proste, gdyż aby jakimś zasobem w pełni zarządzać trzeba określić jego specyfikę. Innymi słowy – problem sprowadza się tu do pytania: Czy kernel ma być programem zawierającym w sobie podstawowe – kompletne rozwiązania, czy też może jego rola sprowadza się jedynie do administracji, całą resztę zaś rozwiązują wywoływane w razie potrzeby programy użytkowe. W pierwszym przypadku dostajemy duży program, który nazywany jest kernelem monolitycznym. W drugim mamy do czynienia z małym, szybkim, jednak jakby „niepełnowartościowym” mikrokernelem. Przykładem kernela monolitycznego jest Linux, natomiast mikrokernela Mach stosowany między innymi w systemach Mac OS X czy GNU/Hurd.
Jeszcze jedna ważna sprawa. System operacyjny, a właściwie każdy porządny program, swoją budową przypomina tort. W torcie jak wiadomo na spodzie mamy biszkopcik, potem leci masa, następny krążek ciasta, niech będzie powiedzmy – kawowy, jeszcze jedna warstwa masy i na wierzch galaretka. W programowaniu także używa się takich warstw i nazywa się je poziomami abstrakcji. I tak, jak w torcie mamy poziom biszkopta (który „leży na sprzęcie – czyli na stole”), tak w systemach operacyjnych mamy kernel (który zarządza sprzętem i bez którego wszystko się „zawali”). Dopiero „na” kernelu buduje się inne warstwy. Na przykład serwer X, na nim odpowiednio środowisko graficzne (np. KDE), na nim program zarządzający oknami (np. kWin) a na samym „wierzchu” działa przeglądarka Firefox, która wyświetla stronę. Ważne jest aby każdy z poziomów komunikował się tylko z bezpośrednimi sąsiadami. Jeśli galaretka spływa na stół, jest to wyraźny znak, że czas zmienić kucharza.
![]()
Rys.2 Architektura systemu operacyjnego (źródło: Wikimedia Commons)
Pamiętając o tym piętrowym modelu, wróćmy do ładowania Windowsa. Przede wszystkim należy zaznaczyć, że kernel systemu Windows jest zbliżony architektonicznie do mikrokernela. (Dokładnie jest tak zwanym kernelem hybrydowym – jest to coś pomiędzy kernelem monolitycznym a mikrokernelem. Tak czy siak – do działania potrzebuje wielu „pomocników”). Po prawidłowym starcie komputera najpierw ładowany jest oczywiście sam kernel (ntoskrnl.exe). Następnie jego „najlepszy przyjaciel”, czyli moduł HAL – Warstwa Abstrakcji Sprzętu, który „organizuje” sterowniki urządzeń potrzebnych do załadowania systemu. W tak przygotowanym środowisku uruchamiany jest Manager Sesji (smss.exe – Session Manager Subsystem), do którego zadań należy uruchomienie podprogramów identyfikacji i autentykacji czyli po ludzku mówiąc – wyświetlenie ekranu logowania. Użytkownik zadowolony, że Windows „jest gotowy” może podać hasło, po czym system ładuje uprawnienia (Group Policy) i uruchamia zadania określone we wszystkich kluczach Runonce i Run rejestru (np. HKLM\SOFTWARE\Microsoft\CurrentVersion\Runonce). Na zakończenie ładowane są aplikacje Autostartu z Menu Start.
Linux prezentuje odmienny sposób podejścia do problemu. Po załadowaniu monolitycznego kernela, rozpoczyna się proces init, który dzieląc samego siebie powołuje do życia inne procesy. (Proponuję użyć w konsoli polecenie pstree.) Podczas startu powoływane do życia są praktycznie wszystkie procesy systemu i kiedy użytkownik widzi ekran logowania, pozostaje jedynie obsłużyć ładowanie środowiska KDE czy GNOME, wszystko inne jest bowiem gotowe. (Drużyna Ubuntu pracuje obecnie nad zastąpieniem procesu init procesem upstart. Nie wpływa to jednak na ogólne rozumowanie.)
Pytanie, które rozwiązanie jest lepsze, pozostaje tak naprawdę bez odpowiedzi. Jednakże… taka krótka uwaga na koniec. Microsoft notorycznie stosuje tego typu sztuczki. Psychologia uczy, że najbardziej frustrująca dla człowieka jest niemożność podjęcia działania i brak wpływu na sytuację, dlatego przesunięcie logowania niejako na środek sekwencji startu systemu, daje operatorowi komputera komfort psychiczny i jest lepiej odbierane. Mimo, że nawet kiedy na monitorze ukaże się słynny pasek zadań i ikony, nie da się jeszcze załadować złożonego arkusza kalkulacyjnego czy gry. Większość użytkowników jest świadoma, że musi jeszcze chwilę poczekać. Jest to rozwiązanie lepsze marketingowo, ale czasem odbija się na stabilności i bezpieczeństwie systemu.
Biorąc pod uwagę całą sekwencję startu – z reguły Linux nie ładuje się wolniej niż Windows. Podstawy systemów operacyjnych a co za tym idzie tego, co maszyna musi policzyć są znane od kilkudziesięciu lat. Cudów nie ma.
II Gdzie się podziała ochrona?
![]()
Rys.3 OS jako tort
(źródło: Wikimedia Commons)
Dlaczego panuje opinia, że Linux jest systemem bezpieczniejszym od Windows. Może dlatego, że to prawda. Tylko dlaczego? Wróćmy na chwilę do poprzedniego punktu. Jak napisałem system komputerowy przypomina tort. Na spodzie znajduje się kernel a na wierzchu aplikacje użytkownika. Zgodnie ze „schematem tortu” Kernel wraz z bezpośrednimi programami pomocniczymi tworzy tak zwaną warstwę kernela. Reszta zadań tworzy tak zwaną warstwę użytkownika. Czyli warstwa kernela tworzy środowisko, w którym działa warstwa użytkownika. System jest podzielony jakby na dwie części: dół i górę.
O Linuksie, Machu (kernel Mac OS X), Solarisie czy BSD, upraszczając sprawę, wystarczy napisać krótko. Ochrona działa w warstwie kernela. W zasadzie w kernelu. W systemie Mach poza elementami, które zawiera sam kernel, istnieją dodatkowe moduły bezpieczeństwa lecz działają w warstwie kernela jako jego programy pomocnicze. Ochrona w UNIXach działa zawsze i ciągle, ponad to jest prosta, w sensie koncepcji i przez to statystycznie trudniejsza do złamania.
W Windows jest to o wiele bardziej złożone i duża część modułów ochrony działa w warstwie użytkownika. Logika jest taka. Sam system operacyjny jest ślepy i głuchy. Tworzy środowisko. Programy, które mogą nawiązać kontakt z otoczeniem, są uruchamiane w warstwie użytkownika więc ochrona, która również działa w warstwie użytkownika będzie skuteczna. Na papierze jest to prawda, ale w życiu jest oczywiście mniej różowo. Przede wszystkim program działający w warstwie użytkownika – a ochrona to także program – jest na prawdę o wiele prościej „rozbroić”, niż ochronę działającą w warstwie kernela. Po drugie, częścią powszechnie rozumianej ochrony komputera jest na przykład zapora sieciowa – firewall. Ponieważ firewalle windowsowe działają w warstwie użytkownika, przy projektowaniu takiej ochrony trzeba uważać, żeby przez pomyłkę nie powstała sytuacja, że podczas startu systemu w ogóle nam ona nie zadziała. W końcu to program, a program w przeciwieństwie do kernela działać nie musi. I tutaj dygresja. Wcześniej pisałem o użytkowniku SYSTEM. Otóż użytkownik ów jest Windowsowi potrzebny między innymi do uruchomienia niektórych programów umieszczonych w warstwie użytkownika. No, w końcu nie można czekać z „odpaleniem” firewalla, dopóki jakiś Kowalski się zaloguje (po kilku godzinach pracy komputera), używa się więc użytkownika systemowego. A wystarczyłoby, jak w systemie Mach, umieścić ochronę w warstwie niższej i problem z głowy.
III Problemy z mapowaniem
Jest taka sytuacja. Pracuję na koncie zwykłego użytkownika w Windows. Jako zwykły użytkownik mam podłączone – inaczej mówiąc zmapowane, dyski sieciowe z dwóch serwerów. Na komputerze pracuje kilka programów (lokalnych, oraz z jednego i drugiego serwera), które korzystają z kilkunastu plików (także z obu serwerów). W pewnym momencie chcę skorzystać z pliku, którego właścicielem jest administrator serwera (czyli akurat ja). O bogowie! Jak ja bym wtedy chciał pracować na jakimkolwiek Uniksie! Próba podłączenia zasobów administratora w takiej sytuacji kończy się komunikatem „Wielokrotne połączenia z serwerem lub udostępnionym zasobem przez tego samego użytkownika przy użyciu więcej niż jednej nazwy użytkownika są niedozwolone. Rozłącz wszystkie poprzednie połączenia z serwerem lub udostępnionym zasobem i spróbuj ponownie.” Rewelacja!
Gdybym pracował np. W Linuksie albo w OS X mógłbym bez problemu, używając miłego, prostego programu smbmount zamontować potrzebny zasób i skorzystać z pliku. Program ten traktuje połączenia indywidualnie i nie „obchodzi” go, że jakaś inna jego kopia podłączała mi przed chwilą zasób na prawach innego użytkownika. Jest to kolejna konsekwencja wprowadzenia tak złożonej koncepcyjnie warstwy użytkownika, o czym pisałem wcześniej. Skomentować to można tylko w jeden sposób: kolejny dowód na przewagę prostoty nad złożonością.
jeśli będzie zainteresowanie… ciąg dalszy nastąpi… za jakiś czas…
Co autor miał na myśli
Intencją autora nie jest wywoływane kolejnej wojny między linuksiarzami i windziarzami. Autor prosi i jednych, i drugich o daleko posuniętą wstrzemięźliwość. Jeśli komukolwiek przyjdzie ochota na komentarze niech napisze, że artykuł jest do bani, bądź nie, czy też, że pewne punkty wymagają poszerzenia. Nie chodzi tu jednak o wykazywanie wyższości jednego systemu nad drugim. Jest to sprawa subiektywna i o ile mogę napisać, że ja uważam architekturę Windowsa za gorszą nie oznacza to, że jest gorsza. Jest różna. Napisanie systemu operacyjnego w ogóle jest sprawą niezwykle skomplikowaną i zazwyczaj wybrane rozwiązanie jest tak zwanym wyborem mniejszego zła. O Linuksie można napisać podobną „listę”, a przede wszystkim nie przekłada się to na fakt działania bądź nie działania Photoshopa na każdym z systemów.
Komentarze (RSS) | Trackback (URI)
Liczba komentarzy: 124
W komentarzach możesz używać prostych znaczników HTML. Przykłady:
- Link: <a href="jaklinux.org">Linux dla każdego</a>,
- Wytłuszczenie: <strong>tekst pogrubiony</strong>,
- Kursywa: <em>tekst pochylony</em>,
- Przekreślenie: <strike>
tekst przekreślony</strike>, - Kod: <code>
printf("blok kodu");</code>, - Cytat: <blockquote>cytat</blockquote>



Brawo, świetny artykuł!
Bardzo fajny artykuł! Gratulacje! Sporo można się dowiedzieć. Czekam na następne części.
super art, czekam na drugą część!
“…działa Firefox z przeglądarką…” Firefox to przeglądarka przecież
Poprawione. Dzięki.
Świetny. Rozwiazania proste są niezawodne i tyle.
Brawo. Przystępnie wytłumaczone a po za tym widać że autor stara się dystansować nie chce faworyzować jednego systemu chodz preferuje linuks
[O Linuksie można napisać podobną „listę”]. Z chęcią poczytam też o złych/mało korzystnych rozwiazaniach w Linuxie.
“Microsoft notorycznie stosuje tego typu sztuczki.”
To nie są sztuczki, tylko dobre podejście do tematu.
Proces startu w Linuksach mierził mnie od zawsze. Dla stacji roboczych jest to najgorsze z możliwych podejść jakie można sobie wyobrazić. Od kilku lat ludzie intensywnie pracują nad zastąpieniem obrzydliwego sysvinit czymś innym. Może rozwiązanie, które ma zostać zaprezentowane w nowej Fedorze – start systemu X z initramfs rozwiąże ten problem. Jak sam zauważyłeś, dla użytkownika liczy się to, żeby móc szybko zalogować się do systemu – czytaj, nie chce czekać na załadowanie się tych wszystkich apache, sshd etc.
Wszystkie aktualne zamienniki sysvinit koncentrują się na tym, aby wszystkie usługi w systemie startowały równolegle – to jest dobre podejście, jednak zysk na szybkości uruchamiania systemu nie jest duży. Lepiej zrobić tak jak w Winodws – dać możliwość zalogowania się do systemu, a reszta niech sobie startuje w tle.
Pomyśl. Kiedy firewall uruchomi się szybciej? Z włączonym GIU czy bez? A uruchamianie wszystkiego na raz, moze się skończyć zawiechą, lub co gorsza błędem.
“Pomyśl. Kiedy firewall uruchomi się szybciej? Z włączonym GIU czy bez?”
Ok, zacznijmy trochę od początku – aby uruchomić program, najpierw trzeba go odczytać z dysku. Dzisiejsze dyski są szybkie przy odczycie liniowym, jednak podczas startu systemu, głowica skacze po dysku, ponieważ potrzebne do uruchomienia systemu pliki znajdują się w różnych miejscach dysku. Tutaj pojawia się więc problem seektime. Aby zniwelować ten problem używa się tzw. readahead – odczytywania z wyprzedzeniem. Wykorzystujemy tu fakt buforowania przez Linuksa danych odczytywanych z dysku. Działa to następująco: podajemy listę plików jakie mają zostać odczytane, próbujemy odczytać wszystkie pliki z listy a planista próbuje uporządkować odczyt tak, aby nie trzeba było skakać głowicą po całym dysku. Dzięki takiemu podejściu, gdy uruchamiamy program, to nie jest on już wczytywany z dysku tylko z bufora. Przy takim podejściu nie ma większego znaczenia czy firewall jest uruchamiany z gui czy bez.
“A uruchamianie wszystkiego na raz, moze się skończyć zawiechą, lub co gorsza błędem.”
Nie bardzo rozumiem o co Ci chodzi. Może o to, że gdy uruchomisz wszystko na raz dochodzi do wyścigów i np. apache chce wystartować przed uruchomieniem sieci. Takie problemy są rozwiązane przez systemy startu równoległego.
Ja nie był bym aż tak zadowolony z tego równoległego uruchamiania. Co z brakujacymi zaleznościami? Co z róźnymi błedami usług? Dojdzie do tego że system stanie, a u ciebie bedzie widać że stoi na ftp. Powiesz ok pogrzebisz w ftp a tu problem sie powtarza. W końcu okaże się, że problem był z hal. Tylko zaraz, co ma hal wspólnego z ftp? A już wiem równoległe uruchamianie usług. Takie podejscie sprawi że bardzo trudno będzie debugować błędy. Zobaczysz sobie niebieski ekranik czy może zmienimy kolorek?
“Co z brakujacymi zaleznościami? Co z róźnymi błedami usług?”
W zasadzie, to upstart oparty o zdarzenia powinien nie mieć najmniejszych problemów z obsługą czegoś takiego. Przykład:
- do uruchomienia usługi X potrzebujesz usługę Y, która do uruchomienia potrzebuje usługę Z
- usługa Z jest uzależniona np. od startu sieci – gdy wystąpią problemy z uzyskaniem adresu z DHCP, to usługa Z czeka na włączenie sieci
- usługi X i Y są wstrzymane dopóki nie wystartuje usługa Z.
- po wystartowaniu usługi Z można włączyć Y, a następnie X
Coś takiego jest lepsze od szeregowego uruchamiania usług, bo gdy nie otrzymujesz adresu z DHCP to cały proces uruchamiania jest wstrzymany a tak system może uruchamiać się dalej.
“Zobaczysz sobie niebieski ekranik czy może zmienimy kolorek?”
To zależy od kolorów konsoli – ja przy błędach mam standardowo białe litery na czarnym tle, ale łatwo można to zmienić.
Liczę na to, że teraz zostanę z moderowany na -1000
To SĄ sztuczki. Daje tylko dobry marketing. I co z tego, że zanim mi dojdzie do gdma, Ty już wklepiesz swoją nazwę użytkownika i hasło?
Weź pod uwagę full aplikacji ZU (komunikatory internetowe, dziwne aplikacje sterowników kontroli sterowników itp. itd.). One także znacznie zwalniają uruchamianie systemu. A ponieważ tak naprawdę system nie wie, które aplikacje (szczególnie przestrzeni użytkownika) są ważniejsze od innych, wszystko tak naprawdę przebiega równolegle, potrafiąc całkiem nieźle przyczopować system.
Jako przykład powiem, że świeży system XP, PIV 3.2 z 512mb ramu na dysku SATA 8mb uruchamia się błyskawicznie. Tylko, że po zalogowaniu, zanim system się przedrze przez aplikacje użytkownika (aplikacje ATI, wifi, panelu LCD i zwykłe gadu-gadu) i będzie można odpalić dowolną aplikację (ot, firefox) trzeba poczekać kolejne 20-30 sekund.
Zwykle pod Linuksem cały proces przebiega liniowo. Od jednego procesu do drugiego. Przyjęło się, że DM’y odpala się na samym końcu, ale jak tak bardzo komuś zależy to może przecież odpalić na starcie DBUS’a i GDM’a, i czekać na resztę systemu już po wklepaniu użytkownika i hasła.
Napisałeś, że użytkownik czeka na apache, sshd etc., pomyśl – ile takich usług naprawdę potrzebuje użytkownik. Czy na Windowsie użytkownicy takie usługi uruchamiają?
Mylisz niebo z gwiazdami odbitymi nocą na powierzchni stawu. Ok, nie chce mi się tracić czasu na takie rozmowy. Poczytaj o różnych rozwiązaniach startu równoległego, odczytywaniu z wyprzedzeniem, planistach I/O etc.
mandriva odpala dm przed serwerami
Dodajmy do tego, że w Linuksie można włączać i wyłączać usługi systemowe ładowane przy starcie systemu. Jeśli z czegoś rzadko korzystamy – wywalamy i uruchamiamy ew. po starcie systemu. W Windowsie nie słyszałem o takiej opcji.
Oczywiście w Windows też można to zrobić. Panel Sterowania->Narzędzia administarcyjne->Serwisy
Nie popadajmy w paranoję
[[A ponieważ tak naprawdę system nie wie, które aplikacje (szczególnie przestrzeni użytkownika) są ważniejsze od innych, wszystko tak naprawdę przebiega równolegle, potrafiąc całkiem nieźle przyczopować system.]]
Tu sie trochę pomyliłeś, zajmowaliśmy się w firmie sposobami uruchamiania aplikacji w różnych systemach operacyjnych oraz wydajnością.
Stare Windowsy oraz wszystkie Linuksy nie priorytetują uruchamianych aplikacji przez użytkownika zaraz po starcie systemu. Wyjątek stanowi Windows Vista, który rzeczywiście >>> uczy się
Jakiś czas temu zrobiłem mały test i zmierzyłem czas uruchamiania się moich systemów operacyjnych. Czas mierzyłem od momentu wybrania systemu w Grubie. Oto wyniki:
# Windows XP (preinstalowany przez HP, Norton Antivirus zamieniony na Avasta): 0m 36s do ekranu logowania, 1m 34s do momentu kiedy laptop przestanie mielić dysk (czyli dopiero wtedy mogę normalnie rozpocząć pracę bo wcześniej każdy program będzie się uruchamiał z prędkością żółwia)
# Ubuntu 6.10 (w miarę standardowa instalacja, z dodatkowych usług mam tylko serwer dhcp, w autostarcie Gnoma mam tylko Glippera): 0m 45s do uruchomienia GDMa, 1m 11s do momentu ustania mielenia dysku po starcie Gnoma.
Innymi słowy: czas od momentu zalogowania się do uruchomienia wszystkich programów z autostartu wynosi:
dla XP: 58s
dla Ubuntu: 26s
Dalej uważasz że Microsoftowe sztuczki to lepsze rozwiązanie?
Logujesz się a tu system ci mieli dysk jeszcze minutę, a czasem nawet dłużej i przez ten cały czas praktycznie nie możesz z niego normalnie korzystać – fajnie, nie?
“Dalej uważasz że Microsoftowe sztuczki to lepsze rozwiązanie?”
Twoje porównanie nie ma sensu. Ja mówię o Linuksie gdzie jest odczytywanie z wyprzedzeniem i kolejkowanie odczytywanych danych tak, aby zminimalizować seektime – czytaj “tak, aby głowica nie musiała skakać po dysku”.
Jeśli to do Ciebie nie przemawia, to trudno.
A teraz proszę mnie zmoderować na -2000.
Osobiście nie znoszę sytuacji o której wspomniałeś. Dla mnie ekran logowania to dopiero połowa drogi do uruchomienia komputera, i nie znoszę faktu, że muszę jeszcze czekać aż uruchomią się pozostałe zadania w Windows. Ludzi łatwo jest do czegoś przyzwyczaić, nawet do czegoś złego, i potem jeśli dasz im coś nowego lepszego i wydajniejszego to i tak ci ludzie będą psioczyć i twierdzić że to stare (ale i złe rozwiązanie, trzeba o tym pamiętać) było bardzo dobre. Jestem użytkownikiem komputerów od lat i zdążyłem zaobserwować wiele ciekawych zjawisk w podejściu użytkowników do komputerów i/lub systemów operacyjnych.
Mi nie zależy, ile trwa boot. Włączam komputer (SuSE Linux) raz dziennie, więc może się bootować nawet 5 minut (butuje się ze 1-2, bo startują też usługi). Gdybym miał chłodzenie wodne, żeby komp był cichy i niesłyszalny w nocy, nie wyłączał bym go w ogóle.
Wiadomo dla kogo taki ważny jest czas (re)bootu :]
Po co zastanawiać się nad parametrem (czas startu systemu), który nie powinien mieć znaczenia dla nowoczesnych systemów? To jak decydować o przewadze jednego zegarka nad drugim na podstawie czasu wymiany baterii.
“Wiadomo dla kogo taki ważny jest czas (re)bootu :]”
Jasne, że wiadomo.
Dla ludzi zajmujących się jądrem systemu czas uruchomienia całego systemu jest ważny, ponieważ robią to bardzo często i nie chcą tracić na to dużo czasu.
Wyobraź sobie, że system z włączonym debugowaniem ładuje się czasami trzy razy dłużej niż normalny system. Dlatego skrócenie czasu uruchomienia o 10 sekund dla normalnego systemu, u mnie skraca czas ładowania systemu o jakieś 20.
Z tego co mi sie obilo o uszy to ludzie zajmujacy sie jadrem zadko korzystaja z rebootu, a czesciej z wirtualizacji
Mi się wydaje że w windzie wygląda to tak:
- Instalujemy system
- reboot
- dalej instalujemy system
- reboot
- dalej instalujemy system
- reboot
- instalujemy dołączone oprogramowanie do płyty głównej
- reboot
- instalują się sterowniki dźwięku
- reboot
- aktualizacja DX
- reboot
później antyvir (r) firewall (r) itd. itp.
Często zainstalowanie danego programu/sterownika trwa kilkakrotnie krócej niż zamknięcie i ponowne otwarcie systemu.
@min
“Z tego co mi sie obilo o uszy to ludzie zajmujacy sie jadrem zadko korzystaja z rebootu, a czesciej z wirtualizacji”
Zgrywasz się, prawda?
System uruchamiany w środowisku wirtualizowanym też wymaga wykonania procedur zapisanych w skryptach startowych.
Owszem, deweloperzy wykorzystują wirtualizację bardzo intensywnie, jednak jest to tylko dodatek, ponieważ większość błędów występuje tylko na realnych maszynach ™. BTW. Jak sobie wyobrażasz napisanie sterownika do nowego kontrolera SAS przy użyciu systemu uruchamianego pod np. Xenem?
Sysvinit nie uniemożliwia odpalania usług w tle. Wszystko zależy od tego, jak się skrypty inicjujące napisze. O ile się orientuję, to przynajmniej w niektórych dystrybucjach niektóre rzeczy są ładowane w tle, szczególnie takie, które zajmują trochę czasu.
W Windowsie jak jest to nie wiem, ale szybsze to to sumarycznie nie jest.
Bardzo fajny artykuł, także chętnie przeczytam drugą część.
Artykuł super! Czekam na więcej
artykuł jest ciekawy ,ale przeznaczony wyłącznie dla ludzi o bardzo niskiej wiedzy z zakresu systemów operacyjnych
przecież przeznaczony dla ludzi, a nie dla specjalistów
Z takimi artykułami to Linux zawsze będzie na marginesie ;]
użytkowników można wychować
Nie rozumiem. To jest artykuł dla nieco bardziej zainteresowanych architekturą systemu czytelników. Nie tylko dla użytkowników Linuksa i nie głównie dla nich.
Dobrze, ale nie ma nawet konwencji popularnonaukowej, czyta się to jak jakąś historyjkę, z której jasno wynika, że architektura Linuksa jest lepsza. Co więcej, wrzucono Vistę do rodziny NT w momencie, gdy tam miały miejsce bardzo silne przemiany w samym jądrze. Czytając art nie wiem co z czym jest porównywane. Wnioski autora też są kwestią dyskusyjną, a stanowią z połowę artu ;]
Np.
“Przede wszystkim program działający w warstwie użytkownika – a ochrona to także program – jest na prawdę o wiele prościej „rozbroić”, niż ochronę działającą w warstwie kernela.”
jest kwestią bardzo dyskusyjną. Bo co to jest ochrona w warstwie kernela, skoro jądro oferuje jedynie mechanizmy, które można wykorzystać ;] Generalnie mniej subiektywnych wniosków, więcej rzetelnej informacji. Skoro art nie miał wywoływać wojen, to trzeba go było napisać w taki sposób, by nie musiał mi na końcu tłumaczyć co autor miał na myśli i że wojen ma nie być ;]
> Bo co to jest ochrona w warstwie kernela
Google: grescurity / pax / selinux.
Ciekawy artykuł, czekam na ciąg dalszy.
P.S. Drobna literówka:
Psychologia uczy, że najbardziej frustrująca dla człowieka jest niemożność podjęcia działania i brak wpływu na sytuację, dlatego przesunięcie logowania nijako… (niejako)
Poprawione.
Świetny pomysł na artykuł. Podoba mi się też to, że autor zaczerpnął przykład z życia. Tak jak inni czekam na resztę ;]
Panie “michale”, napiszę z pozycji ZU. Nie wiem, czy sposób odpalania systemu Windows jest wymyślony przez dział marketingu, ale jeśli tak, to na mnie zupełnie nie działa, wręcz przeciwnie – zawsze denerwowało mnie to, że niby pojawia się coś na ekranie, ale za diabła nie można podjąć pracy, a klikanie w te “błyskawicznie uruchomione” ikonki sprawia tylko, że jest jeszcze gorzej. W Linuksie wiem, że jak widzę pulpit, to mogę już zacząć pracować.
“Psychologia uczy, że najbardziej frustrująca dla człowieka jest niemożność podjęcia działania i brak wpływu na sytuację.”
Jeśli tak, to właśnie Windows jest frustrujący – niby system się uruchomił szybciej niż Linux, ale nic nie można jeszcze zdziałać samemu.
Tak jak autor artykułu wyrażam tylko swoje subiektywne zdanie, nie oceniam obiektywnej wartości SYSTEMU. Inna sprawa: coby to miało być “obiektywna wartość”?
=> Keyto – dzięki, czekam na część drugą.
Podzielam opinię. Wielu ZU a nawet komputerowych laików, których znam denerwowało, że system niby wystartował a nie działa.
Coś więc nie tak z tym marketingiem.
Panie “siafok”, przeczytaj Pan jeszcze raz to co napisałem w komentarzu powyżej http://jakilinux.org/linux/windows-vs-linux-porownanie-architektury-czesc-1/#comment-47723
i spróbuj Pan zrozumieć.
Ojej, jaki znawca… Jak wyniośle… Po co odpowiadać motłochowi, szkoda mi palców… Niech motłoch przeczyta to co już napisałem, a jak nie zrozumie to jego problem…
również czekam na następną część artykułu
@siafok, coś jest w tym co napisałeś.
Do czego służy:
- msconfig
- HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/run
A co ZU może wiedzieć o tych wpisach? Dla niego liczy się to, czy po ekranie z logowaniem musi czekać kolejne sekundy na to, żeby móc już zacząć pracować(nie oszukujmy się, w trakcie przeprowadzania autostartu ciężko jest sobie “popracować”, co bywa naprawde denerwujące(jeszcze kiedy używłem windy wiecznie mnie to irytowało- czemu to wszystko musi się ładować tyle czasu? Ja chce po ujrzeniu pulpitu móc już pracować!), czy też po zalogowaniu się może po prostu oddać się “przyjemności” używania swojej maszyny. Ja osobiście preferuje drogę linuksa, zresztą z doświadczenia wiem, że nie tylko ja, ponieważ pare osób “oświeciłem” na temat sposobu startu pingwina(oraz nie tylko na ten), i oni sami(często także ludzie, których wrzucił bym do wora z napisem “ZU”) przyznają, że jest to rozwiązanie o wiele przyjemniejsze (:
Bardzo przyjemny art. Też chętnie przeczytam ciąg dalszy.
PS
Czy w “Strefa Zero, czyli: Kolektywne administrowanie” w drugim akapicie nie powinno być: “Czy wszystkie są jednakowo dobre?” zamiast “Czy wszystkie są jednakowo proste?”?
Pozdrawiam
ale biedny ten artykul. autor nie ma pojecia o programowaniu na niskim poziomie systemowym. w zyciu takze nie probowal nawet napisac prymitywnego systemu operacyjnego. to po pierwsze. po drugie jak mi ktos pisze ze w linuksie wystarczy jakies poleconko wklepac i cos dziala, to jest to po prostu smieszne. niech autor nauczy wpierw swoja mame albo babcie a nawet i pania Jadzie z ksiegowosci korzystac z konsoli nauczy, albo chociazby obslugiwac polecenie “cd”, “cd ..” i “cd /” badz “cd \”, a co dopiero smbmount. Po trzecie chyba uwaza, ze w Microsofcie pracuja niedorozwinieci debile po szkole policealnej o profilu ynformatycznym, ktorzy 2 do 2 nie potrafia dodac. Panie AUTOR nie takie glowy tam siedza. Sobie Pan mozesz napisac: “A wystarczyłoby, jak w systemie Mach, umieścić ochronę w warstwie niższej i problem z głowy”, wiec zapewniam Pana, ze jesli czegos takiego nie ma, to znaczy ze z jakis racjonalnych powodow. Konstrukcja systemu? A moze cos za cos? A moze Ci Panowie i Panie maja dowcip i sobie tak dla zartow badziew na rynek wypuszczaja. Kazde systemy maja pewne ograniczenia wynikajace z zalozen projektowych i wszystko ponad wspieraja “z trudem” za pomoca pewnych walk-around. W zamian oferuja cos innego wspieranego natywnie. Prosze sobie zobaczyc jaki walk-around jest w przypadku X’ow i akceleracji sprzetowej grafiki. Na windzie z reguly nie ma problemow z multimediami. Taki sam artykul mozna napisac o Linuksie, tylko po co? Dyskusje, ktora jest analogiczna do: co jest lepsze, kobieta czy mezczyzna?
To, że porównał dwa systemy i bardziej spodobały mu sie rozwiązania linuksowe chyva nie znaczy, że uważa “ze w Microsofcie pracuja niedorozwinieci debile po szkole policealnej o profilu ynformatycznym, ktorzy 2 do 2 nie potrafia dodac.”
Niby się mówi “skoro sam nie potrafisz, tro nie komentuj” ale bardziej poprawnie moim zdaniem brzmiało by “jeśli nie widziałeś lepszego to niekomentuj”, a Linuks jest lepiej zaprojektowanym systemem, jedyna jego wadą jest mała popularność a co za tym idzie małe zainteresowanie firm tym systemem, przez co mamy mało dobrych programów.
@Michal “przez co mamy mało dobrych programów” brakowało Ci kiedyś jakiegoś programu pod Linuxem? OK, brakuje sterowników pod co bardziej egzotyczny sprzęt, ale nie programów użytkowych.
Mi brakowało. A jestem kimś pomiędzy ZU a zaawansowanym użytkownikiem (nie będę tego teraz tlłumaczył).
Przede wszystkim brakuje mi zaawansowanych programów, które istnieją na platformę Windows, ale kosztują po kilkanaście tysięcy złotych. Tyle, że ja mam do nich dostęp legalnie za darmo. W Linuksie (czcy innych kompatybilnych uniksopodobnych) nie znalazłem niczego do grafiki tak dobrego, jak PSP. Z programami matematycznymi też cienko.
Ale ja naprawdę kibicuję rozwojowi Linuksa, czekam tylko, aż upragnione przeze mnie programy pojawią sie na Linuksie i będą spełniać moje oczekiwania.
Wypuszczania SP przed premierą albo tuż po jest dla mnie wystarczającą kompetencją MSoft.
PS
Nie walk-around a work-around panie znawco.
Panie KOMENTATOR, jak sie chce uzywac obych jezykow, to trzebe je znac. walk-around to mozesz pan zrobic w parku jak pan kupe psia zobaczysz i chesz ja sobie w kolo obejrzec. A obejcie o ktorym pan myslales pisze sie workaround.
1. smbmount można obsługiwać jakimś graficznym frontendem, nikt nie musi się uczyć poleceń – a i to pomijając fakt, że taka ‘Jadzia z księgowości’ mapuje dyski i wspomniany problem w ogóle jej może dotyczyć.
2. funkcjonalne czytanie siada – właśnie art jest o tym, że konstrukcja systemu jest wadliwa. TO jest ów racjonalny powód umieszczania czegokolwiek w userspace.
3. Jaki WORKaround jest w Xach? Wystarczy mieć nVidię i bez żadnych Xgli ani AIGLX-ów ma się działające (w przeciwieństwie do Visty) efekty graficzne.
4. Multimedia pod Windowsem? Hahah, to czemu co chwilę słyszę i czytam gdzieś o tym, jakież to kodeki trzeba mieć, żeby coś oglądać? Czemu pod Vistą są problemy z cyfrowymi mediami? Ah… DRM.
Bardzo ciekawy artykuł z niecierpliwością czekam na następną część.
Gratulacje dla autora.
Co do startu systemu to podobno całkiem niezłe wyniki daje profiling danych na dysku. Czytałem jak bawili się tym kolesie od KDE i daje to całkiem niezłe wyniki. Windows to ma. Ciekawe czemu nie wprowadzono tego na większą skalę w Linuksie?
“Linux nie jest jedynie darmową kopią Windowsa.” – ze zdania wynika, że Linuks jest kopią Windowsa lecz nie jedynie tym. Tragiczny błąd stylistyczny, który nie dość że nieprawdziwy, to oczywiście kłuci się z dalszą częścią tekstu. Autora powinno się do podstawówki wysłać i kazać w kącie klęczeć na grochu. Wstyd. Wstyd. Wstyd.
Ciebie do podstawówki z te “kłutnie”…
nikt tu nikogo nie “kłuje”. Wstyd, wstyd, wstyd…:)
fajny artykol.
czekam na kolejne czesci
Raczej: użytkownik o prawach administratora oraz użytkownik System. Użytkownika “Administrator” w systemie może nie być (tj. konto może być wyłączone, nie jestem pewien czy usunięte). Tak jest standardowo w Viście na przykład.
Ale artykuł naprawdę dobry, pod wrażeniem jestem.
Konto Administratora o nazwie Administrator domyślnie jest ukryte (Takie niby zabezpieczenie ^^ ), ale nie może być usunięte (Tzn może, ale to spowodowałoby “trochę” problemów
Domyślnie jest ukryte, ale przy instalacji się podaje hasło do tego konta, a w Viście domyślnie jest nawet wyłączone (czyli tak jak by go nie było, bo się zalogować na nie nie można).
A co do artykułu to mała literówka: “UNIXsie”. Albo UNIX-ie, albo Uniksie, a to co wyszło to mi się strasznie kojarzy z “UNIX ssie”, a nie o to chodzi
=> Keyto – jeszcze raz dziękuję za artykuł.
Szkoda, że po forach i portalach poświęconych Linuksowi szaleją różni “informatyczni aroganci”. Słówko do nich: artykuły popularnonaukowe nie są równaniami matematycznymi ani programi komputerowymi. Gdyby profesorowie fizyki nuklearnej logizowaliby w sposób właściwy owym “ia” na temat podręczników fizyki do szkoły podstawowej i liceum, to po nich nie byłoby już profesorów.
W celach edukacyjnych trzeba upraszczać trochę temat. Ci wszyscy “mistrzowie konsoli” robią większą szkodę społeczności FOSS niż obrońcy patentów. Tych ostatnich można przegłosować, a jak tych pierwszych nauczyć dobrego wychowania?
Przyjemnie się czyta, napisane lekko i z pomysłem. Ja wprawdzie ekspertem od systemów nie jestem, więc nic więcej nie mogę powiedzieć ponad to, że czekam na drugą cześć
Więcej takich artykułów! No, można mieć pretensje do pierwszego zdania, bo można go opacznie odebrać, ale myślę, że dalsza treść tłumaczy co autor miał na myśli.
=> zalamany poziomem artykulu : Jerzy Grębosz w Symfonii napisał, że można pisać stylem “patrzcie jaki jestem mądry” albo “patrzcie jakie to proste”, Keyto wybrał to drugie i dobrze zrobił, w dodatku ostrzegał przed drastycznymi uproszczeniami, ja czytając ten artykuł miałem to na uwadze…
BARDZO dobry art !
Pozdrawiam
Fajny artykuł. Czekam na kolejne części.
Czekam na dalsze części. A przy okazji to nie wiedziałem, że na stronę “jakilinux.org” zaglądają eksperci z Microsoft Polska
Mało, że zaglądają to jeszcze im za to płacą
Co do tego startu windowsa po zalogowaniu to sie jednak nie zgadzam. Prosze zauwazyc, ze gdy czekam przykomputerze do ekranu logowania i loguje sie to rzeczywiscie przez nastepne kilkanascie (dziesiat?) sekund komputer jeszcze odpala pewne aplikacjei troche mieli. Dlatego zawsze gdy wlaczam komputer ide zrobic sobie kawe. Jak wracam to od okolo 2 minut mam juz na ekranie panel logowania. Loguje sie i w 3 sekundy wszystko dziala. Wiec jak to jest z tym logowaniem?
Dobrze autor napisał – marketing i psychologia.
Chodzi o to, że windows jak najszybciej chce przejść do powłoki graficznej, żeby możliwie szybko użytkownik miał do czynienia z czymś co zna. Pamiętam jak jeszcze w liceum, czyli pare wydań red hata wstecz zobaczyłem start linuksa. Od groma komunikatów, jakieś [OK], kudzu, itp. Trochę mnie to przerażało (dziś już na szczęście nie), bo to było coś do czego nie byłem przyzwyczajony. A więc, żeby odpowiedzieć na twoje pytanie:
W linuksie wszystko praktycznie ładuje się przed uruchomieniem X (u mnie X zarządza gdm, ale to kwestia nomenklatury). Potem mam już tylko vmware, apache2, rc.local(czyli coś jak autoexec.bat z czasów WindowsMe). Czyli musisz rozumieć to tak, że gdy już włącza się X, to praktycznie większość programów i usług jest uruchomiona.
W windowsie jest ździebko inaczej. Winda pędzi jak oszalała, żeby przejść do powłoki graficznej. Ty idziesz po kawę, pojawia się ekran logowania z migających kursorkiem, ładują się różne usługi, woda się gotuje, zalewasz kawę, wracasz, logujesz i zastanawiasz się gdzie jest to opóźnienie opisane w artykule.???? U ciebie go nie ma? Nie. A dlaczego inni o czymś takim mówią. Bo większość komputerów ma ustawione automatyczne logowanie. Windows nie ma przerwy na kawę. Jednocześnie wgrywa ustawienia użytkownika, sieć, itp. I dlatego przez kilka, kilkanaście albo nawet kilkadziesiąt sekund (zależnie od tego ile pasków wyszukiwania dany użytkownik dodał do IE) nie możesz używać gadu czy tlena. A że naraz winda musi robić kilka rzeczy, dlatego tyle to trwa.
hm.. OS X to nie darwin (freebsd 3.2 + mach 3.0)?
Nie. Kernel Mac OS X to Mach.
A jeśli chodzi Ci z czego składa się OS X to rzeczywiści Darwin(Mach + elementy z Free i NetBSD), ale także Java, Carbon, QuickTime, Quartz, OpenGL, Cocoa, Aqua… i pewnie jeszcze parę rzeczy
witam,
na rys.2 jest błąd w oznaczeniu trybów pracy – kernel i user mode – powinno być odwrotnie
Rzeczywiście
Rysunek jest dostępny na Wikimedia Commons w wersji SVG. Wystarczy poprawić i zuploadować. Liczymy na Ciebie.
Hm, w sumie wiedza na poziomie pierwszych dwóch wykładów z systemów operacyjnych na studiach
. No ale od czegoś trzeba zacząć, a czyta się przyjemnie.
Dziekuje! Bardzo dobry artykul.
Do autora, za duzo dygresji, slowolejstwa i popisow pisarskich. Ale pomysl fajny i napewno warty kontynuacji.
Zależy co kto lubi
Mnie akurat takie lekkie, aczkolwiek nieoszczędzające słów pióro w zupełności odpowiada, a wręcz relaksuje przy czytaniu.
Przepraszam… Czy to może miał być może obiektywny artykuł??? Nie znam się na systemach, ale wydaje mi się, że ten artykuł był napisany wyraźnie na korzyść Linuxa.
{Może się mylę.}
ależ nie miał być to obiektywny artykuł… Trzeba było przeczytać cały to doszedłbyś do tego zdania :
” Nie chodzi tu jednak o wykazywanie wyższości jednego systemu nad drugim. Jest to sprawa subiektywna i o ile mogę napisać, że ja uważam architekturę Windowsa za gorszą nie oznacza to, że jest gorsza. Jest różna”
Jeśli można poprawić.. Pierwsze dwa zdania: “Linux nie jest darmową kopią Windowsa. Systemy te” — Linux to nie system operacyjny i główna strona serwisu to zauważa, mając w tytule: “GNU/Linux dla każdego”, dlatego fajnie byłoby to zmienić i tutaj. Trochę się zraziłem, widząc takie zdanie, ale przełamałem się i rzuciłem okiem. Niestety, autor naprzemiennie używa słowa “Linux” dla systemu operacyjnego i dla jądra, co może zmylić potencjalnego czytelnika nie znającego różnicy. Tutaj też przydałoby się ujednolicenie stosowanej terminologii. Poza tym artykuł b. fajny (żeby nie było, że ciągle narzekam :>).
System operacyjny niestety nie ma “ścisłej” definicji, czasem jest to samo jądro, czasami zestaw +zestaw bibliotek, czasami +zestaw programów dostarczonych w pakiecie (dystrybucji, wersji) – no ale fajnie byłoby napisać co autor ma na myśli używając tego pojęcia
.
Mnei sie bardzo podobało
. Prosze o więcej
=>odder & Poquelin
Autor artu napisał:
“Stąd też przyjęło się mówić Linux na całość systemu, choć nazwa ta oznacza w istocie sam kernel. Ja kiedy piszę o kernelu używam pełnej nazwy – system operacyjny, natomiast całość oprogramowania określam krótko jako system.”
Starczy? Ja nie wiem, bo się nie znam.
Hm, czy ja tego nie zauważyłem.. cóż, kajam się więc
.
Dzięki za wytknięcie błędu.
Gratulacje @keyto, artykuł bardzo mi się podobał.
Wiesz może gdzie dowiem się więcej o rozwiązaniach używanych w Windows XP takich jak katalog System Volume Information (SVI) ?
Pozdrawiam
Artykuł bardzo fajny, już czekam na następne części z niecierpliwością
.
Slackware na moim notebooku (Core 2 Duo 1.66) wstaje do trybu tekstowego (monit login) od Gruba w 16 sekund
A ile Ci się ładuje jakieś środowisko graficzne-powiedzmy KDE?
Nie używam ani KDE, ani Gnome. System mi wstaje w runlevel 3 do tekstowego i stamtąd odpalam Fluxboxa. Przy starcie odpalane jest sshd i WiFi (Intel).
Na słabszych komputerach, działających jako serwery uzyskiwałem minimalnie lepsze wyniki, ale w tym przypadku system był bardzo mocno wyśrubowany.
a mi Arch w 16sekund do gdm’a :> (Sempron 3000+, 768ddr 333mhz)
U mnie przy starcie (na samym początku sekwencji bootowania) zegar jest ustawiany na 1GHz (na obydwu rdzeniach).
apropos, jest gdzieś polskie tłumaczenie tego?
http://linux.oneandoneis2.org/LNW.htm
Miło poczytać taki długi tekst. Jak widać nawet wstęp na pół strony (ani że to nie ma być obiektywne, ani że to jest podejście celowo uproszczone) nie dociera do malkontwentów, ale to już ich problem. Ja tam chętnie poczytam jeszcze.
Najchętniej tylko zamieniłbym wszystkie wystąpienia “kernela” na “jądro”/”jądro systemu”. To jest zupełnie jednoznaczne, powszechnie używane pojęcie, i w dodatku prawidłowo po polsku:
http://www.idg.pl/slownik/termin_info.asp?id=41921
Dla mnie rewelka. Czekam na ciag dalszy.
Artykuł spoko
Panie Załamany Poziomem Artykułu – trafnie zauważyłeś że z obsługą aklceleracji grafiki w systemach GNU/Linux są problemy – zastanówmy się jednak czym jest to spowodowane. Czyżby monopolem M$ na rynku komputerowym przez co, do niedawna bo teraz się to zmienia, większość kart graficznych była kompatybilna tylko z Windowsem? A na sterowniki do innych systemów trzeba było czekać o wiele dłużej? Zdaje mi się że w tym tkwi problem i obsługi akceleracji graficznej nie możemy zaliczyć do minusów GNU/Linux, raczej zaliczyłbym to do jednego z minusów które idzie w parą z powszechnym używaniem Windowsa.
Za kilka lat Linux będzie mieć bardzo dobre wsparcie dla wszystkich nowych podzespołów – coraz więcej ludzi posiada Linuxa, a producentom sprzętu zależy na użytkownikach, zatem wydawanie sterowników do Linuxa przez producentów stanie się standardem.
Artykuł wyraźnie stronniczy i nie uwzględniający wszystkich aspektów danej sprawy…
EOT
oczywiście, że jest stronniczy. Bardzo trudno jest stworzyć coś obiektywnego. Mimo, że wielu autorów się stara, to jest to trudne bo zawsze gdzies sie przymiotniki wplączą, a już na podstawie jednego można się czepiać. Pozatym w informatyce jest wiele rozwiązań dobrych dla jedej grupy, a złych dla drugie i vice versa. Po prostu.Pozatym na końcu jest wyraźnie powiedziane, co autor ma na myśli, a jeśli takie jest jego przekonanie, to zawsze artykuł będzie szedł w tą stronę. To tak, jakby wiedzieć, że coś jest dobre, a chcieć przekonywać o tym, że jest złe.
To tak jakby komuś powiedzieć. “Głupi jesteś, koniec kropka.”
Co ci tak nie pasuje w tym artykule? I na jakie aspekty autor powinien jednak zwrócić uwagę?
Abstrahując od tego, że to artykuł na temat bardzo podstawowych elementów systemów pewnie odniesiesz się do tego, że nie działają darmowe słowniki dołączane na CD do różnych gazet:)
Napisz lepszy. Uwzględnij wszystkie aspekty. Masz u mnie skrzynkę dowolnie wybranego napoju, jeśli po publikacji nikt nie zarzuci Ci stronniczości.
Windows nie ładuje systemu po logowaniu!
Ekran logowania=system jest załadowany. Jest sieć itd = wszystkie drivery załadowane, system graficzny (csrss) (który nie jest wymagany do startu systemu, tylko do startu części graficznej) = załadowany.
Ostatnim ładowanym procesem z rzeczy potrzebnych systemowi (mówię teraz o całym systemie graficznym itd.) jest winlogon.
Czas między uruchomieniem bootsektora windy a pojawieniem się ekranu logowania u mnie to ok. 7 sekund. (win xp pro 64).
Po zalogowaniu się jest ładowany shell (najczęściej explorer.exe), i wszystkie rzeczy w autorun… nie jest to w żaden sposób część systemu.
Jeśli założyć że są, to czas ładowania to załadowania systemu to init+start x+start wm. I który system jest wtedy szybszy?…
W dodatku ciekawi mnie sposób zmierzenia czasu od startu windy do załadowania pulpitu – przecież trzeba ręcznie wpisać hasło… można ustawić automatyczne logowanie dla jakiegoś użytkownika, ale “Jeszcze moment i pojawia się okienko logowania.” sugeruje coś innego ;]
A twierdzenia o wyższości kernela monolitycznego, większym bezpieczeństwie jeśli firewall/cokolwiek działa w ring0 można powitać tylko uśmiechem – widać że autor nigdy nie pisał systemu operacyjnego.
Jeszcze jedno – większa część filtrowania pakietów przez firewall działa w r0 (firewall tylko ustawia reguły).
Można też zupełnie pominąć firewall w r3, ustawiając listę dozwolonych portów dla danego urządzenia sieciowego.
Ale autor o tym najwyraźniej nie wie…
“widać że autor nigdy nie pisał systemu operacyjnego”, prześlij mi więc, o Wielki, Mądry i Potężny Haxorze, Jeden z Twoich setek Systemów, które napisać Raczyłeś, wad pozbawiony, bo ja, uniżny n00b, pragnę mymi niegodnymi, uniżnymi oczyma zobaczyć, system, który napisany jest przez kogoś, kto zna się na rzeczy.
“A twierdzenia o wyższości kernela monolitycznego (..)” autor nie pisze o wyższości kernela monolitycznego nad mikrokernelem/kernelem hybrydowym, tylko o wyższości zabezpieczeń na poziomie kernela.
Artykuł bardzo mi się podoba. Przyjemnie się czyta, a i można się dowiedzieć podstaw na temat systemów operacyjnych
Czekam na ciąg dalszy.
A jeśli chodzi o samo ładowanie się systemu to imo zdecydowanie przyjemniejsze jest rozwiązanie linuxowe. Najczęściej po kliknięciu przycisku ‘power’ jeszcze się czymś zajmuję, nieraz wychodzę z pokoju. Nieraz zdarzy się, że wracam po dłuższej chwili. W związku z tym ekran logowania może na mnie czekać po kilka minut… W końcu siadam przed kompem i wpisuję hasło. Pod linuxem czekam dosłownie chwilkę i już mogę przystąpić do pracy. W windzie po zalogowaniu muszę jeszcze czekać kupę czasu i nudzić się zanim będę mógł coś zrobić. Doprowadza mnie to do białej gorączki, że mimo iż widzę wszystkie ikonki to nic nie mogę zrobić! Mam dość wolny komputer, więc “trochę” to trwa.
Wciskasz power, wychodzisz, wracasz, wpisujesz login i hasło i ponownie CZEKASZ (na uruchomienie swojego desktop/window managera).
Dużo lepiej byłoby, gdybyś wcisnął power i mógł od razu wpisywać login i hasło (np. jeśli masz jakieś ijX#@cszf%Y^, które się wpisuje 30 sekund), a system w tym czasie w tle uruchamiał się i preloadował środowisko graficzne. Wtedy jeśli szybko się ‘zalogujesz’, to możesz wyjść i wracasz na gotowe, a jeśli rzeczywiście długo myślisz nad hasłem, to nie tracisz czasu czekając na ekran logowania.
[...] artykuł został zainspirowany komentarzami do pierwszej części artykułu „Windows vs. Linux: porównanie architektury”. Ponieważ jednak stanowi o treściach od swego poprzednika niezależnych, zachęcam do jego [...]
Jakby ktoś nie zauważył to inteligentny Wordpress wykrył komentarz autora wpisu na blogu dotyczący tegoż artykułu
Byłbym za tym by do porównania architektur dodać inne systemy(freebsd, macos)
Artykuł świetny.
Nie mogę się oprzeć pokusie dorzucenia swoich trzech groszy. Lubię instalować linuksy na laptopach, potem jedyne co trzeba zrobić, to wytłumaczyć Zwykłemu Użytkownikowi, że już więcej nie musi wyłączać komputera i czekać na krótszy lub dłuższy start… wystarczy “Wstrzymaj” – a dokładniej to “autowstrzymywanie” po złożeniu laptopa. Po podniesieniu klapki i podaniu hasła komputer jest gotowy do pracy. System potrafi pracować w ten sposób miesiącami, nawet po aktualizacjach i instalacji oprogramowania. Oczywiście mówię o linuksach (ostatnio najchętniej Ubuntu), bo niestety produktów MS nie potrafię doprowadzić do takiego stanu, żeby nie obejrzeć czasami komunikatu “musisz teraz ponownie uruchomić komputer”…
A jak się ZU jeszcze dorzuci coś, co zrobi odpowiednie wrażenie, np. compiz+emerald… systemy na bazie linuksa już nie są “darmowym zamiennikiem” – już teraz coraz częściej słyszę do ZU “ja też chcę to mieć”.
E, nie bredź. Mam 2 laptopy i po wyjściu z hibernacji/wstrzymania niektóre komponenty nie działają prawidłowo (np. zdarza się, że wiatraki się kręcą non stop, albo co gorsza nie kręcą wcale; albo np. nie działa touchpad).
Pod XP w jednym z nich po wyjściu z hibernacji wiatrak działał nieustannie, ale po którejś aktualizacji biosu się uspokoiło. Poza tym ten umiłowany Ubuntu co jakiś czas twierdzi, że dana poprawka wymaga restartu – też odradzasz?
Ja poproszę kolejną część
.
Fajny artykuł, choć rzeczywiście kilka błędów by się znalazło. Tak czy inaczej – dobra robota. Co do boottime’u. Zgadzam się w pełni – wolę poczekać trochę dłużej( choć nie oszukujmy się – Debian Lenny szybciej bootuje niż WindowsXP z sp2). Czekam na kolejną część
Świetny artykuł. Razem z resztą czekam na dalsze części.
Bardzo ciekawy artykuł – dość niełatwe zagadnienia przystępnie podane. Keep working.
Witam.
Moim zdaniem artykuł fajny. Przyjemnie się czyta. Ktoś tutaj powiedział, że jest to artykuł dla osób o bardzo niskiej wiedzy informatycznej… może i tak, ale np. dla mnie był super, dowiedziałem się z niego wielu rzeczy, których wcześniej nie wiedziałem, a mnie ciekawiły.
PS. Imho od szybkości uruchamiania systemu jest ważniejsza szybkość działania aplikacji.
Pozdrawiam.
Jeszce jedno apropo tego windowsowego startu – to dziala jeszcze na czesc osob, ktora sobie tlumaczy to dlugie dogrywanie tym, ze maja zbyt wolnego kompa.
Typowy linuxiarz wyolbrzymia tylko wady winda a w linuxie ich nie widzi. Nie podoba mi się ten art.
Jestem zaawansowanym użytkownikiem Windowsa i początkującym linuksowcem. Na Linuksa (konkretniej Ubuntu) zdecydowałem się dopiero rok temu – jak zaczynałem studia. Na początku negatywnie zaskoczyła mnie prędkość jego startu. Włączał się zdecydowanie (jeśli tak można nazwać 10s) wolniej. Było tylko jedno ale, do którego doszedłem później: po zalogowaniu system działał. Po prostu login, hasło, splash GNOME’a przez 5s i pracuję. Tymczasem świeży Windows jeszcze wymagał kilku sterowników. Potem dołożyłem resztę sprzętu. Zainstalowałem dołączone stery i stwierdziłem, że Windows zwolnił, a Ubuntu nie. Dodatkowo jakieś niepotrzebne progsy władowały mi się do autostartu spowalniając wstawanie systemu (oczywiście usunąłem je potem).
Używałem obu systemów przez rok na tym samym komputerze. Ubuntu częściej, bo chciałem się do niego przyzwyczaić. Po tym czasie Windows zaliczał tyle zwisów, a restarty trwały tak długo, że musiałem przeinstalować. Dodatkowo kilkakrotnie pozbywałem się wirusów (i skutków włamań nawiedzonych kolegów z roku). W tym czasie Ubuntu zwolniło start może o 5 sekund (co zrozumiałe, gdy używa się beryla) i wstało po dwóch aktualizacjach (Dapper -> Edgy -> Feisty). Pomimo braku ingerencji w iptables, użytkowania eDonkey, BitTorrent, DC i aktywnego ftpd jakoś nie miałem do czynienia z włamaniami czy wirusami.
Linux jest z założenia bezpieczniejszy. To mogę powiedzieć z doświadczenia. Wiem, że z rzadka pisze się wirusy na maszyny *niksowe – stąd być może takie wrażenie. Ale wiem też, że nic mnie to nie obchodzi. Obchodzi mnie to, że po domyślnej instalacji otwieram większość potrzebnych mi formatów graficznych, PDF-y, arkusze MS Excel, dokumenty MS Word i prezentacje MS PowerPoint (niestety – na razie głównie te formaty dostaję). Obchodzi mnie to, że pliki konfiguracyjne są po stokroć łatwiejsze do zrozumienia, logiczniej ułożone i lepiej udokumentowanie niż pliki konfiguracyjne Windows, czyli sławetny rejestr. I w końcu obchodzi mnie, że nie muszę przy każdym eksperymencie restartować komputera.
Większość z wymienionych przeze mnie powodów dotyczy właśnie w fundamentalnych różnicach w architekturze systemów. Artykuł właśnie te różnice przedstawia. Na dodatek w przystępnej formie. Czort z tym, że jest parę nieścisłości. Zawsze pojawiają się tam, gdzie są uproszczenia.
@Góral:
). Stopniowo poznaje system i konfrontuję linuksowe i windowsowe podejście do niektórych zadań. Staram się nie brać pod uwagę różnic wynikających z GUI, choć to niełatwe. Na razie większość, choć nie powiem, że wszystkie, rozwiązania Linuksa bardziej mi odpowiadają. Żaden ze mnie linuksiarz, a pomimo to wad Windowsa zaczynam widzieć więcej aniżeli zalet.
Jak pisałem Linuksa używam od około roku. Dla mnie na początku był on jedną wielką wadą (nic nie działało tak, jak w Windows
Artukuł dobry.
// pogrzało mnie chyba z tym tekstem….
[...] http://jakilinux.org/linux/windows-vs-linux-porownanie-architektury-czesc-1/ [...]
ja to jestem taki fifty fifty.
Po pierwsze widnows jest bardzo dobrym systemem !
Po drugie linux jest bardzo dobrym systemem !
Dlatego jako laik linuksowy , a spec od wina sądze że po co prowadzić wojny ? Czy linux i windows nie mogą być w zgodzie ?
W windowsie mi się nie podoba jedynie komercha.
W linuxie że nic nie jest pod niego (dajcie spokój z emulowaniem) i każdy linuksiarz zachwala jaki to linux jest super.
Spójrzmy prawdzie w oczy linux jest też tylko systemem. Szybszym może dlatego ,że jest inaczej zbudowany , ale ile nam daje windows ! W linuxie mi się podoba coraz lepsza grafika ale programistyka i tworzenie grafiki zostaje przy windowsie – nie mam zaufania do linuxa.
Ale mam zamiar pracować na dwóch systemach jednocześnie – po co mam się męczyć w linuksie jak go nie znam , po co mam się męczyć w windowsie z niektórymi rzeczami.
Pozdrawiam
ja tam w javie i php+mysql(szczególnie to) + c++ z qt4 tylko na linuksie dziergam po prostu rewelacyjnie mi się piszę mam edytory więc dziwi mnie twój brak zaufania. Ja tam uważam szczególnie kernel visty za gorszy jak linuksowy(ale też nie wszędzie bym ten kernel jako wzór stawiał raczej bym był za Hurdem)
Spróbujcie przeportować aplikację napisaną w wxWidgets i używającą SQLite z unixa na msw.
Polecam.