User Tools

Site Tools


istorija_unix-a_i_dalji_razvoj_bsd-a

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

istorija_unix-a_i_dalji_razvoj_bsd-a [2017/04/28 10:25] (current)
Line 1: Line 1:
 +\\
 +======Istorija Unix-a======
 +
 +Prvu verziju operativnog sistema **UNIX** razvio je 1969. godine **//Ken Thompson//​**,​ član AT&​T-ove istraživačke grupe Bell-ovih Laboratorija (//The Research Group at Bell Laboratories//​) na DEC-ovim računarima PDP-7 sa ciljem da napravi pogodan timesharing sistem. (*Kompjuterski sistemi tih godina su bili potpuno nekompatibilni,​ čak i kad su u pitanju različite verzije sistema istog proizvodjača. Operativni sistemi su izvršavali samo ograničene zadatke i to samo na mašinama na kojima su bili napisani. Ako bi firma želela da unapredi svoje kompjutere, to bi značilo instaliranje novog sistema, ali i ponovno unošenje svih podataka!*) Njemu se uskoro pridružio **//Dennis Richie//**, koji je ranije radio na projektu **MULTICS** (//​*Multiplexed Information and Computing Service*//​),​ koji ekonomski nije bio pogodan za dalje razvijanje. Od MULTICS-a je preuzeto mnogo toga: organizacija fajl sistema, ideja da se komandni interpreter (nazvan shell - ljuska) izvršava kao korisnički proces (a ne sistemski), korišćenje različitih procesa za svaku komandu, linijsko editovanje i druge. Naravno na UNIX su uticali i drugi operativni sistemi, pogotovo MIT-ov (//​Massachusetts Institute of Technology//​) **CTSS** (//​Compatible Time-Sharing Service//), a sam UNIX je uspeo u onome što oni nisu - postao je snažni operativni sistem, neobične jednostavnosti i elegancije. ​
 +
 +Druga verzija UNIX-a bila je portovana na računare DEC PDP-11. Ove verzije UNIX-a bile su programirane u asembleru. Ken Thompson je 1970. godine napisao programski jezik B (po ugledu na Martin Richards-ov BCPL), i njega je Dennis Ritchie 1973. godine proširio strukturama podataka, stvorivši programski jezik C u kom će sledeća verzija UNIX-a biti implementirana. Ova verzija je pokazala da postoje mnoge prednosti pisanja operativnog sistema u jeziku visokog nivoa, kakav je C (multiprogramiranje,​ deljenje koda, reusability...),​ tako da su danas sve verzije UNIX-a napisane u C-u. UNIX je ubrzo prešao na sisteme čiji je hardver podržavao multiprogramiranje (PDP-11/45) i tako dobio velike mogućnosti unapredjivanja. ​
 +
 +Ken Thompson i Dennis Ritchie su 1973. godine na simpozijumu o principima operativnih sistema, održanom na Purdue univezitetu,​ predstavili svoj rad o UNIX operativnom sistemu, a 1974. godine prvi put je opisan u tehničkom žurnalu. Predavanja o UNIX-u koja je Ken Thompson držao na Berkeley univerzitetu (//​University of California at Berkeley - UCB//) bila su od velikog značaja za povećanje popularnosti UNIX-a na fakultetima. 1976. je **Version 6 UNIX** bio distribuiran mnogim fakultetima pod akademskim licencama. Na Berkeley-ju je osnovana grupa za istraživanje - //Computer Science Research Group (CSRG)//, čiji je rukovodilac bio **//Robert Fabry//**. Unapredjenja koja je CSRG doneo UNIX-u nazvana su //Berkeley Software Distribution (BSD)//. Sa dolaskom UNIX-a na Berkeley-u počeo je i rad na INGRES bazi podataka, koja je preteča jedne od najboljih baza podataka današnjice - Posgres baze podataka. ​
 +
 +Sledeća verzija **Version 7 UNIX** je objavljena 1978. godine. Ovaj UNIX sistem radio je na PDP-11/70 i Interdata 8/32 računarima,​ a uskoro je portovan i na VAX, gde dobija oznaku **32V. Version 8** iz 1985. uključuje I/O stream sistem (sistem ulazno/​izlaznog toka) kojim se omogućuje fleksibilnost kernela u medjuprocesnoj komunikaciji (IPC), i uključuje se RFS (//Remote File System// -daljinski fajl sistem) sličan SUN-ovom NFS-u (//Network File System//) koji danas predstavlja standardni način deljenja fajlova medju UNIX-ima. Sledeće verzije (**Version 9** (1986), **Version 10** (1989) i **Plan 9** (1991)), ostale su dostupne samo istraživčkoj grupi unutar Bell-ovih laboratorija.
 +
 +======Razvoj UNIXa od strane USG======
 +
 +Zbog svojih osobina i mogućnosti (timesharing os, multitasking i multiuser os) UNIX je postao primamljiv i za komercijalnu upotrebu. Nakon Verzije 7 formirana je posebna grupa, //UNIX Support Group (USG)//, u okviru AT&T sa zadatkom da se brine o UNIX sistemu. Njihova prva distribucija bila je **System III** (1981. god.) i ona je imala ugradjene mogućnosti iz Version 7, 32V, real time **UNIX/RT** i Programmer'​s Work Bench (**PWB**) sistema (interne verzije u Bell-ovim laboratorijama). ​
 +
 +USG je 1983. god. objavio **System V**, System III derivat, zatim se preformirao u //UNIX System Development Laboratory (USDL)//, i 1984. god. objavio **UNIX System V Release 2 (V.2)**. Sledeća verzija - **UNIX System V Release 2, Version 4 (V.2.4)**, donela je implementaciju virtualne memorije sa paging-om tipa kopiraj-pri-upisu i deljenu memoriju. USDL se transformisao u //AT&T Information Systems (ATTIS)//, koji je 1987. god. distribuirao **System V Release 3 (V.3)**. SVR3 je adaptirao implementaciju I/O stream sistema iz V8 (nazvanu STREAMS) i uključio je RFS. 
 +
 +ATTIS 1989. godine postaje //UNIX Software Organization (USO)// i razvija **UNIX System V Release 4 (SVR4)**, kombinujući mogućnosti iz SVR3, 4.3BSD, Microsoft Xenix i SunOS operativnih sistema. Predstavlja skoro potpuno prekodiran System V kernel i podržava procesovanje u realnom vremenu, process scheduling klase, signale i IPC, dinamično alociranje struktura podataka, upravljanje virtualnom memorijom, virtualni fajl sistem i kontrolu poslova (job control). SVR4 radi kako na 32-bitnim mikroprocesorima tako i na superkompjuterima i u potpunosti je usaglašen sa POSIX standardom. SVR4 je razvijan tako da postane jedinstvena platforma za komercijalni razvoj UNIX-a, a na njemu su radili kako komercijalni tako i akademski projektanti. Oni su u tome svakako i uspeli, tako da SVR4 predstavlja možda i najznačajniju varijantu UNIX-a, pošto je objedinio sve najznačajnije mogućnosti UNIX-a koje su razvijene. ​
 +
 +Posle izdavanja SVR4 USO postaje //Unix System Laboratories (USL)//, koji postaje deo Novell-a 1993. godine.
 +
 +======UNIX na Berkeley Univerzitetu======
 +
 +Najveći doprinos UNIX-u doneo je //​University of California at Berkeley (UCB)//. Prvu zvaničnu distribuciju UNIX-a (**3BSD**) napravio je 1978. god. **//Bill Joy//**, autor vi-a (što je impliciralo i drajvere za terminale), čovek koji je značajno unapredio tadašnji pascal interpreter,​ jedan od osnivača Sun Microsystems-a,​ autor programskog jezika JAVA i jedan od najvećih UNIX hakera svih vremena. Ta distribucija predstavljala je VAX UNIX 32V, kome su dodati virtuelna memorija, straničenje na zahtev (demand paging) i zamena stranica (page replacement). Virtuelna memorija je omogućila da se UNIX koristi za razvoj velikih programa, kao što je Berkeley-ev Franz Lisp. Paralelno sa razvojem na VAX računarima,​ BSD se razvija i na računarima PDP-11, ali je manja cena VAX računara doprinela širenju BSD i u drugim akademskim okruženjima. ​
 +
 +**4BSD** je nastao DARPA-inim (//*Defense Advanced Research Projects Agency*//) finansiranjem Berkeley-a za razvijanje standardnog UNIX sistema za vladine potrebe. **4.2BSD** je obezbedio rad u mreži po DARPA-inom Internet mrežnom protokolu (TCP/IP), tako da je obezbedjena uniformna komunikacija medju različitim elementima, uključujući lokalne mreze (kao što je Ethernet i token rings) i mreže računara (Arpanet i NSFNET). Berkeley-eva implementacija TCP/IP protokola se distribuirala na trakama kao "​Networking Release 1", tj. "​**Net/​1**"​ trake. ​
 +
 +Sledeća verzija, **4.3BSD**, donela je mnoga unapredjenja i poboljšanja performansi mrežne komunikacije. Berkeley je dozvoljavao distribuiranje **'​Net/​2**'​ traka korporacijama koje su licencirale AT&T-ov UNIX, pod uslovom da one u svojim distribucijama priznaju da koriste Berkeley-eve trake. Ovo je omogućilo proširenje Interneta od 60 povezanih mreža (1984), do preko 8000 mreža i 10 miliona korisnika u 1993. 
 +
 +Na Berkeley-u su razvijeni mnogi drajveri za terminale, novi korisnički interfejs (C shell), novi tekst editor (ex/vi), kompajler za Pascal, interpreter za Lisp, kao i mnogi drugi sistemski programi. ​
 +
 +Poslednje Berkeley-evo izdanje UNIX-a **4.4BSD**, dovršeno je 1993. godine i ispunjava sve uslove koje zadaje POSIX standard. Pored toga sadrži radikalno novu organizaciju fajl sistema koja omogućava lako dodavanje novih mogućnosti. Uključena je i implementacija NFS-a, poboljšana sigurnost i unapredjena struktura kernela. Izdavanjem verzija 4.4BSD i **4.4BSD Lite** (za distribuciju) Berkeley je obustavio dalji razvoj.
 +
 +======Standardizacija UNIX-a======
 +
 +Kako je popularnost UNIX-a rasla, različite korporacije,​ organizacije i univerziteti su portovali UNIX na mnoge platforme računara, tako da je stvoren veliki broj UNIX-sličnih operativnih sistema. Primeri su DEC-ov **Ultrix**, IBM-ov **AIX**, Microsoft-ov **Xenix**, Sun-ov **SunOS** i **Solaris**,​ Hewlett-Packard-ov **HP-UX**, Compaq-ov **Tru64 UNIX**, Novell-ov **UNIX Netware**, SGI-ov **IRIX**, **Chorus**, **MACH**, **OSF/1**, **386BSD**, **SCO UNIX**, kao i mnogi drugi operativni sistemi koji su razvijani po ugledu na UNIX, kao što su: **Tunis**, **Xinu**, **Minix**, **Linux**. UNIX je danas dostupan na svim računarima opšte namene, personalnim računarima (PC), radnim stanicama, minikompjuterima (PDP-11, VAX), mainframe računarima i super kompjuterima (cray). ​
 +Većina ovih sistema je bazirana na Version 7, System III, 4.2BSD i SystemV UNIX-ima. Kako UNIX nije bio razvijan od strane samo jednog proizvodjača,​ niti za samo jednu vrstu računara, postao je najprenosiviji i najzastupljeniji operativni sistem. Ovo bi moglo da omogući korisnicima da imaju jedinstveno okruženje na svim računarima bez obzira na proizvodjača. Ali je veliki broj implementacija sistema doveo do značajnih razlika u programiranju i korisničkom interfejsu ovih sistema. Da bi se korisnicima pružilo jedinstveno okruženje, mora postojati jedinstveni programski interfejs, tako da sve UNIX aplikacije koje poštuju taj interfejs mogu da se izvršavaju na svim UNIX sistemima. ​
 +
 +Standardizacija UNIX-a je veoma težak zadatak i to zbog više faktora. Naime, kako je Ken Tompsonov prvobitni cilj pisanja prvog UNIX kernela bio poboljšanje performansi igre zvane Space Travel, on nije ni razmišljao da poštuje bilo kakve standarde. Dalji razvoj i korišćenje UNIX-a bilo je samo u okviru AT&T-a, tako da opet nije bilo potrebe za nekim zvaničnim standardom. Kada je UNIX izašao iz AT&T-a, počeo je njegov brzi razvoj u raznim pravcima, što je vodilo do pojave velikog broja varijanti UNIX-a i nemogućnosti pojave bilo kakvog standarda. Takodje, sa razvojem UNIX kernela, razvijane su i razne alatke, bez kojih današnji UNIX sistemi ne bi bili to što jesu, tako da standardizacija UNIX-a svakako mora da obuhvati i standardizovanje alatki kao što su lex, yacc, awk, grep... ​
 +
 +Prvi pokušaj standardizovanja UNIX operativnih sistema bio je osnivanje nekormercijalne organizacije **/​usr/​group** u 1980. god, 7a 1984. god. **IEEE** (//​Institute of Electrical and Electronics Engineers//​) je iskoristio nacrt ovog standarda za **POSIX** (//Portable Operating System Interface for UNIX//) standard, koji bi trebalo da obuhvata 20 standarda, ali su do sada u potpunosti dovršena i objavljena samo dva - POSIX 1003.1 koji opisuje sistemske pozive i POSIX 1003.2 koji opisuje shell. POSIX ustvari predstavlja opis interfejsa, ali ne i implementaciju,​ što znači da i nije pravi standard. Ali, on predstavlja generalizaciju UNIX sistema, tako da su ga druge organizacije koristile kao osnovu za svoje standarde. ​
 +
 +Otprilike u isto vreme AT&T je objavio **System V Interface Definition (SVID)**, a X/Open je objavio **X/Open Portability Guide (XPG)**. 1988 god. Open Software Foundation objavljuje OSF/1 verziju UNIX-a kompatibilnu sa POSIX-om i Motif - grafički interfejs koji danas predstavlja standardni korisnički grafički interfejs. ​
 +
 +1993. godine Novell je kupio UNIX System Laboratory od AT&T-a, a zatim objavio sledeću verziju UNIX-a pod imenom **UnixWare**. Kako UnixWare nije stekao veliku popularnost,​ Novell je shvatio da ukoliko ne dodje do ozbiljne standardizacije UNIX-a, nijedan komercijalni UNIX sistem neće preživeti. Zbog toga je već 1994. god. Novell zvanično dao pravo korišćenja imena UNIX organizaciji X/Open i tako započeo najuspešniji pokušaj unifikacije UNIX-a do danas. ​
 +
 +X/Open je utvrdio specifikaciju "​**Spec 1170** ", koja predstavlja nacrt više od 10 000 API-ja (//​Application Programmer Interfaces//​) kojima se opisuju UNIX-slični operativni sistemi, a 1995. god. objavljuje konačnu specifikaciju - "​**Single UNIX Specification**"​. UNIX sistemi koji su uskladjeni sa ovom specifikacijom nazivaju se "​**UNIX 95**"​. ​
 +
 +Ujedinjenjem organizacija X/Open i OSF 1996. god. nastala je organizacija **Open Group** koja je objavila drugu verziju standarda "​**Single UNIX Specification,​ Version 2**", a uskladjeni sistemi se nazivaju "​**UNIX 98**". U ovoj specifikaciji uključeno je procesovanje u realnom vremenu, tredovi i 64-bitni (i više) procesori. Specifikacija je besplatna i može se dobiti preko web-a ( **www.opengroup.org**). ​
 +
 +2001. godine objavljena je i treća verzija specifikacije "​**Version 3 of the Single UNIX Specification**"​. ​
 +
 +Ovako je najpopularniji operativni sistem na svetu prošao težak put definisanja i standardizovanja.
 +
 +======Dalji razvoj BSD-a======
 +
 +Kako je Berkeley dopuštao distribuciju svojih Net/1 i Net/2 traka pojavili su se mnogi operativni sistemi zasnovani na ovim distribucijama. Jedan od njih je i **386BSD** čiji je razvoj počeo kada je 1991. godine **//William Jolitz//** počeo sa portovanjem Net/2 (4.3BSD-Lite) trake na 386 računare. Medjutim, on nije bio u stanju da isprati sve popravke bug-ova i sve promene koje su vršene, tako da 1993. godine on prestaje sa razvojem. Programeri koji su sa njim radili podelili su se u 2 grupe koje su nastavile započeti posao. Takodje, 1992. godine je osnovana i firma **BSDi** koja je predstavila svoj komercijalni **BSD/OS** sistem. Na ovaj način je sa velikim uspehom nastavljen razvoj koji je započeo CSRG i stvoreni su najstabilniji,​ najportabilniji i najsigurniji sistemi današnjice.
 +
 +=====- FreeBSD -=====
 +
 +Početkom 1993. godine **//Jordan K. Hubbard//​**,​ **//Rod Grimes//** i **//Nate Williams//​** su pokrenuli projekat čiji je cilj bio rešavanje problema koji su postojali u principima razvoja Jolitzovog 386BSD-a. Posle konsultovanja sa tadašnjim korisnicima sistema, uspostavljeni su principi i smišljeno je ime - **FreeBSD**. Pre nego što je konkretan razvoj i počeo, Jordan Hubbard je predložio je firmi **Walnut Creek CDROM** (danas **BSDi**) da pripreme distribuiranje FreeBSD-a na CD-ROM-ovima. Walnut Creek CDROM su prihvatili ideju, ali i obezbedili (tada potpuno nepoznatom) projektu mašinu na kojoj će biti razvijan i brzu Internet konekciju. Bez ove pomoći teško da bi FreeBSD bio razvijen u ovolikoj meri i ovolikom brzinom kao što jeste. ​
 +
 +Prva distribucija FreeBSD-a na CD-ROM-ovima (i naravno na netu) bila je FreeBSD 1.0, objavljena u decembru 1993. godine. Bila je zasnovana na Berkeley-evoj 4.3BSD-Lite ("​Net/​2"​) traci, a naravno sadržala je i komponente 386BSD-a i mnoge programe //Free Software Foundation//​ (fondacija besplatnog-slobodnog softvera). ​
 +
 +Nakon što je Novell otkupio UNIX od AT&T-a, Berkeley je morao da prizna da Net/2 traka sadrži velike delove UNIX koda. Posle sudskog spora, dogovoreno je da Berkeley pripremi 4.4BSD-Lite distribuciju iz koje će biti izbačeni pojedini delovi koda. Od tada su BSD i UNIX, kontradiktorno,​ dve različite stvari. Svi korisnici Net/2 traka bili su prinudjeni da predju na 4.4BSD-Lite. Ovo je uključivalo i FreeBSD, tako da je pred projektom bio zadatak da dovrši sistem bazirajući se na novoj i nepotpunoj 4.4BSD-Lite distribuciji. Veliki delovi sistema su ponovo isprogramirani tako da je u novembru 1994. godine objavljena FreeBSD 2.0 distribucija koja je napokon mogla legalno da se distribuira preko neta i CDROM-ova. ​
 +
 +Tekuća -**stable** grana projekta je 4.x-stable. **4.5-RELASE** je objavljen u januaru 2002. godine, a sledeće izdanje FreeBSD 4.6 zakazano je za 1. jun. 2002. 
 +Krajem 2002. godine FreeBSD-**current** će biti objavljen kao **FreeBSD 5.0-RELASE**.
 +
 +=====- NetBSD -===== ​
 +
 +NetBSD je takodje nastao sa ciljem da poboljša mehanizam razvoja 386BSD-a. Ljudi iz firme **Virginia Tech** uzeli su za osnovu 386BSD i Net/2 traku i počeli su sa portovanjem BSD-a na računare Macintosh. Razvoj se ubrzo proširio i na Atari ST, Amiga, i PC platforme. ​
 +
 +Kako se projekat razvijao, postalo je očigledno da će FreeBSD biti namenjen za i386, a NetBSD za sve ostale platforme. Ime je dobio zato što je do 1998. godine rad na njemu bio vezan isključivo za Net, a komunikacija medju developer-ima je bila bazirana na chat-u i mail-u. ​
 +
 +Danas snaga NetBSD-a leži u podršci za čak 51 hardversku platformu. NetBSD je postao stabilni, multiplatformski,​ istraživački orijentisan operativni sistem. Posvećenost ka portabilnosti uticala je na druge operativne sisteme da i oni pružaju podršku za više platformi. Nekoliko operativnih sistema (OpenBSD, KAME, Darwin, MacOS X) izvedeno je direktno iz NetBSD-a. NetBSD je besplatan i može se snimiti sa neta. (**www.netbsd.org**). Aktivna verzija je 1.5.2 (maj 2002.) ​
 +
 +=====- OpenBSD -=====
 +
 +OpenBSD projekat je 1996. započeo **//Theo De Raadt//**, jedan od glavnih programera projekta NetBSD. Umesto velike portabilnosti,​ OpenBSD se orijentisao ka sigurnosti. OpenBSD je operativni sistem sa izrazito jakim security-em,​ kao i sa kriptografijom (Blowfish, OpenSSH, PRNG, OpenSSL...) integrisanom u sam sistem. Takodje, programeri OpenBSD-ja su od 1996. godine počeli sa detaljnim pregledom koda kernela u potrazi za potencijalnim bug-ovima i exploit-ima,​ što je rezultiralo ispravljanju mnogih grešaka u kodu pre nego što su one i bile primećene u drugim sistemima. ​
 +
 +OpenBSD je svakako najimpresivniji operativni sistem današnjice sa aspekta security-a, a takodje se i on može dobiti besplatno preko neta. (**www.openbsd.org**). Aktivna verzija je 3.1.
 +
 +
 +
 +
 +
 +~Marko Uskoković
  
istorija_unix-a_i_dalji_razvoj_bsd-a.txt · Last modified: 2017/04/28 10:25 (external edit)