2583
SVEUČILIŠTE U SPLITU STRUČNI STUDIJ RAČUNARSTVA – ZAGREB prof. Pavle Špoljarić Programski alati na Unix računalima ZBORNIK SEMINARSKIH RADOVA 2005/2006 Dražen Hudoletnjak • Dario Miočić • Marijela Napast • Andrija Martinović Marko Bošnjak Mehmetović • Hrvoje Hrašek • Marko Pintač • Siniša Julijan Marko Vuković • Marijana Ladan-Pelivanović • Predrag Jovanović • Manuel Vidonis Zoran Zoričić • Ida Golubić • Dragutin Markulin • Mario Strinić • Matko Pejčić Maja Mehinagić • Nina Žugaj • Tomislav Ščrbak • Franjo Grgec • Ivan Manić Svjetlana Vedernjak • Frane Gjeldum • Željko Jurković • Goran Grdenić • Dragan Micić Vitko Stanšec • Matija Mikšec • Davorin Šajnović • Zdravko Smenderovac • Nijaz Ćesir Domagoj Milaković • Branimir Živković • Tomislav Grgec • Krešimir Hećimović Janko Rade • Marko Ferk • Rustem Galioulline • Alen Cikač • Yasser Alkhalil • Damir Jajetić Tomislav Domanovac • Marni Minauf • Nenad Cuca • Ivan Podhraški • Maja Žugaj Željko Šafar • Damir Šćuric • Goran Jurišić • Krasnodar Krajnik • Vedran Deduš Vanja Harambuša • Krunoslav Zeman • Boris Ivanišević • Igor Čopec • Matija Čupen Saša Dragić • Ivan Brčić Neven Kmetić • Majk Jednaković • Jurica Božiković Usama Kalit • Ivica Fadljević • Igor Novaković • Antun Brezak • Marinko Šimić Nikolina Javor • Maja Hudorović • Goran Vlahović • Goran Vulić • Adrijana Bazina Ivan Legin • Daniel Van Schepdael • Vinko Horvatinčić • Dubravko Flis • Dario Dugić Zvonimir Janković • Jakov Mihaljević • Daniel Novak • Adriana Mihinec • Domagoj Švegelj Darko Drezga • Berislav Biljaković • Josip Baćani • Tomislav Brebrić • Marina Petrovska • Dario Benko • Amir Kos • Tamara Krutman • Ante Penava • Mirjana Divčić • Ana Babić Marijan Poljak • Nino Knez • Damir Kolić • Igor Rubinić • Martin Fresl • Željko Gobac • Viktorija Karamarković • Vanja Kramarić • Josip Špendić • Lana Večerić • Ivan Skoković Kristijan Živčec • Goran Curkovečki • Tomislav Jagić • Marina Bračun • Elizabeta Velkavrh • Alja Pavlić-Ravšer • Eliot Karlo Pavletić • Marija Bilić • Marija Rešetar • Saša Protulipac • Čelebić Gorana • Siniša Mudrinić • Igor Kutanjec • Franjo Bubalo Zagreb, 2006.

Zbornik seminarskih radova 2007

Embed Size (px)

Citation preview

SVEUILITE U SPLITU STRUNI STUDIJ RAUNARSTVA ZAGREB

prof. Pavle poljari

Programski alati na Unix raunalima

ZBORNIK SEMINARSKIH RADOVA 2005/2006Draen Hudoletnjak Dario Mioi Marijela Napast Andrija Martinovi Marko Bonjak Mehmetovi Hrvoje Hraek Marko Pinta Sinia Julijan Marko Vukovi Marijana Ladan-Pelivanovi Predrag Jovanovi Manuel Vidonis Zoran Zorii Ida Golubi Dragutin Markulin Mario Strini Matko Peji Maja Mehinagi Nina ugaj Tomislav rbak Franjo Grgec Ivan Mani Svjetlana Vedernjak Frane Gjeldum eljko Jurkovi Goran Grdeni Dragan Mici Vitko Stanec Matija Mikec Davorin ajnovi Zdravko Smenderovac Nijaz esir Domagoj Milakovi Branimir ivkovi Tomislav Grgec Kreimir Heimovi Janko Rade Marko Ferk Rustem Galioulline Alen Cika Yasser Alkhalil Damir Jajeti Tomislav Domanovac Marni Minauf Nenad Cuca Ivan Podhraki Maja ugaj eljko afar Damir uric Goran Jurii Krasnodar Krajnik Vedran Dedu Vanja Harambua Krunoslav Zeman Boris Ivanievi Igor opec Matija upen Saa Dragi Ivan Bri Neven Kmeti Majk Jednakovi Jurica Boikovi Usama Kalit Ivica Fadljevi Igor Novakovi Antun Brezak Marinko imi Nikolina Javor Maja Hudorovi Goran Vlahovi Goran Vuli Adrijana Bazina Ivan Legin Daniel Van Schepdael Vinko Horvatini Dubravko Flis Dario Dugi Zvonimir Jankovi Jakov Mihaljevi Daniel Novak Adriana Mihinec Domagoj vegelj Darko Drezga Berislav Biljakovi Josip Baani Tomislav Brebri Marina Petrovska Dario Benko Amir Kos Tamara Krutman Ante Penava Mirjana Divi Ana Babi Marijan Poljak Nino Knez Damir Koli Igor Rubini Martin Fresl eljko Gobac Viktorija Karamarkovi Vanja Kramari Josip pendi Lana Veeri Ivan Skokovi Kristijan ivec Goran Curkoveki Tomislav Jagi Marina Braun Elizabeta Velkavrh Alja Pavli-Raver Eliot Karlo Pavleti Marija Bili Marija Reetar Saa Protulipac elebi Gorana Sinia Mudrini Igor Kutanjec Franjo Bubalo

Zagreb, 2006.

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima

"...the number of UNIX installations has grown to 10, with more expected..." - Dennis Ritchie and Ken Thompson, June 1972 "... When BTL withdrew from the project, they needed to rewrite an operating system (OS) in order to play space war on another smaller machine (a DEC PDP-7 [Programmed Data Processor] with 4K memory for user programs). The result was a system which a punning colleague called UNICS (UNiplexed Information and Computing Service)--an 'emasculated Multics'; no one recalls whose idea the change to UNIX was"

2/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima Sadraj

OVAJ ZBORNIK JE POD OPOM GNU LICENCOM OPISANOM U 1. POGLAVLJU(GNU FILOZOFIJA I GNU LICENCA)

3/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima Sadraj

Sadraj1. 2. 3. 4. 5. 6. 7. 8. 9. GNU FILOZOFIJA I GNU LICENCA (Draen Hudoletnjak) POVIJEST I NASTANAK UNIX-a (Dario Mioi) STRUKTURA UNIXA (Marijela Napast) SHELL (Andrija Martinovi) UNIX COMMAND LINE (Marko Bonjak Mehmetovi, Hrvoje Hraek) Unix COMMAND LINE 2 (Marko Pinta) SH I BASH (Sinia Julijan) BASH ADVANCED SHELL PROGRAMIRANJE (Marko Vukovi) C SHELL, T C-SHELL (Marijana Ladan-Pelivanovi)

7 31 57 70 100 145 197 236 250 277 299 334 356 373 406 416 448 469 488 524 541 567 598 628

10. SHELL PROGRAMIRANJE (SHELL I BASH) (Predrag Jovanovi) 11. REGEX (Manuel Vidonis, Zoran Zorii) 12. SHELL ALATI ZA RAD SA TEKSTOM (Ida Golubi, Dragutin Markulin) 13. VI EDITOR (Mario Strini) 14. EMACS (Matko Peji) 15. LOGIN I ID (Maja Mehinagi) 16. TELNET I SSH (Nina ugaj) 17. PGP I CA AUTHORITY (Tomislav rbak) 18. KERBEROS (Franjo Grgec, Ivan Mani) 19. CRON I AT (Svjetlana Vedernjak) 20. ARHIVIRANJE NA UNIX RAUNALIMA (Frane Gjeldum) 21. BOOT & SHUTDOWN (eljko Jurkovi) 22. INIT PROGRAM (Goran Grdeni, Dragan Mici) 23. LILO i GRUB (Vitko Stanec, Matija Mikec) 24. UNIX DEVICES, MOUNTING DEVICES (Davorin ajnovi) 25. PARTICIONIRANJE I TIPOVI FILE SYSTEMA (Zdravko Smenderovac, Nijaz esir )

650 670 699 726 752

26. STANDARDNA STRUKTURA DIREKTORIJA (Domagoj Milakovi) 27. AWK I SED (Branimir ivkovi) 28. SED (Tomislav Grgec) 29. GCC COMPILER (Kreimir Heimovi)

4/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima Sadraj

30. GDB, THE GNU SOURCE LEVEL DEBUGGER (Janko Rade) 31. GNU MAKE (Marko Ferk) 32. GNU MAKE (Rustem Galioulline) 33. PROGRAM PROFILING (Alen Cika, Yasser Alkhalil) 34. CVS SUSTAV ZA VERZIONIRANJE (Damir Jajeti, Tomislav Domanovac) 35. SUBVERSION SUSTAV ZA VERZIONIZIRANJE (Marni Minauf, Nenad Cuca)

774 792 826 865 906

946 990 1005 1034 1056 1088 1116 1140 1159 1169 1188 1215 1273 1293 1305 1369 1406 1429 1469 1501 1538 1598 1619 1661 1679 1689

36. IDE (Ivan Podhraki) 37. ECLIPSE (Maja ugaj, eljko afar, Damir uric) 38. PIPE I FIFO (Goran Jurii) 39. FORK (Krasnodar Krajnik) 40. PROCESI I UPRAVLJANJE PROCESIMA (Vedran Dedu, Vanja Harambua) 41. SIGNALI (Krunoslav Zeman) 42. FILE, DIRECTORY AND INODE PROGRAMMING (Boris Ivanievi) 43. FORK PROCESI (Igor opec) 44. SOCKETS, UNIX DOMAIN, NETWORK (Matija upen) 45. TCP/IP (Saa Dragi) 46. TCP/IP API (Ivan Bri, Neven Kmeti) 47. UDP-USER DATAGRAM PROTOKOL (Majk Jednakovi) 48. INETD I TCPD (Jurica Boikovi) 49. IP TABLES (Usama Kalit) 50. NETWORK DEVICES I IP NAREDBE (Ivica Fadljevi, Igor Novakovi) 51. QOS (Antun Brezak, Marinko imi) 52. LINUX FIREWALL (Nikolina Javor, Maja Hudorovi) 53. INTERNET SERVICES (Goran Vlahovi) 54. LDAP (Goran Vuli) 55. DNS I DHCP (Adrijana Bazina, Ivan Legin) 56. DNS I DHCP (Daniel Van Schepdael) 57. BIND9 (Vinko Horvatini, Dubravko Flis) 58. RPC REMOTE PROCEDURE CALL (Dario Dugi) 59. RLOGIN RSH (Zvonimir Jankovi) 60. X WINDOW SYSTEM (Jakov Mihaljevi)

5/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima Sadraj

61. WINDOW MANAGER (Daniel Novak) 62. KDE (Adriana Mihinec, Domagoj vegelj) 63. GTK (Darko Drezga, Berislav Biljakovi) 64. GNOME (Josip Baani, Tomislav Brebri) 65. UNIX DESKTOP SYSTEM (Marina Petrovska) 66. INTERNET HISTORY (Dario Benko) 67. UVOD U PERL (Amir Kos) 68. PERL Practical Extraction and Report Language (Tamara Krutman,Ante Penava) 69. PHP (Mirjana Divi) 70. PYTHON (Ana Babi) 71. INTERPRETERI TCL/TK (Marijan Poljak) 72. NASTANAK LINUXA (Nino Knez, Damir Koli) 73. PHP vs. PERL (Igor Rubini) 74. MYSQL (Martin Fresl, eljko Gobac, Viktorija Karamarkovi) 75. POSTGRESQL (Vanja Kramari, Josip pendi, Lana Veeri) 76. APACHE - WEB SERVER (Ivan Skokovi) 77. APACHE (Kristijan ivec, Goran Curkoveki) 78. SAMBA (Tomislav Jagi, Marina Braun) DISTRIBUCIJE LINUX-a / UNIX -a 79. (Elizabeta Velkavrh, Alja Pavli-Raver, Eliot Karlo Pavleti) 80. SAMBA I NFS (Marija Bili) 81. RPM i DEB PAKETI (Marija Reetar) 82. KOMPAJLIRANJE KERNELA (Saa Protulipac) 83. WIKIPEDIJA (elebi Gorana, Sinia Mudrini) 84. AJAX (Igor Kutanjec, Franjo Bubalo)

1698 1737 1781 1815 1883 1910 1927 1984 2031 2070 2105 2146 2158 2190 2241 2288 2319 2368

