1.37k likes | 1.57k Views
1. Trochę historii. Lata 50 – początki systemów operacyjnych, programy batch, minimalizacja przestojów między kolejnymi programami Lata 60 – pierwsze systemy operacyjne interaktywne. Kilku użytkowników korzystało z tego samego komputera równocześnie. Podział czasu
E N D
1 Trochę historii • Lata 50 – początki systemów operacyjnych, programy batch, minimalizacja przestojów między kolejnymi programami • Lata 60 – pierwsze systemy operacyjne interaktywne. Kilku użytkowników korzystało z tego samego komputera równocześnie. Podział czasu • Wiele różnych zespołów, wiele projektów, jednym z nich był Multics
2 Trochę historii • Bell Labs opuścił zespół pracujący nad systemem Multics i stworzył własny system operacyjny, Unix. Początkowo rozprowadzany za darmo, zdobył dużą popularność w uniwersytetach • Lata 90 – pozycja Unixa stała się mocna, ale został produktem komercyjnym i drogim. • Tani, podobny do Unixa system Minix był ubogi, napisany w celach dydaktycznych. 386BSD, prekursor systemów NetBSD, FreeBSD, OpenBSD był niedojrzały i potrzebował mocnego sprzętu
3 Trochę historii • Październik 1991 Linus Torvalds używał Unixa na uniwersytecie w Helsinkach, chciał mieć podobny system w domu. Próbował systemu Minix, ale chciał coś lepszego. Rozpoczął pisanie własnego systemu operacyjnego • Po opublikowaniu pierwszej działającej wersji system przyciągnął uwagę innych programistów. Zaczął się dynamicznie rozwijać
4 Trochę historii • Linux to tylko jądro systemu (zarządzanie pamięcią, drivery urządzeń, zarządzanie wielozadaniowością itp). Pozostałe oprogramowanie systemowe, w tym najaważniejszy – kompilator C pochodziły z Free Software Foundation's GNU project. • Free Software Foundation's GNU project rozpoczął sie w 1984 roku, ma za cel stworzenie kompletnego farmowego wzorowanego na Unixie systemu operacyjnego. Linux czasami jest nazywany GNU/Linux.
5 Trochę historii • Lata 92 i 93 – Linux wzbogacił się o protokół TCP/IP i środowisko graficzne (X Window), mogł zastąpić w stacjach roboczych Unixa. Wiele małych firm zajęło się rozwojem i dystrybucją Linuxa, pojawiły się grupy użytkowników • Początek 1994 – rozpoczęto wydawanie Linux Magazine • Marzec 1994 – jądro 1.0 • 1997 rok – Netscape udostępniło swoje oprogramowanie bezpłatnie. Powstał model oprogramowania typu “open source”
6 Co to takiego • Linux to wzorowany na systemie Unix wielozadaniowy i wielodostępny system operacyjny dla 32 i 64 bitowych procesorów, działający na wielu platformach. Programy pisane dla UNIX działają na Linux po rekompilacji • Linux, podobnie jak Unix był od początku projektowany jako wielozadaniowy. Wielozadaniowość musi być brana pod uwagę w całym systemie operacyjnym, systemy do których dodano ja później, robią to gorzej (przykład: win95 – win NT)
7 Co to takiego • Dobra ochrona pamięci, program użytkowy nie może zniszczyć innego • Linux był pisany na Intel 386, teraz działa na Sun SPARC i UltraSPARC, Motorola 68000, PowerPC, PowerPC64, ARM, Hitachi SuperH, IBM S/390, MIPS, HP PA-RISC, Intel IA-64, DEC VAX, AMD x86-64 and CRIS – procesory 32 i 64 bitowe
8 Co to takiego • Skalowalność – działa w komputerach wbudowanych, telefonach komórkowych, mainframe, .... • Dzięki technologii cluster np. Beowulf działa na superkomputerach
9 Co to takiego • Pierwsze aplikacje to oprogramowanie naukowe, bazy danych, sieci komputerowe. Interfejs z linii komend. • Pierwsze poważne zastosowania – jako serwery plików, poczty, baz danych • Środowisko graficzne - KDE, Gnome pozwoliło na powstanie aplikacji dla zwykłych użytkowników, na przykład Open Office.
10 Dystrybucje • Linux i jego oprogramowanie rozwijane jest przez wiele zespołów • Możliwe jest samodzielne zebranie oprogramowania i jego zainstalowanie • Wygodniej jest skorzystać z gotowego zestawu, dystrybucji
11 Dystrybucje • Dystrybucja to jądro systemu, program instalacyjny i zestaw programów użytkowych • Istnieją setki dystrybucji, ogólnego przeznaczenia i wyspecjalizowane. Różnią się programem instalacyjnym, konfiguracją jądra, zestawem programów użytkowych i ich wersją • Najważniejsze dystrybucje ogólnego przeznaczenia - Red Hat, SuSE, Debian ....
UNICS 1969 Piąta edycja 1973 Szósta edycja 1976 Siódma edycja 1978 SYSV (5) 1983 BSD 1979 Solaris/SUNOS 5.x (SUN) AIX (IBM) IRIX (SGI) HP-UX (HP) Digital Unix (DEC) SCO UNIX (SCO) SUNOS 4.x (SUN) NextStep (NeXT) FreeBSD (Open Source) OpenBSD (Open Source) NetBSD (Open Source) Linux (Open Source) 1991
Użytkownicy Shell, GUI Programy systemowe Aplikacje Biblioteki systemowe Jądro (kernel) Sprzęt (procesor, pamięć, dyski itp.)
14 Budowa systemu - jądro • Jądro systemu – tworzy wirtualny komputer dla procesów użytkowych • Interfejs do sprzętu (kart sieciowych, pamięci RAM, dysków itp) • Ładowalne moduły do obsługi urządzeń, sieci, systemu plików itp. • Pracuje w trybie uprzywilejowanym • Cały kod i struktury danych w jednej przestrzeni adresowej • Interfejs do bibliotek systemowych (system libraries)
15 Budowa systemu - jądro • Pięć głównych podsystemów: • PSHED(process sheduler) odpowiada za dostęp do CPU • MM (memory manager) odpowiada za bezpieczne użycie pamięci przez wiele procesów, obsługuje pamięć wirtualną • NET (network interface) zapewnia dostęp do urządzeń sieciowych w różnych standardach
16 Budowa systemu - jądro • Pięć głównych podsystemów: • VFS (virtual filesystem) ukrywa dla procesów szczegóły fizycznego dostępu do urządzeń pamięci zewnętrznej. Obsługuje wiele formatów, kompatybilnych z innymi systemami operacyjnymi (vfat, cdfs, ntfs itp.) • IPC (inter process communication) dostarcza mechanizmów do komunikacji między różnymi procesami na tej samej maszynie
17 Budowa systemu – biblioteki systemowe • Procesy użytkowe chcąc skorzystać z jadra wywołują funkcje bibliotek systemowych. • Biblioteki systemowe nie działają w trybie uprzywilejowanym, wykonują te funkcje systemu, które tego trybu nie wymagają, na przykład buforowanie wejścia/wyjścia • Pełnią też zadania, które nie mają odpowiedników w funkcjach jądra, np. sortowanie, operacje matematyczne • Zapewniają zgodność ze standardami – POSIX, UNIX itp.
18 Budowa systemu – programy użytkowe • Interpretatory poleceń – sh, csh, tcsh, bash • Programy obsługujące zewnętrzne polecenia systemowe – ls, ps, netstat, grep .... • Programy działające w tle – daemony • Kompilatory i biblioteki • Aplikacje użytkowników
19 System plików FHS 2.3.1
20 System plików - / (Root) • Musi zawierać wszystko, co potrzebne do uruchomienia systemu, jego odtworzenia lub naprawienia • Nie powinien być duży • Musi umożliwić zamontowanie pozostałych systemów plików
21 System plików - /bin • Zawiera podstawowe polecenia używane przez administratora i wszystkich użytkowników • Musi zawierać polecenia niezbędne do zamontowania filesytemów
22 System plików - /boot • Zawiera wszystko, co niezbędne do uruchomienia systemu, dane potrzebne zanim jądro systemu rozpocznie działanie • Jadro systemu może być w kartotece /boot lub w kartotece /
23 System plików - /dev • Zawiera pliki specjalne lub pliki urządzeń • Jeśli w kartotece /dev możliwe jest tworzenie nowych plików urządzeń, musi zawierać polecenie MAKEDEV do ich tworzenia
24 System plików - /etc • Zawiera pliki konfiguracyjne • Nie może zawierać programów binarnych • Zawiera podkartoteki na konfiguracje aplikacji
25 System plików - /home • Zawiera pliki użytkowników • Nie musi występować w systemie
26 System plików - /lib • Zawiera podstawowe biblioteki systemu • Musi występować w systemie • Musi zawierać zbiory: • libc.so.* podstawowa biblioteka C • ln (linker/loader)
27 System plików - /media • Zawiera punkty montowania dla mediów wymiennych, CDROM, dyskietki, taśmy itp.
28 System plików - /mnt • Zawiera punkty montowania dla filesystemów montowanych tymczasowo
29 System plików - /sbin • Programy używane przez administratora systemu • Inne lokalizacje tych programów - /usr/sbin, /usr/local/sbin
30 System plików - /tmp • Kartoteka na zbiory tymczasowe • Dostępna do zapisu dla wszystkich użytkowników • Podczas przeładowania systemu jej zawartość może i powinna być usunięta • Alternatywnym miejscem dla zbiorów tymczasowych jest /var/tmp – zawartość tej kartoteki nie jest kasowana przy przeładowaniu systemu
31 System plików - /usr • Kartoteka na pozostałe zbiory systemu • Nie powinna być używana do zapisu przez użytkowników i aplikacje • Podkartoteki bin, sbin, share, lib, include, local • Może zawierać inne podkartoteki, np, X11R6, src
32 System plików - /var • Kartoteka na zmieniające się pliki, np. logi systemowe, kolejki drukarek, kolejki poczty • Zawiera podkartoteki cache, lib, local, lock, log, opt, run, spool, tmp • Może zawierać opcjonalnie np. mail, games
33 System plików - /proc • Opcjonalny, lecz często występujący w systemach Unix • Zawiera informacje o stanie systemu – procesach, urządzeniach, pamięci, przerwaniach itp. • Wirtualny, tworzony podczas pracy systemu. • Poprzez modyfikację zbiorów w tym systemie plików można zmienić działanie systemu, np. włączyć routing
34 System plików - rodzaje plików • Kartoteki • Zwykłe pliki • Link symboliczny, zwykły • Pipe • Pliki urządzeń – znakowych i blokowych
35 System plików - prawa do plików • Prawo do zapisu, odczytu, wykonania • Grupy praw dla właściciela, grupy i pozostałych użytkowników • Zapisywane często ósemkowo, kolejne bity oznaczają kolejno czytanie, zapis, wykonanie. Kolejne cyfry ósemkowe odnoszą się do właściciela, grupy i pozostałych. Na przykład754 oznacza:7 – czytanie, zapis i wykonanie dla właściciela5 – czytanie i wykonanie dla grupy4 – czytanie dla pozostałych użytkowników
36 System plików - prawa do plików • Sticky bit • Dla plików dawniej nakazywał przechowywanie w swap, obecnie w Linuxie ignorowany • Dla kartotek – kasować i zmieniać nazwę zbiorów w nich może tylko root lub właściciel. Używane np. w kartotece /tmp
37 System plików - prawa do plików • set-UID set-GID • uruchomienie pliku przez zwykłego użytkownika spowoduje nadanie procesowi praw jego właściciela (grupy) • Niezbędne dla niektórych programów, np. passwd – modyfikuje shadow • Niebezpieczne, jeśli użytkownik podstawi własny program (np. shell) z set-UID
38 System plików - prawa do plików Kolejne bity: 4 set-UID 2 set-GID 1 sticky bit 4 odczyt – właściciel 2 zapis – właściciel 1 wykonywanie – właściciel 4 odczyt – grupa 2 zapis – grupa 1 wykonywanie – grupa 4 odczyt – wszyscy 2 zapis – wszyscy 1 wykonywanie - wszyscy
39 System plików - prawa do plików Inny zapis: chmod [ugoa...][[+-=][rwx] u – user – właściciel g- group – grupa o, a other, all – pozostali r, w, x – odczyt, zapis, wykonywanie (dostęp do kartoteki) + dodaj - usuń = usuń wszystkie i pozostaw tylko te podane
40 System plików – montowanie i odmontowanie • W dowolnym miejscu hierarchii systemu plików dołączyć możemy kolejny system plików • miejsce, gdzie nowy system plików dołączymy nazywa się punktem montowania. • Punkt montowania musi być kartoteką, po zamontowaniu jej ewentualna zawartość zostanie przesłonięta nową zawartością. • Zamontować można dyskietkę, partycję dysku, cdrom, dysk udostępniany przez sieć itp
41 System plików – montowanie i odmontowanie • Do zamontowana systemu plików służy komenda mount, do odmontowania - umount • Typowe użycie:mount -t typ urzadzenie punkt_montowaniaumount urzadzenieumount punkt montowania • urzadzenie to plik specjalny w /dev • punkt to kartoteka, w której chcemy zamontować system plików
42 System plików – montowanie i odmontowanie • typ określa fizyczny format zapisu na montowanym nośniku, może to być fat, vfat, cdfs, ntfs, ufs, ext2, ext3, nfs .... • Odmontować system plików można podając urządzenie lub punkt jego zamontowania. Nie można odmontować systemu plików, jeśli jest używany
43 System plików – montowanie i odmontowanie Podczas startu systemu automatycznie montowane są systemy wskazane w zbiorze /etc/fstab: LABEL=/1 / ext3 defaults 1 1 none /dev/pts devpts gid=5,mode=620 0 0 none /proc proc defaults 0 0 none /dev/shm tmpfs defaults 0 0 LABEL=/usr1 /usr ext3 defaults 1 2 LABEL=/var1 /var ext3 defaults 1 2 /dev/hda2 swap swap defaults 0 0 /dev/hda7 /home ext3 defaults 1 2
44 System plików – tworzenie filesystemu fdisk – program do podziału dysku na partycje fdisk urządzenie (np. /dev/hda) p – wyświetla istniejącą tablicę partycji n – tworzy nową partycję d - kasuje partycję l – wyświetla listę znanych typów partycji m – wyświetla help t – zmienia typ partycji w- zapisuje tablicę partycji na dysku q – wyjście bez zapisania zmian
45 System plików – tworzenie filesystemu mke2fs – program do tworzenia w partycji filesystemu ext2/ext3 mkfs – program do tworzenia w partycji filesystemu. Jeśli nie podamy typu, utworzy ext2. Potrafi utworzyć filesystemy msdos, vfat, reiserfs, jfs... Wszystkie, dla których zainstalowano programy mkfs.typ Użycie: mke2fs urzadzenie (np. /dev/hda0) mkfs -t typ urzadzenie
46 System plików – tworzenie filesystemu fdformat – program do formatowania dyskietki w formacie dos fdformat [-n] urzadzenie urzadzenie to /dev/fd0 (/dev/fd1) lub /dev/fd0d360 (minor = 4) /dev/fd0h1200 (minor = 8) . . . /dev/fd0H1440 (minor = 28) n – bez weryfikacji w niektórych systemach urządzenia inne niż fd0 trzeba utworzyć przez MAKEDEV
47 System plików – użyteczne polecenia ls – wyświetla zawartość kartoteki cp – kopiuje pliki i kartoteki mv – przenosi plik w inne miejsce lub zmienia nazwę pliku more – wyświetla zawartość pliku znakowego od – wyświetla zawartość pliku ósemkowo, dziesiętnie, szesnastkowo lub znakowo df – wyświetla zajętość systemu plików du – wyświetla wielkość podkartotek mount – (bez parametrów) wyświetla zamontowane systemy plików
48 System plików – użyteczne polecenia touch – tworzy nowy, pusty zbiór cat - wyświetla zawartość pliku lub plików, umożliwia łączenie plików grep – wyszukuje wzorcowy łańcuch w plikach tail – wyświetla koniec pliku rm – usuwa plik lub kartotekę rmdir – usuwa kartotekę mkdir – tworzy kartotekę ln – tworzy symboliczny link mkfifo – tworzy pipe chmod – zmienia prawa pliku chown – zmienia właściciela pliku
49 ln plik nazwa_linku – tworzy twardy link do wskazanego pliku ln -s plik nazwa_linku – tworzy miękki link do wskazanego pliku Twardy link tworzy nowy wpis w kartotece wskazujący na zbiór, musi wskazywać na istniejący plik w tym samym filesystemie, usunięcie oryginału nie spowoduje usunięcia linku
50 ? * - zastępują jeden i wiele znaków w nazwie [abxeo3-8] zastępuje pojedynczy znak jednym z wymienionych w nawiasach(znak '-' podaje przedział znaków) {ala,ola}.txt – iloczyn kartezjański łańcuchów w nawiasach . .. - bieżąca kartoteka, nadrzędna kartoteka