Systemy operacyjne. Mariusz Żynel /2019. Uniwersytet w Białymstoku

Podobne dokumenty
Powłoka I. Popularne implementacje. W stylu sh (powłoki zdefiniowanej w POSIX) W stylu csh. bash (najpopularniejsza) zsh ksh mksh.

JĘZYK SHELL JEST PEŁNYM JĘZYKIEM PROGRAMOWANIA

Bash - wprowadzenie. Bash - wprowadzenie 1/39

1 Przygotował: mgr inż. Maciej Lasota

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2009/2010

PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE

BASH - LINIA POLECEŃ. Bioinformatyka 2018/2019

Powłoka interpreter poleceń systemu UNIX

Pracownia Komputerowa wykład III

Operatory zmiany sposobu przypisania standardowych strumieni >,<,>> Jeżeli pierwsze polecenie powiodło się to wykona drugie

SYSTEMY OPERACYJNE I laboratorium 3 (Informatyka stacjonarne 2 rok, semestr zimowy)

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

Wstęp do informatyki. stęp do informatyki Polecenia (cz.2)

Przedmiot: SYSTEMY OPERACYJNE Czas trwania: semestr IV Przedmiot: obowiązkowy Język wykładowy: polski POZIOM

Narzędzia informatyczne w językoznawstwie

Powłoka, redyrekcja, potok

Architektura systemów informatycznych. Powłoka systemowa Architektura procesora

Powłoka (shell) Powłoka ksh

Systemy Operacyjne. Część II Zarządzanie/Administracja Systemem. 5: Skrypty. autor: mgr inż. Andrzej Woźniak

Pracownia Komputerowa wykład III

Systemy operacyjne Operating Systems

Systemy operacyjne na platformach mobilnych 2 Podstawy obsługi powłoki Bash

Przekierowanie wejścia wyjścia:

Systemy operacyjne Programowanie w języku powłoki sh

Niektóre katalogi są standardowymi katalogami zarezerwowanymi do użytku przez system. Znaczenie wybranych katalogów systemowych jest następujące:

Systemy operacyjne. System operacyjny Linux - wstęp. Anna Wojak

Zakład Systemów Rozproszonych

Programowanie 1. Wprowadzenie do bash-a. Elwira Wachowicz. 06 lutego 2012

PRACOWNIA INFORMATYCZNA CHARAKTERYSTYKA PRZEDMIOTU BASH - PODSTAWOWE INFORMACJE

SYSTEMY OPERACYJNE SYLABUS A. Informacje ogólne

Egzamin pisemny z przedmiotu: Systemy operacyjne Semestr I

Systemy operacyjne / Programowanie w języku powłoki sh str.1/19

Temat zajęć: Tworzenie skryptów powłoki systemu operacyjnego.

Temat zajęć: Filtry, strumienie standardowe oraz przetwarzanie potokowe. stderr

Kurs systemu Unix wykład wstępny. Kurs systemu Unix 1

Systemy operacyjne. Informatyka Stosowana, I rok. Krzysztof Wilk. Katedra Informatyki Stosowanej i Modelowania

BASH - WPROWADZENIE Bioinformatyka 4

Wstęp do informatyki Shell podstawy

Pracownia komputerowa. Dariusz wardecki, wyk II

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Powłoka bash. Kurs systemu Unix 1

pico mojskrypt bash mojskrypt chmod +x mojskrypt./mojskrypt

PRZEWODNIK PO PRZEDMIOCIE

Wstęp do Informatyki dla bioinformatyków

Sieci komputerowe. Wstęp do systemu Linux/UNIX, część I. Ewa Burnecka / Janusz Szwabiński. ewa@ift.uni.wroc.pl / szwabin@ift.uni.wroc.

Pracownia Komputerowa wyk ad III

Pracownia Komputerowa

skrypt powłoki to plik tekstowy, rozpoczynający się sekwencją: pierwsza linia określa powłokę, w której wykonywany jest skrypt; druga to komentarz

Znaki globalne w Linuxie

Skrypty powłoki w systemie Linux

Wprowadzenie do programowania w powłoce

System operacyjny UNIX Ćwiczenie 1. Podstawowe polecenia systemu Unix

PRZEWODNIK PO PRZEDMIOCIE

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

System operacyjny Linux

POPULARNE POLECENIA SKRYPTY. Pracownia Informatyczna 2

Powłoka systemu Linux

Systemy operacyjne III

