so:users_chmod
Różnice
Różnice między wybraną wersją a wersją aktualną.
| Poprzednia rewizja po obu stronachPoprzednia wersjaNowa wersja | Poprzednia wersja | ||
| so:users_chmod [2023/03/14 12:49] – [Data utworzenia, modyfikacji, dostępu] jkonczak | so:users_chmod [2026/03/17 14:04] (aktualna) – [Zmiana uprawnień, grupy i użytkownika pliku] jkonczak | ||
|---|---|---|---|
| Linia 1: | Linia 1: | ||
| - | ===== Użytkownicy, | + | ===== Użytkownicy i grupy ===== |
| - | + | ||
| - | ==== Użytkownicy i grupy ==== | + | |
| W uniksopodobnych systemach istnieją użytkownicy i grupy. \\ | W uniksopodobnych systemach istnieją użytkownicy i grupy. \\ | ||
| Linia 56: | Linia 54: | ||
| | | ||
| < | < | ||
| - | | + | |
| - | ==== Użytkownicy w systemie, historia logowania, komunikacja ==== | + | ++++ Przykłady: | {{section> |
| + | |||
| + | ===== Użytkownicy w systemie, historia logowania, komunikacja | ||
| Listę osób bieżąco używających systemu można wyświetlić komendą **'' | Listę osób bieżąco używających systemu można wyświetlić komendą **'' | ||
| Linia 71: | Linia 71: | ||
| < | < | ||
| - | ~~Zadanie.# | + | ~~Zadanie.# |
| < | < | ||
| Linia 91: | Linia 91: | ||
| < | < | ||
| - | ==== Przełączenie się na innego użytkownika ==== | + | ++++ Przykłady: | {{section> |
| + | |||
| + | ===== Przełączenie się na innego użytkownika | ||
| Posiadając odpowiednie uprawnienia i/lub znając odpowiednie hasło (w zależności od ustawień systemu) można przełączyć się na innego użytkownika bądź wykonać komendę jako inny użytkownik. | Posiadając odpowiednie uprawnienia i/lub znając odpowiednie hasło (w zależności od ustawień systemu) można przełączyć się na innego użytkownika bądź wykonać komendę jako inny użytkownik. | ||
| - | Komenda '' | + | Komenda '' |
| - | Komenda '' | + | powłokę dla podanego użytkownika (domyślnie roota). \\ |
| + | Komenda '' | ||
| + | w domyślnej powłoce dla podanego użytkownika (domyślnie roota) podaną komendę. \\ | ||
| '' | '' | ||
| W domyślnych ustawieniach Linuksa komenda '' | W domyślnych ustawieniach Linuksa komenda '' | ||
| - | Na wielu dystrybucjach instalowana jest też komenda '' | + | Na wielu dystrybucjach instalowana jest też komenda '' |
| + | zezwolenie wybranym użytkownikom na wykonywanie wybranych komend z uprawnieniami | ||
| + | wskazanych użytkowników. Do uwierzytelnienia | ||
| + | bieżącego bądź docelowego użytkownika. | ||
| W niektórych dystrybucjach komenda '' | W niektórych dystrybucjach komenda '' | ||
| - | ~~Zadanie.# | + | ~~Zadanie.# |
| + | (prawdopodobnie '' | ||
| + | swojego komputera). | ||
| + | Zmień użytkownika na '' | ||
| + | Zmień użytkownika na innego '' | ||
| < | < | ||
| + | |||
| + | Do zmiany (w bieżącej sesji powłoki) grupy podstawowej można użyć komendy '' | ||
| + | Komenda '' | ||
| + | Po wykonaniu komendy '' | ||
| + | Zmiana grupy podstawowej ma wpływ m. inn. na to do jakiej grupy należą nowo tworzone pliki i procesy. | ||
| Root może też korzystać z komend '' | Root może też korzystać z komend '' | ||
| Linia 111: | Linia 127: | ||
| < | < | ||
| - | ==== Uprawnienia dostępu do plików ==== | + | ++++ Przykłady: | {{section> |
| - | === Rodzaje i zapis uprawnień === | + | ===== Uprawnienia dostępu do plików ===== |
| + | |||
| + | ==== Rodzaje i zapis uprawnień | ||
| W uniksopodobnych systemach dostęp do pliku określają trzy podstawowe uprawnienia: | W uniksopodobnych systemach dostęp do pliku określają trzy podstawowe uprawnienia: | ||
| Linia 120: | Linia 138: | ||
| \\ | \\ | ||
| Dodatkowo można ustawić trzy uprawnienia specjalne: set-user-id (suid, __**s**__), set-group-id (sgid, __**s**__) i sticky (__**t**__). | Dodatkowo można ustawić trzy uprawnienia specjalne: set-user-id (suid, __**s**__), set-group-id (sgid, __**s**__) i sticky (__**t**__). | ||
| + | |||
| + | Przy dostępie do pliku, jeżeli plik należy do bieżącego użytkownika, | ||
| + | Jeżeli plik nie należy do użytkownika, | ||
| + | Jeżeli plik nie należy do użytkownika i użytkownik nie należy do grupy pliku, brane są pod uwagę tylko uprawnienia pozostałych.\\ | ||
| + | < | ||
| Prawo do wykonania dla pliku oznacza możliwość uruchomienia go (jako skrypt, program etc.), dla katalogu – wejścia do niego. | Prawo do wykonania dla pliku oznacza możliwość uruchomienia go (jako skrypt, program etc.), dla katalogu – wejścia do niego. | ||
| Linia 159: | Linia 182: | ||
| \\ | \\ | ||
| a '' | a '' | ||
| + | |||
| + | ++++ Ilustracja tego na który z trzech zestawów uprawnień patrzyć| | ||
| + | {{page> | ||
| Aby zobaczyć szczegółowe informacje o pliku, w tym uprawnienia, | Aby zobaczyć szczegółowe informacje o pliku, w tym uprawnienia, | ||
| \\ | \\ | ||
| - | Uprawnienia są też wyświetlane w wynikach '' | + | Uprawnienia są też wyświetlane w wynikach '' |
| \\ | \\ | ||
| Wszystkie powyższe polecenia dodają na początek uprawnień literę określającą rodzaj pliku. | Wszystkie powyższe polecenia dodają na początek uprawnień literę określającą rodzaj pliku. | ||
| Linia 181: | Linia 207: | ||
| * ''/ | * ''/ | ||
| | | ||
| - | === Zmiana uprawnień, grupy i użytkownika pliku === | + | ==== Zmiana uprawnień, grupy i użytkownika pliku ==== |
| Domyślnie uprawnienia nadawane plikom i katalogom określa maska którą można odczytać poleceniem '' | Domyślnie uprawnienia nadawane plikom i katalogom określa maska którą można odczytać poleceniem '' | ||
| Linia 192: | Linia 218: | ||
| * operacja '' | * operacja '' | ||
| * uprawnienia '' | * uprawnienia '' | ||
| - | Np. '' | + | Np. '' |
| \\ | \\ | ||
| < | < | ||
| + | |||
| + | Uprawnienia dostępu może zmieniać tylko właściciel pliku (i root). | ||
| Właściciel pliku będący w kliku grupach może użyć komendy '' | Właściciel pliku będący w kliku grupach może użyć komendy '' | ||
| Linia 202: | Linia 230: | ||
| Zarówno '' | Zarówno '' | ||
| - | // | + | // |
| + | \\ Do tworzenia plików możesz wykorzystać np. komendę // '' | ||
| + | |||
| + | < | ||
| + | ++++ Instrukcja jak wykonywać ćwiczenia na własnym urządzeniu z Linuksem | | ||
| + | Żeby robić poniższe ćwiczenia z własnego komputera, możesz albo: | ||
| + | - Dodać do swojego systemu przykładowe grupy i użytkowników komendami:< | ||
| + | groupadd even | ||
| + | groupadd odd | ||
| + | groupadd low | ||
| + | groupadd high | ||
| + | useradd -g odd -G low -m user1 | ||
| + | useradd -g even -G low -m user2 | ||
| + | useradd -g odd -G high -m user3 | ||
| + | useradd -g even -G high -m user4 | ||
| + | passwd -d user1 | ||
| + | passwd -d user2 | ||
| + | passwd -d user3 | ||
| + | passwd -d user4</ | ||
| + | - Zbudować i użyć {{so: | ||
| + | curl -s https:// | ||
| + | docker build --tag container-for-file-permission-labs container-for-file-permission-labs | ||
| + | docker run --network=none --rm -ti container-for-file-permission-labs</ | ||
| + | ++++ | ||
| + | </ | ||
| ~~Zadanie.# | ~~Zadanie.# | ||
| Linia 216: | Linia 268: | ||
| ~~Zadanie.# | ~~Zadanie.# | ||
| - | ~~Zadanie.# | + | ~~Zadanie.# |
| + | Odbierz prawo do wykonywania katalogu | ||
| + | Spróbuj wylistować | ||
| + | oraz wyświetlić plik P bez wchodzenia do katalogu | ||
| - | ~~Zadanie.# | + | ~~Zadanie.# |
| + | katalogu zwykły plik. Wyświetl plik jako inny użytkownik. Wyświetl zawartość | ||
| + | katalogu jako inny użytkownik. | ||
| + | \\ | ||
| + | Następnie zmień prawa do katalogu | ||
| + | wyświetlić plik i zawartość katalogu jako inny użytkownik. | ||
| ~~Zadanie.# | ~~Zadanie.# | ||
| Linia 224: | Linia 284: | ||
| ~~Zadanie.# | ~~Zadanie.# | ||
| - | ~~Zadanie.# | + | ~~Zadanie.# |
| + | poprzednim zadaniu? Czy możesz przenieść katalog K do innego | ||
| + | możesz przenieść katalog zawierający K do innego | ||
| ~~Zadanie.# | ~~Zadanie.# | ||
| Linia 230: | Linia 292: | ||
| ~~Zadanie.# | ~~Zadanie.# | ||
| - | ==== Data utworzenia, modyfikacji, | + | < |
| + | <WRAP nomargin> | ||
| + | Przykłady: | ||
| + | ++++ umask | {{section> | ||
| + | ++++ manipulacja uprawnieniami | {{section> | ||
| + | ++++ user, group czy others | {{section> | ||
| + | ++++ uprawnienia tylko do zapisu, odczytu | {{section> | ||
| + | ++++ tworzenie/ | ||
| + | </ | ||
| + | ++++ suid i sgid | {{section> | ||
| + | |||
| + | ===== Data utworzenia, modyfikacji, | ||
| Linuksowe system plików zwykle przechowują datę zmiany metadanych (// | Linuksowe system plików zwykle przechowują datę zmiany metadanych (// | ||
| Linia 255: | Linia 328: | ||
| < | < | ||
| - | ===== Edycja linii poleceń | + | ++++ Przykłady: | {{section>so:users_chmod:examples#touch& |
| - | + | ||
| - | Bash (i wiele innych programów) korzysta do odczytywania komend ze standardowego wejścia biblioteki [[https:// | + | |
| - | \\ | + | |
| - | Część programów z przyczyn licencyjnych wybiera do tego samego celu [[https:// | + | |
| - | + | ||
| - | Readline pozwala na wygodną edycję linii poleceń i tworzenie historii poleceń. | + | |
| - | + | ||
| - | Lista sensownych skrótów klawiszowych do edycji linii poleceń jest tutaj: https:// | + | |
| - | \\ | + | |
| - | Pełna lista komend i przypisanych do nich skrótów jest w podręczniku systemowym ('' | + | |
| - | \\ | + | |
| - | Konwencja zapisu skrótów klawiszowych to: | + | |
| - | * '' | + | |
| - | * '' | + | |
| - | * ''// | + | |
| - | + | ||
| - | Bash domyślnie dopisuje historię wykonanych poleceń do pliku '' | + | |
| - | \\ | + | |
| - | Historię (tą z pliku połączoną z bieżącą) można wyświetlić komendą '' | + | |
| - | + | ||
| - | < | + | |
| - | + | ||
| - | Do wygodnego przeglądania historii można też użyć programu [[https:// | + | |
| - | + | ||
| - | < | + | |
| - | + | ||
| - | ~~Zadanie.# | + | |
| - | + | ||
| - | ~~Zadanie.# | + | |
| - | + | ||
| - | ~~Zadanie.# | + | |
| - | + | ||
| - | < | + | |
| - | + | ||
| - | ~~Zadanie.# | + | |
| - | + | ||
| - | ~~Zadanie.# | + | |
| - | + | ||
| - | ~~Zadanie.# | + | |
| - | + | ||
| - | ~~Zadanie.# | + | |
| - | + | ||
| - | < | + | |
| - | + | ||
| - | ===== Edycja plików w konsoli ===== | + | |
| - | + | ||
| - | === vi i vim === | + | |
| - | + | ||
| - | '' | + | |
| - | + | ||
| - | '' | + | |
| - | + | ||
| - | Żeby nauczyć się '' | + | |
| - | + | ||
| - | + | ||
| - | < | + | |
| - | + | ||
| - | '' | + | |
| - | \\ | + | |
| - | Jest też częścią minimalistycznych zestawów narzędzi takich jak busybox i toybox. | + | |
| - | + | ||
| - | < | + | |
| - | + | ||
| - | ~~Zadanie.# | + | |
| - | + | ||
| - | < | + | |
| - | + | ||
| - | ~~Zadanie.# | + | |
| - | + | ||
| - | === nano === | + | |
| - | + | ||
| - | Nano jest stosunkowo prostym edytorem tekstowym. | + | |
| - | + | ||
| - | Podstawowe skróty są wyświetlone na dole ekranu. | + | |
| - | + | ||
| - | Więcej na: https:// | + | |
| - | + | ||
| - | === Emacs === | + | |
| - | + | ||
| - | [[https:// | + | |
| - | + | ||
| - | Po wpisaniu '' | + | |
| - | + | ||
| - | === Inne === | + | |
| - | + | ||
| - | * [[https:// | + | |
| - | * mcedit – edytor zintegrowany z [[https:// | + | |
| - | * [[https:// | + | |
| - | * [[https:// | + | |
| - | * [[https:// | + | |
| - | + | ||
| - | < | + | |
| - | + | ||
| - | + | ||
| - | ===== Spanie, mierzenie i limitowanie czasu ===== | + | |
| - | + | ||
| - | Komenda '' | + | |
| - | \\ | + | |
| - | Domyślną jednostką czasu są sekundy ('' | + | |
| - | \\ | + | |
| - | < | + | |
| - | \\ | + | |
| - | Niektóre implementacje sleep rozumieją ułamki dziesiętne, | + | |
| - | + | ||
| - | Komenda '' | + | |
| - | + | ||
| - | < | + | |
| - | Komenda '' | + | |
| - | polecenie i przerywa je po upłynięciu wskazanego czasu. | + | |
| - | </ | + | |
| - | + | ||
| - | ~~Zadanie.# | + | |
| - | + | ||
| - | ~~Zadanie.# | + | |
| - | + | ||
| - | + | ||
| - | < | + | |
| - | ~~Zadanie.# | + | |
| - | + | ||
| - | ~~Zadanie.# | + | |
| - | </ | + | |
| - | + | ||
| - | + | ||
| - | ===== Procesy ===== | + | |
| - | + | ||
| - | ==== Proces a program ==== | + | |
| - | + | ||
| - | Program jest sekwencją instrukcji((zwykle uzupełnionym o opis tego, w jakim | + | |
| - | środowisku je uruchomić – początkowy stan pamięci włączając stan zmiennych | + | |
| - | globalnych i załadowane biblioteki dynamiczne)). | + | |
| - | Proces to uruchomienie (instancja) programu. | + | |
| - | + | ||
| - | Na proces poza sekwencją instrukcji (załadowaną do pamięci operacyjnej) składa | + | |
| - | się wszystko co opisuje stan jego wykonania – np. zawartość rejestrów procesora, | + | |
| - | stan pamięci operacyjnej. | + | |
| - | + | ||
| - | Uruchamiając ten sam program (tą samą aplikację) wielokrotnie tworzy się wiele | + | |
| - | procesów. | + | |
| - | + | ||
| - | === Rodzice, dzieci, zombie… === | + | |
| - | + | ||
| - | W uniksopodobnych systemach nowy proces może być uruchomiony tylko przez inny | + | |
| - | proces < | + | |
| - | [[https:// | + | |
| - | operacyjnego przy starcie</ | + | |
| - | + | ||
| - | Określenie **procesy potomne** procesu //x// (//child processes// | + | |
| - | uruchomione przez //x//. | + | |
| - | \\ | + | |
| - | **Rodzic** (//parent process//) procesu //x// to proces który uruchomił //x//. | + | |
| - | + | ||
| - | Procesy są identyfikowane przez **pid** (//process identifier// | + | |
| - | \\ | + | |
| - | Dla każdego procesu utrzymywany jest identyfikator rodzica – **ppid** (//parent pid//). | + | |
| - | + | ||
| - | Kiedy kończy się proces potomny, system operacyjny utrzymuje proces do czasu aż | + | |
| - | jego wartość wyjściowa zostanie zebrana (//reap//) przez rodzica. | + | |
| - | \\ | + | |
| - | Proces który się zakończył, | + | |
| - | nazywany jest [[https:// | + | |
| - | + | ||
| - | < | + | |
| - | Rodzic procesu dostaje sygnał SIGCHLD kiedy coś się stanie z procesem potomnym, | + | |
| - | np. kiedy proces potomny się zakończy. | + | |
| - | + | ||
| - | Jeśli proces //a// uruchomi //b//, proces //b// uruchomi //c//, to po zakończeniu | + | |
| - | //b// proces //c// staje się [[https:// | + | |
| - | (//orphan process//) i jego rodzicem zostaje proces init. | + | |
| - | + | ||
| - | < | + | |
| - | "Kill process or sacrifice child" znikło już z kernela? | + | |
| - | https:// | + | |
| - | --> </ | + | |
| - | </ | + | |
| - | + | ||
| - | ==== Wyświetlanie informacji o procesach ==== | + | |
| - | + | ||
| - | === Lista procesów === | + | |
| - | + | ||
| - | Do wyświetlenia listy procesów i wątków w systemie można użyć komendy **'' | + | |
| - | \\ | + | |
| - | Wybór użytecznych opcji dla '' | + | |
| - | * '' | + | |
| - | * '' | + | |
| - | * '' | + | |
| - | * < | + | |
| - | + | ||
| - | < | + | |
| - | Program '' | + | |
| - | UNIX (powyższa), | + | |
| - | \\ | + | |
| - | Powszechnie spotykane '' | + | |
| - | stylu BSD pokazujące wszystkie procesy w systemie w konkretnym formacie. | + | |
| - | </ | + | |
| - | + | ||
| - | ~~Zadanie.# | + | |
| - | + | ||
| - | ~~Zadanie.# | + | |
| - | + | ||
| - | ~~Zadanie.# | + | |
| - | + | ||
| - | ~~Zadanie.# | + | |
| - | + | ||
| - | Lista procesów w formie drzewa może być wyświetlona komendą **'' | + | |
| - | \\ | + | |
| - | W '' | + | |
| - | pokazuje argumenty z jakimi został uruchomiony proces. | + | |
| - | + | ||
| - | ~~Zadanie.# | + | |
| - | + | ||
| - | ~~Zadanie.# | + | |
| - | + | ||
| - | Pseudo system plików '' | + | |
| - | odczytać informacje o procesach przez dostęp do plików. | + | |
| - | Katalog ''/ | + | |
| - | je przeczytać. | + | |
| - | \\ | + | |
| - | W '' | + | |
| - | + | ||
| - | ~~Zadanie.# | + | |
| - | + | ||
| - | < | + | |
| - | ~~Zadanie.# | + | |
| - | + | ||
| - | Określenie zużycia pamięci przez proces jest trudne.\\ | + | |
| - | System wie jakie zakresy pamięci są dostępne dla procesu, więc można określić | + | |
| - | ile bajtów zajmuje pamięć wirtualna procesu (//virtual set size//). | + | |
| - | Ale system operacyjny nie ładuje wszystkiego czego proces zażądał od razu do | + | |
| - | pamięci (część danych jest ładowana dopiero przy próbie dostępu do nich). | + | |
| - | \\ | + | |
| - | System wie za to do czego proces ma w tej chwili dostęp w RAMie | + | |
| - | (//resident set size//). | + | |
| - | Ale to nie wlicza swapa, a i bez tego jeżeli jakiś plik jest współdzielony przez | + | |
| - | wiele procesów (np. biblioteka do rysowania okienek), to suma RSSów nie będzie | + | |
| - | równa zajętości pamięci. | + | |
| - | \\ | + | |
| - | Mając odpowiednie uprawnienia, | + | |
| - | dostęp tylko ten proces (//unique set size//), a rozmiary współdzielonych plików | + | |
| - | można proporcjonalnie doliczyć do tej pamięci dostając w miarę rozsądną metrykę | + | |
| - | zajętości pamięci (// | + | |
| - | \\ | + | |
| - | Ale co z swapem i [[https:// | + | |
| - | + | ||
| - | Zużycie pamięci próbuje sensownie pokazać program '' | + | |
| - | </ | + | |
| - | + | ||
| - | === Monitory procesów === | + | |
| - | + | ||
| - | Komenda **'' | + | |
| - | bieżąco listę procesów i podstawowe informacje o obciążeniu systemu. | + | |
| - | + | ||
| - | ~~Zadanie.# | + | |
| - | Zmień kolumnę po której są sortowane dane. | + | |
| - | + | ||
| - | ~~Zadanie.# | + | |
| - | Sprawdź w '' | + | |
| - | + | ||
| - | Program **'' | + | |
| - | funkcjonalny '' | + | |
| - | \\ | + | |
| - | < | + | |
| - | '' | + | |
| - | procesy, '' | + | |
| - | może działać program (affinity), '' | + | |
| - | ''/'' | + | |
| - | zaznacza procesy, //tab// przełącza między użyciem procesora i pamięci | + | |
| - | a użyciem dysku. | + | |
| - | \\ | + | |
| - | '' | + | |
| - | pasek górny jak i wygląd listy procesów.</ | + | |
| - | + | ||
| - | ~~Zadanie.# | + | |
| - | + | ||
| - | < | + | |
| - | ~~Zadanie.# | + | |
| - | + | ||
| - | Poza programem '' | + | |
| - | stan systemu i procesów. Są to m. in.. '' | + | |
| - | </ | + | |
| - | + | ||
| - | === Wyszukiwanie procesów === | + | |
| - | + | ||
| - | Programy **'' | + | |
| - | procesu na podstawie podanych kryteriów. | + | |
| - | + | ||
| - | Domyślnie '' | + | |
| - | Z '' | + | |
| - | Inne opcje pozwalają wyszukać procesów potomnych podanego procesu czy procesów | + | |
| - | wybranego użytkownika. | + | |
| - | + | ||
| - | < | + | |
| - | (przycięta do 15 znaków) jest identyczna z podaną.</ | + | |
| - | + | ||
| - | ~~Zadanie.# | + | |
| - | + | ||
| - | < | + | |
| - | + | ||
| - | ~~Zadanie.# | + | |
| - | + | ||
| - | ~~Zadanie.# | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | ==== Sygnały ==== | + | |
| - | + | ||
| - | Sygnały są dla procesów odpowiednikiem przerwań. | + | |
| - | \\ | + | |
| - | Posiadając odpowiednie uprawnienia można wysłać sygnał do procesu – tzn. zażądać | + | |
| - | od systemu operacyjnego, | + | |
| - | sygnału do procesu. | + | |
| - | \\ | + | |
| - | System operacyjny dodaje każdy wysłany sygnał do listy oczekujących sygnałów | + | |
| - | i jeśli tylko może, to dostarcza go. | + | |
| - | \\ | + | |
| - | Dla większości sygnałów programista może ustawić czy dany sygnał ma być | + | |
| - | dostarczany do programu i która (napisana przez programistę) funkcja ma być | + | |
| - | wywołana kiedy sygnał zostanie dostarczony. | + | |
| - | \\ | + | |
| - | Dostarczenie sygnału przez system operacyjny polega, podobnie jak przy wywołaniu | + | |
| - | funkcji, na zapisaniu stanu jednego z wątków, przygotowaniu na stosie informacji | + | |
| - | o sygnale i ustawienie licznika rozkazów na funkcję którą programista wskazał | + | |
| - | do obsługi sygnału. | + | |
| - | < | + | |
| - | + | ||
| - | Sygnały rozróżnia się po numerach i odpowiadających im nazwach ('' | + | |
| - | \\ | + | |
| - | Często jako skrót " | + | |
| - | \\ | + | |
| - | Sygnały są zwykle używane do informowania procesu o błędach, zewnętrznych | + | |
| - | zdarzeniach lub do komunikacji między procesami. | + | |
| - | + | ||
| - | Przykłady sygnałów: | + | |
| - | * INT – prośba o przerwanie procesu, generowane np. przez //Ctrl+c//, | + | |
| - | * TERM – prośba o zakończenie procesu, | + | |
| - | * KILL – żądanie zabicia procesu; jeden z dwóch sygnałów których programista nie może obsłużyć po swojemu, | + | |
| - | * STOP – zatrzymanie (zapauzowania) procesu; drugi z sygnałów których programista nie może obsłużyć po swojemu, \\ CONT – kontynuacja zatrzymanego procesu, | + | |
| - | * < | + | |
| - | * < | + | |
| - | * < | + | |
| - | * HUP – wysyłany przy zamykaniu (pseudo)terminala – tzn. przy zamknięciu emulatora terminala lub rozłączeniu sesji SSH; < | + | |
| - | + | ||
| - | === Wysyłanie sygnałów === | + | |
| - | + | ||
| - | Do wysłania sygnału służy komenda '' | + | |
| - | Jeśli nie określono który sygnał wysłać, '' | + | |
| - | \\ | + | |
| - | Sygnał można zapisać jako jego numer, np. '' | + | |
| - | \\ | + | |
| - | < | + | |
| - | \\ | + | |
| - | Komenda '' | + | |
| - | \\ | + | |
| - | < | + | |
| - | + | ||
| - | ~~Zadanie.# | + | |
| - | + | ||
| - | Komenda '' | + | |
| - | identyfikatory, | + | |
| - | pasujących procesów. | + | |
| - | + | ||
| - | < | + | |
| - | Komenda '' | + | |
| - | których nazwa (przycięta do 15 znaków) jest identyczna z podaną. \\ | + | |
| - | Opcjami można m. inn. dopasować się do wyrażeń regularnych i pełnej nazwy. | + | |
| - | </ | + | |
| - | + | ||
| - | ~~Zadanie.# | + | |
| - | + | ||
| - | ~~Zadanie.# | + | |
| - | + | ||
| - | < | + | |
| - | ~~Zadanie.# | + | |
| - | </ | + | |
| - | + | ||
| - | ==== Proces a planiści ==== | + | |
| - | + | ||
| - | Przydziałem dostępu do zasobów komputera dla programu zajmuje się system | + | |
| - | operacyjny. Użytkownik (administrator) może wpływać na to jakie decyzje | + | |
| - | podejmują planiści | + | |
| - | ([[https:// | + | |
| - | [[https:// | + | |
| - | + | ||
| - | === Procesor === | + | |
| - | + | ||
| - | Procesy w uniksopodobnych systemach mają // | + | |
| - | które decyduje o priorytecie przydzielania CPU. | + | |
| - | \\ | + | |
| - | Niceness jest ustawialne w zakresie od -20 (najwyższy priorytet) do 19 (najniższy) i dziedziczone od rodzica. | + | |
| - | \\ | + | |
| - | Init startuje procesy z niceness 0. | + | |
| - | \\ | + | |
| - | Podnieść niceness może każdy, obniżyć – tylko root. | + | |
| - | + | ||
| - | Wykonując komendę '' | + | |
| - | + | ||
| - | Można też zmienić niceness działającego procesu komendą '' | + | |
| - | + | ||
| - | < | + | |
| - | + | ||
| - | Część dystrybucji Linuksa włącza '' | + | |
| - | procesy w osobnych grupach (więcej w '' | + | |
| - | tylko między procesami wewnątrz grupy. '' | + | |
| - | sprawdza czy ta funkcjonalność jest włączona. | + | |
| - | + | ||
| - | Można też wybrać na których fizycznych wątkach procesora będzie się wykonywać | + | |
| - | proces programem **'' | + | |
| - | + | ||
| - | Komenda '' | + | |
| - | '' | + | |
| - | rdzeniach 0 i 1. \\ | + | |
| - | Komenda '' | + | |
| - | pid, a '' | + | |
| - | + | ||
| - | '' | + | |
| - | dla procesu (skrót //a// od affinity). | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | ~~Zadanie.# | + | |
| - | + | ||
| - | ~~Zadanie.# | + | |
| - | + | ||
| - | ~~Zadanie.# | + | |
| - | Następnie w obu wykonaj '' | + | |
| - | (< | + | |
| - | W trzeciej konsoli uruchom '' | + | |
| - | Zmieniaj stopniowo niceness jednego z tych procesów. Jak zmienia się użycie CPU przez te procesy? | + | |
| - | + | ||
| - | < | + | |
| - | + | ||
| - | === I/O === | + | |
| - | + | ||
| - | Priorytet dostępu do I/O (dysków) można ustawiać / zmieniać komendą **'' | + | |
| - | \\ | + | |
| - | Są dostępne " | + | |
| - | klasy). Klasy 1 i 2 dzielą się na 8 priorytetów (od najwyższego 0 do | + | |
| - | najniższego 7). | + | |
| - | \\ | + | |
| - | Argumenty '' | + | |
| - | \\ | + | |
| - | Podobnie jak '' | + | |
| - | przełącznikiem '' | + | |
| - | + | ||
| - | '' | + | |
| - | + | ||
| - | === NUMA === | + | |
| - | + | ||
| - | Sprzęt w których zasoby (głównie pamięć) mają różny koszt dostępu z różnych | + | |
| - | procesorów ([[https:// | + | |
| - | jest przez system dzielony na węzły wewnątrz których dostęp ma równy koszt, ale | + | |
| - | między którymi koszt dostępu jest większy. | + | |
| - | \\ | + | |
| - | Przykład – na płycie głównej z dwoma gniazdami na procesory pamięć DRAM podłączona | + | |
| - | do procesora na którym działa proces ma niższy koszt dostępu niż pamięć RAM | + | |
| - | podłączona do procesora w drugim gnieździe. | + | |
| - | + | ||
| - | Polecenie **'' | + | |
| - | w takich systemach. | + | |
| - | \\ | + | |
| - | '' | + | |
| - | '' | + | |
| - | na procesorach z węzła //x// i pamięci z węzła //y//. | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| | | ||
| ~~META: | ~~META: | ||
| language = pl | language = pl | ||
| ~~ | ~~ | ||
| - | |||
so/users_chmod.1678798146.txt.gz · ostatnio zmienione: (edycja zewnętrzna)