System operacyjny Linux - notatka z dnia 21.03.2015r.

 

1. System operacyjny Linux i jego dystrybucja.

Linux – rodzina uniksopodobnych systemów operacyjnych opartych na jądrze Linux. Linux jest jednym z przykładów wolnego i otwartego oprogramowania (FLOSS): jego kod źródłowy może być dowolnie wykorzystywany, modyfikowany i rozpowszechniany.

 

2. Jakie wady i zalety posiada system Linux.

Zalety:
- Stabilność
- Bezpieczeństwo - posiadają minimalną ilość błędów, a odkryte błędy natychmiast są poprawiane- Małe wymagania sprzętowe
- Wielodostępność - na jednym komputerze może pracować kilkaset użytkowników nie wpływając na siebie wzajemnie
- Wysoka konfigurowalność - właściwie każdy aspekt systemu można dostosować
- Wydajność - we wszelkich porównaniach jest na wysokich miejscach
- Doskonała sieciowość.
Wady:
- Niedobór driverów - ciężko o sterowniki do widowsowego sprzętu,
- Skomplikowany - przedtem było to zaletą, a teraz wadą - jest zbyt trudny dla leni
- Nie jest przystosowany dla użytkowników korzystających z gier
- Jego instalacja zajmuje dużo czasu
- Trudności w konfiguracji - przy braku znajomości języka angielskiego, który jest niezbędny , gdyż cała dokumentacja jest w tym języku

 

3. Jak zarządza się dyskami i partycjami w systemie Linux?

Zarządzanie dyskami w linuxie. Partycjonowanie.

Programy do zarządzania partycjami, zapoznanie z programami do zarządzania partycjami:

fdisk

cfdisk

parted

sfdisk

Gparted

QtParted

wyświetlenie informacji o partycjach

# fdisk -l

 

założenie nowej partycji przy pomocy programu fdisk

# fdisk /dev/sda

Command (m for help): / wybieramy opcję n /

Command action

e extended

/ partycja rozszerzona /

p primary partition (1-4)

/ partycja podstawowa /

/ program zapyta nas o numer partycji, pierwszy i rozmiar partycji /

/ rozmiar możemy podać w cylindrach, KiB, MiB lub GiB /

/ wyjście z programu po wybraniu q – bez zapisania zmian /

/ wyjście z programu po wybraniu w – z zachowaniem zmian /

 

korzystanie z tablicy partycji zapisanej do pliku.

 

wykonaj zrzut tablicy partycji dysku do pliku

# sfdisk -d /dev/sda > sda.out

 

przywróć zapisaną tablicę partycji na drugim dysku

# sfdisk /dev/sda < sda.out

Tworzenie systemów plików

/sbin/mkfs.ext2

/sbin/mkfs.ext3

/sbin/mkfs.reiserfs

/sbin/mkfs.msdos

/sbin/mkfs.vfat

/sbin/mkfs.xfs

 

aby utworzyć system plików wywołujemy odpowiedni program z nazwą urządzenia jako

parametrem

# /sbin/mkfs.ext3 /dev/sda1

 

tworzenie obszaru wymiany

# mkswap /dev/sda5

 

podmontowanie partycji i aktywacja swapu

# mount /dev/sda1 /katalog_docelowy

# /sbin/swapon /dev/sda5

 

poznanie typu systemu plików

# file -s /dev/sda1

/dev/sda1: SGI XFS filesystem data (blksz 4096, inosz 256, v2 dirs)

 

4. Budowa systemu operacyjnego - LINUX (jądro, powłoki, schemat systemu)

Budowa Linuxa – model warstwowy

Strukturę systemu Linux najłatwiej przedstawić za pomocą modelu warstwowego. Jądro Linux’a zawiera takie elementy jak program szeregujący oraz programy obsługi urządzeń, które umożliwiają dostęp do sprzętu i urządzeń zewnętrznych. W jądrze realizowane jest także zarządzanie pamięcią.

