Wstęp do systemu GNU/Linux
Transkrypt
Wstęp do systemu GNU/Linux
Koło Naukowe PJ Linux User Group serdecznie wita wszystkich przybyłych na spotkanie Wstęp do systemu GNU/Linux Gdzie to się zaczęło, dlaczego warto i jak z tego skorzystać WARSZAWA, 10 MARCA 2009 Czym się dziś będziemy zajmować Ewolucja systemów uniksopodobnych Właściwości Linuksa i różnice względem Windowsa Instalacja Linuksa na wirtualnej maszynie Pierwsze kroki w Linuksie Ale najpierw… Poznajmy się ;-) Drzewo genealogiczne Bell Labs – tutaj wszystko się zaczęło Oddział AT&T, od 1996 znany jako Lucent Technologies 1947: Bardeen, Shockley i Brattain - pierwszy tranzystor, Nagroda Nobla (1956) 1969: narodziny Uniksa (Ken Thompson i Dennis Ritchie) 1972: Język C (Dennis Ritchie) 1983: Język C++ (Bjarne Stroustrup) Mało? laser, fotokomórka, elektroniczna centrala telefoniczna, telekomunikacja satelitarna, procesor optyczny, stereofoniczny zapis dźwięku …czyli wszystko, co dobre ;-) Rozwój Uniksa 1969 – system dla komputerów PDP firmy DEC 1973 – przepisanie z assemblera na język C Unix poszedł pod prąd. Mówiono wtedy: "that something as complex as an operating system, which must deal with time-critical events, had to be written exclusively in assembly language” znaczny wzrost przenośności PDP – pierwszy komputer z Uniksem Rozwój Uniksa c.d. 1976: Biblia Uniksowców: Lion’s Book John Lions - Uniwersytet Nowej Południowej Walii Część pierwsza zawierała pełny listing kodu 6 edycji Uniksa Część druga była komentarzem wiersz po wierszu do zamieszczonego kodu. (!!!) furora wśród hackerów, nielegalnie kopiowana (bardzo restrykcyjna licencja) Rozwój Uniksa c.d. 1982: komercyjna wersja Unix System III (bazująca na 7-mej edycji Uniksa) powoduje powstanie alternatywnego nurtu – BSD. Lata 80-te i 90-te: Unix Wars BSD (Net-, Open-, Free-), SunOS, Solaris, Xenix, NextStep, HPUX, AIX, UnixWare, IRIX… AAAaaa! Wojny Uniksowe Tak naprawdę, to było tak: Uniksem być – filozofia Small is beautiful. Make each program do one thing well. Build a prototype as soon as possible. Choose portability over efficiency. Store data in flat text files. Use software leverage to your advantage. (reuse) Use shell scripts to increase leverage and portability. Avoid captive user interfaces. Make every program a filter. (input-output) Art Of Unix Programming Rule of Modularity: Write simple parts connected by clean interfaces. Rule of Clarity: Clarity is better than cleverness. Rule of Composition: Design programs to be connected to other programs. Rule of Separation: Separate policy from mechanism; separate interfaces from engines. Rule of Simplicity: Design for simplicity; add complexity only where you must. Rule of Parsimony: Write a big program only when it is clear by demonstration that nothing else will do. Rule of Transparency: Design for visibility to make inspection and debugging easier. Rule of Robustness: Robustness is the child of transparency and simplicity. Rule of Representation: Fold knowledge into data so program logic can be stupid and robust. Rule of Least Surprise: In interface design, always do the least surprising thing. Rule of Silence: When a program has nothing surprising to say, it should say nothing. Rule of Repair: When you must fail, fail noisily and as soon as possible. Rule of Economy: Programmer time is expensive; conserve it in preference to machine time. Rule of Generation: Avoid hand-hacking; write programs to write programs when you can. Rule of Optimization: Prototype before polishing. Get it working before you optimize it. Rule of Diversity: Distrust all claims for "one true way". Rule of Extensibility: Design for the future, because it will be here sooner than you think. O Uniksie powiedziano "Unix is simple. It just takes a genius to understand its simplicity." – Dennis Ritchie "UNIX was not designed to stop its users from doing stupid things, as that would also stop them from doing clever things." – Doug Gwyn "Unix never says 'please'." – Rob Pike "Unix is user-friendly. It just isn't promiscuous about which users it's friendly with." – Steven King "Those who don't understand UNIX are condemned to reinvent it, poorly." – Henry Spencer Projekt GNU GNU’s Not UNIX 27 września 1983: ogłoszenie prac nad systemem GNU (1986 – Manifest GNU) – Richard Stallman m.in: GNU C Compiler, GNU Binary Utilities, GNU C Library „Free software is a matter of liberty, not price. To understand the concept, you should think of free as in free speech, not as in free beer.” Wolne Oprogramowanie – m.in. GPL The freedom to run the program, for any purpose (freedom 0). The freedom to study how the program works, and adapt it to your needs (freedom 1). Access to the source code is a precondition for this. The freedom to redistribute copies so you can help your neighbor (freedom 2). The freedom to improve the program, and release your improvements (and modified versions in general) to the public, so that the whole community benefits (freedom 3). Access to the source code is a precondition for this. Wolne Oprogramowanie a Open Source Każde Wolne Oprogramowanie jest Open Source, ale nie każde Open Source jest Wolnym Oprogramowaniem Open Source DRM? Tak, ale to nie WO! Open source is a development methodology; free software is a social movement Neutralnie: FLOSS (Free Libre/Open Source Software) Wszystko super, ale nie mamy jajka! Hurra, GNU Hurd jądrem systemu! … tylko, że ma mnóstwo bugów, długą listę braków i stosunkowo niewielką liczbę developerów… … którzy dołączyli do pewnego pana rozwijającego jądro podobne do Miniksa. Jądro Linux 17 września 1991: Linus Torvalds publikuje pierwszą wersję Linuksa dla PC Wykorzystanie narzędzi GNU, aby wydać pełny system i tak powstaje GNU/Linux System GNU/Linux Cechy systemu GNU/Linux Opis GNU/Linux Windows GUI Serwer X + Window Managery Aero Konsola Shell (bash, csh, sh, zsh) SSH, IPSec cmd, porty linuksowe, Telnet + IPSec Źródła Wolne Oprogramowanie Zamknięte Systemy plików Ext2, Ext3, Reiser4 i inne FAT, NTFS Zarządzanie apt, emerge, yum, rpm, źródła, oprogramowaniem repozytoria Binarki, czasem źródła, Citrix, Wirusy Znikome zagrożenie 10 sek survival na Neo Elastyczność Wszystko można wymienić, dostosować ograniczona do API Przenośność Systemy wbudowane, klastry, smartphone’y smartphone’y, PDA Wsparcie Komercyjne, wiele inicjatyw oddolnych (jak np. ten LUG) Komercyjne, programy partnerskie (SP), ELMS Zobaczmy to na własne oczy Źródła i polecane linki Obrazki pochodzą z Wikipedii, niektóre zostały nieco uproszczone (http://pl.wikipedia.org) Eseje Erica S Raymonda: http://www.catb.org/~esr/writings/ Publikacje Free Software Foundation (http://www.gnu.org/philosophy/philosophy.pl.html) Lion’s Book: http://www.amazon.com/Lions-Commentary-UnixJohn/dp/1573980137 Linux vs Windows – porównanie (2004): http://www.michaelhorowitz.com/Linux.vs.Windows.html GNU/Linux Debian – strona domowa: http://www.debian.org/ Jądro Linux: http://www.kernel.org/