Technologie Informatyczne – Wykład X-XII UNIX i jego
Transkrypt
Technologie Informatyczne – Wykład X-XII UNIX i jego
Wykład X
Wykład XI
Wykład XII
Technologie Informatyczne – Wykład X-XII
UNIX i jego środowisko
A. Matuszak
19 marca 2013
A. Matuszak
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk
Wykład X
Wykład XI
Wykład XII
Wykład X
Środowisko systemu operacyjnego
Rozwój unixa
linux
Wykład XI
Open Source i licencje
Wykład XII
Środowisko unixa
A. Matuszak
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk
Wykład X
Wykład XI
Wykład XII
Środowisko systemu operacyjnego
Rozwój unixa
linux
UNIX
Twórcy:
I
B. Kernigham
I
D. Ritchie
I
R. Pike
I
...
Hardware: oddzielenie warstwy fizycznej od warstwy logicznej.
A. Matuszak (3)
Wykład X
Wykład XI
Wykład XII
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk
Środowisko systemu operacyjnego
Rozwój unixa
linux
Koncepcja środowiska UNIX
I
użytkownik potrzebuje komputera do zrealizowania swojego
ciągu zadań
I
istnieje nieskończona różnorodność zadań, które użytkownik
może chcieć zrealizować, chociaż wiele jest podobnych
każde zadanie składa się z prostszych części (podzadań)
I
I
I
I
I
I
I
edycja pliku tekstowego
kompilacja/formatowanie
wyszukiwanie informacji
zestawianie (grupowanie) informacji
wykonywanie obliczeń
...
A. Matuszak (4)
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk
Wykład X
Wykład XI
Wykład XII
Środowisko systemu operacyjnego
Rozwój unixa
linux
Zadanie: program na laboratorium
Przeczytaj treść zadania
Powatrzaj
- popraw plik źródłowy
- skompiluj
- uruchom
dopóki nie jest skończone
Wzdychamy: IDE!!
A. Matuszak (5)
Wykład X
Wykład XI
Wykład XII
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk
Środowisko systemu operacyjnego
Rozwój unixa
linux
(Troszeczkę) bardziej rozbudowana wersja
Przestudiuj specyfikację
Powatrzaj
-
przeczytaj dokumentację
popraw plik źródłowy
skompiluj
uruchom
przetestuj
zarejestruj nową wersję
dopisz zmiany do log-u
dopóki nie jest skończone
napisz raport/sprawozdanie/dokumentację
A. Matuszak (6)
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk
Wykład X
Wykład XI
Wykład XII
Środowisko systemu operacyjnego
Rozwój unixa
linux
Monolit vs. klocki
Dwie koncepcje:
1. Stwórz program, który pokrywa większość typowych potrzeb w
przypadku pewnego zadania
2. Stwórz klocki, które nie będą jednym programem, ale rozwiążą
każde z podzadań w sposób perfekcyjny
A. Matuszak (7)
Wykład X
Wykład XI
Wykład XII
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk
Środowisko systemu operacyjnego
Rozwój unixa
linux
Monolit
I
program rozrasta się w nieskończoność
I
podwojenie ilości opcji/funkcji/guzików daje 10% przyrost
funkcjonalności
I
dla wybrednych użytkowników i tak program będzie miał za
mało możliwości a początkujący będą przerażeni
koniecznością zrozumienia kilkudziesięciu pojęć (funkcji)
I
wielki program praktycznie niemożliwy do zdebuggowania
I
brak współpracy z innymi programami
I
praca interaktywna
A. Matuszak (8)
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk
Wykład X
Wykład XI
Wykład XII
Środowisko systemu operacyjnego
Rozwój unixa
linux
Wordprocessor
monolit zawiera: moduł do składania tekstów, tabelek,
równań, wklejania obrazków, korespondencja seryjna,
prosty moduł rysunkowy, podręczną bazę adresową
lub bibliograficzną, słownik ortograficzny . . .
klocki program groff składa teksty, program eqn składa
równania, program tbl składa tabelki, program pic
tworzy proste rysunki, program refer zajmuje się
bibliografią, program ispell sprawdza ortografię,
podobno istnieją programy chem i graph, brakowało
obsługi polskich liter: dopisaliśmy program który (w
ograniczonym zakresie) umożliwia użycie polskich
liter.
Jak zmusić program, aby wczytał fragment programu w języku
octave?
A. Matuszak (9)
Wykład X
Wykład XI
Wykład XII
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk
Środowisko systemu operacyjnego
Rozwój unixa
linux
Współpraca z innymi programami
I
Składany tekst rzadko jest owocem czystego natchnienia.
I
Sprawozdanie z ćwiczeń laboratoryjnych z fizyki
A. Matuszak (10)
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk
Wykład X
Wykład XI
Wykład XII
Środowisko systemu operacyjnego
Rozwój unixa
linux
Tryb interaktywny
Program wymagający długiej (wielogodzinnej) pracy:
I złożone obliczenia
I przeszukiwanie bazy danych
I kompilacja wielkiego projektu informatycznego
I renderowanie grafiki
Proste, rutynowe czynności powtarzane regularnie, lub jednorazowo
ale wymagające wielokrotnych powtórzeń:
I ...
I usuwanie starych kopii plików (backupów)
I konwersja formatów
I sortowanie poczty elektronicznej (ogłoszenie o pracy)
I wpisywanie zaliczeń studentom
A. Matuszak (11)
Wykład X
Wykład XI
Wykład XII
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk
Środowisko systemu operacyjnego
Rozwój unixa
linux
UNIX
Twórcy:
I
rozwój jądra
I
rozwój programów zależnych od (interfejsu) jądra
I
rozwój programów niezależnych od jądra
A. Matuszak (12)
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk
Wykład X
Wykład XI
Wykład XII
Środowisko systemu operacyjnego
Rozwój unixa
linux
Linie rozwojowe
I
BSD (4.3BSD, FreeBSD, NetBSD)
I
System V (ATI)
I
Mach (mikrokernel)
I
Linux
Zdecentralizowany rozwój (bazar)
A. Matuszak (13)
Wykład X
Wykład XI
Wykład XII
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk
Środowisko systemu operacyjnego
Rozwój unixa
linux
Nazwy handlowe
I
AIX,
I
HP-UX,
I
Xenix,
I
Ultrix, OSF/1, True64,
I
SCO,
I
Dynix,
I
Sun OS, Solaris,
I
Irix
A. Matuszak (14)
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk
Wykład X
Wykład XI
Wykład XII
Środowisko systemu operacyjnego
Rozwój unixa
linux
Linux
W 1991 Linus Torvalds, 21–letni student Uniwersytetu w
Helsinkach (Finlandia), napisał pierwszą wersję jądra Linuxa.
A. Matuszak (15)
Wykład X
Wykład XI
Wykład XII
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk
Środowisko systemu operacyjnego
Rozwój unixa
linux
Dystrybucje Linuxa
I
Slackware
I
RedHat, Mandrake
I
Debian
I
Knoppix
I
Aurox
I
Arch Linux
I
...
A. Matuszak (16)
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk
Wykład X
Wykład XI
Wykład XII
Środowisko systemu operacyjnego
Rozwój unixa
linux
Android
Wikipedia:
Android został oparty na jądrze Linuksa oraz
oprogramowaniu na licencji GNU.
A. Matuszak (17)
Wykład X
Wykład XI
Wykład XII
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk
Open Source i licencje
Open Source i licencje
A. Matuszak (18)
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk
Wykład X
Wykład XI
Wykład XII
Open Source i licencje
Licencje
I
zamknięte (proprietary)
BOX, iTunes, YouTube
I
shareware
I
public domain
I
swobodne (wolnościowe – free speech not free beer!)
Acrobat Reader jest darmowy ale zamknięty!
A. Matuszak (19)
Wykład X
Wykład XI
Wykład XII
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk
Open Source i licencje
Prawa autorskie
Obie strony grają nieuczciwie!
A. Matuszak (20)
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk
Wykład X
Wykład XI
Wykład XII
Open Source i licencje
Patenty
Software patents
Amazon: 1-Click Buy (zakupy jednym kliknięciem)
.. nie można przyznawać patentów na fakty naukowe i ich
matematyczną reprezentację
2005-07-06: Parlament Europejski odrzucił dyrektywę patentową
na oprogramowanie, każdy kraj reguluje tę kwestię indywidualnie
A. Matuszak (21)
Wykład X
Wykład XI
Wykład XII
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk
Open Source i licencje
Open Source
I
public domain
I
open source (non-free)
I
open source (free)
I
GNU
I
BSD
I
Free Academic Licence
I
Free Artistic Licence
I
Mozilla ...
I
...
A. Matuszak (22)
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk
Wykład X
Wykład XI
Wykład XII
Open Source i licencje
Gnu
I
swobodny dostęp do kodu źródłowego
I
swoboda korzystania z oprogramowania do celów
niekomercyjnych i komercyjnych
I
możliwa sprzedaż oprogramowania
I
ograniczenia w wykorzystaniu kodu źródłowego (infekcyjność)
I
GPL, LGPL
A. Matuszak (23)
Wykład X
Wykład XI
Wykład XII
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk
Open Source i licencje
Ekonomia darmowego oprogramowania
I
Apache (bezpieczeństwo: back doors)
I
Firefox
I
Gimp (Photoshop)
I
integracja
I
niezawodność
A. Matuszak (24)
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk
Wykład X
Wykład XI
Wykład XII
Środowisko unixa
Środowisko unixa
A. Matuszak (25)
Wykład X
Wykład XI
Wykład XII
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk
Środowisko unixa
Środowisko UNIXa
Zestaw prostych (koncepcyjnie) klocków.
A. Matuszak (26)
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk
Wykład X
Wykład XI
Wykład XII
Środowisko unixa
Strumień
a x k l l e q t
↓
1 @ c . a
A. Matuszak (27)
Wykład X
Wykład XI
Wykład XII
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk
Środowisko unixa
Przekierowania i potoki
prog
prog
prog
prog
> plik wyjście skieruj do pliku
< plik czytaj dane z pliku
<plik1 > plik2
>> plik wyjście dopisz do pliku
prog1 > plik
prog2 < plik
prog1 | prog2
prog1 | prog2 | prog3 | .... | progn
cat plik | eqn | tbl | groff
A. Matuszak (28)
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk
Wykład X
Wykład XI
Wykład XII
Środowisko unixa
proste narzędzia
I
cat cat plik1 plik2
I
echo echo ‘‘Ala ma asa’’
I
more more plik
I
head, tail head -21 plik
I
sort sort -k 1 plik
I
uniq
I
expr expr 3 + 2
I
....
I
tr
I
grep
A. Matuszak (29)
Wykład X
Wykład XI
Wykład XII
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk
Środowisko unixa
tr
echo ’Ala ma asa’ | tr am XY
AlX YX XsX
echo ’Ala ma asa’ | tr a-z A-Z
ALA MA ASA
echo ’Ala ma asa’ | tr -d am
Al s
A. Matuszak (30)
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk
Wykład X
Wykład XI
Wykład XII
Środowisko unixa
grep
grep ’myfunc’ myprog.c
Wyrażenia regularne:
prototyp
grep ’myfunc([^)]*);’
myprog.c
definicja
grep ’myfunc([^)]*)\{’
myprog.c
A. Matuszak (31)
Wykład X
Wykład XI
Wykład XII
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk
Środowisko unixa
Minijęzyki
I
sed
I
awk
A. Matuszak (32)
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk
Wykład X
Wykład XI
Wykład XII
Środowisko unixa
sed
sed ’/Ala ma asa/d’
sed ’s/float/double/’
sed ’s/float/double/g’
A. Matuszak (33)
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk
Wykład X
Wykład XI
Wykład XII
Środowisko unixa
awk
Funkcja
$1
w
$2
języku
$3
C
$4
jest
$5
IF war($1) THEN Zrób To
IF war($2) THEN Zrób Tamto
równoważna
$6
....
$7
war($1) { Zrób To }
war($2) { Zrób Tamto }
{print $1,$2,$4}
$1>20
{print $2*$4}
/myfunc/ {print $2,$4}
A. Matuszak (34)
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk
Wykład X
Wykład XI
Wykład XII
Środowisko unixa
join
10010:Abacki:Kazimierz
10011:Babacki:Jan
10022:Cabacki:Franciszek
10023:Kowalska:Jadwiga
10028:Zawadzki:Piotr
10010:dst
10022:bdb
10023:dst
10010:Abacki:Kazimierz:dst
10022:Cabacki:Franciszek:bdb
10023:Kowalska:Jadwiga:dst
A. Matuszak (35)
Technologie Informatyczne – Wykład X-XII UNIX i jego środowisk