Procesy w jądrze różnią się od procesów wykonywanych w warstwie je otaczającej. Procesy użytkowników, którymi zarządza proces szeregujący, mogą być przerwane w dowolnym momencie, a każdy z nich ma przydzielony pewien obszar pamięci. Jeżeli proces użytkownika zamierza dostać się do nie swojego obszaru pamięci, to zostaje on przerwany z komunikatem błędu segmentacji. Inaczej jest w przypadku jądra które ma dostęp do wszystkich zasobów komputera. Mamy więc dwa tryby w których może być wykonywany proces, mowa tu o trybie jądra i użytkownika. Zewnętrzna warstwa systemu składa się programów które kontaktują się z użytkownikiem. Warstwa ta zawiera interpreter poleceń tłumacząca wprowadzone polecenia sercu systemu – jądru. Następną warstwą są biblioteki zapewniające dostęp do funkcji bibliotecznych (zwykle pisanych w języku C) oraz do procedur jądra. Biblioteki te są zwykle dołączane do programu po kompilacji przez dodanie procedur bibliotecznych do procedury samego programu.

 

5. Założyciel LINUXA, rok powstania, wersja systemu.

Historia rozwoju

Linus Torvalds, twórca jądra Linuksa

Historia Linuksa rozpoczęła się w 1991 roku, kiedy to fiński programista, Linus Torvalds poinformował o hobbystycznym tworzeniu przez siebie niedużego, wolnego systemu operacyjnego, przeznaczonego dla procesorów z rodzin i386 oraz i486.

Linus stworzył jednak tylko jądro, pełny system operacyjny potrzebował jeszcze powłoki systemowej, kompilatora, bibliotek itp. W roli większości z tych narzędzi użyto oprogramowania GNU, co jednak w przypadku niektórych komponentów systemu wymagało poważnych zmian, niekiedy finansowanych przez Projekt GNU, niekiedy dokonanych już wcześniej przez Linusa Torvaldsa.

Dużo pracy wymagało także zintegrowanie systemu do postaci dystrybucji, które umożliwiały zainstalowanie go w stosunkowo prosty sposób. Jednymi z pierwszych były opublikowany 16 lipca 1993 Slackware Linux czy założony miesiąc później Debian, nazywający siebie GNU/Linux.

 

6. Najważniejsze cechy systemu:

Wielozadaniowość - cecha systemu operacyjnego umożliwiająca mu równoczesne wykonywanie więcej niż jednego procesu. Za realizację wielozadaniowości odpowiedzialne jest jądro systemu operacyjnego. Można więc jednocześnie np. kopiować pliki na pendrive'a, drukować coś na drukarce i dokonywać obliczeń w arkuszu kalkulacyjnym.

 

Wielodostępność - cecha umożliwiająca wielu użytkownikom pracę na jednym systemie w tym samym czasie Każdy użytkownik ma przydzielone zasoby, np. pamięć, czas procesora, miejsce na dysku, do których nikt oprócz niego nie ma dostępu. Użytkownik jest niezależny i odizolowany od innych.

 

Wielozadaniowość - (inaczej wieloprocesowość) jest to cecha systemu operacyjnego (a dokładniej jadra, inaczej kernela) mówiąca czy może on wykonywać "jednocześnie" kilka procesów. Wielozadaniowość otrzymuje się poprzez tzw. scheduler, czyli algorytm kolejkujący i porządkujący procesy, które maja być wykonane. W rzeczywistości procesor nie jest w stanie wykonywać dwóch operacji naraz, ale dzieli czas swojej pracy na krótkie odcinki dla każdego procesu, tak, aby nie było to zauważalne dla użytkownika, po czym wykonuje zadane mu zadania (w chwili obecnej prawie każdy system obsługuje wielozadaniowość). Możliwość wielozadaniowości nie oznacza wcale, e na komputerze mona uruchomić nieskończona ilość procesów. Im więcej procesów jest uruchomionych, tym zadania wykonywane są wolniej, gdy wyczerpują one dostępne zasoby w postaci pamięci RAM, dysku twardego i procesora.

 

Obsługa różnych typów systemów plików - System plików metoda przechowywania plików i zarządzania nimi, tak by dostęp do nich i danych w nich zgromadzonych był łatwy dla użytkownika systemu. System Linux potrafi obsługiwać wiele różnych systemów plików,

 

7. Na czym polega wywłaszczenie?

Wywłaszczanie - Polega na przerwaniu wykonywania procesu, odebraniu mu procesora i przekazaniu sterowania do planisty. Linux może wykorzystywać wiele procesorów. Gdy system ma mniej dostępnych procesorów niż zadań do wykonania, czas działania procesora jest dzielony pomiędzy wszystkie zadania. W systemach bez wywłaszczania procesy musza same dbać o sprawiedliwy podział czasu procesora

 

8. Jakie systemy plików są w Linux'ie?