2411 2422 2472 2492 2524 2542

6/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima GNU filozofija i GNU licenca

Draen Hudoletnjak

GNU FILOZOFIJA I GNU LICENCA

7/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima GNU filozofija i GNU licenca

UVODPria o GNU-u poinje otprilike 1971. sa Richardom Stallmanom koji je tada poeo raditi za MIT na njihovom Artificial Intelligence Lab (Labaratorij za Umjetnu Inteligenciju). Tamo je postao dio "software-sharing" zajednice koja je ve postojala mnogo godina. Razmjena softvera je bilo neto to je staro kao i sama raunala i u to doba je to bila normalna stvar, pomo kolegi. No oni su otili korak dalje. AI Lab je koristio operacijski sustav ITS (the Incompatible Timesharing System) kojeg su dizajnirali i u assembleru napisali njihovi programeri (hakeri *) za Digitalov PDP-10. Kao dio tima Stallmanov posao je bio poboljavanje tog sustava. Oni svoj softver tada jo nisu zvali "slobodan softver" (free software) jer taj termin tada nije postojao ali u biti je to bio, jer kad god bi netko sa nekog drugog sveuilita ili neke kompanije elio portati i koristiti njihov program, oni su im to dopustili. Ideja je bila, ako netko koristi nekakav nepoznat i zanimljiv program, uvijek ga moe traiti da vidi njegov izvorni kod (source code) kako bi ga mogao itati, mijenjati ili uzeti dijelove tog programa i iskoristiti ih za neki novi program. No situacija se je drastino promijenila poetkom 80-tih kad je Digital prestao proizvoditi PDP-10 seriju. Njegova arhitektura, koja je bila elegantna i mona u 60-tima se nije mogla "prirodno" proiriti da koristi vei adresni prostor koji je bio primjenjiv u 80-tima. To je znailo da je gotovo sav softver koji radi pod ITS-om postao neupotrebljiv. Neto prije toga hakerska zajednica IT Laba se raspala. 1981. osnovana je tvrtka Symbolics koja je zaposlila gotovo sve hakere iz AI Laba tako da preostala zajednica nije mogla funkcionirati. Kad je 1982. AI Lab kupio novi PDP-10, njihovi administratori su se odlucili za Digitalov operacijski sustav umjesto ITS-a. Moderna raunala toga doba (VAX, 68020) su imali svoje operacijske sustave ali nijedan od njih nije bio slobodan softver. Za svaki, makar dobili samo izvrnu datoteku, morao se je potpisati obvezujui ugovor. To je znailo da je prvi korak u koritenju raunala obeanje da nee pomoi svom susjedu. Pravilo koje su uveli tvorci "vlasnikog" softvera bilo je, "Ako dijeli softver sa susjedom, pirat si. Ako eli bilo to promijeniti, moli nas da ti to napravimo". To je neto to se Stallmanu nikako nije svialo i naao se je pred moralnom dvojbom. Prikljuiti se svijetu "vlasnikog" softvera i potpisati obvezujui ugovor kojim obeaje da nee pomagati kolegama ili potpuno napustiti raunalni svijet i raditi neto drugo. Umjesto toga, kao pravi programer traio je neko tree rijeenje. Razmiljao je da li postoji neki program ili programi koje bi on mogao napisati da zajednica ponovno oivi. Zakljuio je da mu za poetak treba operacijski sustav jer je to kljuni program za koritenje nekog

8/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima GNU filozofija i GNU licenca

