LINUX podstawy


LINUX - podstawy
LINUX - podstawy
Rafał Grzybowski
Rafał Grzybowski
Rafał Grzybowski
Składowe systemu LINUX
Składowe systemu LINUX
Jądro: Jest odpowiedzialne za realizację
Jądro: Jest odpowiedzialne za realizację
wszystkich istotnych abstrakcji systemu
wszystkich istotnych abstrakcji systemu
operacyjnego.
operacyjnego.
Biblioteki systemowe: Definiują standardowy
Biblioteki systemowe: Definiują standardowy
zbiór funkcji, za pomocą których aplikacje
zbiór funkcji, za pomocą których aplikacje
mogą współdziałać z jądrem.
mogą współdziałać z jądrem.
Pomoce systemowe: Są programami, które
Pomoce systemowe: Są programami, które
wykonują osobne, specjalizowane zadania
wykonują osobne, specjalizowane zadania
administracyjne.
administracyjne.
Rafał Grzybowski
Składowe systemu
Składowe systemu
Procesy Pomocnicze Kompilatory
Programy
użytkowe programy
zarządzania
użytkowe
systemem
Wspólne biblioteki systemu
Jądro LINUX
Aadowalne moduły jądra
W jądro systemu Linux nie jest wbudowany
W jądro systemu Linux nie jest wbudowany
żaden kod działający w trybie użytkownika.
żaden kod działający w trybie użytkownika.
Rafał Grzybowski
LINUX  model systemu
LINUX  model systemu
Linux zachowuje historyczny model systemu UNIX -
Linux zachowuje historyczny model systemu UNIX -
jądro jest utworzone w formie jednego,
jądro jest utworzone w formie jednego,
monolitycznego modułu binarnego.
monolitycznego modułu binarnego.
Ponieważ cały kod jądra i wszystkie struktury danych
Ponieważ cały kod jądra i wszystkie struktury danych
są trzymane w jednej przestrzeni adresowej, więc gdy
są trzymane w jednej przestrzeni adresowej, więc gdy
proces wywołuje funkcję systemu operacyjnego albo
proces wywołuje funkcję systemu operacyjnego albo
gdy sprzęt zgłosi przerwanie, nie ma potrzeby
gdy sprzęt zgłosi przerwanie, nie ma potrzeby
przełączania kontekstu
przełączania kontekstu
To, że całe jądro korzysta z tego samego, wspólnego
To, że całe jądro korzysta z tego samego, wspólnego
tygla, nie oznacza, iż nie ma w nim miejsca na
tygla, nie oznacza, iż nie ma w nim miejsca na
modularność.
modularność.
Rafał Grzybowski
Linux  cechy jądra
Linux  cechy jądra
Jądro Linux tworzy rdzeń systemu operacyjnego
Jądro Linux tworzy rdzeń systemu operacyjnego
Linux.
Linux.
System operacyjny tworzony przez samo jądro Linux
System operacyjny tworzony przez samo jądro Linux
ma niewiele wspólnego z systemem UNIX.
ma niewiele wspólnego z systemem UNIX.
Interfejs systemu operacyjnego, widoczny dla
Interfejs systemu operacyjnego, widoczny dla
wykonywanych aplikacji, nie jest bezpośrednio
wykonywanych aplikacji, nie jest bezpośrednio
realizowany przez jądro. Programy użytkowe odwołują
realizowany przez jądro. Programy użytkowe odwołują
się do bibliotek systemowych, w których z kolei
się do bibliotek systemowych, w których z kolei
następują niezbędne odwołania do usług systemu
następują niezbędne odwołania do usług systemu
operacyjnego.
operacyjnego.
Rafał Grzybowski
Biblioteki systemowe
Biblioteki systemowe
Działają na kilku poziomach
Działają na kilku poziomach
Na najprostszym poziomie pozwalają aplikacjom zamawiać
Na najprostszym poziomie pozwalają aplikacjom zamawiać
systemowe usługi jądra.
systemowe usługi jądra.
Dopilnowują zbierania argumentów wywołań funkcji
Dopilnowują zbierania argumentów wywołań funkcji
systemowych i w razie konieczności - nadawania tym
systemowych i w razie konieczności - nadawania tym
argumentom specjalnej postaci, niezbędnej do wykonania
argumentom specjalnej postaci, niezbędnej do wykonania
wywołania.
wywołania.
Dostarczają bardziej złożonych wersji podstawowych funkcji
Dostarczają bardziej złożonych wersji podstawowych funkcji
systemowych.
systemowych.
Zawierają podprogramy, które nie mają odpowiedników w
Zawierają podprogramy, które nie mają odpowiedników w
odwołaniach do systemu, takie jak algorytmy sortowania,
odwołaniach do systemu, takie jak algorytmy sortowania,
funkcje matematyczne i operacje na napisach.
funkcje matematyczne i operacje na napisach.
Rafał Grzybowski
Moduły jądra
Moduły jądra
Jądro systemu Linux potrafi ładować i usuwać
Jądro systemu Linux potrafi ładować i usuwać
dowolną część swego kodu stosownie do potrzeb.
dowolną część swego kodu stosownie do potrzeb.
Moduły jądra działają w uprzywilejowanym trybie
Moduły jądra działają w uprzywilejowanym trybie
jądra, w wyniku czego mają pełny dostęp do
jądra, w wyniku czego mają pełny dostęp do
wszystkich możliwości maszyny.
wszystkich możliwości maszyny.
Przy użyciu modułów jądra, nie trzeba wytwarzać
Przy użyciu modułów jądra, nie trzeba wytwarzać
nowego jądra w celu testowania nowego modułu
nowego jądra w celu testowania nowego modułu
sterującego.
sterującego.
Umożliwiają osobom postronnym pisanie i
Umożliwiają osobom postronnym pisanie i
upowszechnianie na własnych zasadach modułów
upowszechnianie na własnych zasadach modułów
sterujących urządzeniami
sterujących urządzeniami
Rafał Grzybowski
Zarządzanie modułami
Zarządzanie modułami
Umożliwia wprowadzanie modułów do pamięci i ich kontakt
Umożliwia wprowadzanie modułów do pamięci i ich kontakt
z resztą jądra.
z resztą jądra.
Załadowanie modułu wymaga więcej niż tylko
Załadowanie modułu wymaga więcej niż tylko
wprowadzenia jego binarnej zawartości do pamięci
wprowadzenia jego binarnej zawartości do pamięci
operacyjnej jądra. System musi także zapewnić, że każde
operacyjnej jądra. System musi także zapewnić, że każde
odwołanie modułu do symboli jądra lub jego punktów
odwołanie modułu do symboli jądra lub jego punktów
wejściowych zostanie uaktualnione tak, aby wskazywało na
wejściowych zostanie uaktualnione tak, aby wskazywało na
właściwe komórki w przestrzeni adresowej jądra.
właściwe komórki w przestrzeni adresowej jądra.
Dwie osobne czynności:
Dwie osobne czynności:
 zarządzanie częściami kodu modułu w pamięci jądra,
 zarządzanie częściami kodu modułu w pamięci jądra,
 manipulowanie symbolami
 manipulowanie symbolami
