System operacyjny Unix/Linux Kolokwium Numer indeksu: 3714 Total points: 135 Sławomir Nowaczyk 29 May 2010 Here is the result of your exam. Questions for which you have provided a correct answer have been marked with, the ones for which your answer was incorrect are marked with. 3. Proces jest pojęciem oznaczającym ciąg instrukcji procesora zapisanych na dysku twardym jest pojęciem oznaczającym program w czasie wykonywania musi w każdej chwili w całości znajdować się w pamięci operacyjnej komputera musi w każdej chwili w całości znajdować się na dysku twardym 4. Po włączeniu zasilania jako pierwszy uruchamiany jest system operacyjny uruchamiany jest program rozruchowy zapisany w pamięci ROM wykonywane są specjalizowane procedury inicjalizacji sprzętu program rozruchowy uruchamia system operacyjny z ustalonej lokalizacji 5. W systemach GNU/Linux proces o nazwie init 1. System Operacyjny jest to: oprogramowanie zarządzające sprzętem komputerowym i tworzące środowisko pracy dla aplikacji użytkownika programy dostarczone przez producenta przy zakupie systemu komputerowego program, który inicjalizuje system komputerowy bezpośrednio po włączeniu zasilania oprogramowanie, którego głównym zadaniem jest zarządzanie zasobami systemu komputerowego 2. Do głównych zadań systemu operacyjnego należy nadzorowanie pracy aplikacji użytkownika minimalizowanie skutków awarii sprzętu i oprogramowania zapobieganie awariom sprzętu zapewnienie sprawiedliwego dostępu do zasobów systemu wszystkim użytkownikom ma pid równy 1 jest pierwszym procesem utworzonym po starcie systemu nie posiada pid jest przodkiem wszystkich innych procesów w systemie 6. W historii rozwoju systemów operacyjnych wyróżniamy kilka etapów pierwszym z nich były systemy wielozadaniowe w systemach typu mainframe praca odbywała się w trybie wsadowym systemy wieloprogramowe nie pozwalały na równoczesne umieszczenie w pamięci operacyjnej więcej niż jednego zadania systemy ze współdzieleniem czasu pozwalają na efektywniejsze wykorzystanie mocy obliczeniowej procesora 7. System operacyjny GNU/Linux bazuje na pomysłach stworzonych w ramach projektu MULTICS powstał jako darmowa alternatywa dla systemów UNIX powstał jako darmowa alternatywa dla systemów MS-Windows składa się z jądra o nazwie Linux oraz środowiska programów systemowych stworzonych w ramach projektu GNU 1
8. Każdy system operacyjny musi umożliwiać synchronizację między procesami zabezpieczenie przed zakleszczeniem tworzenie i zabijanie procesów zatrzymywanie i wznawianie procesów 9. W systemach operacyjnych ze współdzieleniem czasu które obsługują wywłaszczanie proces użytkownika wykonujący pętlę nieskończoną może zmonopolizować użycie procesora proces który wykonuje pętlę nieskończoną zostaje automatycznie zabity procesy są periodycznie przerywane przełączenie między procesami następuje między innymi kiedy aktywny proces oczekuje na operację wejścia/wyjścia 10. Przy wykonywaniu operacji wejścia/wyjścia (np. odczyt znaku z klawiatury) po pierwsze, proces użytkownika zgłasza żądanie dostępu do urządzenia I/O po drugie, następuje przejście w tryb uprzywilejowany po trzecie, proces zostaje przełączony w stan oczekiwania po czwarte, kontroler I/O budzi proces kiedy znak jest gotowy do odczytu 11. Pamięć w systemie komputerowym zorganizowana jest w system hierarchiczny, gdzie najszybszym rodzajem pamięci jest RAM najbardziej pojemnym rodzajem pamięci jest pamięć podręczna procesora czas dostępu do danych na dysku optycznym jest mniejszy niż na dysku magnetycznym najmniej pojemnym rodzajem pamięci są rejestry procesora 12. Pamięć wirtualna jest mechanizmem zmniejszającym stopień skomplikowania systemu operacyjnego jest mechanizmem zwiększającym szybkość pracy systemu umożliwia aplikacjom użytkownika alokację większej ilości pamięci RAM wykorzystuje fakt że nie cała zaalokowana pamięć jest aplikacji potrzebna w każdej chwili 13. Do podstawowych poleceń systemu GNU/Linux należą ls del mkdir cp 14. Polecenie cd służy do zmiany katalogu bieżącego cp służy do kopiowania plików cp służy do kopiowania katalogów mv służy do usuwania plików 15. Standardowo w systemie GNU/Linux w katalogu /etc/ znajdują się pliki konfiguracyjne systemu /usr/ znajdują się pliki konfiguracyjne systemu /proc/ znajdują się programy zainstalowane w systemie /home/ znajdują się katalogi domowe użytkowników 16. Powłoka systemowa preferowana przez danego użytkownika jest zapisana w pliku /etc/passwd zawsze działa w trybie tekstowej linii poleceń służy między innymi do uruchamiania aplikacji zostaje uruchomiona automatycznie od razu po zalogowaniu użytkownika 17. Powłoką systemową jest make bash gcc cvs 18. Standard POSIX specyfikuje wymagania odnośnie interfejsu programistycznego oferowanego przez jądro systemu operacyjnego (API) urządzeń peryferyjnych dostępnych w systemie mechanizmów obsługi pamięci współdzielonej hierarchii systemu plików 2
19. Linux Standard Base specyfikuje wymagania odnośnie lokalizacji plików konfiguracyjnych listy dostępnych bibliotek standardowych dostępnych poleceń systemowych bezpiecznych haseł stosowanych przez użytkowników 20. Do znanych dystrybucji systemu GNU/Linux należą FreeBSD Debian MacOS Gentoo 21. W katalogu bieżącym znajdują się pliki httpd.conf, dhcpd.conf, passwd oraz rc.local. Polecenie ls * wyświetli cztery pliki ls??*.* wyświetli trzy pliki ls *.conf wyświetli dwa pliki ls *c?.* wyświetli tylko plik dhcpd.conf 22. Proces, który został wstrzymany przy użyciu kombinacji klawiszy control-z nie wykonuje żadnych instrukcji do momentu obudzenia go poleceniem (na przykład) bg przy użyciu kombinacji klawiszy control-z nie może zostać obudzony poleceniem fg poprzez wysłanie do niego sygnału SIGSTOP nie może zostać obudzony poleceniem fg poprzez wysłanie do niego sygnału SIGSTOP nie może zostać zabity poleceniem kill 23. Jeśli aktualnie zalogowanym użytkownikiem jest slawek to polecenie echo Hi, "USER" wypisze Hi, USER echo Hi, "$USER" wypisze Hi, slawek echo Hi, $USER wypisze Hi, USER echo Hi, $USER wypisze Hi, slawek 24. Wynik TAK wypiszą następujące polecenia if [ 1=2 ]; then echo TAK; fi if [ 2 -gt 1 ] then echo TAK fi if [ echo 1 = 1 ] then echo TAK fi if [ "10" ">" "2" ] then echo TAK fi 25. Do narzędzi przydatnych programiście w procesie tworzenia oprogramowania należą gdb aptitude shorewall cvs 26. Dla bibliotek łączonych dynamicznie 27. glibc kod odpowiednich funkcji zostaje dołączony do programu w czasie jego kompilacji jeśli wiele programów korzysta z tej samej biblioteki to jej kod jest duplikowany w pamięci uaktualnienie biblioteki oznacza automatyczne uaktualnienie korzystających z niej programów proces uruchamiania programów jest łatwiejszy niż dla bibliotek łączonych statycznie jest standardową biblioteką języka C jest domyślnie dołączana do wszystkich programów napisanych w języku C jest niezależna od kompilatora zawiera implementacje, między innymi, funkcji printf i scanf 28. W bloku kontrolnym procesu przechowywany jest aktualny stan procesu aktualny stan procesu-rodzica zawartość rejestrów procesora informacje o rodzicu i dzieciach procesu 3
29. Identyfikator procesu (PID) 34. Struktura files_struct jest dowolną liczbą naturalną jednoznacznie identyfikuje proces wśród wszystkich procesów istniejących w danej chwili każdy wątek posiada własny pid wszystkie wątki w ramach jednego procesu współdzielą pid 30. Wywołanie systemowe fork zabija aktualnie wykonywany proces tworzy nowy proces, który dziedziczy dane i kod wykonywalny rodzica zwraca wartość, która pozwala rozróżnić nowy proces-dziecko od procesu-rodzica pobiera nazwę programu jako argument 31. Wywołanie systemowe exec tworzy nowy proces zastępuje kod aktualnego procesu kodem powłoki systemowej zastępuje kod aktualnego procesu kodem programu podanego jako parametr uruchomione w postaci: execlp("ls", "ls", "-l",(char *)NULL); uruchomi program ls z parametrem -l 32. Wątki w systemie GNU/Linux są tworzone przy użyciu wywołania systemowego clone nie wymagają kopiowania całej struktury task_struct umożliwiają współdzielenie zawartości rejestrów procesora nie umożliwiają współdzielenia pamięci RAM 33. Wywołanie systemowe vfork tworzy proces który współdzieli pamięć rodzica wymaga skopiowania całej struktury task_struct bezpośrednio po wywołaniu, proces-rodzic działa równolegle z procesem-dzieckiem proces-rodzic może nadpisać dane potrzebne procesowi-dziecku 35. Sygnał 36. Potoki jest przechowywana w bloku kontrolnym procesu zawiera informacje o pamięci wirtualnej procesu zawiera informacje o plikach otwartych przez dany proces nie może być współdzielona pomiędzy procesami SIGCHLD informuje proces że jego rodzic zakończył działanie SIGKILL kończy działanie procesu, dając mu wcześniej możliwość zwolnienia zasobów SIGSTOP kończy działanie procesu, dając mu wcześniej możliwość zwolnienia zasobów SIGCONT wznawia działanie procesu wstrzymanego wcześniej poprzez Control-Z służą do zarządzania deskryptorami plików mogą służyć do komunikacji między procesami procesy komunikujące się przy użyciu potoków muszą mieć wspólnego przodka procesy komunikujące się przy użyciu potoków muszą mieć wspólnego rodzica 37. Do mechanizmów umożliwiających komunikację między procesami należą semafory kolejki wiadomości pamięć współdzielona pamięć wirtualna 4
38. Superblok w systemie plików ext2 zawiera następujące informacje informację o wersji systemu plików listę plików znajdujących się w katalogu głównym liczbę dotychczasowych montowań tego systemu plików adres ostatniego inode a 39. inode opisujący plik w systemie ext2 zawiera następujące informacje informację czy jest to plik, katalog czy dowiązanie symboliczne nazwę pliku rozmiar pliku prawa dostępu do pliku 40. Program GRUB jest jądrem systemu GNU/Linux pozwala użytkownikowi wybrać jądro systemu które powinno zostać uruchomione umożliwia uruchomienie systemów operacyjnych innych niż GNU/Linux pobiera konfigurację z pliku /boot/grub/grub.conf 41. System X-Window jest protokołem oferującym zarządzanie oknami aplikacji graficznych jest protokołem oferującym obsługę klawiatury oraz myszy nie obsługuje komunikacji przez sieć zawiera standardowe elementy graficzne takie jak przyciski, menu, itp. 42. Plik /etc/shadow w odróżnieniu od /etc/passwd, może być czytany tylko przez użytkownika root zawiera informacje o powłoce systemowej preferowanej przez danego użytkownika zwiększa bezpieczeństwo systemu, w porównaniu do przechowywania haseł w pliku \etc\passwd zmniejsza bezpieczeństwo systemu, w porównaniu do przechowywania haseł w pliku \etc\passwd 43. Do utworzenia nowego konta użytkownika w systemie GNU/Linux można użyć polecenia newuser polecenia useradd polecenia adduser narzędzia graficznego 44. Mechanizm grup w systemie GNU/Linux pozwala jednemu użytkownikowi należeć do wielu grup zapewnia że jeśli bit SGID katalogu nie jest ustawiony, to nowo utworzone pliki będą należały do podstawowej grupy użytkownika pozwala każdemu użytkownikowi dodawać i usuwać grupy pozwala każdemu użytkownikowi zmieniać grupy do których należy 45. Polecenie chroot zmienia katalog bieżący dla wszystkich procesów w systemie zmienia katalog główny tylko dla aktualnego procesu zmienia katalog główny dla aktualnego procesu i jego potomków może być użyte do zwiększenia bezpieczeństwa systemu 5
46. W pliku dhcpd.conf deklaracja subnet oznacza informacje dotyczące pojedynczego klienta host oznacza informacje dotyczące pojedynczego klienta fixed-address pozwala przydzielać określonemu klientowi zawsze ten sam adres IP range definiuje zakres adresów IP które będą oferowane klientom 47. Przy konfiguracji serwera apache dyrektywa Directory nie może występować w głównym pliku konfiguracyjnym httpd.conf nie może występować w pliku.htaccess nie może zawierać polecenia Options nie może zawierać polecenia DocumentRoot /www 49. Pliki.htaccess umożliwiają zwykłym użytkownikom modyfikowanie ustawień serwera apache są kontrolowane przez dyrektywę Options mogą zawierać wszystkie te ustawienia których można używać w pliku httpd.conf są stosowane tylko do katalogu w którym się znajdują i jego podkatalogów 50. Program shorewall stanowi implementację funkcjonalności ściany ogniowej ułatwia konfigurację modułu iptables wykorzystuje mechanizm stref wykorzystuje identyczny format pliku konfiguracyjnego jak serwer Apache 48. Przy konfiguracji serwera apache polecenia Allow from apache.org oraz Deny from foo.apache.org oznaczają że przy ustawieniu Order Allow,Deny połączenia z klienta bob.foo.apache.org będą dozwolone Order Allow,Deny połączenia z klienta bob.apache.org będą dozwolone Order Deny,Allow połączenia z klienta bob.foo.apache.org będą zabronione Order Deny,Allow połączenia z klienta bob.apache.org będą dozwolone 6