Powłoki systemu operacyjnego i interpretery Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2010 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu dotyczącego programowania obiektowego. Jest on udostępniony pod warunkiem wykorzystania wyłącznie do własnych prywatnych potrzeb i może on być kopiowany wyłącznie w całości, razem z niniejszą stroną tytułową. Powłoki systemu operacyjnego i intepretery
Niniejsza prezentacja została wykonana przy użyciu systemu składu PDFL A TEX oraz stylu beamer, którego autorem jest Till Tantau. Strona domowa projektu Beamer: http://latex-beamer.sourceforge.net Powłoki systemu operacyjnego i intepretery
1 Powłoki systemu operacyjnego UNIX 2 Podstawowe cechy 3 Podstawowe cechy Powłoki systemu operacyjnego i intepretery
Na początku był system operacyjny... sh (shell) powłoka stworzona przez Stephen Bourne w Laboratorium AT&T Bell Laboratories. Pierwsze jej wydanie miało miejsce w 1977. Stał się on powłoką 7 wersji systemu UNIX. Zastąpiła ona wcześniejszą powłokę Thompson.
Powłoka Bourne a Powłoki systemu operacyjnego UNIX Ważniejsze założenia będące podstawą konstrukcji powłoki Bourne a: Wprowadzenie możliwości programowania poprzez pisanie skryptów. Możliwość tworzenia zmiennych. Umożliwienie wykorzystywania skryptów jako powłoki. Brak limitu na tworzone napisy w trakcie działania skryptu.
Powłoka Bourne a Powłoki systemu operacyjnego UNIX Ważniejsze założenia będące podstawą konstrukcji powłoki Bourne a: Wprowadzenie możliwości programowania poprzez pisanie skryptów. Możliwość tworzenia zmiennych. Umożliwienie wykorzystywania skryptów jako powłoki. Brak limitu na tworzone napisy w trakcie działania skryptu. Ważniejsze wady: Sposób edycji linii komend nieprzyjazny dla użytkownika. Składnia skryptów przypominała bardziej ALGOL niż C. Brak wbudowanych mechanizmów obliczania wyrażeń arytmetycznych.
Aby użytkownikom żyło się lepiej... csh (shell) powłoka stworzona przez Bill Joy studenta Uniwersytetu Berkeley. Została ona wykorzystana w drugim wydaniu BSD UNIX (1978). Bill Joy (William Nelson Joy) był również twórcą edytora vi a. Powstał on w 1976 dla wczesnej wersji BSD UNIX. Miał też znaczący udział w stworzeniu NFS (Network File System) BSD UNIX jest podstawą aktualnie rozwijanych dystrybucji takich jak FreeBSD, OpenBSD, NetBSD. Mac OS X jest również oparty na tej technologii. Jądrem sytemu Mac OS X jest NeXTSTEP (obiektowo zorientowany system operacyjny rozwinięty przez firmę NeXT, której właścicielem był Steve Jobs). Zawiera on fragmenty systemów FreeBSD i NetBSD. a Anegdota mówi, że Joy napisał edytor vi w jeden weekend. On sam temu zaprzecza.
Powłoka csh Powłoki systemu operacyjnego UNIX Zalety powłoki csh Większe udogodnienia dla użytkownika. Możliwość odwoływania się do historii poleceń i ich edycji, Składnia skryptów jest zbliżona do języka C, Aliasy, Kontrola zadań (zawieszanie poprzez Ctrl-Z), Skrócona notacja śicieżki do kartoteki domowej ( ).
Powłoka csh Powłoki systemu operacyjnego UNIX Ważniejsze wady: Nie było gwarancji, że csh będzie na każdym systemie, dlatego częściej do pisania skryptów był wybierany sh, Niespójność składni, np. różnice dla poleceń set, setenv i alias, Brak funkcji, Brak możliwości niezależnego manipulowania deskryptorem stdio, Gramatyka języka nie jest w pełni rekurencyjna.
Aby ponownie wysunąć się na czoło ksh (Korn shell) powłoka stworzona przez Davida Korna w Laboratorium AT&T Bell Laboratories. Jej pierwsze wydanie pojawiło się we wczesnych latach 1980-tych. Zachowuje wsteczną kompatybilność z sh i implementuje udogodnienia, które pojawiły się w csh.
Aby zapanawała przenośność... POSIX (Portable Operating System Interface for UNIX) Jako standard dla interfejsu linii komendy oraz skryptów została wybrana powłoka Korna (ksh).
Pojawiły się jednak problemy :-O Powłoka Korna (ksh) była początkowow produktem komercyjnym i licencjonowanym. Kod powłoki był zamknięty.
I narodził się Linux Powłoka Korna (ksh) była początkowow produktem komercyjnym i licencjonowanym. Kod powłoki był zamknięty. Szybki rozwój Linuksa, który był oparty na wolnym oprogramowania. Brak możliwości korzystania z wygodnej powłoki.
A nieco później powstał bash bash (Bourne-again shell) powłoka stworzona przez Briana Foxa i dla projektu GNU. Wydanie wersji bety nastąpiło 7 czerwcu 1989. Napisany został w języku C.
Inne powłoki Powłoki systemu operacyjnego UNIX tcsh stworzył ją Ken Greer (Carnegie Mellon University), jej powstanie datuje się na późnie lata 70-te. Litera T pochodzi od nazwy systemu operacyjnego TENEX, który był inspiracją dla Greera. ash autorem powłoki jest Kenneth Almquist. Jest ona zgodna z powłoką Bourne a. Stworzona była dla systemów NetBSD, Cechą charakterystyczną jest lepsza obsługa programu INN, który służy do wymiany artykułów w grupach dyskusyjnych. ash jest domyślną powłoką dla środowiska Cygwin.
Inne powłoki Powłoki systemu operacyjnego UNIX zsh utworzył ją Paul Falstad w 1990. Był wtedy studentem Princeton University. Nazwa pochodzi od loginu profesora Zhong Shao z Yale, który w tym czasie pracował w Princeton. Powłoka oferuje obsługę bardzo dużej ilości symboli wieloznacznych, wypisów zawartości katalogu itp. esh (easy shell) Składnia poleceń i skryptów jest zbliżona do składni języka. Cechami charakterystycznymi jest bardzo oszczędne wykorzystanie pamięci.
Powłoki systemu operacyjnego UNIX Podstawowe cechy (LISt Processing) Pierwsza specyfikacja pojawiła się w 1958. Jest to jeden z najstarszych języków programowania wysokiego poziomu. Starszym od niego jest jedynie Fortran. jest realizacją idei tworzenia praktycznej notacji matematycznej w programowaniu komputerów. Najpopularniejsze dialekty: Common, Scheme
Powłoki systemu operacyjnego UNIX Podstawowe cechy głównym twórcą tego języka jest Guido van Rossum. Pierwszą implementację języka rozpoczął w grudniu 1989. jest językiem interpretowalnym ogólnego przeznaczenia. Wspiera kilka paradygmatów programowania: programowanie strukturalne, programowanie funkcyjne, programowanie obiektowe.
I to już koniec. Powłoki systemu operacyjnego i intepretery