Linux utrzymuje w jądrze wewnętrzną tablicę symboli.
Linux utrzymuje w jądrze wewnętrzną tablicę symboli.
Rafał Grzybowski
Eksport-Import symboli
Eksport-Import symboli
Eksportowanie symboli z funkcji jądra wymaga jawnego
Eksportowanie symboli z funkcji jądra wymaga jawnego
zamówienia ze strony programisty.
zamówienia ze strony programisty.
Wszystkie symbole zewnętrzne, do których występują w module
Wszystkie symbole zewnętrzne, do których występują w module
odwołania, lecz nie mające w nim deklaracji, są oznaczane w
odwołania, lecz nie mające w nim deklaracji, są oznaczane w
ostatecznym module binarnym tworzonym przez kompilator jako
ostatecznym module binarnym tworzonym przez kompilator jako
nie ustalone.
nie ustalone.
Podczas wprowadzania modułu do jądra pomocniczy program
Podczas wprowadzania modułu do jądra pomocniczy program
systemowy odnajduje w nim najpierw owe nie ustalone symbole.
systemowy odnajduje w nim najpierw owe nie ustalone symbole.
Dla każdego symbolu wymagającego określenia przeszukuje się
Dla każdego symbolu wymagającego określenia przeszukuje się
tablicę symboli jądra, po czym ich właściwe w aktualnie
tablicę symboli jądra, po czym ich właściwe w aktualnie
wykonywanym jądrze adresy są umieszczane w kodzie modułu.
wykonywanym jądrze adresy są umieszczane w kodzie modułu.
Jeżeli pomocniczy program systemowy mimo przeszukania tablicy
Jeżeli pomocniczy program systemowy mimo przeszukania tablicy
jądra nie ustali wartości jakiegoś odwołania w module, to moduł
jądra nie ustali wartości jakiegoś odwołania w module, to moduł
zostaje odrzucony.
zostaje odrzucony.
Rafał Grzybowski
Aadowanie modułu
Aadowanie modułu
Przebiega w dwu etapach.
Przebiega w dwu etapach.
Najpierw program ładujący modułu zgłasza w jądrze
Najpierw program ładujący modułu zgłasza w jądrze
zapotrzebowanie na potrzebny dla modułu ciągły obszar wirtualnej
zapotrzebowanie na potrzebny dla modułu ciągły obszar wirtualnej
pamięci jądra. Jądro zwraca adres przydzielonej pamięci.
pamięci jądra. Jądro zwraca adres przydzielonej pamięci.
Drugie wywołanie systemowe przekazuje moduł do jądra wraz z
Drugie wywołanie systemowe przekazuje moduł do jądra wraz z
niezbędną tablicą symboli, którą chce on eksportować. Moduł jest
niezbędną tablicą symboli, którą chce on eksportować. Moduł jest
teraz słowo po słowie kopiowany do uprzednio zarezerwowanego
teraz słowo po słowie kopiowany do uprzednio zarezerwowanego
obszaru, a tablica symboli jądra jest aktualizowana za pomocą
obszaru, a tablica symboli jądra jest aktualizowana za pomocą
nowych symboli.
nowych symboli.
Proces zarządzający odpytuje regularnie jądro, sprawdzając, czy
Proces zarządzający odpytuje regularnie jądro, sprawdzając, czy
załadowany moduł pozostaje w użyciu, a gdy moduł nie jest już
załadowany moduł pozostaje w użyciu, a gdy moduł nie jest już
potrzebny, powoduje jego usunięcie z pamięci.
potrzebny, powoduje jego usunięcie z pamięci.
Rafał Grzybowski
Rejestracja modułów sterujących
Rejestracja modułów sterujących
Pozwala modułom poinformować jądro o
Pozwala modułom poinformować jądro o
dostępności nowego modułu obsługi
dostępności nowego modułu obsługi
urządzenia.
urządzenia.
Istnieje wiele typów modułów sterujących.
Istnieje wiele typów modułów sterujących.
Jeden moduł może rejestrować moduły
Jeden moduł może rejestrować moduły
sterujące określonego typu lub każdego z tych
sterujące określonego typu lub każdego z tych
typów i w razie potrzeby może zarejestrować
typów i w razie potrzeby może zarejestrować
więcej niż jeden moduł sterujący
więcej niż jeden moduł sterujący
Rafał Grzybowski
Typy modułów sterujących
Typy modułów sterujących
Moduły sterujące urządzeń: Moduły te obejmują
Moduły sterujące urządzeń: Moduły te obejmują
urządzenia znakowe (takie jak drukarki, terminale lub
urządzenia znakowe (takie jak drukarki, terminale lub
myszki), urządzenia blokowe (w tym wszystkie
myszki), urządzenia blokowe (w tym wszystkie
programy obsługi dysków) oraz urządzenia interfejsów
programy obsługi dysków) oraz urządzenia interfejsów
sieciowych.
sieciowych.
Systemy plików: Za system plików można uważać
Systemy plików: Za system plików można uważać
każde oprogramowanie, które realizuje procedury
każde oprogramowanie, które realizuje procedury
wywołań wirtualnego systemu plików Linux.
wywołań wirtualnego systemu plików Linux.
Protokoły sieciowe.
Protokoły sieciowe.
Format binarny: Format ten określa zasady
Format binarny: Format ten określa zasady
rozpoznawania i ładowania pliku wykonywalnego
rozpoznawania i ładowania pliku wykonywalnego
nowego typu.
nowego typu.
Rafał Grzybowski
Rozwiązywanie konfliktów
Rozwiązywanie konfliktów
Komercyjne implementacje systemu UNIX są na ogół
Komercyjne implementacje systemu UNIX są na ogół
sprzedawane tak, aby pracowały na sprzęcie dostarczonym
sprzedawane tak, aby pracowały na sprzęcie dostarczonym
przez samego sprzedawcę.
przez samego sprzedawcę.
Linux wprowadza centralny mechanizm rozwiązywania
Linux wprowadza centralny mechanizm rozwiązywania
konfliktów mający zapewnić:
konfliktów mający zapewnić:
 ochronę modułów przed rywalizacją o dostęp do zasobów
 ochronę modułów przed rywalizacją o dostęp do zasobów