raunala. Sa slobodnim operacijskim sustavom ponovno se je mogla osnovati zajednica hakera koji bi slobodno suraivali i izmjenjivali svoje ideje. Zajednica kojoj bi se svatko mogao pridruiti. Obzirom da je on do tada radio na razvoju operacijskih sustava, imao je znanja i iskustva da to napravi a osjeao se i izabranim za taj posao. Odluio je napraviti OS kompatibilan sa Unixom kako bi bio prenosiv i kako bi dotadanji korisnici Unixa mogli lako prijei na njega. Sljedei hakersku filozofiju odabrao je ime GNU, kao rekurzivno za "GNU Nije Unix" (GNU's Not Unix). Shvatio je da naziv "operacijski sustav" ne znai samo kernel ve da to ime ukljuuje i dodatne stvari kao to su komandne linije, assembleri, kompajleri, interpreteri, debuggeri, tekst editori i jo mnogo toga. Budui da su tadanji operacijski sustavi (ITS, Multics, VMS, Unix) imali sve to, on je odluio da i GNU mora imati sve to. Znajui tono to hoe, u sijenju 1984. dao je otkaz na MIT-u i poeo pisati GNU softver. Odlazak iz MIT-a je je bio nuan jer da je ostao, MIT je mogao GNU proglasiti svojim proizvodom i time bi Stallmanova ideja o slobodnom operacijskom sustavu pala u vodu kao i ponovno oivljavanje hakerske zajednice. Sreom, profesor Winston, tadanji ef MIT AI Laba je dozvolio Stallmanu da nastavi koristiti njihove labose i njihovu opremu. Time je GNU operacijski sustav od nekakve same ideje postao stvaran projekt i moe se rei da je to stvarni poetak svega vezanog uz GNU.

* Rije haker (hacker) u znaenju "onaj koji probija zastite" je pogreka koju su stvorili mediji i koji taj pojam pogreno koriste. Pravi hakeri ne priznaju to znaenje. Po njima je haker onaj koji voli programirati i uiva u tome. Zato ja u tekstu dalje koristim i koristiti u taj pojam za to, pozitivno znaenje.

9/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima GNU filozofija i GNU licenca

GNU OS PoetciKratko prije nego je zapoeo GNU projekt, Stallman je uo za "Free University Compiler Kit" poznat takoer i pod nazivom "VUCK". Taj kompajler je podravao vie programskih jezika, ukljuujui C i Pascal te je imao podrku za razne platforme. Stallman je kontaktirao autora VUCK-a i pitao ga moe li dodati taj kompajler u GNU projekt. Odgovor je bio negativan. Stoga je Stallman odluio da prvi program kojeg e napraviti bude viejezini (multi-language), vieplatformni (multi-platform) kompajler. Nadajui se da nee sam morati napisati cijeli kompajler, nabavio je source kod Pastel kompajlera. To je bio vieplatformski kompajler napisan na Lawrence Livermore Lab-u. Podravao je i bio napisan u proirenoj verziji Pascala te bio zamiljen kao sistem-programski jezik. Stallman mu je dodao C frontend i poeo ga prebacivati na Motorolino 68000 raunalo. No morao je odustati jer je otkrio da taj kompajler treba nekoliko megabajta memorije za stack a dostupni 68000 sistemi dozvoljavaju samo 64 kB. Zbog toga je odluio iz poetka napisati svoj kompajler bez da upotrijebi ista od koda Pastel kompajlera. Uspio je jedino upotrijebiti C frontend koji je sam napisao. Taj kompajler je danas poznat kao GCC no njega je dovrio kasnije. Prije toga je radio na GNU Emacsu.

10/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima GNU filozofija i GNU licenca

GNU EmacsStallman je rad na GNU Emacsu poeo u rujnu 1984. i ve poetkom 1985. GNU Emacs je postao upotrebljiv program. To mu je omoguilo da koristi Unix sustave za editiranje bez potrebe da naui vi ili ed. Do tada je koristio druge sustave za editiranje texta.

Popularnost GNU Emacsa je rasla i Stallman se pitao kako distribuirati svoj softver. Zato ga je stavio na anonimni server na MIT-u koji je on sam koristio. No kako u to vrijeme nisu svi bili na internetu, Stallman je razmiljao kako svima omoguiti da dou do kopije Emacsa. Obzirom da nije radio traio je nain kako da zaradi novac na slobodnom softveru. Zbog toga je objavio da e poslati kopiju na traci svakome tko mu plati 150$ za nju. Time je Stallman zapoeo distribuciju slobodnog softvera, preteu dananjih kompanija koje distribuiraju cjelokupne Linux-bazirane GNU sustave.

Razvoj GNU OS-aKako je interes za koritenjem Emacsa rastao, sve vie ljudi se ukljuivalo u GNU projekt i ponovno se je javilo pitanje oko financiranja projekta. Zbog toga je 1985. osnovan Free Software Foundation (FSF). FSF je preuzela distribuciju Emacsa a kasnije je dodan i drugi slobodni softver. Takoer su poeli sa prodajom slobodnih uputstava (manuala). FSF je primala donacije, ali najvea dobit im je bila od prodaje kopija slobodnog softvera i ostalih usluga vezanih uz to. Danas FSF prodaje CD-e i DVD-e sa source kodom, izvrnim datotekama, lijepo tampanim uputstvima i sve to sa slobodom da se dalje distribuira i mijenja po elji. Zaposlenici FSF-a su napisali poveu koliinu GNU softver paketa. Dva najznaajnija su C library i shell. GNU C library je napisao Roland McGrath i to je neto to svaki program koji radi na GNU/Linuxu koristi za komunikaciju sa Linuxom (vie o Linuxu u sljedeem poglavlju). Shell koriten na GNU/Linux sistemima je BASH, (Bourne Again Shell) kojeg je napisao Brian Fox. FSF je sve to financirala jer im je najvaniji cilj bio razvoj cijelog operacijskog sustava. Temeljni cilj GNU-a je bio da bude slobodan softver. Iako GNU nije imao tehnikih prednosti pred Unixom, imao je drutvenu prednost jer je omoguavao

11/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima GNU filozofija i GNU licenca

ljudima da surauju i imao je etiku prednost jer je potivao slobodu korisnika. Naravno, obzirom da su na GNU projektu sudjelovali iskusni hakeri, koristili su standarde koji su se pokazali dobrima u praksi. Dodatno, odbacili su Unixovu filozofiju koritenja malo memorije time to nisu podrali 16 bitno adresiranje (znali su da e 32 bitni strojevi postati norma kad GNU bude dovren). Nisu se trudili smanjiti potronju memorije dokle god ne bi prelazila megabajt.

Kako je GNU projekt napredovao i sve vei broj sistemskih komponenti je naen ili napisan, napravljena je lista stvari koje jo nedostaju. Ta lista, danas poznata kao "GNU task list" je upotrebljena da se regrutiraju programeri koji e napisati dijelove koji nedostaju. Takoer su na listu dodane i neke stvari koje Unix nije imao a oni su mislili da bi potpuno kompletan sustav trebao imati. ak su i igre dodane kao kljune stvari. Vano je napomenuti da, budui da su oni GNU OS radili potpuno "od nule" da je svaki komad softvera koji je napisan bio testiran na Unixu (GNU OS jo nije postojao). To je znailo da se ve tada taj softver mogao koristiti na Unix sustavima. Druga dobra stvar je da se novi OS razvijao tako da bude potpuno kompatibilan sa Unixom. Sve to je imao Unix napisala je i GNU zajednica s time da je GNU varijanta u pravilu bila monija i pouzdanija. To je privuklo dodatne pokrovitelje i negdje oko 1990. GNU OS je bio gotovo dovren. Falila je jo samo jedna, kljuna stvar - kernel.

12/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima GNU filozofija i GNU licenca

LinuxStallmanova prvotna ideja je bila da sami razviju svoj kernel (GNU HURD). Odluili su ga implementirati kao kolekciju serverskih procesa koji se vrte na Machu. Mach je mikrokernel koji su razvili na Carnegie Mellon University i University of Utah. GNU HURD (krdo gnua) bi bila kolekcija servera koja radi na Machu i obavlja razne poslove kao Unix kernel. Jedan od razloga zbog ega je odabrana takva arhitektura je bio da se izbjegne najtei dio posla, debugiranje kernela bez debugera namijenjenog za to. Taj dio posla je u Machu ve bio obavljen a HURD servere su mogli debugirati sa GDB-om. No poetak razvoja HURD-a je kasnio jer su ekali da Mach bude izdan kao slobodan softver, kao to su im obeali a i pokazalo se da je debugiranje HURD servera koji se pokreu kao tredovi i koji meusobno komuniciraju porukama prilino teak i zahtjevan posao. Posao na HURD-u se zbog toga otegnuo godinama.

Paralelno s njima, Linus Torvalds je radio na Unix kompatibilnom kernelu kojeg je objavio na internetu 1991. godine. Nazvao ga je Linux. Negdje 1992. ukomponirali su Linux u dotad nedovreni GNU ime je stvoren komplenti slobodni operacijski sustav. Nazvali su ga GNU/Linux to predstavlja sloenicu od "kombinacija GNU sustava sa Linux kernelom". Ta verzija GNU OS-a je stekla golemu popularnost i danas ju veina ljudi poznaje samo pod imenom Linux iako je Linux samo dio tog OS-a (njegov kernel).

13/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima GNU filozofija i GNU licenca

GNU FILOZOFIJA Slobodan (free) softverKao to smo do sada vidjeli cijeli smisao GNU pokreta je ideja o slobodi. Ljudi koji stoje iza GNU pokreta smatraju da je slobodan softver stvar slobode - ljudi trebaju imati slobodu koristiti softver na bilo koji nain za koji smatraju da im je koristan. Softver se razlikuje od materijalnih objekata. Glavno je pitanje to je to slobodan softver i zato bi softver uope trebao biti slobodan?

Prema FSF-u (Free Software Foundation) slobodan softver je stvar slobode a ne cijene. (Pojam slobodan softver dolazi od engleskog "free software" a budui da u engleskom jeziku rije free ima vie znaenja, ideja je da se o rijei "free" razmilja kao u pojmu "free speech" a ne kao "free beer". U hrvatskom jeziku najblie prijevodu odgovara rije "slobodan" a ne "besplatan".)

Dakle, slobodan softver je onaj koji korisnici imaju pravo pokretati, kopirati, distribuirati, prouavati, mijenjati i poboljavati. Tonija definicija se sastoji od etiri vrste slobode koji imaju korisnici softvera: Slobodu da za bilo koju svrhu pokreu program (sloboda 0). Slobodu da proue kako program radi i prilagode ga za svoje potrebe (sloboda 1). Uvjet za to je da im je dostupan source kod programa. Slobodu da dalje distribuiraju kopiju programa kako bi pomogli susjedu (sloboda 2). Slobodu da poboljavaju program i objave svoja poboljanja javno kako bi cijela zajednica imala koristi od toga (sloboda 3). Uvjet za to je da im je dostupan source kod programa. To su etiri kljune slobode i program je "slobodan" ako i samo ako zadovoljava sve ove etiri toke. Prema tome, trebali bi biti slobodni dalje dijeliti kopije programa bilo kome i bilo gdje, besplatno ili uz naknadu, bez obzira jesmo li mijenjali program ili ne. Biti slobodan raditi te stvari znai (pored ostalog), da ne moramo traiti ili platiti dozvolu za to. Takoer trebamo imati slobodu promijeniti program i koristiti ga privatno za svoj posao ili igru, bez da ikome uope spomenemo da te modifikacije postoje. Ako objavimo svoje promjene ne bi trebali obavijestiti nikoga zbog toga. Sloboda da se koristi neki program znai slobodu bilo14/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima GNU filozofija i GNU licenca

pojedincu ili organizaciji, da koristi taj program na bilo kojoj vrsti raunala, za bilo kakav posao, i bez potrebe da kontaktira autora ili neku drugu instituciju. Prilikom distribucije slobodnog softvera, bilo svog ili kopije mora se pored izvrne (executable) verzije, priloiti i izvorni kod. To je zbog slobode da svatko ima pravo modificirati i poboljavati program. Dakle pristup izvornom kodu je kjuna osobina slobodnog softvera.

Da bi sve ove slobode vrijedile uvijek, one moraju biti neopozive tako dugo dok ne napravite neto pogreno. Ako onaj koji razvije neki softver ima pravo ukinuti licencu bez da ste vi napravili neto to bi mu dalo razlog, onda taj softver nije slobodan softver. Meutim, odreena pravila u vezi distribucije slobodnog softvera su prihvatljiva, ako nisu u suprotnosti sa osnovnim slobodama. Na primjer, copyleft (pojednostavljeno reeno) je pravilo da kad redistribuirate program, ne moete dodati ogranienja kojima biste zabranili ostalim ljudima njihove centralne slobode. To pravilo nije u sukobu sa centralnim slobodama nego ih zapravo titi. Prema tome, vi moete platiti da dobijete kopiju slobodnog softvera ili moete nabaviti kopiju besplatno. No nevezano na to kako ste doli do svoje kopije, uvijek imate slobodu kopirati i mijenjati taj program, imate ak i slobodu prodavati kopije.

Slobodan softver ne znai ne-komercijalan softver. Slobodan softver mora biti dostupan za komercijalnu upotrebu, komercijalni razvoj i komercijalnu distribuciju. Komercijalni razvoj slobodnog softvera vie nije neuobiajen, takav slobodan softver je postao vrlo vaan. Pravila kako pakirati modificiranu verziju su prihvatljiva ako ne spreavaju vau slobodu da izdate modificiranu verziju. Pravila koja kau "ako va program napravite dostupnim na ovaj nain, morate ga napraviti dostupnim i na neki drugi nain" takoer mogu biti prihvatljiva uz prethodni uvjet. Ovakvo pravilo vam ipak ostavlja izbor da uope ne distribuirate program. Takoer je prihvatljivo da se u licenci trai da ako distribuirate modificiranu verziju programa, da autor trai da mu poaljete kopiju. U tom sluaju duni ste mu je poslati.

Kad se govori o slobodnom softveru, najbolje je izbjegavati termine tipa "besplatan softver" jer ti termini oznaavaju cijenu a ne slobodu (ponovno zbog vieznanosti engleske rijei "free"). Na kraju, kriteriji poput ovih do sad nabrojanih u ovoj definiciji slobodnog softvera zahtijevaju paljivo razmiljanje prilikom njihove interpretacije. Prilikom odluke da li neka licenca zadovoljava kriterije kao licenca slobodnog softvera, sudi se prema tim kriterijima i gleda se da li zadovoljava njihov duh kao i tone rijei. Ako ta licenca sadri bilo

15/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima GNU filozofija i GNU licenca

kakve zabrane (nesvjesne), odbacuje se ak i ako se ne oekuje problem s tim kriterijem. Ponekad licenca zahtjeva puno premiljanja, ukljuujui razgovore s odvjetnikom, prije nego se odlui da li licenca zadovoljava kriterije. Sve ovo se radi da slobodan softver ostane doista slobodan.

Zato slobodan softverDigitalna informatika tehnologija nam je omoguila lake kopiranje i modificiranje informacija. Raunala su to olakala svima nama. No vlasnika prava (copyright) na neki program su neto to nam to onemoguava. Vlasnici takvog softvera su jedini koji imaju pravo kopirati i mijenjati softver koji mi koristimo. Copyright sustav je nastao sa tiskanjem tehnologijom za masovno kopiranje. Copyright se dobro uklapa u tu tehnologiju jer ograniava samo velike izdavae i ne oduzima slobodu itateljima knjiga. Obian ita koji ne posjeduje tiskaru, moe kopirati knjige samo tako da ih prepie i rijetki imaju volju to raditi. Digitalna tehnologija je mnogo fleksibilnija, kad su podaci u digitalnoj formi, lako se mogu kopirati i dijeliti drugima. No ta fleksibilnost je u sukobu sa idejom copyrighta. Zbog toga su uvedene prilino prljave mjere da se nametne copyright na softver. No, to je doista potrebno drutvu da napreduje? Potrebno je da su sve informacije slobodne, nap. program koji se moe itati, popravljati, prilagoavati i poboljavati a ne samo pokretati. Naalost ono to vlasnici softvera tipino isporuuju je crna kutija koju ne moemo prouiti ili mijenjati. Drutvo takoer treba slobodu. Kada program ima vlasnika, korisnici gube slobodu da kontroliraju dio svog ivota.

Ekonomski razlozi koje navode vlasnici softvera su pogreni no ekoneomski problem je stvaran. Neki ljudi piu koristan softver isto iz hobija ili zato to uivaju programirajui neto korisno no ako elimo vie nego ti ljudi naprave, moramo poveati fond. Ve deset godina ljudi koji razvijaju slobodan softver iskuavaju razne metode kako namaknuti novac. Dosad je postignut nekakav uspjeh. Neki rade potrebne preinake svog programa zatraene od klijenata koji im za to plaaju. Iako bi oni i sami mogli napraviti te preinake ponekad je lake platiti autoru da to napravi budui da on ve poznaje svoj program. Neki zarauju tako to

16/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima GNU filozofija i GNU licenca

prodaju usluge odravanja. Velik dio se financira iz donacija. ini se da je to sve sitno, pokret slobodnog softvera je jo uvijek mali i relativno mlad.

Kao korisnici raunala danas, dosta nas koristi vlasniki softver. Ako nas prijatelj zamoli da mu snimimo kopiju tog programa, pogreno bi bilo odbiti ga. Suradnja je vanija od copyrighta. No takve "underground" aktivnosti ne ine dobro drutvo. Pojedinac bi trebao ivjeti otvoreno i ponosno te rei "ne" vlasnikom softveru. Svatko bi trebao moi suraivati otvoreno s drugim ljudima koji koriste softver. Svatko bi trebao imati pravo nauiti kako neki program radi i ako je potrebno popraviti njegov rad. To je razlog zato nam treba slobodan softver.

17/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima GNU filozofija i GNU licenca

Kategorije slobodnog i ne-slobodnog softvera

Ovaj dijagram (napravio Chao-Kuei) objanjava razliite kategorije softvera.

Slobodan softver (free software) to je slobodan softver je objanjeno u tekstu do sada, kratka definicija glasi: slobodan softver je softver koji dolazi sa dozvolom da ga svatko smije koristiti, kopirati, distribuirati (bilo izvornu ili modificiranu verziju) besplatno ili uz naknadu. U biti, to znai da takav softver mora dolaziti sa izvornim kodom. Ako je program slobodan onda ga se potencijalno moe ukljuiti u slobodan operacijski sustav kao to je GNU ili neku od slobodnih verzija GNU/Linuxa. Neke kompanije svoj softver zovu "free" no ne u smislu slobode nego cijene. ("Free" znai slobodan ali i besplatan). Zbog toga treba prouiti licencu s kojom takav softver dolazi da se vidi tono na to se taj pojam odnosi. Slobodan softver je obino pouzdaniji od ne-slobodnog.

Open source softver Pojam "open source" vie-manje znai isto to i slobodan softver. Meutim kriterij koji neki softver mora zadovoljavati da bi bio open source je neto blai, dozvoljene su neke restrikcije koje u FSF-u smatraju previe ogrniavajuim.

18/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima GNU filozofija i GNU licenca

Public domain softver Public domain softver je softver za kojeg ne postoje vlasnika prava. Ako je izvorni kod u public domain onda je to poseban sluaj non-copylefted slobodnog softvera, to znai da neke verzije ili modifikacije moda uope nisu slobodne. Ako je samo izvrna datoteka u public domain a source kod nije onda to nije slobodan softver jer on podrazumijeva da mora biti dostupan izvorni kod. Veina slobodnog softvera nije public domain, nego na njemu postoje vlasnika prava koja pak daju legalno pravo svima da koriste slobodno taj program.

Copylefted softver Copylefted softver je slobodan softver iji uvjeti distribucije ne dozvoljavaju distributeru dodavanje nikakvih novih, dodatnih ogranienja prilikom distribucije ili modifikacije softvera. To znai da svaka kopija tog softvera, makar i modificirana, mora biti slobodna. Copylefted je generalni koncept, da bi ga ostvarili morate koristiti specifian skup distribucijskih pravila. Iako se moe postii raznim licencama preporuka je koristiti "GNU General Public License" jer dvije razliite licence mogu biti nekompatibilne to znai da bi spajanje takvih programa bilo nezakonito.

Non-copylefted free software Non-copylefted free software dolazi sa dozvolom da se dalje distribuira i modificira ali se takoer mogu dodavati i nove restrikcije. Softver koji dolazi na takav nain moe imati verzije koje uope nisu slobodne. Softverske kompanije mogu kompajlirati takav softver sa ili bez modifikacija i prodavati ga kao vlasniki softver.

GPL-covered software GPL-covered software je softver koji je pokriven sa "GNU General Public License". GNU projekt veinu svog softvera distribuira kao takav softver.

The GNU system GNU sustav je potpun unixoidni operacijski sustav. Sastoji se od hrpe programa i ukljuuje sav GNU softver kao i mnogo drugih paketa kao to su X Window System i TeX koji nisu GNU softver. Budui da je svrha GNU-a da bude slobodan, svaki njegov dio mora biti slobodan.

19/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima GNU filozofija i GNU licenca

GNU programi Termin "GNU program" je ekvivalent terminu "GNU softver". Neki program je GNU program ako je GNU softver. Takoer se koristi i termin "GNU paket".

GNU softver GNU softver je softver izdan pod nadlenosti GNU projekta. Veina GNU softvera je copylefted, no ne sav. Bitno je da je sav GNU softver slobodan (free) softver. Dio GNU softvera su napisali ljudi iz FSF-a no veinu su napisali volonteri.

Ne-slobodan (non-free) softver Non-free softver je softver koji nije slobodan. To ukljuuje "semi-free" softver i vlasniki softver.

Semi free softver Semi free softver je softver koji nije slobodan ali dolazi sa dozvolom pojedincima da koriste, kopiraju, distribuiraju i mijenjaju program za neprofitne svrhe. Etiki je semi-free sofver bolji od vlasnikog softvera no svejedno stvara probleme jer se ne moe upotrijebiti kao dio slobodnog operacijskog sustava.

Vlasniki (proprietary) softver Vlasniki softver je softver koji nije niti slobodan (free) niti semi-free. Njegovo koritenje, redistribuiranje ili modifikacija su zabranjeni ili zahtijevaju posebnu dozvolu.

Freeware Termin "freeware" nema jasnu prihvaenu definiciju. Obino se koristi za softver koji dozvoljava redistribuciju ali ne dozvoljava mijenjanje i izvorni kod mu nije dostupan. Takav softver nije slobodan (free) softver, to su dva potpuno razliita termina.

Shareware Shareware je softver koji dolazi sa dozvolom da ga se redistribuira ali svatko tko ga nastavi koristiti mora platiti licencnu naknadu. Shareware nije ni slobodan niti semi-free softver. Dva su razloga: shareware ne dolazi sa izvornim kodom, znai ne moe ga se mijenjati te

20/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima GNU filozofija i GNU licenca

shareware ne dolazi sa dozvolom da ga se instalira i koristi bez da ga se plati, ak niti u nekomercijalne svrhe.

Privatni softver Privatni ili "prilagoeni" softver je softver razvijen za jednog korisnika (tipino organizacija ili kompanija). Taj ga korisnik uva i koristi za svoje potrebe i ne distribura ga. Privatni softver je slobodan softver u jednostavnom smislu da ako je jedinstven, korisnik ima sva prava na njega. No, dublje gledajui, nema smisla razmiljati o privatnom softveru na nain je li on slobodan ili nije.

Komercijalni softver Komercijalni softver je softver razvijen sa ciljem da se na njemu zaradi novac. Komercijalni softver i vlasniki (proprietary) softver nisu ista stvar. Veina komercijalnog softvera je vlasniki softver ali postoji i komercijalni softver koji je slobodan isto kao to postoji neslobodni (non-free) ne-komercijalni softver. Vana stvar je naglasiti da je mogu slobodan komercijalni softver. Zato ne bi smo trebali govoriti komercijalni softver kad mislimo na vlasniki sofver.

21/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima GNU filozofija i GNU licenca

GNU LICENCA GNU Opa javna licenca - prijevodGNU OPA JAVNA LICENCA verzija 2, lipanj 1991.This is an unofficial translation of the GNU General Public License into Croatian. It was not published by the Free Software Foundation, and does not legally state the distribution terms for software that uses the GNU GPL--only the original English text of the GNU GPL does that. However, we hope that this translation will help Croatian speakers understand the GNU GPL better. Ovo je neslubeni prijevod GNU Ope javne licence na hrvatski jezik. Nije ga objavio Free Software Foundation i zakonito ne izrie uvjete distribucije programa koji koriste GNU GPL - to ini samo izvorni, engleski tekst GNU GPL-a. Meutim, nadamo se da e ovaj prijevod pomoi hrvatskim itateljima u boljem razumijevanju GPL-a. Copyright (C) 1989., 1991. Free Software Foundation, Inc. 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Umnaanje i distribuiranje primjeraka ove licence jednakih izvorniku doputeno je svakomu, no njeno je mijenjanje zabranjeno.

PredgovorLicence veine programa nastoje vam oduzeti slobodu da ih dijelite i mijenjate. Tomu nasuprot, GNU Opa javna licenca jami vam slobodu dijeljenja i mijenjanja slobodnih programa -- kako bi program bio slobodan za sve svoje korisnike. Ova Opa javna licenca vrijedi za vei dio programa Free Software Foundationa i bilo koji drugi program iji se autor obvee na njeno koritenje. (Neke druge programe Free Software Foundationa pokriva GNU Opa javna licenca za knjinice.) I vi je moete primjeniti na svoje programe. Kada govorimo o slobodnim programima, govorimo o slobodi, a ne cijeni. Naa Opa javna licenca je stvorena kako bi vam zajamila slobodu distribuiranja primjeraka slobodnih programa (i, ako elite, naplaivanje toga), primanje izvornog koda ili mogunost da ga dobijete, mogunost mijenjanja programa ili koritenja njegovih dijelova u novim slobodnim programima; te saznanje da to moete uiniti. Kako bi zatitili vaa prava, moramo postaviti ogranienja koja zabranjuju bilo kome poricanje ovih prava ili zahtjev da ih se odreknete. Ova ogranienja predstavljaju odreene odgovornosti za vas ako distribuirate ili mijenjate primjerke programa. Na primjer, ako distribuirate primjerke takvog programa, besplatno ili ne, primateljima morate dati sva prava koja imate i sami. Takoer, oni moraju dobiti izvorni kod ili mogunost njegova dobivanja. A vi ih morate obavijestiti o ovim uvjetima kako bi znali svoja prava. Vaa prava titimo u dva koraka: 1. stavljajui autorska prava na program, te 2. nudei vam ovu licencu koja vam omoguava zakonito umnaanje, distribuiranje i/ili mijenjanje programa.

22/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima GNU filozofija i GNU licenca

Takoer, zbog zatite svakog autora i nas, elimo biti sigurni da svi razumiju da za ovakve slobodne programe nema jamstva. Ako program netko promijeni i poalje dalje, elimo da njegovi primatelji znaju kako ono to su dobili nije izvornik, kako bilo kakvi problemi u takvoj verziji ne bi utjecali na ugled izvornog autora. Na kraju, svakom slobodnom programu stalno prijete patenti. elimo izbjei opasnost individualnog licenciranja od strane redistributora slobodnog programa, to bi program uinilo vlasnitvom. Da to sprijeimo, razjasnili smo kako svaki patent mora biti licenciran za svaiju slobodnu uporabu ili uope ne biti licenciran. Slijede tone obveze i uvjeti za umnaanje, distribuiranje i mijenjanje.

GNU OPA JAVNA LICENCA OBVEZE I UVJETI ZA UMNAANJE, DISTRIBUIRANJE I MIJENJANJE0. Ova Licenca vrijedi za svaki program ili drugo djelo koje sadri obavijest vlasnika autorskog prava prema kojoj se ono moe distribuirati pod uvjetima ove Ope javne licence. Pojam "Program" nadalje se odnosi na svaki takav program ili djelo, a "djelo zasnovano na Programu" odnosi se na Program ili bilo koji rad izveden iz njega po zakonu o autorskim pravima: dakle, djelo koje sadri program ili njegov dio, toan ili s promjenama i/ili preveden na drugi jezik. (Nadalje, prijevod je bez ogranienja ukljuen u pojam "promjena".) Svakom korisniku licence obraamo se kao "vama". O aktivnostima osim umnaanja, distribucije i mijenjanja ova Licenca ne govori; one su izvan njenog dosega. in pokretanja Programa nije ogranien, a o njegovom rezultatu govorimo samo ako je sadraj rezultata takoer djelo zasnovano na Programu (bez obzira to ga je stvorio Program). Je li to istina ovisi o funkciji Programa. 1. Smijete umnaati i distribuirati tone kopije izvornog koda Programa kakvog ga dobijete, na bilo kakvom mediju, ako oigledno i prikladno na svakoj kopiji istaknete odgovarajuu poruku o autorskim pravima i odricanje jamstava; ostavite nepromijenjenim sve obavijesti koje se odnose na ovu Licencu i na nepostojanje jamstava; i dajte svakom primatelju Programa primjerak ove Licence zajedno s Programom. Smijete naplatiti fiziki in prenoenja kopije i moete po svom izboru ponuditi jamstvo za naplatu. 2. Smijete mijenjati svoj primjerak ili primjerke Programa ili bilo kojeg njegovog dijela, tako oblikovajui djelo zasnovano na Programu, i umnaati i distribuirati takve promjene ili djelo pod uvjetima prethodnog Dijela 1., ako zadovoljavate ove uvjete: a) Promijenjene datoteke moraju nositi istaknute obavijesti da ste promijenili datoteke i datum svake promjene. b) Svako djelo koje distribuirate ili objavite, a koje u cjelosti ili djelomino sadri ili je izvedeno iz Programa ili njegovog dijela, mora biti licencirano u cjelosti bez naplate svima pod uvjetima ove Licence. c) Ako promijenjeni program, kada je normalno pokrenut, ita naredbe interaktivno, on mora, pokrenut za takvu interaktivnu uporabu u najuobiajenijem nainu, ispisati ili prikazati obavijest koja ukljuuje odgovarajuu poruku o autorskim pravima i obavijest da nema jamstva (ili drugaiju, koja kae da vi jamite) i da korisnici mogu ponovno distribuirati program pod ovim uvjetima, i objasniti korisniku kako da proita primjerak ove Licence. (Iznimka: ako je sam Program interaktivan, ali obino ne ispisuje takvu obavijest, vae djelo zasnovano na Programu ne mora ispisati obavijest.)