Trochę o plikach wsadowych (Windows)

Linux cz.3: polecenia systemowe, ćwiczenia

Tworzenie skryptu: Skrypty powłoki

Podstawy informatyki

Systemy operacyjne. Programowanie w shellu: BASH. Wydział Inżynierii Metali i Informatyki Przemysłowej

Ćwiczenie nr 14: System Linux

Technologie Informacyjne - Linux 2

"Klasyczna" struktura systemu operacyjnego:

Podstawy Programowania.

Filtry, metaznaki, cytowania. Proste skrypty. Polecenia find, tee, mail.

Architektura systemów informatycznych WPROWADZENIE DO SYSTEMU LINUX

Wstęp do systemów wielozadaniowych laboratorium 03 Praca w powłoce UNIX-owej

Pracownia Komputerowa wyk ad II

Zmienne środowiskowe: Ścieżka przeszukiwana komendą.

Podstawy Programowania

W pierwszej kolumnie wyświetlany jest identyfikator procesu (pid)

Technologie Informatyczne Wykład XI linux

Wstęp do Informatyki dla bioinformatyków

Sieci i systemy operacyjne I Ćwiczenie 1. Podstawowe polecenia systemu Unix

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc.

Temat 8 Systemy operacyjne rodziny UNIX. powłoki graficzny interfejs użytkownika (GUI) 8.1. Cechy systemu UNIX

Skrypty BASH a. Systemy Operacyjne 2. Mateusz Hołenko. 4 października 2012

Uruchamianie programów w systemie Linux, potoki, strumienie, procesy, alias

Linux Polecenia. Problem nadpisywania plików. Zmienna noclobber i noglob. Filtry i metaznaki. Problem nadpisywania plików. Opracował: Andrzej Nowak

Pracownia Informatyczna I ORGANIZACJA ZAJĘĆ, ZASADY ZALICZENIA

Technologie Informacyjne - Linux 3

Podstawy Informatyki. Wykład 3 UNIX

System Linux - użytkowanie

Pracownia Komputerowa wykład II

Księgarnia PWN: Emmett Dulaney - Novell Certified Linux Professional (NCLP)

Wyrażenia regularne. Wyrażenia regularne 1/41

Krótka Historia Systemów Operacyjnych. Tomasz Borzyszkowski

- wszystkie elementy - wszystkie elementy

Przetwarzanie tekstu 2. Operacje na plikach tekstowych w systemie Linux

Systemy operacyjne. Instrukcja laboratoryjna. Ćwiczenie 1: Polecenia systemu UNIX/LINUX. Opracował: dr inż. Piotr Szpryngier

Interpreter poleceń oraz zmienne środowiskowe

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

Podstawy systemów UNIX

Podstawy Informatyki. Michał Pazdanowski

KARTA KURSU. Języki skryptowe

Podstawy programowania skryptów Sh

Transkrypt:

mariusz@math.uwb.edu.pl http://math.uwb.edu.pl/~mariusz Uniwersytet w Białymstoku 2018/2019

Co to jest system operacyjny, do czego służy i jak działa?

Dlaczego musi być egzamin?

Warunki zaliczenia Warunkiem dopuszczenia do egzaminu jest uzyskanie zaliczenia ćwiczeń na ocenę pozytywną Egzamin pisemny złożony z 50 pytań w formie testu Do każdego pytania są 3 propozycje odpowiedzi, ale tylko jedna jest poprawna Odpowiedź na każde z pytań testowych jest warta 0 lub 1 Punktacja: 5.0 : 48 4.5 : 42 4.0 : 36 3.5 : 30 3.0 : 24 Obowiązuje materiał z wykładu

Plan wykładu Trochę historii, ale nie za dużo Powłoka, praca w konsoli, znaki specjalne Strumienie, potoki i rurociągi Użytkownicy, grupy, root i jak nim zostać Systemy plików, prawa dostępu, dowiązania i lepkie bity Wyrażenia regularne Przegląd narzędzi Pisanie skryptów Procesy i zadania powłoki, komunikacja między procesami Kolejkowanie, szeregowanie i przydzielanie zasobów Gdzie się podział autoexec.bat, czyli start systemu Dyski, macierze, wolumeny i montowanie zasobów dyskowych Podstawowe usługi Logi, planowanie zadań, czyli ciężka praca administratora