sprzętowych;
sprzętowych;
 zapobieganie zaburzaniu działania istniejących modułów
 zapobieganie zaburzaniu działania istniejących modułów
sterujących przez autosondy, tj. testy inicjowane przez moduły
sterujących przez autosondy, tj. testy inicjowane przez moduły
sterujące urządzeń w celu automatycznego wykrywania konfiguracji
sterujące urządzeń w celu automatycznego wykrywania konfiguracji
sprzętu;
sprzętu;
 rozwiązywanie konfliktów między wieloma modułami sterującymi
 rozwiązywanie konfliktów między wieloma modułami sterującymi
usiłującymi skorzystać z tego samego sprzętu
usiłującymi skorzystać z tego samego sprzętu
Rafał Grzybowski
Zarządzanie procesami
Zarządzanie procesami
Proces jest podstawowym kontekstem, w obrębie którego
Proces jest podstawowym kontekstem, w obrębie którego
obsługuje się w systemie operacyjnym wszystkie
obsługuje się w systemie operacyjnym wszystkie
zamawiane przez użytkownika czynności.
zamawiane przez użytkownika czynności.
Podstawową zasadą zarządzania procesami w systemie
Podstawową zasadą zarządzania procesami w systemie
UNIX jest podział na dwie odrębne operacje: tworzenie
UNIX jest podział na dwie odrębne operacje: tworzenie
procesów i wykonywanie nowych programów.
procesów i wykonywanie nowych programów.
execve
fork
execve
fork
W systemie Linux cechy procesu dzieli się na trzy grupy:
W systemie Linux cechy procesu dzieli się na trzy grupy:
 tożsamość,
 tożsamość,
 środowisko,
 środowisko,
 kontekst
 kontekst