23/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima GNU filozofija i GNU licenca

Ove potrebe vrijede za promijenjeno djelo u cjelini. Ako raspoznatljivi dijelovi tog djela nisu izvedeni iz Programa, i mogu se sami razumno smatrati nezavisnim i odvojenim djelima, onda ova Licenca, i njeni uvjeti, ne vrijede za te dijelove kada ih distribuirate kao zasebna djela. Ali ako distribuirate iste dijelove kao dio cjeline koja je djelo zasnovano na Programu, distribucija te cjeline mora zadovoljavati uvjete ove Licence, ije dozvole drugima koji su je licencirali vrijede za cjelinu, odnosno svaki njen dio bez obzira tko ga je napisao. Dakle, ovom dijelu nije namjera da dobije prava ili da pobija vaa prava na djelo koje ste vi napisali u cjelini; namjera mu je poboljati pravo nadzora distribucije izvedenih ili skupljenih djela zasnovanih na Programu. Takoer, sama integracija drugog djela nezasnovanog na Programu s Programom (ili djelom zasnovanim na Programu) na mediju pohranjivanja ili distribucije ne dovodi to drugo djelo u doseg ove Licence. 3. Smijete umnaati i distribuirati Program (ili djelo na njemu zasnovano, po Dijelu 2.) u objektnom kodu ili izvrnom obliku pod uvjetima Dijela 1. i 2. ako uinite jedno od sljedeeg: a) Popratite ga potpunim odgovarajuim strojno itljivim izvornim kodom, koji mora biti distribuiran pod uvjetima Dijela 1. i 2. na mediju po izboru koritenom za razmjenu programa; ili b) Popratite ga pisanom ponudom, koja vrijedi barem tri godine, da ete svakoj treoj stranci dati, za cijenu ne veu od vaeg troka fizikog vrenja distribucije izvornog koda, potpunu strojno itljivu kopiju odgovarajueg izvornog koda, koju e se distribuirati pod uvjetima Dijela 1. i 2. na mediju po izboru koritenom za razmjenu programa; ili c) Popratite ga informacijama koje ste vi primili o ponudi za distribuciju odgovarajueg izvornog koda. (Ova mogunost vrijedi samo za nekomercijalnu distribuciju i samo ako ste primili program u objektnom kodu ili izvrnom obliku s takvom ponudom, prema prethodnom Odlomku b.) Pod izvornim kodom za djelo mislimo na eljeni oblik djela za njegovo mijenjanje. Za izvrno djelo, potpuni izvorni kod odnosi se na izvorni kod svih modula koje ono sadri, uz datoteke koje definiraju svako ukljueno suelje, uz skripte za nadzor prevoenja i instalacije izvrne datoteke. Meutim, kao posebna iznimka, distribuirani izvorni kod ne mora ukljuiti bilo to to se obino distribuira (bilo u izvornom kodu, bilo u izvrnom obliku) s glavnim dijelovima (prevodioc, jezgra, itd.) operacijskog sustava na kojem izvrna datoteka radi, osim ako sam taj dio prati izvrnu datoteku. Ako se izvrna datoteka ili objektni kod distribuira omoguavanjem pristupa kopiji na odreenom mjestu, onda se omoguavanje jednakog pristupa izvornom kodu smatra distribucijom izvornog koda, iako se drugi ne prisiljavaju na umnaanje izvornog koda zajedno s objektnim. 4. Ne smijete umnaati, mijenjati, podlicencirati ili distribuirati Program osim kako je izraeno u ovoj Licenci. Bilo kakav pokuaj umnaanja, mijenjanja, podlicenciranja ili distribuiranja Programa je nezakonit, i odmah ponitava vaa prava prema ovoj Licenci. Meutim, strankama koje su od vas dobile kopije ili prava pod ovom Licencom nee biti ponitene licence, dok zadovoljavaju sve uvjete. 5. Ne morate prihvatiti ovu Licencu, poto ju niste potpisali. Meutim, nita vam drugo ne jami dozvolu za mijenjanje ili distribuciju Programa ili iz njega izvedenih djela. Te su radnje zakonom zabranjene ako ne prihvatite ovu Licencu. Prema tome, mijenjanjem ili distribuiranjem Programa (ili djela na njemu zasnovanog), pokazujete svoj pristanak na ovu