NTFS - wersja systemu plików dla Windows (niektóre starsze dystrybucje mogą mieć problemy, zwłaszcza z obsługą zapisu)

FAT - system plików używany w środowisku DOS/Windows

ext3,4,5 - domyślny system plików w większości dystrybucji systemu Linux opartych na jadrze 2.4 oraz nowszych. W starszych dystrybucjach można spotkać wersję ext2

 

9. Jak wygląda struktura katalogów systemu Linux?

Podczas instalacji Linuksa tworzona jest struktura folderów na dysku lub dyskach zainstalowanych w komputerze. Podstawowa struktura katalogów jest dość ściśle określona wg standardu FHS (z ang. Filesystem Hierarchy System). Oficjalna strona standardu: https://www.pathname.com/fhs/

 

10. Definicja interpretatora poleceń, czyli powłoki systemu.

Program pośredniczący we współpracy użytkownika z jądrem systemu, ma postać wiersza poleceń Nie można pracować bezpośrednio z podstawową częścią systemu linuksowego, jaką jest jego jądro (kernel) - niezbędny jest do tego program pośredniczący, czyli właśnie interpreter, inaczej nazywany
powłoką systemu operacyjnego (shell). Jądro systemu zawiera wszelkie podprogramy potrzebne do przeprowadzania operacji wejścia i wyjścia, zarządzania plikami itp. Powłoka pozwala korzystać z tych podprogramów za pomocą wiersza poleceń. Poza tym, powłoki obsługują również język programowania.
Programy napisane w języku powłoki nazywane są zwykle skryptami lub skryptami powłoki.

 
command.com - domyślna powłoka (interpreter poleceń) systemu MS-DOS. Tłumaczy polecenia wpisane po znaku zachęty (ang. prompt- zwykle w postaci C:\ lub C>) na komendy wykonywalne przez system MS-DOS

 

Po wpisaniu przez użytkownika dowolnego ciągu znaków i naciśnięciu przycisku enter powłoka interpretuje wpisany ciąg znaków, sprawdzając czy jest to polecenie wewnętrzne (np. CLS, CHOICE, ECHO, PROMPT, IF, FOR) albo polecenie uruchomienia programu zewnętrznego (np. FORMAT.COM, EDIT.COM)

 

SCHEMAT KOMUNIKACJI W SYSTEMIE LINUX

 

ZASADA DZIAŁANIA POWŁOKI W SYSTEMIE LINUX

 

POWŁOKI LINUX:

BASH – powłoka systemowa napisana dla projektu GNU. Program jest rozprowadzany na licencji GNU GPL. BASH to jedna z najpopularniejszych powłok systemowych. Jest domyślną powłoką w większości dystrybucji systemu GNU/Linux oraz w systemie Mac OS X od wersji 10.3, istnieją także wersje dla większości systemów uniksowych.
Nazwa jest akronimem od Bourne-Again Shell (angielska gra słów: fonetycznie brzmi tak samo, jak born again shell, czyli odrodzona powłoka). Wywodzi się od powłoki Bourne'a sh, która była jedną z pierwszych i najważniejszych powłok systemu UNIX.
 
CSH (od ang. C shell) jest jedną z systemowych powłok uniksowych. Została stworzona przez Billa Joya dla systemu BSD. 
Nazwa C shell jest grą słów: dosłownie oznacza powłokę [o składni] języka C, fonetycznie da się to jednak odczytać sea shell, czyli muszelka
Powłoka ta pochodzi od powłoki SH. Powłoka C shell wniosła wiele ulepszeń w stosunku do SH, takich jak m.in. aliasy i historia komend.
Niestety jej możliwości skryptowe pozostawiają wiele do życzenia.
 
Korn shell (KSH) - powłoka unixowa stworzona przez Davida Korna z AT&T Bell Laboratories w połowie lat osiemdziesiątych. Powłoka KSH jest całkowicie kompatybilna wstecz z powłoką SH, zawiera także wiele elementów z powłoki CSH – takich jak historia wpisanych komend. KSH zawiera wbudowany system obliczania wyrażeń arytmetycznych oraz zaawansowane funkcje skryptów podobne do tych używanych w bardziej zaawansowanych językach programowania, takich jak AWK, Perl.
Korn Shell jest sprzedawany w postaci kodu źródłowego oraz plików binarnych – przez AT&T i Novell oraz przez inne firmy poza granicami USA.
PDKSH jest implementacją KSH na licencji public domain (czyli „dla dobra publicznego”).