Jądro Linuksa jest jak most, który umożliwia komunikację obliczeniową między aplikacjami i sprzętem oraz zarządza zasobami systemu. Linus Torvalds opracował jądro Linuksa za pomocą C i Assembly, dzięki czemu udało mu się stworzyć lekki i przenośny rdzeń, który został publicznie udostępniony jako open source.
Jądro Linuksa można zobaczyć w wielu różnych sektorach, takich jak przestrzeń kosmiczna, komputery, inteligentne zegarki, telefony komórkowe, robotyka i zdrowie. Ale czy kiedykolwiek zastanawiałeś się, jak działa jądro Linuksa pod maską?
Wykorzystanie sprzętu w systemie Linux
Jądro Linuksa przede wszystkim kontroluje, jaki sprzęt będzie działał iw jaki sposób po włączeniu komputera. Dodatkowo sterowanie oprogramowaniem high-end jest możliwe dzięki interfejsowi programistycznemu. Aby podać przykład tych elementów sterujących, możesz zobaczyć informacje o sprzęcie zainstalowanym w gniazdach na płycie głównej i skorzystać z tych szczegółowych informacji.
Ponadto ten interfejs programistyczny zapewnia warstwę abstrakcji. Na przykład, jeśli chcesz przeprowadzić rozmowę wideo ze znajomymi, potrzebujesz kamery internetowej. Warstwa abstrakcji umożliwia oprogramowaniu, którego używasz, korzystanie z tej kamery internetowej niezależnie od jej marki i modelu. Oprogramowanie tutaj może korzystać tylko z interfejsu, który istnieje dla systemu Linux. Jądro Linux tłumaczy wywołania funkcji tego interfejsu na rzeczywiste polecenia sprzętowe, których potrzebuje kamera internetowa.
Używając /proc oraz /sys wirtualne systemy plików, jądro Linuksa może eksportuj szczegółowe informacje o sprzęcie wykrywa. Poniżej możesz zobaczyć kilka narzędzi używanych do tego oraz urządzenia i karty, które eksportują:
- lspci: Dla urządzeń PCI
- lsusb: Dla urządzeń USB
- lspcmcia: Dla kart PCMCIA
Jak widać, dystrybucja Linuksa na powyższym zrzucie ekranu działa na VirtualBox. Masz jednak możliwość zobaczenia wielu informacji, takich jak VGA, kontroler USB, mosty i kontroler SATA.
Możesz także użyć -v parametr, aby uzyskać bardziej szczegółowe informacje.
W jądrze Linux aplikacje zwykle uzyskują dostęp do urządzeń poprzez specjalne pliki, które istnieją w /dev informator. Te specjalne pliki reprezentują dyski i inne urządzenia fizyczne. Pliki takie jak /dev/hda, /dev/sdc, /dev/sdc3, /dev/input/mouse0 oraz dev/snd/* są przykładami tych specjalnych plików.
Zarządzanie systemem plików Linux
Systemy plików są jednym z najbardziej godnych uwagi składników jądra Linuksa. System plików Linuksa jest jedną z jego największych zalet. Wszystkie pliki w systemie Linux gromadzą się w jednej gałęzi. Użytkownicy mogą zatem wykorzystać tę hierarchię, aby dotrzeć do pożądanych miejsc.
Punktem wyjścia tej hierarchii jest katalog główny (/). Inne podkatalogi znajdują się w katalogu głównym. Najczęściej używany podkatalog pod / jest /home informator. Ten podkatalog zawiera inne podkatalogi, a każdy katalog zawiera pliki przechowujące rzeczywiste dane.
Na przykład możesz pomyśleć o pliku tekstowym na pulpicie. Jeśli utworzysz plik tekstowy o nazwie helloworld.txt na pulpicie możesz odnieść się do niego jako /home/muo/Desktop/helloworld.txt. Przykład /muo tutaj oczywiście będą się różnić. Ponieważ ta nazwa podkatalogu zależy od aktualnej nazwy użytkownika. Dzięki temu systemowi nazewnictwa jądro Linuksa dokonuje translacji między rzeczywistą a fizyczną pamięcią istniejącą na dysku.
Ponadto jądro Linux może integrować dane z kilku dysków. W tym miejscu do gry wchodzi system mocowania. Używa jednego z dysków w systemie głównym i montuje pozostałe do istniejących katalogów w hierarchii. Inne dyski są następnie umieszczane pod punktami montowania. Pozwala to użytkownikom na przechowywanie /home katalog na drugim dysku twardym, który zawiera również inne podkatalogi.
Po zamontowaniu dysku do /home katalogu, możesz uzyskać dostęp do tych katalogów z normalnych lokalizacji. Tak więc ścieżki takie jak /home/muo/Desktop/helloworld.txt kontynuować pracę.
Możesz zobaczyć punkty montowania między plikami w twoim systemie za pomocą znalezisko -A Komenda.
Dzięki wielu formatom systemu plików możesz fizycznie przechowywać dane na dyskach. Najbardziej znane w systemie Linux to: ext2, wew3, oraz wew4 formaty systemu plików. Istnieje jednak wiele innych formatów systemu plików. W każdym razie musisz sformatować system plików przed jego zamontowaniem. Możesz używać poleceń takich jak mkfs.ext3 (mkfs oznacza make system plików, a ext3 to system plików).
Te polecenia akceptują ścieżkę pliku urządzenia, którą chcesz sformatować jako parametr. Jest to destrukcyjna operacja i powinieneś używać jej ostrożnie, jeśli nie chcesz wymazać lub zresetować systemu plików.
Oprócz tego są też sieciowe systemy plików, takie jak NFS którego używa jądro Linuksa. NFS to sieciowy system plików, w którym dane nie są przechowywane na dysku lokalnym. Dzięki NFS dane są przesyłane przez sieć do serwera, który przechowuje dane. Ponieważ dane będą na serwerze, użytkownicy nie muszą się z nimi stale zajmować. Mogą również jak zwykle korzystać z tradycyjnego hierarchicznego systemu plików Linuksa.
Współdzielone operacje funkcyjne
Całe oprogramowanie w systemie Linux ma wspólne funkcje. Dlatego te funkcje są centralne w jądrze Linuksa. Na przykład podczas otwierania pliku można go otworzyć tylko z nazwą pliku, nie wiedząc, gdzie plik jest fizycznie przechowywany ani jakich funkcji i operacji będzie używał. Wszystkie te funkcje są już obecne w jądrze.
Możesz przechowywać swój plik na dysku twardym, podzielić go na kilka dysków twardych, a nawet przechowywać na zdalnym serwerze. W takich przypadkach ważne są funkcje komunikacji plików współdzielonych. Aplikacje wymieniają dane niezależnie od sposobu ich przenoszenia. Współdzielone funkcje komunikacyjne służą do wymiany danych. Ten ruch może odbywać się za pośrednictwem sieci bezprzewodowych lub nawet stacjonarnej linii telefonicznej.
Zarządzanie procesami w systemie Linux
Aktywna instancja programu operującego na danych lub informacjach w pamięci nazywana jest procesem. Zadaniem jądra Linuksa jest generowanie i śledzenie tych obszarów pamięci. Jądro przydziela pamięć dla uruchomionego programu i ładuje kod wykonywalny do pamięci z systemu plików. Natychmiast po tym jądro uruchamia kod.
Jądro Linux obsługuje wielozadaniowość. Jest w stanie obsługiwać wiele procesów jednocześnie. Jednak w danym przedziale czasowym jest tylko jedna transakcja. Jednak jądro Linuksa dzieli czas na małe porcje, w wyniku czego każda procedura odbywa się sekwencyjnie.
Ponieważ te małe segmenty czasu są w odstępach milisekundowych, są aktywne tylko w określonych godzinach i pozostają bezczynne przez resztę czasu. Zadaniem jądra Linuksa jest tutaj maksymalizacja wydajności poprzez uruchamianie wielu procesów jednocześnie.
Jeśli przedziały czasowe są zbyt długie, uruchomiona aplikacja może nie reagować tak szybko, jak byś tego chciał. Jeśli ramy czasowe są zbyt krótkie, mogą wystąpić problemy ze zmianami zadań. W zależności od priorytetu procesu wymagany tutaj przedział czasu będzie się różnić. Być może słyszałeś już o procesach o wysokim priorytecie io procesach o niskim priorytecie. Jest to jedna z funkcji, którymi steruje jądro Linuksa.
To wyjaśnienie nie zawsze jest poprawne. Prawdziwym ograniczeniem jest to, że w danym momencie może istnieć tylko jeden proces roboczy na rdzeń procesora. Systemy wieloprocesorowe umożliwiają równoległe działanie kilku procesów. Podstawowy system prawie zawsze zawiera dziesiątki uruchomionych procesów.
Prawa dostępu w systemie Linux
Podobnie jak w przypadku innych systemów operacyjnych, w systemie Linux można utworzyć wielu użytkowników. W takich przypadkach istnieje system zarządzania uprawnieniami, który obsługuje poszczególnych użytkowników i grupy. To jest gdzie uprawnienia do plików i użytkowników wejść do gry.
Jądro Linux zarządza danymi i sprawdza niezbędne uprawnienia dla każdego procesu. Na przykład, jeśli próbujesz otworzyć plik, jądro musi sprawdzić identyfikator procesu z uprawnieniami dostępu. Jeśli jądro sprawdzi i zobaczy, że masz uprawnienia, otworzy plik.
Jądro Linuksa kontroluje wszystko
Jak widać, jądro Linuksa nadzoruje wszystko, od bezpieczeństwa plików po tworzenie użytkowników i pobieranie plików z Internetu. Wszystko jest w określonej kolejności. Każdy użytkownik ma prawa. Jądro Linux zarządza procesami i przedziałami czasowymi w celu uzyskania maksymalnej wydajności.
Co więcej, bardzo ważny jest system plików, który jest jedną z największych cech odróżniających jądro Linuksa od innych systemów operacyjnych. Linux nie jest ukrytym pudełkiem. Wręcz przeciwnie, wszystkie pliki i kody źródłowe są dostępne. Aby lepiej zrozumieć praktyczną i potężną naturę jądra Linuksa, można przeanalizować hierarchię systemu katalogów Linuksa.