24/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima GNU filozofija i GNU licenca

Licencu, i sve njene obveze i uvjete za umnaanje, distribuiranje i mijenjanje Programa ili djela na njemu zasnovanih. 6. Svaki put kada ponovo distribuirate Program (ili bilo koje djelo zasnovano na Programu), primatelj automatski prima licencu od izvornog vlasnika za umnaanje, distribuiranje ili mijenjanje Programa prema ovim obvezama i uvjetima. Ne smijete nametnuti bilo kakva daljnja ogranienja na primateljevo koritenje ovdje zajamenih prava. Niste odgovorni za traenje zadovoljavanja ove Licence od drugih stranaka. 7. Ako vam se, kao posljedicu sudske presude ili tube za krenje patenta ili iz bilo kojeg drugog razloga (ne samo to se tie patenata), nameu obveze (bilo sudskim nalogom, nagodbom, ili drukije) u kontradikciji s uvjetima ove Licence, to ne znai da smijete kriti uvjete ove Licence. Ako ne moete distribuirati tako da zadovoljavate istodobno i svoje obveze pod ovom Licencom i sve ostale odgovarajue obveze, onda kao posljedicu uope ne smijete distribuirati Program. Na primjer, ako patentna licenca ne doputa slobodnu redistribuciju Programa svima koji njegove kopije dobiju izravno ili neizravno od vas, onda je jedini nain na koji moete zadovoljiti i nju i ovu Licencu prestanak distribuiranja Programa. Ako se bilo koji dio ovog Dijela dri nevaeim ili neprovedivim pod bilo kakvim okolnostima, namjena je Dijela da vrijedi i Dio u cjelini namijenjen je da vrijedi u drugim okolnostima. Ovom Dijelu nije svrha da vas potakne na krenje patenata ili drugih prava na vlasnitvo ili na njihovo pobijanje; jedina mu je svrha zatita integriteta distribucijskog sustava slobodnih programa, kojeg implementira javna praksa. Mnogi ljudi su velikoduno pridonijeli velikom broju programa distribuiranim kroz taj sustav pouzdajui se u dosljednu primjenu tog sustava; na autoru/donatoru je odluka da li e programe distribuirati nekim drugim sustavom i korisnik licence ne moe mu nametati svoj izbor. Namjera ovog Dijela je razjanjavanje onoga za to se vjeruje da su posljedice ostatka Licence. 8. Ako je distribucija i/ili koritenje Programa u nekim dravama ogranieno bilo patentima bilo sueljima na koje se polau autorska prava, izvorni vlasnik autorskih prava koji je Program stavio pod ovu Licencu moe dodati eksplicitno zemljopisno ogranienje distribucije izuzimajui takve drave, i inei distribuciju dozvoljenom samo u ili meu dravama koje nisu izuzete. U tom sluaju, ova Licenca ukljuuje ogranienje kao da je napisano u tijelu ove Licence. 9. Free Software Foundation s vremena na vrijeme moe objaviti promijenjene i/ili nove verzije Ope javne licence. Takve nove verzije bit e duhom sline sadanjoj, no mogu se razlikovati u detaljima kako bi se rijeili novi problemi ili brige. Svakoj verziji se daje razliit broj verzije. Ako Program navodi broj verzije ove Licence koja za njega vrijedi i "bilo koja kasnija verzija", smijete potovati obveze i uvjete te verzije ili bilo koje kasnije verzije koju je objavio Free Software Foundation. Ako Program ne odreuje broj verzije ove Licence, smijete odabrati bilo koju verziju ikad izdanu od strane Free Software Foundationa. 10. Ako elite ukljuiti dijelove Programa u druge besplatne programe iji se uvjeti distribucije razlikuju, piite autoru i traite njegovu dozvolu. Za programe ija autorska prava ima Free Software Foundation, piite Free Software Foundationu; ponekad radi toga radimo iznimke. U odluivanju e nas voditi dva cilja uvanja slobode svih izvedenica iz naeg programa i promicanje dijeljenja i ponovnog koritenja programa openito. NEMA JAMSTVA

25/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima GNU filozofija i GNU licenca

11. POTO JE PROGRAM LICENCIRAN BESPLATNO, ZA PROGRAM NEMA JAMSTVA, U MJERI DOPUTENOJ PRIMJENJIVIM ZAKONOM. OSIM AKO JE DRUKIJE IZRAENO NAPISMENO, VLASNICI AUTORSKIH PRAVA I/ILI DRUGE STRANKE PROGRAM DAJU "KAKAV JEST" BEZ JAMSTVA BILO KOJE VRSTE, IZRAENOG ILI PODRAZUMIJEVANOG, UKLJUUJUI, ALI NE SAMO NJIH, PODRAZUMIJEVANA JAMSTVA TRGOVINSKE PRIKLADNOSTI I ODGOVARANJA ODREENOJ SVRSI. SVI RIZICI VEZANI ZA KVALITETU I BRZINU PROGRAMA OSTAJU NA VAMA. AKO SE PROGRAM POKAE NEVALJANIM, VI SNOSITE SVE TROKOVE POTREBNOG ODRAVANJA, POPRAVLJANJA I ISPRAVLJANJA. 12. NI U KOJEM SLUAJU, OSIM NUNO PO PRIMJENJIVOM ZAKONU ILI NAGODBOM NAPISMENO, BILO KOJI VLASNIK AUTORSKIH PRAVA, ILI BILO KOJA DRUGA STRANKA KOJA SMIJE MIJENJATI I/ILI REDISTRIBUIRATI PROGRAM KAKO JE DOZVOLJENO GORE, NEE BITI VAMA ODGOVORAN ZA TETE, UKLJUUJUI OPE, POSEBNE, SLUAJNE ILI POSLJEDINE TETE PROIZALE IZ KORITENJA ILI NEMOGUNOSTI KORITENJA PROGRAMA (UKLJUUJUI, ALI NE SAMO NJIH, GUBITAK PODATAKA ILI INJENJE PODATAKA NETONIM ILI GUBITKE VAS ILI DRUGIH STRANAKA ILI NEUSPJEH PROGRAMA DA RADI S BILO KOJIM DRUGIM PROGRAMOM), AK I AKO JE TAKAV VLASNIK ILI DRUGA STRANKA UPOZORENA NA MOGUNOST TAKVIH TETA. KRAJ OBVEZA I UVJETA

26/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima GNU filozofija i GNU licenca

Vrste GNU licenciPostoje tri vrste GNU licenci: GNU GPL Koristi se sa veinom GNU programa i sa vie od polovice svih slobodnih softverskih paketa. Osnovna ideja je da prui potpunu slobodu korisnicima softvera i onemogui dodavanje ikakvih dodatnih restrikcija na program. GNU General Public Licence (GNU GPL) GNU Lesser General Public License (GNU LGPL) GNU Free Documentation Licence (GNU FDL)

GNU LGPL Koristi se za neke (ne sve) GNU biblioteke (library). Ova licenca se je nekad zvala "Library GPL" ali joj je ime promjenjeno jer je navodila ljude da je koriste ee no to je to potrebno. Glavna razlika je u tome to se biblioteka izdana pod LGPL moe upotrijebiti i u vlasnikom softveru dok se biblioteka izdana pod obinom GPL smije upotrijebiti samo u slobodnom softveru. to je od toga bolje, stvar je strategije i ovisi za svaku biblioteku posebno.

GNU FDL Koristi se za dokumentaciju koja se izdaje uz slobodan softver (no ne nuno samo za to). Daje slobodu svima da koriste, kopiraju, mijenjaju, distribuiraju tu dokumentaciju, besplatno ili uz naknadu.

27/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima GNU filozofija i GNU licenca

ZAKLJUAKGNU pokret je pokrenut iz jednostavog razloga - elje za slobodom, elje da se napravi neto pozitivno, neto od ega e svi imati koristi. Ljudi koji su to gurali imali su teak zadatak ispred sebe, napraviti slobodan operacijski sustav. Nisu imali neograniena materijalna sredstva za to, nisu imali ni obeanje da ih novac eka na kraju tog dugog puta. Imali su samo znanje i veliku volju. Malo po malo, kako se je sve vie ljudi ukljuivalo u pokret, uspjeli su doi do svog cilja (iako ne ba onako kako su imali u planu na poetku). Nastao je GNU/Linux. Svijet je dobio slobodni operacijski sustav (u nekim verzijama). Je li on bolji ili loiji od drugih? O tome postoje podjeljena miljenja no to nije vano. Vano je da je on slobodan to znai da ako netko smatra da neto ne valja i da moe bolje, ima slobodu to sam napraviti. To mu je omogueno time to ima izvorni kod i time to mu GNU licenca pod kojom dolazi osigurava to pravo.

Druga stvar koja je proistekla iz tog pokreta je pojam slobodan (free) softver. Pokazalo se da je taj softver u pravilu bolji i pouzdaniji od vlasnikog (proprietary) softvera. Razlog je ponovno taj to slobodan softver dolazi sa izvornim kodom. Dostupnost izvornog koda omoguuje bilo kome da proui taj softver i samim time se bugovi bre pronalaze. Takoer, sloboda da se mijenja kod omoguuje bilo kome da prilagodi program upravo svojim potrebama. Time se dobija velika baza gotovog softvera u kojoj svatko moe nai neto korisno za sebe, pogotovo ako sam nije vian programiranju.

Kakva je budunost GNU pokreta i slobodnog softvera? To je teko pitanje. S jedne strane imamo velike kompanije sa mnogo novca koje na razne naine ele zaustaviti slobodan softver koji je zbog svoje kvalitete postao ozbiljan konkurent njihovim loim poluproizvodima, a potpuno je besplatan. Ide se ak tako daleko da se pokuava uvesti patent na softverske algoritme to je po mom miljenju totalno apsurdno i glupo, da ne kaem opasno. Apsurdna je sama ta ideja da se neto tako apstraktno kao to je znanje, moe smatrati materijalnim dobrom i polagati prava na to. Drugi problem GNU pokreta i slobodnog softvera je taj to se izdavanjem programa kao slobodnog (pod GNU GPL) ne moe obogatiti budui da svatko tko jednom dodje do programa tako izdanog, moe ga dalje distribuirati bez ikakve naknade autoru. Iako postoje naini da se i takav softver unovi (donacije, posebne prilagodbe

28/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima GNU filozofija i GNU licenca

softvera i sl.) zarada nikada nije i ne moe biti ni blizu onoj koja se okree u vlasnikom softveru.

Kod nekih drava (ukljuujui i Hrvatsku) veliki problem u prihvaanju slobodnog softvera je i vrlo razvijena kultura piratsva. U zemljama gdje piratsvo nije tako raireno slobodan softver je dobar izbor i zbog svoje cijene (besplatan je). Tamo gdje je piratski softver normalna stvar, jedina prednost slobodnog softvera je to sto dolazi sa izvornim kodom, ali ta prednost veini korisnika nije bitna jer samo rijetki imaju znanje to iskoristiti.

Na kraju, nebitno kakva budunost eka slobodan softver, on je sada tu. Poeo je kao ideja jednog ovjeka, tekom mukom i uz puno odricanja napravio je poetak, pridruili su mu se i drugi i stvar je krenula. Danas za gotovo sve to postoji kao vlasniki softver postoji i verzija slobodnog softvera, koji budui da je nastao iz ljubavi prema programiranju a ne zbog novca, je obino bolji i kvalitetniji. Zbog toga svi mi imamo mogunost izbora (jo kad bi se i igre izdavale pod GNU licencom kao slobodan softver, gdje bi nam bio kraj). :)

29/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima GNU filozofija i GNU licenca

NAPOMENEMaterijal i ideje za ovaj seminar sam naao uglavnom na web stranici http://www.gnu.org ili linkovima koji su postavljeni tamo. Zbog prirode teme, nisam mogao pisati samo injenice nego je velik dio rada zapravo stav i razmiljanje jednog ovjeka, Richarda Stallmana (osim zakljuka koji je iskljuivo moje miljenje o svemu tome). Najvei problem mi je bio prevoenje nekih rijei koje u hrvatskom jeziku nemaju zamjenu ili ako i imaju, runo zvue. Zbog toga sam neke rijei ostavio u izvornom, engleskom obliku. Prijevod GNU licence (pod 4.1) sam kopirao takoer sa http://www.gnu.org jer ja i tako to ne mogu bolje prevesti a i bilo bi suvino prevoditi kad prijevod ve postoji.

30/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima Povijest i nastanak UNIX-a