Literatura Stallings W. : struktura i zasady budowy Wydawnictwo Naukowe PWN, Warszawa 2006. Nemeth E. i in. Przewodnik administratora systemu Unix WNT, Warszawa 1998. Frisch A. Unix. Administracja systemu Wyd. 3, ReadMe/O Reilly, 2003. Silberschatz A., Galwin P.B., Gagne G. Podstawy systemów operacyjnych WNT, Warszawa 2005. Sobaniec C. System operacyjny Linux - przewodnik użytkownika Nakom, Poznań 2002.

Co to jest epoch date i dlaczego to takie ważne?

Po co nam w ogóle system operacyjny? Przetwarzanie wsadowe (batch processing) [video] Jeden użytkownik, jedno zadanie w danym czasie Optymalizacji użycia komputera i likwidacja przestojów Kolejkowanie zadań Podział czasu (time-sharing) Wielu użytkowników, wiele zadań w tym samym czasie Jeden użytkownik nieefektywnie gospodaruje komputerem, ale wielu użytkowników razem już nie bo przerwy w pracy jednego użytkownika wypełnione są aktywnością pozostałych Przydział zasobów procesora, pamięci oraz urządzeń I/O na określony czas Wywłaszczanie Większe wymagania co do szybkości procesora i rozmiarów pamięci

Pierwsze systemy z podziałem czasu 1961 Compatible Time-Sharing System (CTSS) System operacyjny ogólnego przeznaczenia Prototypowy shell, e-mail, edytor QED, BASIC Działał na IBM 7090 1961 PLATO II Rozproszony system edukacyjny Działał na ILLIAC I oraz CDC 1604 Prototypowe forum, message board, chat rooms, instant messaging, multiplayer video game 1964 Dartmouth Time-Sharing System (DTSS) Pierwszy komercyjny sukces 300 użytkowników jednocześnie Działał na GE-235 oraz GE-635

Burzliwe lata 60-te XX-wieku 1964 w Bell Labs przy współpracy z GE i MIT powstaje projekt innowacyjnego systemu operacyjnego z podziałem czasu o nazwie Multics (Multiplexed Information and Computing Service) Kontynuacja CTSS Pisany w języku PL/I, działał na GE-635 oraz GE-645 1969 Ken Thompson tworzy grę komputerową Space Travel Symulacja podróży po Układzie Słonecznym Napisana i uruchomiona na Multics 1969 prace nad Multics zostają zawieszone Założenia są nowatorskie, ale system jest zbyt skomplikowany Ogromne koszty projektu 1969 gra Space Travel zostaje przeniesiona an GECOS Przepisanie kodu gry na Fortran GECOS działa w trybie wsadowym na GE-635 1969 Thompson zaczyna przenosić swoją grę na DEC PDP-7

Minikomputer DEC PDP-7 Czy fotel jest integralnym komponentem systemu?

Początki systemu Unix 1970 Ken Thompson tworzy nowy assembler oraz całkowicie nowy, prosty, jednozadaniowy system operacyjny w celu uruchomienia swojej gry Space Travel na PDP-7 1970 Projektem Thompsona interesują się Dennis Ritchie, Brian Kernighan, Douglas McIlroy i Joe Ossanna współautorzy Multics, powstaje system operacyjny Unics (Uniplexed Information and Computing Service), którego nazwa zaczyna być wymawiana jako Unix 1971 na potrzeby swego systemu operacyjnego Ken Thompson opracowuje nowy język B oparty na BCPL 1971/1972 Ken Thompson i Dennis Ritchie rozwijają język B, powstaje NB, a potem C 1972 przepisanie Unixa z assemblera na C (portability)

Epoch date Pierwsze wersje Unixa na początku lat 70-tych odliczają czas z częstotliwością 60Hz 32-bitowa liczba całkowita bez znaku może reprezentować czas w zakresie do 829 dni Epoch date ustalono na 1971-01-01 00:00:00 Nowsze wersje Unixa odliczają czas z częstotliwością 1Hz 32-bitowa liczba całkowita bez znaku może reprezentować czas w zakresie do około 136 lat Epoch date ustalono na 1970-01-01 00:00:00 Maksymalna data reprezentowana przez 32-bitową liczbę całkowitą ze znakiem to 2038-01-19, potem data zostanie zmieniona na 1901-12-13.

Co dalej z tym Unixem?

