Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Linux od podszewki! - Część I


Phoenix_PL

Rekomendowane odpowiedzi

Opublikowano

No witam

W poniższym poradniko-artykule (a może i serii) postaram się wyjaśnić trochę rzeczy na temat Linuxa - co to jest, jak to działa, z czym to się je.

Zarówno rzeczy prostych, jak i trudniejszych, dla prostych userów jak i tych bardziej zaawansowanych

 

Więc, zacznę od podstawowego pytania - co to kuźwa jest ten Linux?

Linux to nie tyle sam system, co jądro systemu na którym oparte są setki dystrybucji. No ale pobocznie - mówmy na to Linux. Samo jądro zostało stworzone przez Linusa Torvaldsa w 91' roku. Z początku pisał to hobbystycznie, jako mały, wolny system operacyjny. Jak widać dzisiaj ma o wiele szersze zastosowanie, między innymi dlatego że można go znaleźć praktycznie... wszędzie. Dosłownie. Mimo, że pozornie tego nie widać. Smartfony (Android to system oparty na jądrze Linuxa, ale nie jest jedynym takim systemem), nawigacje, komputery, serwery, superkomputery, bankomaty, agencje wywiadowcze, kontrwywiad, wojsko... można by to tak sobie mnożyć i mnożyć. Ale w sumie dlaczego? Czym różni się Linux od Windowsa?

Ano wszystkim.

 

Po pierwsze primo: Jest to jak już mówiłem (w przeciwieństwie do Windowsa) otwarty i wolny system. To znaczy, że cały jego kod źrodłowy można znaleźć w internecie. Bump!

Co za tym idzie, działa praktycznie na każdej architekturze procesora. Pełna lista znajduje się na githubie (patrz - link wyżej), a w przypadku pojawienia się nowej architektury wystarczy tylko skompilować jądro pod nią i voila! Jest system! Software też - patrz niżej.

Otwiera to również drogę do samodzielnej modyfikacji kodu, dzięki czemu jesteśmy w stanie dowolnie modyfikować nasz system operacyjny. Licencja oczywiście na to pozwala - jego kod może być dowolnie wykorzystywany, modyfikowany i rozpowszechniany. O Windowsie raczej tego powiedzieć nie można.

Po drugie primo: Ciągnąc wątek otwartości kodu, 99% software'u pisanego pod Linuxa również jest open-source. To czy możemy edytować i rozpowszechniać kod zależy wyłącznie od licencji, ale dzięki temu mamy pewność że program będzie bezproblemowo działać pod każdą dystrybucją Linuxa, nawet jeśli nie ma go w oficjalnych repozytoriach (o czym dopowiem za chwilę).

Po trzecie primo ultimo: Software w dystrybucjach Linuxowych jest trzymany w repozytoriach. To znaczy, że mamy bardzo przyjemny i prosty sposób na instalowanie i aktualizowanie wszelkiego softu, jak i samego Linuxa. Wystarczy wpisać odpowiednią komendę (albo użyć graficznego managera). Zazwyczaj w repo znajdziemy większość softu jaki będziemy potrzebować, a jeśli go tam nie ma - patrz drugie primo.

To i tak tylko nieliczne z wielu różnic, ale jednocześnie te najbardziej znaczące - o różnicach między windą a pingwinem jeśli chodzi o budowę strukturalną systemu napiszę później.

 

Poza tym, Linux jest zdecydowanie stabilniejszy i lżejszy od Windowsa. Można bez problemu zainstalować jakąś lekką dystrybucję na komputerze sprzed 10 lat, na którym Windows już mocno niedomaga i dać mu drugie życie. Jest również bezpieczniejszy - ze względu na to że większość zwykłych, szarych userów pracuje pod Windowsem to na Linuxa nie powstaje dużo syfów. Po części idiotoodporny też jest, ale tylko po części. Nie próbujcie tego w domu. Serio.

 

# chmod 666 chmod
# rm -rf --no-preserve-root /*

 

 

