Powłoki systemu operacyjnego i interpretery
Transkrypt
Powłoki systemu operacyjnego i interpretery
Powłoki systemu operacyjnego UNIX Lisp Python Powłoki systemu operacyjnego i interpretery Bogdan Kreczmer [email protected] Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Zaawansowane metody programowania c Copyright2010 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ą. Zaawansowane metody programowania Powłoki systemu operacyjnego i intepretery Powłoki systemu operacyjnego UNIX Lisp Python Niniejsza prezentacja została wykonana przy użyciu systemu składu PDFLATEX oraz stylu beamer, którego autorem jest Till Tantau. Strona domowa projektu Beamer: http://latex-beamer.sourceforge.net Zaawansowane metody programowania Powłoki systemu operacyjnego i intepretery Powłoki systemu operacyjnego UNIX Lisp Python 1 Powłoki systemu operacyjnego UNIX Trochę historii 2 Lisp Podstawowe cechy 3 Python Podstawowe cechy c Copyright2010 BK Zaawansowane metody programowania Powłoki systemu operacyjnego i intepretery Powłoki systemu operacyjnego UNIX Lisp Python Trochę historii 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. c Copyright2010 BK Zaawansowane metody programowania Powłoki systemu operacyjnego UNIX Lisp Python Trochę historii Powłoka Bourne’a 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. c Copyright2010 BK Zaawansowane metody programowania Powłoki systemu operacyjnego UNIX Lisp Python Trochę historii Powłoka Bourne’a 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. c Copyright2010 BK Zaawansowane metody programowania Powłoki systemu operacyjnego UNIX Lisp Python Trochę historii 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 via . 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. c Copyright2010 BK Zaawansowane metody programowania Powłoki systemu operacyjnego UNIX Lisp Python Trochę historii Powłoka csh 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 ( ˜ ). c Copyright2010 BK Zaawansowane metody programowania Powłoki systemu operacyjnego UNIX Lisp Python Trochę historii Powłoka csh 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. c Copyright2010 BK Zaawansowane metody programowania Powłoki systemu operacyjnego UNIX Lisp Python Trochę historii 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. c Copyright2010 BK Zaawansowane metody programowania Powłoki systemu operacyjnego UNIX Lisp Python Trochę historii 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). c Copyright2010 BK Zaawansowane metody programowania Powłoki systemu operacyjnego UNIX Lisp Python Trochę historii Pojawiły się jednak problemy :-O Powłoka Korna (ksh) była początkowow produktem komercyjnym i licencjonowanym. Kod powłoki był zamknięty. c Copyright2010 BK Zaawansowane metody programowania Powłoki systemu operacyjnego UNIX Lisp Python Trochę historii 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. c Copyright2010 BK Zaawansowane metody programowania Powłoki systemu operacyjnego UNIX Lisp Python Trochę historii 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. c Copyright2010 BK Zaawansowane metody programowania Powłoki systemu operacyjnego UNIX Lisp Python Trochę historii Inne powłoki 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. c Copyright2010 BK Zaawansowane metody programowania Powłoki systemu operacyjnego UNIX Lisp Python Trochę historii Inne powłoki 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 Lisp. Cechami charakterystycznymi jest bardzo oszczędne wykorzystanie pamięci. c Copyright2010 BK Zaawansowane metody programowania Powłoki systemu operacyjnego UNIX Lisp Python Podstawowe cechy Lisp Lisp – (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. Lisp jest realizacją idei tworzenia praktycznej notacji matematycznej w programowaniu komputerów. Najpopularniejsze dialekty: Common Lisp, Scheme c Copyright2010 BK Zaawansowane metody programowania Powłoki systemu operacyjnego UNIX Lisp Python Podstawowe cechy Python Python – głównym twórcą tego języka jest Guido van Rossum. Pierwszą implementację języka rozpoczął w grudniu 1989. Python jest językiem interpretowalnym ogólnego przeznaczenia. Wspiera kilka paradygmatów programowania: programowanie strukturalne, programowanie funkcyjne, programowanie obiektowe. c Copyright2010 BK Zaawansowane metody programowania Powłoki systemu operacyjnego UNIX Lisp Python I to już koniec. c Copyright2010 BK Zaawansowane metody programowania Powłoki systemu operacyjnego i intepretery