Dario Mioi

Povijest i nastanak UNIX-a

31/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima Povijest i nastanak UNIX-a

1. UVOD

Unix je roen 1969. u New Jersey-u kao rezultat nezadovoljstva zbog povlaenja AT&T evog BTL-a (Bell Telephone Labs) iz projekta Multics (Multiplexed Information and Computing Service) koji je bio zdrueni pothvat BTL-a, General Electric-sa i MIT-a u kreiranju operativnog sustava za velika raunala s mogunou rada vie tisua korisnika istovremeno.

Pria o rastu i razvoju Unix-a je pria o jednom od najveih napredaka u raunalnoj povijesti. Kao to je rekao David Tolbrook : Unix je omoguio korisnicima stvari koje su prije bile jednostavno nezamislive. On takoer naglaava da Unix nije toliko ogroman napredak u raunarstvu koliko je veliko pojednostavljenje, koje je pokazalo da se relativno mali operativni sustav moe izvravati na razliitim hardverskim platformama, te da moe biti portabilan, neovisan o raunalu i pristupaan.

Neke od najveih prednosti Unix-a ne dolaze od njegove jednostavnosti, nego od stvarno zajednikog naina razvoja i evolucije. Umjesto da bude proizvod jednog proizvoaa sa nekim odreenim hardverom, Unix je nastao kao rezultat elje pojedinaca da naprave sustav koji bi bio jednostavan, kojeg bi moglo koristiti vie korisnika i koji bi mogao sluiti kao ugodno okruenje za programiranje.

Ouh Unix-a, AT&T, je imao vrlo stroga kuna pravila za Unix koja su naglaavala da nema podrke, nema popravaka pogreaka i da nema autorstva. Stroga pravila AT&T-a su se suprostavljala osnovnoj ideji Unix-a, ali su takoer prouzroila jaku suradnju meu korisnicima Unix-a. Kao rezultat toga, Unix je ne samo prvi portabilni operativni sustav, nego i prvi, ako ne i jedini operativni sustav razvijen u meusobnoj suradnji pravi otvoreni sustav.

32/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima Povijest i nastanak UNIX-a

2. PORODINO STABLO

Korijeni Unix-a seu do Multics-a, koji e kasnije postii ogranieni uspjeh, no 1969. Multics je jedva mogao posluivati tri korisnika istovremeno. Ken Thompson, iz BTL-a, je poeo razvoj igre nazvane Space Travel na Multics-u. Meutim, kako je izvoenje Space Travel-a oduzimalo mnogo procesorske snage raunala GE-645, bilo je potrebno nai neko drugo rjeenje.

Na sreu, Thompson i Dennis Ritchie su pronali neiskoriten DEC PDP-7 sa 340 ekranom. Operativni sustav se sastojao samo od assemblera i loader-a, i samo je jedan korisnik mogao koristiti raunalo istovremeno. U takvom ogranienom okruju, dijelovi jednokorisnikog Unix sustava su brzo razvijeni. Space Travel je napisan ponovo za PDP-7, a napisani su i assembler i rudimentarni kernel operativnog sustava. Tijekom travnja, svibnja i lipnja 1969. Thompson je razmiljao o pisanju viekorisnikog sustava datoteka. Iz diskusije Dennisa Ritchiea, Rudd Canadeya i Kena Thompsona nastao je koncept sustava datoteka koji je implementiran za dan-dva na raunalu PDP-7.

Slika 1. PDP - 7

33/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima Povijest i nastanak UNIX-a

Bilo je nekoliko neuspjelih pokuaja da se BTL uvjeri da nabavi novo raunalo za svoju razvojnu grupu (computer research group) zbog toga to je 1969. svako naruivanje raunala podrazumijevalo troak od 100 000$ ili vie. Niti jedan od pokuaja nije uspio sve dok se Joe Ossanna nije sjetio da predloi kupovinu raunala PDP-11 za obradu teksta. Administracija BTL-a je to smatrala vrijednom investicijom.

34/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima Povijest i nastanak UNIX-a

3. UNIX RAZVOJNI SUSTAV

U ljeto 1970. raunalo PDP-11/20 je napokon stiglo. Ubrzo je na njega preneen Unix. Znali smo da se radi o prijevari. Obeali smo razviti program za obradu teksta, a ne operativni sustav, istie Ritchie. Meutim, program za obradu teksta je bio uspjean i patentni odjel BTL-a bio je prvi korisnik Unix-a, dijelei PDP-11/20 sa razvojnom grupom.

Daljnji razvoj Unix-a nastavio se oko nekoliko jednostavnih principa: pisati programe koji rade jednu stvar i to dobro, pisati programe koji mogu meusobno razmjenjivati podatke i pisati programe koji rade sa tokovima znakova (text streams). To su bile osnove univerzalnog suelja svih programa.

Slika 3. Dennis Ritchie (stoji) i Ken Thompson poinju prenositi UNIX na PDP-11 putem dva Teletype 33 terminala

35/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima Povijest i nastanak UNIX-a

3.1. Unix poinje dobivati oblikOno to je Thompson imao na PDP-7 je bio sustav, ali ne ba pravi operacijski sustav. Tako je za vrijeme ljeta 1969., Thompson poeo implementirati sustav na papiru, koji je Ritchie nazivao i "sustav od krede", jer je proizaao iz mnogobrojnih diskusija na ploama u CSRC-u. "Posvetio sam posebno svaki tjedan operacijskom sustavu, Shell-u, Editor-u, i Assembler-u da reproducira samog sebe." Prvo je izradio potrebe za operacijskim sustavom. Zatim je izradio mali set korisnikih alata: za kopiranje, ispis, brisanje i ureivanje datoteka; i izradio je shell.

3.2. Izgledalo je kao operacijski sustav, skoroPoetna izvedba, "bila je potpuno ispoetka napisana na taj nain da je izgledalo kao operacijski sustav", rekao je Thompson, "sa alatima koji su bili poznati, kao to su assembler, editor, shell". Sustav, rekao je, "ako se ne odrava sam, onda je bar na pragu toga, potpuno odvojen od GECOS mree ". Mislio je na injenicu da su do sada, svi programi bili pisani koristei GECOS, a zatim prebaeni na PDP-7 pomou papirnate trake. Ali kad je assembler sastavljen, sustav je bio sposoban podravati samog sebe. Kao to je Ritchie na kraju rekao: "Iako je Brian Kernighan tek duboko u 1970-ima predloio ime UNIX, ali operacijski sustav kojeg znamo danas, se rodio."

3.3. Stvaranje operacijskog sustava UNIXNakon tri desetljea uporabe, UNIX operacijski sustav iz Bell Labaratorija i dalje je jedan od najsnanijih i fleksibilnih operacijskih sustava na svijetu. Njegova popularnost dolazi iz mnogo faktora ukljuujui sposobnost izvravanja na raznim strojevima, od mikro do superraunala i njegovoj prenosivosti, sve to je vodilo tome da ga mnogi proizvoai prihvate. Kao i druga legendarna tvorevina ije ime zavrava isto sa 'x, UNIX je izniknuo iz pepela multi-organiziranog truda ranih 1960-ih, da bi razvio ovisan vremenski djeljiv operacijski sustav.

36/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima Povijest i nastanak UNIX-a

Zajedniki trud nije bio uspjean, no nekoliko ostalih iz Bell Labaratorija pokualo je ponovno. Ono to je uslijedilo bio je sustav koji svojim korisnicima nudi radnu povrinu koja je opisana kao ona "neobine lakoe, snage, elegancije... " Sustav je takoer prihvatio drugaiji pristup dizajniranju software-a na nain da se problemi rjeavaju povezujui manje alate, a ne kreiranjem ogromnih aplikativnih programa. Njegova izrada i evolucija vodila je novoj filozofiji izrade raunala i bila je nepresuan izvor izazova i radosti programerima diljem svijeta.

37/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima Povijest i nastanak UNIX-a

4. PREGLED OPERACIJSKOG SUSTAVA UNIX UNIX operacijski sustav dizajniran je na nain da omoguava programerima da u isto vrijeme koriste raunala i dijele resurse.Operacijski sustav koordinira upotrebu resursa tako da omoguava jednoj osobi da pokrene program za provjeru pravopisa, dok drugi kreira dokument, doputa drugome da ureuje dokument dok opet netko drugi kreira grafiku, a neko trei formatira dokument, sve u isto vrijeme, a da korisnici ne znaju za aktivnosti drugih korisnika. Sustav kontrolira sve naredbe sa svih tipkovnica i svi podaci se obrauju, a doputa svakom korisniku da misli kako je on jedini koji radi na raunalu. To dijeljenje resursa u realnom vremenu ine UNIX jednim od najsnanijih operacijskih sustava ikad. Iako su UNIX napravili programeri za programere, on prua snano i fleksibilno okruenje, pa ga se moe nai i u znanosti, na akademijama, u industriji, u poslovanju... Mnoge telekomunikacijske sustave kontroliraju administracijski sustavi bazirani na UNIX-u. Iako je dizajniran za srednje velika raunala, operacijski sustav je ubrzo prenesen na vea, snanija raunala. A kako su osobna raunala postajala popularnija, verzije UNIX-a su se nale i u njima, a i mnoge kompanije proizvode kompjutere bazirane na UNIX-u za znanstvene i programerske zajednice. 5. ZNAAJKE UNIX-a Znaajke koje su uinile UNIX hitom su: viezadanost, viekorisniki rad, prenosivost, UNIX programi, rjenici i aplikacijski software.

5.1. Viezadanost:Mnoga raunala izvode samo jednu zadau odjednom. Unix im omoguava da izvode vie stvari odjednom. To je velika stvar za korisnike, jer ne moraju ekati da jedna aplikacija zavri da bi poeli izvoditi drugu.

5.2. Viekorisniki rad:Ista mogunost koja omoguava viezadanost, omoguava i da vie korisnika koristi raunalo. Raunalo moe primati naredbe od vie korisnika - ovisno o njegovom dizajnu - za izvoenje programa, pristup podacima, ispis dokumenata, sve u isto vrijeme. Raunalo ne moe rei pisau da ispie sve zahtjeve odjednom, ali ono postavi prioritete uvajui sve u redu.

38/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima Povijest i nastanak UNIX-a

5.3. Prenosivost sustavaGlavni doprinos sustava UNIX njegova je prenosivost, koja dozvoljava da ga se seli s jedne marke raunala na drugu, s minimalnim promjenama kodova. To je znailo veliku utedu u nadogradnji i hardware-a i software-a. Time se moglo i nadograditi operacijski sustav bez ponovnog unoenja korisnikovih podataka, a nove verzije UNIX-a bile su kompatibilne i sa starima.

5.4. Unix alatiUNIX dolazi sa stotinama programa koji se mogu podijeliti u dvije klase: integralni alati koji su neophodni za rad kompjutera dodatni alati koji nisu neophodni za rad UNIX-a, ali pruaju korisniku dodatne mogunosti Alati mogu biti dodani ili oduzeti s UNIX-a, ovisno o potrebnim aplikacijama.

5.5. Komunikacija Unix-aE-mail je danas svakodnevnica, ali je na svoje doao tek u poslovnoj zajednici u posljednjih 10 godina, dok ga korisnici UNIX-a koriste ve vie desetljea. UNIX e-mail je u poetku dozvoljavao korisnicima istih raunala da komuniciraju preko njihove mree. Kasnije su prikljueni korisnici na razliitim kompjuterima i njima je dozvoljen e-mail. I na kraju, UNIX sistemi diljem svijeta su spojeni u WWW, desetljeima prije pojave dananjeg WWW-a.

5.6. Arhive podatakaUNIX kao to je poznato nije razvijen preko noi, onog trena kad je prebaen iz Bell Labaratorija na sveuilita, svaki programer zapoeo je s razvojem programa za UNIX. Danas postoje stotine programa i aplikacija koje se mogu nabaviti uz postojee aplikacije koje dolaze uz UNIX.

39/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima Povijest i nastanak UNIX-a

6. ORGANIZACIJA UNIX-a UNIX je organiziran na tri nivoa: KERNEL koji se brine o rasporedu izvravanja zadaa i o spremanju podataka SHELL koji povezuje i prevodi korisnikove zahtjeve, zove programe iz memorije i izvrava ih Alati i aplikacije koje omoguavaju dodatne funkcije operacijskom sustavu.

6.1. KernelKernel je program koji kontrolira pristup svim fizikim resursima sistema. Uitava se u memoriju sistema kod dizanja (boot) i tamo ostaje dok sistem radi. Srce operacijskog sustava koje kontrolira hardware i ukljuuje dijelove raunala na zahtjev programera. Ako damo naredbu (ls) kompjuteru, ono e rei kompjuteru da proita sve datoteke u direktoriju sa diska i prikae ih na ekranu.