W takim razie dlaczego nie jest wykorzystywany wszędzie? Ano, jednak mimo wszystko króluje Microsoft i software pod Windowsa. Poza tym, Windows jest o wiele prostszy w obsłudze (chociaż polemizowałbym nad tym, ale nie byłbym w tej kwestii obiektywny), ma o wiele większe wsparcie rynkowe jak na aktualny moment. Mnie osobiście bardzo boli również to, że nie wychodzą na niego gry (a jeśli już - to rzadko). Co prawda są różnego typu programy, emulatory, środowiska które umożliwiają nam uruchamianie windowsowego softu pod Linuxem, ale często są problemy z kompatybilnością i wydajnością - przez co Linux do gier się nie nadaje. Nadzieję w tym temacie stwarza Steam, razem z jego SteamOS. Gaben krul.

Ale, jeśli nie gramy i mamy trochę cierpliwości, oraz szukamy lekkiego i modyfikowalnego systemu do wszelakich zastosowań - programowanie, serwer, multimedia, internet, praca biurowa - Linux może okazać się strzałem w dziesiątkę.

 

No, to by było tyle jeśli chodzi o powierzchniowy opis tego jakże cudnego systemu.

Teraz mogę przejść do głebszych zagadnień - związanych ze strukturą Linuxa, instalacją, i tego typu rzeczami. Jeśli wstęp zachęcił cię do przesiadki na niego, bądź przetestowania go - polecam czytać dalszą część, bo to może się przydać.

 

A więc. Zacznijmy od pewnego bardzo ważnego faktu - Linux to system który domyślnie ma jedynie CLI. To znaczy, że podstawowym interfejsem przez który można się nim posługiwać jest terminal, zazwyczaj z powłoką bashową. I poprzez ten terminal, możemy bez większego problemu zrobić na Linuxie wszystko. Dosłownie.

Ale, jeśli nie jesteśmy fanami linii poleceń, oczywiście możemy zainstalować sobie środowisko graficzne. Ale o tym później.

Bardzo istotną rzeczą jest to, że w Linuxie wszystko jest plikiem. Jest to widoczne jeśli chodzi o urządzenia - dla Windowsa urządzenie to urządzenie. Nie ma bezpośredniej możliwości pracy na nim, bez użycia dodatkowych programów. W Linuxie, urządzenie jest przedstawione jako plik. Można go otworzyć, można go czytać, można teoretycznie do niego zapisywać (ale może skończyć się to błędem urządzenia lub całego systemu - albo zwyczajnym permission denied). Jest to ogromne uproszczenie dla niektórych programistów - wiem co mówię.

Domyślnym użytkownikiem Linuxa jest tak zwany root - ma on dostęp do każdego pliku i folderu w systemie, może on robić co mu się żywnie podoba. Odpowiednik windowsowego Administratora, tylko tak na dobrą sprawę z większymi uprawnieniami - w Windowsie system blokuje niektóre akcje, jeśli mają one ingerować bezpośrednio w niego. W Linuxie mamy pełną swobodę.

Poza tym, system znacznie różni się od Windowsa jeśli chodzi o partycjonowanie. Zupełnie inna struktura - a to bardzo ważne, jeśli mamy zamiar choćby zainstalować sobie Linuxa na komputerze.

W Windowsie podział na partycje wygląda następująco - mamy C:/, na którym zazwyczaj stoi system, możemy sobie zrobić dodatkowe partycje na dane, ale nie jest to konieczne. System jest zainstalowany w C:/Windows. Programy - tam gdzie sobie wybierzemy, zazwyczaj w C:/Program Files. Wszelkie kompilatory, biblioteki - nie mają określonego domyślnego katalogu. Więc trzeba często ręcznie się bawić, dodawać różne foldery do zmiennej środowiskowej PATH (zmienna ta zawiera listę katalogów przeszukiwanych w poszukiwaniu plików wykonywalnych, podczas wywoływania komendy przez konsolę) i ogólnie sporo z tym bywa chędożenia. Nie jest to szczerze mówiąc super wygodne, przynajmniej jak dla mnie.

 