Rafał Grzybowski
Tożsamość procesu
Tożsamość procesu
Na tożsamość procesu składają się:
Na tożsamość procesu składają się:
 Identyfikator procesu (PID),
 Identyfikator procesu (PID),
 Uwierzytelnienia,
 Uwierzytelnienia,
 Indywidualność.
 Indywidualność.
Jeżeli proces chce utworzyć nową grupę lub rozpocząć
Jeżeli proces chce utworzyć nową grupę lub rozpocząć
nową sesję, to może zmienić uwierzytelnienia. Mogą one
nową sesję, to może zmienić uwierzytelnienia. Mogą one
ulegać zmianom stosownie do odpowiednich wymogów
ulegać zmianom stosownie do odpowiednich wymogów
bezpieczeństwa. Jednakże podstawowy identyfikator PID
bezpieczeństwa. Jednakże podstawowy identyfikator PID
procesu pozostaje niezmienny i jednoznacznie identyfikuje
procesu pozostaje niezmienny i jednoznacznie identyfikuje
proces aż do jego zakończenia.
proces aż do jego zakończenia.
Rafał Grzybowski
Środowisko procesu
Środowisko procesu
Proces dziedziczy środowisko po procesie macierzystym;
Proces dziedziczy środowisko po procesie macierzystym;
składa się ono z dwu wektorów zakończonych znakiem
składa się ono z dwu wektorów zakończonych znakiem
pustym: wektora argumentów i wektora środowiska.
pustym: wektora argumentów i wektora środowiska.
Wektor argumentów to wykaz argumentów wpisanych
Wektor argumentów to wykaz argumentów wpisanych
przez użytkownika w wierszu wywołania programu.
przez użytkownika w wierszu wywołania programu.
Wektor środowiska jest wykazem par
Wektor środowiska jest wykazem par
"NAZWA=WARTOŚĆ .
"NAZWA=WARTOŚĆ .
Środowisko jest przechowywane w trybie użytkownika w
Środowisko jest przechowywane w trybie użytkownika w
prywatnej przestrzeni adresowej procesu.
prywatnej przestrzeni adresowej procesu.
Rafał Grzybowski
Kontekst procesu
Kontekst procesu
Kontekst planowania
Kontekst planowania
Rozliczanie
Rozliczanie
Tablica plików
Tablica plików
Kontekst systemu plików
Kontekst systemu plików
Tablica obsługi sygnałów
Tablica obsługi sygnałów
Kontekst pamięci wirtualnej
Kontekst pamięci wirtualnej
Rafał Grzybowski
Procesy i wątki
Procesy i wątki
Procesy reprezentują wykonywanie poszczególnych programów,
Procesy reprezentują wykonywanie poszczególnych programów,
wątki zaś reprezentują oddzielne, współbieżne konteksty
wątki zaś reprezentują oddzielne, współbieżne konteksty
wykonywania w ramach jednego procesu wykonującego dany
wykonywania w ramach jednego procesu wykonującego dany
program.
program.
Każde dwa osobne procesy mają własne, niezależne przestrzenie
Każde dwa osobne procesy mają własne, niezależne przestrzenie
adresowe - nawet gdy korzystają ze wspólnej pamięci w celu dzielenia
adresowe - nawet gdy korzystają ze wspólnej pamięci w celu dzielenia
części (lecz nie całości) zawartości ich pamięci wirtualnej.
części (lecz nie całości) zawartości ich pamięci wirtualnej.
dwa wątki tego samego procesu będą dzielić tę samą przestrzeń
dwa wątki tego samego procesu będą dzielić tę samą przestrzeń
adresową (a nie tylko podobne przestrzenie adresowe - każda zmiana
adresową (a nie tylko podobne przestrzenie adresowe - każda zmiana
w wyglądzie pamięci wirtualnej wykonana przez jeden z wątków
w wyglądzie pamięci wirtualnej wykonana przez jeden z wątków
będzie natychmiast widoczna dla innych wątków w procesie).
będzie natychmiast widoczna dla innych wątków w procesie).
Rafał Grzybowski
wątki - realizacja
wątki - realizacja
Wątek może być zaimplementowany w jądrze systemu
Wątek może być zaimplementowany w jądrze systemu
operacyjnego w postaci obiektu należącego do procesu lub
operacyjnego w postaci obiektu należącego do procesu lub
może być jednostką w pełni niezależną.
może być jednostką w pełni niezależną.
Wątek może być zrealizowany poza jądrem - wątki mogą
Wątek może być zrealizowany poza jądrem - wątki mogą
być w pełni urzeczywistniane przez aplikację lub kod
być w pełni urzeczywistniane przez aplikację lub kod
biblioteczny z pomocą dostarczanych przez jądro przerwań
biblioteczny z pomocą dostarczanych przez jądro przerwań
zegarowych.
zegarowych.
Jądro Linuxa stosuje dokładnie tę samą wewnętrzną
Jądro Linuxa stosuje dokładnie tę samą wewnętrzną
reprezentację dla wątku i procesu. Wątek jest po prostu
reprezentację dla wątku i procesu. Wątek jest po prostu
nowym procesem, któremu przychodzi dzielić ze swoim
nowym procesem, któremu przychodzi dzielić ze swoim
rodzicem tę samą przestrzeń adresową.
rodzicem tę samą przestrzeń adresową.
clone
clone
Rafał Grzybowski
wątek proces
wątek proces
Linux nie przechowuje całego kontekstu w głównej
Linux nie przechowuje całego kontekstu w głównej
strukturze danych, pamięta go w postaci niezależnych
strukturze danych, pamięta go w postaci niezależnych
podkontekstów.
podkontekstów.
Kontekst systemu plików, tablica deskryptorów plików,
Kontekst systemu plików, tablica deskryptorów plików,
tablica obsługi sygnałów i kontekst pamięci wirtualnej są
tablica obsługi sygnałów i kontekst pamięci wirtualnej są
przechowywane w oddzielnych strukturach danych.
przechowywane w oddzielnych strukturach danych.
Podkontekst może być łatwo dzielony przez dowolną
Podkontekst może być łatwo dzielony przez dowolną
liczbę procesów za pomocą odpowiednich do niego
liczbę procesów za pomocą odpowiednich do niego
wskazań.
wskazań.
Rafał Grzybowski
Synchronizacja jądra
Synchronizacja jądra
Sposób, w jaki jądro planuje własne operacje, jest
Sposób, w jaki jądro planuje własne operacje, jest
zasadniczo różny od planowania procesów.
zasadniczo różny od planowania procesów.
Zamówienie na działanie w trybie jądra można wykonać
Zamówienie na działanie w trybie jądra można wykonać
dwoma sposobami.
dwoma sposobami.
 Wykonywany program może zamówić usługę systemu
 Wykonywany program może zamówić usługę systemu