6.2. ShellShell predstavlja suelje korisnika sa sistemom. Pokree se kad se korisnik prijavi (login). Shell promptom obavjetava korisnika da je spreman unos komandi. U Unix-u imamo tri vrste shella: Bourne shell, C-shell i Korn shell.

6.3. Alati i aplikacijePostoje stotine alata za UNIX korisnike. Alati su grupirani u kategorije za odreene funkcije, kao to su obrada teksta, poslovne aplikacije, programiranje

40/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima Povijest i nastanak UNIX-a

7. NASTANAK PROGRAMSKOG JEZIKA C

7.1. Od programskog jezika B preko NB do CPrva verzija UNIX-a je napisana u assemblerskom jeziku, ali Thompson je htio da se UNIX napie u nekom viem programskom jeziku. On je 1971. prvo pokuao koristiti Fortran na PDP-7, ali je odustao odmah prvi dan. Radilo je, ali je bilo i problema. Bilo je presporo i jezik kojim je napisano nije bio pravi za Byte orijentirane strojeve kao to je bio novi PDP-11. Ritchie je koristio PDP-11 da doda tipove za B, to je uskoro nazvano NB "Novi B", tada je poeo pisti i kompilaciju za to. Tako je C i nastao iz ova dva jezika, uz dodavanje struktura bez previe izmjena sintaksi. Drugi dio-prepisivanje UNIX-a u C, bio je sporiji. No, ipak uz mnogo problema i smiljanja to napraviti uspjelo se i to napraviti-prevesti cijeli operacijski sustav u C.

7.2. Nastanak cjevovoda.Jo jedna inovacija u UNIX-u je bila razvoj cjevovoda, koja je omoguavala programerima da obavljaju vie procesa u isto vrijeme. Doug McIlroy, tada ef odjela u Computing Science Research Center, dobio je zasluge za koncept cjevovoda, a Thompson za njihovu izvedbu. McIlroy je radio na makro-ima kasnih 50-ih i teoretizirao je o povezivanju makro-a kako bi se eliminirala potreba za koritenjem serija naredbi za jedan rezultat. Ako malo promislite o makro-ima, objasnio je McIlroy, oni prvenstveno slue za prebacivanje serija podataka. Vrite unos podataka i iznenada doete do makro poziva koji kae: Prestani unositi ovdje i poni unositi ondje.

7.3. Povratak ploi s kredom za razvoj sintaksaDok su Thompson i Ritchie na ploi skicirali sistem podataka, McIlroy je na svojoj ploi pokuavao skicirati kako povezati procese i koji jezik koristiti za to. To nije bilo lako. Sintaktiki, nisam bio siguran kako povezati opcije u lanac, rekao je McIlroy. McIlroy nije odustao od ideje. U periodu od 1970. do 1972. sam razmiljao to bi bilo kad bi napravio

41/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima Povijest i nastanak UNIX-a

ovo, kako bi bilo ovo Sve dok jednog dana nisam doao do sintaksi za shell koja se slagala sa cjevovodima, a Ken je rekao Napraviti u to. Bio je umoran od svega i nije uinio sve tono onako kako sam ja zamislio. Izmislio je malo bolju sintaksu, koju imamo i danas. No koristio je moju nespretnu sintaksu. Thompson je vidio da argumenti datoteka nee odgovarati ovoj shemi, pa je te iste noi promijenio sve te programe. Ubacio je cjevovode u UNIX, notaciju u shell, sve u jednoj noi, rekao je McIlroy.

7.4. Stvaranje filozofije programiranja za cjevovode i alateKad je Thompson kreirao cjevovode, on je takoer ubacio jo neto u UNIX filozofiju. Kao to je McIlroy to opisao: Filozofija koju su svi poeli koristiti bila je -Pii programe koji rade jednu stvar i rade je dobro. Pii programe koji rade zajedno. Pii programe koji rade sa linijama teksta, zato jer je to univerzalno suelje. Sve te ideje mogue da su postojale i prije cjevovoda, ali su ipak dole nakon njih. Kernighan se sloio. Primijetio je da iako unos/ispis prethodi cjevovodima, razvoj cjevovoda vodi koncepciji alata softverskih programa koji e se nalaziti u kutiji s alatima, dostupnoj kad ih treba. Dodao je da su cjevovodi uinili rad sa softverskim programima analogno koritenju rimskih brojeva umjesto arapskih.

7.5. PriruniciPrirunici dolaze esto na kraju, nakon to se proizvod napravi. Unix prirunik, suprotno tome, reflektirao je filozofiju UNIX-a. ak je upozoravao na greke (bug-ove). Stil prirunika je bio Ritchiev, ali je McIlroy ubrzo preuzeo njegovu izradu. injenica da postoji prirunik, na kojem McIlroy inzistira da bude visokog standarda znaila je da inzistira i na visokom standardu za sve programe koji se dokumentiraju, objanjava Sandy Fraser. Fraser tada lan tehnikog osoblja u CSRC-u rekao je da prije nego je program bio umetnut u prirunik, morao je biti par puta preraen da bi potivao standarde. I povrh svega, to je vjerojatno prvi prirunik koji je imao odlomak sa grekama (bug-ovima).

42/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima Povijest i nastanak UNIX-a

8. UNIX POSTAJE IROKO DOSTUPAN

Kako je nekoliko korisnika izvan razvojne grupe koristilo PDP-11 za obradu teksta, rasla je potreba da se operativni sustav dokumentira. Rezultat je bio prvi Unix Programmers Manual koji su napisali Thompson i Ritchie u studenom 1971. Sadravao je preko 60 naredbi kao to su: b (compile B program); boot (reboot system); cat (concatenate files); chdir (change working directory); chmod (change access mode); chown (change owner); cp (copy file); ls (list directory contents); mv (move or rename file); roff (run off text); wc (get word count); who (who is one the system).

U drugom izdanju, od lipnja 1972. napisano je da je broj instalacija Unix-a narastao na 10. Od tog trenutka nadalje razne verzije koje potiu it New Jersey-a oznaene su izdanjem (dokumentacije) i verzijom (diskova ili traka).

U listopadu 1973. Thompson i Ritchie su odrali predavanje na Simpoziju o principima operativnih sustava (SOSP Symposium on Operating System Principles) i vie nita nije moglo zaustaviti Unix. Neposredno nakon SOSP-a mnogi su centri traili kopiju operativnog sustava. Prvi korisnik koji je dobio sustav je bio Lou Katz sa Columbia University-a u Manhattan-u.

Objavljivanje SOSP referata u Communications of theACM izazvalo je eksplozivan porast potranje Unix-a. U tom trenutku Unix jo nije imao ni pet godina.

43/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima Povijest i nastanak UNIX-a

9. SURADNJA MEU RANIM KORISNICIMA

Odluka pravnika AT&T-a da omogue obrazovnim institucijama koritenje Unix-a, ali bez ikakve podrke ili ispravaka greaka imala je trenutan efekat: natjerala je korisnike da dijele meusobno. Dijelili su ideje, informacije, programe, ispravke greaka i hardverske trikove. Prvi sastanak Unix User Group-a, koja e kasnije postati Usenix Association, odran je 15. svibnja 1974. na Columbia's College of Physicians and Surgeons. Pojavilo se dvadesetak ljudi.

Pravnici AT&T-a takoer su uskoro odluili omoguiti jo dvjema agencijama licenciranje Unix-a: Amerikoj vladi i The Rand Corporation, istraivakoj grupi koja se financirala iz dravnog prorauna. To je, meutim, uzrokovalo porast broja korisnika sa 33 u 1975. godini na 138 u 1976. od kojih je 37 bilo izvan Amerike. 1977. Interactive Systems iz Santa Monice u Kaliforniji bila je prva kompanija koja je podrala Unix komercijalno.

44/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima Povijest i nastanak UNIX-a

10. BERKELEY SOFTWARE DISTRIBUTION

Jedan od 33 korisnika iz 1975. godine je bio i University of California-Berkeley gdje je Ken Thompson bio student. On se 1975. odazvao na poziv da odri predavanje i donio, naravno, najnoviju verziju Unix-a.

Nekako u isto vrijeme, dva studenta Chuck Haley i Bill Joy dolaze na fakultet. fascinirani Unix-om, oni poinju unapreivati Pascal koji je Thompson napravio, tako da je uskoro prihvaen kao nastavno pomagalo.

Kada su fakultetski Model 33 Teletype terminali zamijenjeni sa ADM-3 ekranskim terminalima, Joy je zakljuio da mu treba neto vie od obinog ed-a (editora koji je dolazio standardno sa Unix-om). Uzeli su editor em (to zapravo znai ed za smrtnike, u originalu ed for mortals) koji je napisao George Coulorius za Queen Mary College u Londonu i od njega napravili linijski editor ex. Iz ex-a je Joy kasnije razvio vi ekranski editor.

Kada su se vijesti o Haleyevom Joyevom Pascalu proirile, Joy je kreirao Berkeley Software Distribution. Prva je distribucija ponuena u oujku 1978. Sadravala je Pascal i editor ex, naplaivala se 50 dolara, koliko je stajala traka na kojoj je bila snimljena.

Upravo to to je cijena distribucije bila ista kao i cijena trake na kojoj je distribuirana, te priznavanje autorstva su najvanije karakteristike prvih 10 godina Unix-a, a ujedno i razlog zato je postao tako popularan. Tipina situacija je sljedea: neto je napravljeno u BTL-u i distribuirano u izvornom kodu. Korisnik u Engleskoj je napravio neto drugo od toga. Drugi korisnik u Kaliforniji je unaprijedio englesku verziju i to distribuirao dalje. Ta unaprijeena verzija je ukljuena u sljedeu BTL distribuciju. AT&T-eva politika patenata nije mogla nikako to kontrolirati, a sustav je postajao sve bolji i sve vie upotrebljavan.

45/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima Povijest i nastanak UNIX-a

Bill Joy, koji se bavio distribucijom, poslao je 30 kopija BSD-a 1978. godine. Rad na vi-u doveo ga je do koda za optimizaciju ispisivanja na razliitim terminalima. Joy je odluio napraviti interpreter za iscrtavanje ekrana na razliitim terminalima, te je tako roen termcap.

Sredinom 1978. ve je mnogo toga bilo uinjeno (Pascal je bio dovoljno robustan, a ukljueni su i vi i termcap), tako da je bilo vrijeme za drugu distribuciju BSD-a. Joy je sjeo, ukljuio poboljanja koja su poslali korisnici i poslao 75 kopija 2BSD-a.

46/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima Povijest i nastanak UNIX-a

11. UNIX SE IRI

Do tada, Unix se mogao izvoditi samo na DEC PDP raunalima. Meutim, 1977. Tom Lyon je prenio neke dijelove verzije 6 na IBM 360 u Princetonu. Sljedee godine Ritchie i Steve Johnson te Richard Miller su prenijeli Unix na raunalo Interdata 8/32 i 7/32. Sustav nije bio star niti 10 godina, a mogao se izvravati na razliitim mainama DEC-a i Interdate. Verzija 7 Unix-a bila je prvi prijenosni Unix.

U trenutku kada je navravao 10 godina, Unix se upotrebljavao svugdje po svijetu: 1976. instaliran je na univerzitetu u Tokiju, koristio se na nekoliko univerziteta u Australiji, na mnogim mjestima u Engleskoj, u Norvekoj, Francuskoj, Danskoj, Austriji i Izraelu. Sve to je postignuto bez promocije ili tehnike podrke.

Unix verzija 7, koju je BTL izdao u lipnju 1979., sadravala je mnoga unapreenja: veliki datoteni sustav, neogranien broj korisnika i poveanu pouzdanost. Bilo je i mnogo novih komandi kao to su awk, lint, make, uucp, find, cpio i expr. Programmers Manual je narastao na 400 strana, a pratila su ga dva sveska po jo 400 stranica svaki. Ova je verzija ukljuivala i potpuni Kernighan i Ritchie C prevodilac, unaprijeena korisnika ljuska (shell, sh - Bourne shell) i mnogo include datoteka.

47/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima Povijest i nastanak UNIX-a

12. KOMERCIJALIZACIJA

Industrijska primjena Unix-a takoer je dobila zamah sa pojavljivanjem verzije 7. Pojavilo se i nekoliko 32-bitnih implementacija (Xenix2 za Intelove 8086 procesore, djelo Microsofta i Santa Cruz Operation, te portovi za Zilogove Z8000 i Motoroline 68000). Pojavio se takoer i 3BSD potaknut pojavom verzije 7. Verzija 8 je preuzela vi i termcap (Billa Joya) te curses (Kena Arnolda) od BSD-a.