i4Kvvfn.png

Screen 1: zawartość katalogu / w Arch Linuxie AMR

W Linuxie natomiast mamy do czynienia z tak zwanymi punktami montowania. Punkt montowania to katalog, pod którym zamontowana jest dana partycja. Nie ma tu dysku C:/, D:/ itp., jest katalog główny root, oznaczony slashem (/), i jest to pniaczek naszego drzewka systemu plików. Od tego pniaczka mamy kilka mniej lub bardziej ważnych katalogów, które po krótce opiszę (uwaga - ilość i nazewnictwo niektórych katalogów w / może się różnić w różnych dystrybucjach Linuxa):

 

- boot - jest to katalog w którym, jak sama nazwa wskazuje, są trzymane dane bootloadera (czyli programu który tak na prawdę uruchamia nasz system, prosto mówiąc). W przypadku Linuxa w tej chwili dominującym bootloaderem jest GRUB2. O bootloaderze nieco się rozpiszę niżej, ponieważ jest to jedna z istotnych rzeczy.

- dev - jak już wcześniej mówiłem, w Linuxie urządzenia są przedstawiane jako pliki. W tym katalogu znajdziemy pseudo-urządzenia typu wirtualnych terminali, strumienii wejścia/wyjścia i kilku innych linuxowych dziwactw (m.in zero - urządzenie dostarczające tzw. null characters i random - generator liczb losowych). Można się tym pobawić, żeby zrozumieć jak działają niektóre struktury.

- etc - w tym katalogu trzymana jest konfiguracja systemu, programów i usług. Centralizacja i uporządkowanie wszystkiego w Linuxie jest ogromną zaletą, bo praktycznie zawsze wiemy dzięki temu gdzie czegoś szukać.

- home - linuxowy odpowiednik Documents and Settings. W tym katalogu trzymane są profile użytkowników systemu, razem z ich danymi. Jest to też tak na prawdę jedyny katalog, w którym domyślne uprawnienia ma ktoś inny niż root.

- mnt (lub media, w niektórych dystrybucjach) - katalog w którym są zazwyczaj trzymane zamontowane urządzenia pokroju pamięci USB lub ręcznie montowanych partycji na dysku twardym.

- opt - katalog dla dodatkowych pakietów z softwarem. Teraz już mało która dystrybucja tego używa, więc pomijam.

- proc - wirtualny system plików, który jest jednocześnie interfejsem dla struktur danych kernela (jądra). Czyli między innymi procesy chodzące na systemie, partycje, informacje dotyczące systemu. Ważne - nie istnieje on fizycznie w systemie plików, jest tylko widoczny jako katalog - tak na prawdę to okienko przez które możemy sobie podpatrzeć co siedzi w pamięci RAM komputera.

- root - folder domowy użytkownika root.

- run - tutaj też znajdują się jakieś dane dotyczące procesów i usług działających w systemie. Nie znam konkretów, więc pomijam.

- sys - kolejny wirtualny system plików, zamontowany pod katalogiem. Tu znajdziemy fizyczne urządzenia działające w systemie - procesor, karta graficzna, wszelkie karty rozszerzeń, kernel i tak dalej.

- usr - W tym katalogu znajdziemy wszelkie zainstalowane programy i biblioteki. Odpowiednik Program Files, tylko lepszy.

- var - Pliki tymczasowe, logi, cache stron, blokady. Wszelkie zmieniające się często pliki systemowe i programowe.

 

Jak już wcześniej wspomniałem, partycje w linuxie montuje się pod katalogami. Do działania niezbędna jest tylko partycja pod /, reszta - opcjonalna. Wielkości partycji montowanych jedna nad drugą nie sumują się - to znaczy, że jeśli nasz / ma 10GB, i zamontujemy sobie coś na /home o wielkości 5GB, to wszystko co będzie znajdować się w /home będzie zawarte na tej 5-gigabajtowej partycji, nie będzie przeniesione na / w przypadku braku miejsca.