Dalsze losy Unixa 1975 pierwsza sprzedana licencja Unixa do University of Illinois 1979 powstaje BSD i Unix Version 7 1983 powstaje SunOS oraz System V 1987 Andrew Tanenbaum tworzy system MINIX 1991 Linus Torvalds tworzy system Linux, powstaje Solaris 2005 powstaje Solaris 10 i OpenSolaris 2010 nabycie Sun Microsystems przez Oracle

Dlaczego Unix?

Podstawowe cechy charaketeryzujące system Unix Wielozadaniowość wiele zadań w tym samym czasie Wielodostępność wielu użytkowników, praca lokalna i zdalna Wieloplatformowość od tabletu i smartfona po mainframe

Filozofia systemu UNIX Dwie proste zasady: Wszystko jest plikiem Keep it small and simple The power of a system comes more from the relationships among programs than from the programs themselves Brian Kernighan, Rob Pike To co odróżnia Unix od innych systemów: dane przechowywane są w plikach tekstowych hierarchiczny system plików traktowanie urządzeń jak plików traktowanie części komunikacji międzyprocesowej jak plików wiele małych programów narzędziwych, które można używać łącznie z linii poleceń w potokach, zamiast pojedynczych, monolitycznych programów, które robią wszystko

Dlaczego UNIX jest taki nudny? Powtarzalność z uporem maniaka wykonuje to co mu każesz, za każdym razem w ten sam sposób, bez komentarzy i złośliwych uwag Przewidywalność jeśli nie jesteś pewien jak zareaguje system to zajrzyj do dokumentacji albo do kodu źródłowego

Dlaczego UNIX jest taki nudny? Powtarzalność z uporem maniaka wykonuje to co mu każesz, za każdym razem w ten sam sposób, bez komentarzy i złośliwych uwag Przewidywalność jeśli nie jesteś pewien jak zareaguje system to zajrzyj do dokumentacji albo do kodu źródłowego

Dlaczego UNIX jest taki nudny? Powtarzalność z uporem maniaka wykonuje to co mu każesz, za każdym razem w ten sam sposób, bez komentarzy i złośliwych uwag Przewidywalność jeśli nie jesteś pewien jak zareaguje system to zajrzyj do dokumentacji albo do kodu źródłowego

Dlaczego niebo jest niebieskie i co to ma wspólnego z transmisją danych?

Co potrafi Unix?

Powłoka shell Interfejs użytkownika w postaci interpretera poleceń Interaktywna sesja między użytkownikiem a systemem operacyjnym Automatycznie uruchamiana w momencie logowania do systemu Ukrywa techniczne detale jądra systemu operacyjnego Działa w przestrzeni użytkownika, nie w jądrze Polecenia wprowadza się bezpośrednio na terminalu lub z pliku Implementacje: Thompson shell (sh) pierwsza wersja shella z 1971 roku Bourne shell (sh) unowocześniona w 1979 wersja shella Thompsona C shell (csh) shell ze składnią poleceń wzorowaną na C Korn shell (ksh) rozszerzenie sh, zapożyczenia z csh Bourne-Again shell (bash) najbardziej popularny, napisany dla GNU

Co czyni shell tak potężnym? Metaznaki (wildcarding, globbing) Przekierowania/redyrekcje wejścia/wyjścia (I/O redirections) Potoki (pipelines) Zmienne Here documents Command substitution Instrukcje warunkowe (if then else, switch) Instrukcje iteracyjne, pętle (for, while, until)

Podstawowe polecenia i programy narzędziowe ls (list) wyświetla zawartość katalogu pwd (path of working directory) wyświetla ścieżkę katalogu roboczego cd (change directory) przechodzi do innego katalogu cp (copy) kopiuje pliki mv (move) przenosi pliki mkdir (make directory) tworzy katalogi rm (remove) usuwa pliki, które nie są katalogami rmdir (remove directory) usuwa katalogi jeśli nie są puste cat (concatenation) łączy i wyświetla podane pliki

Standardowe strumienie Z każdym procesem związane są trzy specjalne kanały I/O Dowiązanie następuje w momencie uruchomienia programu Standardowe strumienie I/O służą do komunikacji z otoczeniem stdin (deskryptor 0) standardowy strumień wejścia, dane wejściowe, zwykle tekst, przekazywane do programu stdout (deskryptor 1) standardowy strumień wyjścia, strumień, do którego program zapisuje dane wynikowe stderr (deskryptor 2) standardowy strumień błędów, wykorzystywany do wyświetlania komunikatów o błędach i informacji diagnostycznych