operacyjnego jawnie - za pomocą wywołania systemowego,
operacyjnego jawnie - za pomocą wywołania systemowego,
 lub niejawnie, na przykład wskutek braku strony. Może też
 lub niejawnie, na przykład wskutek braku strony. Może też
wystąpić przerwanie pochodzące od modułu sterującego
wystąpić przerwanie pochodzące od modułu sterującego
urządzenia, które spowoduje, że jednostka centralna zacznie
urządzenia, które spowoduje, że jednostka centralna zacznie
wykonywać kod zdefiniowanej w jądrze procedury obsługi
wykonywać kod zdefiniowanej w jądrze procedury obsługi
przerwania.
przerwania.
Sekcje krytyczne.
Sekcje krytyczne.
Rafał Grzybowski
Niewywłaszczalny kod jądra
Niewywłaszczalny kod jądra
Gdy przerwanie zegarowe zostanie odebrane w czasie, gdy
Gdy przerwanie zegarowe zostanie odebrane w czasie, gdy
proces wykonuje jądrową, systemową procedurę obsługi,
proces wykonuje jądrową, systemową procedurę obsługi,
nie wywołuje się dyspozytora. Zamiast tego ustawia się w
nie wywołuje się dyspozytora. Zamiast tego ustawia się w
jądrze znacznik need_resched, aby poinformować jądro o
jądrze znacznik need_resched, aby poinformować jądro o
zapotrzebowaniu na pracę planisty po zakończeniu
zapotrzebowaniu na pracę planisty po zakończeniu
wywołania systemowego.
wywołania systemowego.
Jeśli tylko rozpocznie się wykonywanie kawałka kodu jądra,
Jeśli tylko rozpocznie się wykonywanie kawałka kodu jądra,
to gwarantuje się, że będzie to jedyny aktywny fragment
to gwarantuje się, że będzie to jedyny aktywny fragment
kodu jądra do czasu, aż wystąpi jedno z następujących
kodu jądra do czasu, aż wystąpi jedno z następujących
zdarzeń:
zdarzeń:
 przerwanie;
 przerwanie;
 brak strony;
 brak strony;
 wywołanie działania planisty przez sam kod jądra.
 wywołanie działania planisty przez sam kod jądra.