Standardowo, dodatkowe punkty montowania oferowane przez instalatory to między innymi /home, /boot, /var, i /usr.

 

Oprócz tego, jest też coś takiego jak partycja wymiany - swap. Jest to takowe logiczne rozszerzenie pamięci wirtualnej systemu (czyli RAMu), wykorzystując do tego przestrzeń na dysku, a dokładniej partycję sformatowaną jako swap. Jest to dobre rozwiązanie dla komputerów z niewielką ilością ramu, ale powyżej 2GB nie ma sensu używać tej partycji ponieważ prawdopodobnie nie zostanie ona wykorzystana, ale i tak można dla pewności ją stworzyć. Typowy swap nie ma więcej niż 512MB. Wadą tego rozwiązania jest niestety uzależnienie szybkości odczytu/zapisu od szybkości dysku twardego, co jest kluczowym czynnikiem dla pamięci wirtualnej.

W Windowsie notabene też istnieje podobny system, i nazywa się C:\swapfile.sys i C:\pagefile.sys.

 

I na ten moment to tyle, wygląda na to że będę musiał podzielić artykuł na kilka części bo nie mam takiej weny żeby napisać wszystko o linuxie w jednym wątku. Jeśli znaleźliście jakieś niejasności, bądź błędy, lub macie pytania - piszcie, na pewno odpowiem.

W następnej części postaram się opisać szczegółowo co się dzieje podczas instalacji systemu, oraz napisać podstawowe komendy bashowe z opisami.

846331404756772371599.jpeg
Opublikowano

Całego jeszcze nie doczytałem, ale taki mały moim zdaniem błąd:

Jeśli piszesz "po pierwsze primo" to nie ma  to sensu, coś w stylu "po pierwsze pierwsze", to samo "po drugie primo" - "po drugie pierwsze"(?)

Moim zdaniem powinno być "po pierwsze", "po drugie", ewentualnie jeśli bardzo chcesz używać obcojęzycznych liczebników to "po primo", "po secundo" i tak dalej. :P

Bot do gry NosTale:


[bOT] NosBota 1.3v

Opublikowano

Oprócz tego, jest też coś takiego jak partycja wymiany - swap. Jest to takowe logiczne rozszerzenie pamięci wirtualnej systemu (czyli RAMu), wykorzystując do tego przestrzeń na dysku, a dokładniej partycję sformatowaną jako swap. Jest to dobre rozwiązanie dla komputerów z niewielką ilością ramu, ale powyżej 2GB nie ma sensu używać tej partycji ponieważ prawdopodobnie nie zostanie ona wykorzystana, ale i tak można dla pewności ją stworzyć. Typowy swap nie ma więcej niż 512MB. Wadą tego rozwiązania jest niestety uzależnienie szybkości odczytu/zapisu od szybkości dysku twardego, co jest kluczowym czynnikiem dla pamięci wirtualnej.

W Windowsie notabene też istnieje podobny system, i nazywa się C:\swapfile.sys i C:\pagefile.sys.

 

dodaj, że częstotliwość wykorzystywania tej partycji można zmienić :P z domyślnym progiem swap jest kłopotliwy

76561198093115115.pngAddFriend.png

Opublikowano

Całego jeszcze nie doczytałem, ale taki mały moim zdaniem błąd:

Jeśli piszesz "po pierwsze primo" to nie ma  to sensu, coś w stylu "po pierwsze pierwsze", to samo "po drugie primo" - "po drugie pierwsze"(?)

Moim zdaniem powinno być "po pierwsze", "po drugie", ewentualnie jeśli bardzo chcesz używać obcojęzycznych liczebników to "po primo", "po secundo" i tak dalej. :P

 

 

dodaj, że częstotliwość wykorzystywania tej partycji można zmienić :P z domyślnym progiem swap jest kłopotliwy

Na pewno doczytam i dodam­
846331404756772371599.jpeg

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...