I Technologie Informatyczne -XII UNIX i jego środowisko A. Matuszak 19 marca 2013 A. Matuszak Technologie Informatyczne -XII UNIX i jego środowisk I Open Source i licencje I A. Matuszak Technologie Informatyczne -XII UNIX i jego środowisk
I UNIX Twórcy: B. Kernigham D. Ritchie R. Pike... Hardware: oddzielenie warstwy fizycznej od warstwy logicznej. A. Matuszak (3) Technologie Informatyczne -XII UNIX i jego środowisk I Koncepcja środowiska UNIX użytkownik potrzebuje komputera do zrealizowania swojego ciągu zadań 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ń) edycja pliku tekstowego kompilacja/formatowanie wyszukiwanie informacji zestawianie (grupowanie) informacji wykonywanie obliczeń... A. Matuszak (4) Technologie Informatyczne -XII UNIX i jego środowisk
I Zadanie: program na laboratorium Powatrzaj Przeczytaj treść zadania dopóki nie jest skończone - popraw plik źródłowy - skompiluj - uruchom Wzdychamy: IDE!! A. Matuszak (5) Technologie Informatyczne -XII UNIX i jego środowisk I (Troszeczkę) bardziej rozbudowana wersja Powatrzaj Przestudiuj specyfikację dopóki nie jest skończone - przeczytaj dokumentację - popraw plik źródłowy - skompiluj - uruchom - przetestuj - zarejestruj nową wersję - dopisz zmiany do log-u napisz raport/sprawozdanie/dokumentację A. Matuszak (6) Technologie Informatyczne -XII UNIX i jego środowisk
I 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 Monolit A. Matuszak (7) Technologie Informatyczne -XII UNIX i jego środowisk I program rozrasta się w nieskończoność podwojenie ilości opcji/funkcji/guzików daje 10% przyrost funkcjonalności 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) wielki program praktycznie niemożliwy do zdebuggowania brak współpracy z innymi programami praca interaktywna A. Matuszak (8) Technologie Informatyczne -XII UNIX i jego środowisk
I 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) Technologie Informatyczne -XII UNIX i jego środowisk I Współpraca z innymi programami Składany tekst rzadko jest owocem czystego natchnienia. Sprawozdanie z ćwiczeń laboratoryjnych z fizyki A. Matuszak (10) Technologie Informatyczne -XII UNIX i jego środowisk
I Tryb interaktywny Program wymagający długiej (wielogodzinnej) pracy: złożone obliczenia przeszukiwanie bazy danych kompilacja wielkiego projektu informatycznego renderowanie grafiki Proste, rutynowe czynności powtarzane regularnie, lub jednorazowo ale wymagające wielokrotnych powtórzeń:... usuwanie starych kopii plików (backupów) konwersja formatów sortowanie poczty elektronicznej (ogłoszenie o pracy) wpisywanie zaliczeń studentom UNIX A. Matuszak (11) Technologie Informatyczne -XII UNIX i jego środowisk I Twórcy: rozwój jądra rozwój programów zależnych od (interfejsu) jądra rozwój programów niezależnych od jądra A. Matuszak (12) Technologie Informatyczne -XII UNIX i jego środowisk
I Linie rozwojowe BSD (4.3BSD, FreeBSD, NetBSD) System V (ATI) Mach (mikrokernel) Linux Zdecentralizowany rozwój (bazar) Nazwy handlowe A. Matuszak (13) Technologie Informatyczne -XII UNIX i jego środowisk I AIX, HP-UX, Xenix, Ultrix, OSF/1, True64, SCO, Dynix, Sun OS, Solaris, Irix A. Matuszak (14) Technologie Informatyczne -XII UNIX i jego środowisk
I Linux W 1991 Linus Torvalds, 21 letni student Uniwersytetu w Helsinkach (Finlandia), napisał pierwszą wersję jądra Linuxa. Dystrybucje Linuxa A. Matuszak (15) Technologie Informatyczne -XII UNIX i jego środowisk I Slackware RedHat, Mandrake Debian Knoppix Aurox Arch Linux... A. Matuszak (16) Technologie Informatyczne -XII UNIX i jego środowisk
I Android Wikipedia: Android został oparty na jądrze Linuksa oraz oprogramowaniu na licencji GNU. A. Matuszak (17) Technologie Informatyczne -XII UNIX i jego środowisk I Open Source i licencje Open Source i licencje A. Matuszak (18) Technologie Informatyczne -XII UNIX i jego środowisk
I Open Source i licencje Licencje zamknięte (proprietary) BOX, itunes, YouTube shareware public domain swobodne (wolnościowe free speech not free beer!) Acrobat Reader jest darmowy ale zamknięty! Prawa autorskie A. Matuszak (19) Technologie Informatyczne -XII UNIX i jego środowisk I Open Source i licencje Obie strony grają nieuczciwie! A. Matuszak (20) Technologie Informatyczne -XII UNIX i jego środowisk
I 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 Open Source A. Matuszak (21) Technologie Informatyczne -XII UNIX i jego środowisk I Open Source i licencje public domain open source (non-free) open source (free) GNU BSD Free Academic Licence Free Artistic Licence Mozilla...... A. Matuszak (22) Technologie Informatyczne -XII UNIX i jego środowisk
I Open Source i licencje Gnu swobodny dostęp do kodu źródłowego swoboda korzystania z oprogramowania do celów niekomercyjnych i komercyjnych możliwa sprzedaż oprogramowania ograniczenia w wykorzystaniu kodu źródłowego (infekcyjność) GPL, LGPL A. Matuszak (23) Technologie Informatyczne -XII UNIX i jego środowisk I Open Source i licencje Ekonomia darmowego oprogramowania Apache (bezpieczeństwo: back doors) Firefox Gimp (Photoshop) integracja niezawodność A. Matuszak (24) Technologie Informatyczne -XII UNIX i jego środowisk
I A. Matuszak (25) Technologie Informatyczne -XII UNIX i jego środowisk I Środowisko UNIXa Zestaw prostych (koncepcyjnie) klocków. A. Matuszak (26) Technologie Informatyczne -XII UNIX i jego środowisk
I Strumień a x k l l e q t 1 @ c. a Przekierowania i potoki A. Matuszak (27) Technologie Informatyczne -XII UNIX i jego środowisk I prog > plik wyjście skieruj do pliku prog < plik czytaj dane z pliku prog <plik1 > plik2 prog >> 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 -XII UNIX i jego środowisk
I proste narzędzia cat cat plik1 plik2 echo echo Ala ma asa more more plik head, tail head -21 plik sort sort -k 1 plik uniq expr expr 3 + 2... tr grep tr A. Matuszak (29) Technologie Informatyczne -XII UNIX i jego środowisk I echo Ala ma asa AlX YX XsX echo Ala ma asa ALA MA ASA echo Ala ma asa Al s tr am XY tr a-z A-Z tr -d am A. Matuszak (30) Technologie Informatyczne -XII UNIX i jego środowisk
I grep grep myfunc myprog.c Wyrażenia regularne: prototyp grep myfunc([^)]*); myprog.c definicja grep myfunc([^)]*)\{ myprog.c A. Matuszak (31) Technologie Informatyczne -XII UNIX i jego środowisk I Minijęzyki sed awk A. Matuszak (32) Technologie Informatyczne -XII UNIX i jego środowisk
I sed sed /Ala ma asa/d sed s/float/double/ sed s/float/double/g awk A. Matuszak (33) Technologie Informatyczne -XII UNIX i jego środowisk I Funkcja w języku C jest równoważna... $1 $2 $3 $4 $5 $6 $7 IF war($1) THEN Zrób To war($1) { Zrób To } IF war($2) THEN Zrób Tamto war($2) { Zrób Tamto } {print $1,$2,$4} $1>20 {print $2*$4} /myfunc/ {print $2,$4} A. Matuszak (34) Technologie Informatyczne -XII UNIX i jego środowisk
I 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 -XII UNIX i jego środowisk