Rafał Grzybowski
Zakaz przerwań
Zakaz przerwań
Rozkazy włączania i wyłączania przerwań są w
Rozkazy włączania i wyłączania przerwań są w
większości architektur sprzętowych kosztowne.
większości architektur sprzętowych kosztowne.
W jądrze systemu Linux zastosowano architekturę
W jądrze systemu Linux zastosowano architekturę
synchronizacji umożliwiającą wykonywanie długich
synchronizacji umożliwiającą wykonywanie długich
sekcji krytycznych bez wyłączania przerwań na czas
sekcji krytycznych bez wyłączania przerwań na czas
trwania całej sekcji.
trwania całej sekcji.
Linux implementuje tę architekturę przez
Linux implementuje tę architekturę przez
wyodrębnianie w procedurach obsługi przerwań dwu
wyodrębnianie w procedurach obsługi przerwań dwu
części: górnej i dolnej połowy.
części: górnej i dolnej połowy.
Rafał Grzybowski
Poziomy ochrony przed
Poziomy ochrony przed
przerwaniami
przerwaniami
Zwiększanie się priorytetu
Górne połowy procedur obsługi
Górne połowy procedur obsługi
przerwań
przerwań
Dolne połowy procedur obsługi
Dolne połowy procedur obsługi
przerwań
przerwań
Systemowe procedur jądrowe
Systemowe procedur jądrowe
(niewywłaszczalne)
(niewywłaszczalne)
Programy trybu użytkownika
Programy trybu użytkownika
(wywłaszczalne) Zmniejszanie się priorytetu
(wywłaszczalne)


Wyszukiwarka

Podobne podstrony:
Xhemjl Home Page Linux Podstawowe komendy Linuxa
System operacyjny Linux (podstawy)
06 Linux Podstawy bezpieczeństwa systemu
Linux Podstawy Fedora
TEST z podstaw systemu LINUX
Podstawowe komendy i polecenia w Linux
Linux Pliki i katalogi (podstawowe polecenia)
Podstawowe komendy i polecenia w Linux
Podstawowe polecenia systemu LINUX
linux informacje podstawowe
Wyk6 ORBITA GPS Podstawowe informacje
Podstawowe informacje o Rybnie
3 podstawy teorii stanu naprezenia, prawo hookea
zestawy cwiczen przygotowane na podstawie programu Mistrz Klawia 6

więcej podobnych podstron