Ali, sa verzijom 7 pojavili su se i prvi problemi. Andy Tanenbaum sa Free University u Amsterdamu to objanjava ovako: Kada je AT&T izdao verziju 7, shvatio je da je Unix vrijedan komercijalni proizvod, pa je verziji 7 dodao licencu koja zabranjuje prouavanje izvornog koda u sklopu predavanja na univerzitetima. Mnogi univerziteti su reagirali tako to su poeli predavati samo teoriju.

Tanenbaum je odluio napisati iz poetka novi operativni sustav koji bi bio kompatibilan sa Unix-om, ali bez linije koda AT&T-a. Nazvao ga je Minix. To je bio drugi klon Unix-a (prvi je bio Idris P.J.Plaugera).

Sljadea verzija 4.2BSD-a bila je veliki uspjeh. U prvih 18 mjeseci razaslano je vie kopija 4.2BSD-a nego svih prijanjih BSD-a zajedno. Mnogi komercijalni operativni sustavi su bazirani na 4.2BSD-u: DEC-ov Ultrix i SUN-ov SunOS su najpoznatiji.

48/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima Povijest i nastanak UNIX-a

13. SAZRIJEVANJE UNIX-a

Zanimljivo je kako su razliiti proizvoai prigrlili ili odbacili Unix. IBM i BTL su razvili spoj TSS/Unix (time-sharing system) relativno rano, ali to nije imalo utjecaja na IBM. DEC je ignorirao Unix, dok je Hewlett-Packard, koji je ba kao i IBM i DEC, imao svoj vlastiti operativni sustav, prigrlio Unix sa velikim entuzijazmom jednako kao i japanci. Na kraju treba spomenuti i SUN, kod kojeg je razvoj hardware-a i Unix-a bio simbiotski, i koji je propagirao BSD.

Interno je DEC za Unix imao NIH (skraenica od not invented here nije izumljeno ovdje). To to je Unix bio rezultat razvoja BTL-a je bilo dovoljno da odbije DEC-ove ininjere. Sve od 1978. za veinu svijeta Unix je znailo AT&T-ev operativni sustav iako je za AT&T Unix znaio alat za podrku telekomunikacijama.

Kada je sudac Green odluio o Baby Bells-ima (poznati sluaj kada se AT&T morao odvojiti od Bell-a zbog anti-trustovskih zakona koji su na snazi u USA), AT&T je mogao i slubeno izdati Unix pa se pojavio System V. Sredinom i krajem 1980-ih pojavio se veliki broj komercijalnih dobavljaa Unix-a, aplikacija i mnotvo korisnika. Unix se probio u velike poslove, Wall Street i pravne firme.

Uskoro su se pojavile dvije rivalske skupine, Open Software Foundation i Unix International. Ubrzo su uvueni sudovi. Unix System Laboratories je tuio Berkeley Software Design Inc., tvrdei da je BSDI povrijedio copyright prava i poslovne tajne USL-a. Tuba je odbijena zbog toga to je AT&T u poetku distribuirao Unix u izvornom kodu bez copyrighta. Pojavile su se jo neke tube, ali na kraju se sve rijeilo, i evolucija se nastavila.

Soalris, HP-UX, AIX, Ultrix i ostale verzije ujedinile su se oko OSF-a. Unix je utjecao na sve operativne sustave koji se danas prodaju. Prozori, Multitasking i mree ne bi bile takve kakve su danas da nije bilo Unix-a. Kao to je to rekao Sunil Des, sa Ciry University, London: Tehniki, Unix je jednostavan, koherentan sustav koji nekoliko dobrih ideja iskoritava do49/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima Povijest i nastanak UNIX-a

maksimuma. Meutim, neke od ideja nemaju ba nita sa operativnim sustavima: ima veze sa dijeljenjem, suradnjom, tenjom korisnika za evolucijom tehnologije koja je bila podrana od cijelog skupa istraivaa i korisnika spremnih na suradnju.

Povijest Unix-a je u poetku bila jednostavna, za razliku od zbrke koja nastupa u trenutku kada se Unix komercijalizirao.

50/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima Povijest i nastanak UNIX-a

14. POVIJEST BSD VERZIJA

Godina Naziv 1977 1978 1979 1980 BSD 2BSD 3BSD 4BSD

Sadraj Unix Pascal, ex (za PDP-11) Isto kao i BSD uz dodatak vi, termcap, Mail, more i csh (za PDP-11/34) Virtualna memorija, Berkeley utilities (sukladno sa 32V za VAX) Bri file system, job control, pouzdani signali, auto-reboot, delivermail, Franz Lisp (za VAX-11/750)

1981 1982 1982

4.1BSD 4.1a 4.1b

Automatska konfiguracija, poboljanje performansi Probna verzija za ARPANET vorove, TCP/IP i sockets Probna verzija koritena za predavanja na Berkeley-u, fast file system i novi kod za podrku mrei

1982

4.1c

Skoro sve kao i u 4.2 osim nove podrke za signale, od 4.1c je nastao SunOS

1983

4.2BSD

Vana verzija sa novim promjenama, ukljuuje TCP/IP, ffs, novi system interface i novu podrku za signale

1986

4.3BSD

XNS umreavanje, poboljanja 4.2, cache za direktorije, Internet name server

1988

4.3Tahoe

Interne kernel mogunosti (alokator memorije, debugger, podrka nazivima diskova), poboljani TCP algoritmi, podrka za CCI Power 6 (Tahoe)

1988

Net-1

Dio 4.3-Tahoe, ukljuuje mreu, C biblioteku, uslune programe i login preko mree, distribuira se anonomnim ftp-om bez zahtjeva za licencom

51/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima Povijest i nastanak UNIX-a

1990

4.3Reno

Probna verzija nadogradnji za 4.4BSD: vnode, NFS, OSI podrka, podrava VAX, Tahoe i HP 9000/300 Dio 4.4-Reno, nova podrka za virtualnu memoriju i port na Intelove procesore 386/486

1991

Net-2

1993

4.4BSD

Potpuno novo napisan susutav da bi se izbjegao AT&T-ev kod, dodana podrka za Posix i sve iz Reno i Net-2 verzije

1994

4.4-Lite

Verzija koja se rjeava svog koda na koji je USL/Novell imao primjedbe, u osnovi identina 4.4BSD

52/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima Povijest i nastanak UNIX-a

15. UNIXTIMELINE

Slika 6. Unixtimeline

53/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima Povijest i nastanak UNIX-a

16. BIOGRAFIJE

16.1 Dennis M. Ritchie1941 -- Roen u Bronxvilleu, N.Y. 1963 -- Diplomirao na Sveuilitu Harvard kao najbolji student iz fizike 1967 -- Zapoljava se u Bell Labs-u, slijedei svog oca, Alistaira E. Ritchie, koji je tamo imao dugu karijeru 1968 -- Prima nagradu od Hardvard sveuilita za doprinos matematici 1968 -- Pridruuje se Bell Labs timu koji je radio na Multics-u, zajednikom pokuaju Bell Labs-a, MIT-a i GE-a da razvije glavni raunalni operativni sustav 1972 -- Stvara C programski jezik 1983 -- Prozvali su ga Bell Labs momak 1988 -- Primljen je u U.S. National Academy of Engineering 1989 -- Prima, zajedno sa Kenom Thompsonom NEC C&C Nagradu za vaan doprinos raunalnoj tehnologiji 1990 -- Imenovan je kao voa Ureda za istraivanje sistemskog software-a u Istraivakom centru za raunalnu znanost u Bell Labs-u 1995 -- Voa je projekta koji nastoji stvoriti Plan 9 operativni sustav 1996 -- Voa je projekta koji nastoji stvoriti Inferno(TM) operativni sustav 1998 -- Nagraen je zajedno sa Kennethom Thompsonom sa amerikom nacionalnom medaljom za tehnologiju, za razvijanje UNIX operativnog sustava

54/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima Povijest i nastanak UNIX-a

16.2 Kenneth Thompson1943 -- Roen u New Orleansu, u dravi Louisiani 1943-1960 --Kao sin asnika u amerikoj mornarici, seli se svakih nekoliko godina 1965-1966 -- Diplomirao na Sveuilitu Berkley u dravi Californiji sa odlinim ocjenama iz elektrotehnikog inenjerstva 1966 -- Pridruuje se uredu za raunalna istraivanja u Bell Labs-u koji je radio na Multics projektu 1969 -- Razvija UNIX operativni sustav 1970 -- Napisao programski jezik B, preteu D. Ritchievog C-a 1971 -- Prepisao je UNIX sa PDP-7 na PDP-11 1973 -- Ponovno kreira UNIX ali sada pomou C programskog jezika 1973 -- Prepisuje dijelove UNIX-a kako bi u njih ukljuio koncept Douga McIlroysa cjevovoda 1975-1976 -- Predaje na Berkley Sveuilitu u Californiji 1980 -- "Belle," raunalo za igranje aha koje je izradio zajedno sa Joeom H. Condonom, pobjeuje na amerikom Svjetskom Raunalnom ahovskom Prvenstvu 1980 -- Primljen u U.S. National Academy of Engineering 1980 -- Primljen je u U.S. National Academy of Science 1983 -- Prozvali su ga Bell Labs momak 1983 -- Primio je zajedno sa Dennisom Ritchiem ACM Turing nagradu 1988 -- Predaje na Sveuilitu u Sydneyu, Australia 1998 -- Nagraen je zajedno sa Dennisom Ritchiem sa amerikom nacionalnom medaljom za tehnologiju, za razvijanje UNIX operativnog sustava 2000 -- Odlazi u mirovinu iz Bell Labs-a

55/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima Povijest i nastanak UNIX-a

13. REFERENCE http://www.levenez.com/unix/ http://www.princeton.edu/~mike/expotape.htm http://www.unix.org/what_is_unix/history_timeline.html http://virtual.park.uga.edu/hc/unixhistory.html http://cm.bell-labs.com/cm/cs/who/dmr/hist.html

56/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima Struktura UNIX-a

Marijela Napast

STRUKTURA UNIXA

57/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima Struktura UNIX-a

OPERACIJSKI SUSTAVSvako raunalo ima operacijski sustav. Operacijski sustav je program koji kontrolira rad svih ostalih dijelova raunala, kako hardvera, tako i softvera. Najvanije je to nam doputa da koristimo sve mogunosti koje nam pruaju razni programi. Detaljno govorei Unix nije samo jedan operacijski sustav, on je obitelj operacijskih sustava. Razliiti proizvoai proizvode svoje verzije Unixa. Iako su sve verzije jako sline, postoje male razlike koje mogu uzrokovati probleme. Najoitiji primjer je raspored sustava datoteka i tono odreeni format nekih naredbi. Jedna od velikih prednosti Unixa za programere je to da su svi najbolje napisani korisniki programi neovisni od hardvera to ih ini lako itljivim novim sistemima. Unix je viekorisniki i viezadani operacijski sustav. Tako moe istovremeno postojati vie korisnika povezanih na sistem i svaki od njih moe imati pokrenuto vie programa. Korisnici velikom prednou Unixa smatraju mogunost istovremenog koritenja vie programa jer tako ne gube vrijeme na ekanje da se jedan posao zavri kako bi mogao zapoeti novi. Unix se koristi na radnim stanicama i viekorisnikim serverima. Na X terminalima i radnim stanicama X Windows predstavlja grafiko suelje izmeu korisnika i Unixa. Ali ipak poznavanje Unixa je potrebno za operacije koje nisu pokrivene grafikim programom, ili kad ne postoji X Windows sistem npr. u telnet sessionu.

OSNOVNA STRUKTURA UNIX OPERACIJSKOG SUSTAVAUnix je operacijski sustav koji se sastoji od 3 najvanija dijela: kernela, shella(ljuske) i datotenog sustava tj. programa. Strukturu Unixa moe opisati slika1.

Slika 1.

58/2583

Sveuilite u Splitu Struni studij Raunarstva Zagreb

Programski alati na Unix raunalima Struktura UNIX-a

KERNELKernel kao to govori i njegovo ime je jezgra svakog Unix sistema i oitava se prilikom svakog pokretanja sistema i vezan je uz sam pokretaki dio programa. Rukuje sa cijelim izvornim sistemom i prezentira nam ga zajedno sa svakim spojenim korisnikim sustavom. Zadaa kernela je da dri procese i korisnike odvojenima i regulira pristup hardveru sistema, ukljuujui i procesor, memoriju, disk i druge ulazno izlazne ureaje. Kernel direktno komunicira sa hardverom i omoguava koritenje korisnikih programa. Ti korisniki programi ne trebaju znati nita o hardveru. Oni samo trebaju znati na koji nain komunicirati s kernelom i traiti od njega da izvri eljenu operaciju. Oni komuniciraju s kernelom kroz skup standardnih sistemskih poziva. Ti sistem pozivi trae od kernela da izvri operacije kao to su: otvaranje, zatvaranje,