Shell metaznaki Przy pomocy metaznaków (wildcard characters) możemy tworzyć wzorce (glob patterns) nazw plików. Shell sh rozumie następujące metaznaki: * zastępuje dowolny ciąg znaków, także pusty? zastępuje jeden dowolny znak [abc] zastępuje jeden z wyszczególnionych znaków [!abc] zastępuje jeden znak spoza wyszczególnionych znaków [a-z] zastępuje jeden znak z podanego zakresu [!a-z] zastępuje jeden znak spoza podanego zakresu Uwaga Znak / oraz. jeśli występuje na początku nazwy pliku nigdy nie zostaną zastąpione.

Shell przekierowania/redyrekcje wejścia/wyjścia <plik traktuje plik jako strumień wejściowy sh < skrypt.sh >plik traktuje plik jako strumień wyjściowy ls -l > /tmp/lista plikow date > /var/tmp/logfile >>plik traktuje plik jako strumień wyjściowy dopisując do niego pwd >> /var/tmp/logfile echo "nie cierpie Unixa" >> moje motto 2>&1 przekierowanie strumienia błędów na standardowe wyjście >plik 2>&1 przekierowanie strumienia wyjściowego i błędów na plik >>plik 2>&1 dopisywanie strumienia wyjściowego i błędów do plik

Shell potoki Potok to ciąg poleceń rozdzielonych znakiem (pipe) Standardowe wyjście każdego z poleceń poza ostatnim jest skojarzone ze standardowym wejściem następnego polecenia Każde z poleceń uruchamiane jest jako osobny proces Potok kończy się, gdy zakończone zostanie ostatnie polecenie Kod wyjścia potoku jest taki jak kod ostatniego polecenia cat *.php grep -v ^$ wc -l tar cf - -C /data/http. tar xf - -C /backup/http fgrep 28/Feb/2019 access.log awk {print $1} \ sort uniq -c sort -n -r head -15

Shell here documents Here document to literał strumieniowy lub wielolinijkowy literał tekstowy Here document rozpoczyna się od znaków << i następującego po nich identyfikatora ograniczającego, który jest dowolnym napisem Od nowego wiersza wprowadzany jest here document Here document kończy się wprowadzeniem tego samego identyfikatora ograniczającego w nowym wierszu Składnia nie jest przypadkowa bo zawartość here document trafia na standardowe wejście polecenia poprzedzającego tr [a-z] [A-Z] <<EOF Nie cierpie Unixa Nie znosze komputerow Przydalaby sie przerwa EOF

Shell zmienne Zmienna to wydzielony fragment pamięci, do którego odwołujemy się poprzez nazwę symboliczną, czyli identyfikator zmiennej Zawartość tego fragmentu pamięci to wartość zmiennej Zmienne w shellu nie mają typów i nie są deklarowane przed użyciem Dozwolone znaki w identyfikatorach zmiennych to: a-za-z0-9 Wielkość liter w identyfikatorach ma znaczenie (case sensitive) Aby odczytać wartość zmiennej identyfikator poprzedzamy znakiem $ HW="Hello world!" echo $HW X=1+1 echo $X

Shell command substitution Command substitution to mechanizm pozwalający wykonać polecenie i wstawić jego wynik w linii poleceń jako argument innego polecenia Command substitution wykonujemy wstawiając całe polecenie wraz z jego argumentami w lewe apostrofy... NBLINES= cat *.php grep -v ^$ wc -l i= expr $i + 1 cp grep -l malloc *.c /tmp/malloc\_files

Shell instrukcje warunkowe if [ -f $1 ] then echo "Plik $1 istnieje" else echo "Plik $1 nie istnieje" fi case $1 in -d) echo "Debug mode on" ;; -v) echo "Verbose mode on" ;; *) echo "usage: $0 [-dv]" ;; esac

Shell instrukcje iteracyjne, pętle Pętla for for f in grep -l malloc *.c do sed s/malloc/valloc/ $f > /tmp/x cp /tmp/x $f done Pętla while Pętla until grep -l malloc *.c while read f do sed s/malloc/valloc/ $f > /tmp/x cp /tmp/x $f done sum=0 until [ "$x" = "0" ] do read x sum= expr $sum + $x done echo "suma: $sum"

Jeśli tutaj jesteśmy to oznacza, że udało się odrobić wszystko co było zaplanowane...uff na dzisiaj koniec init 5