Nisam znao gde ovo da stavim a da ne bude offtopic, pa ajde kod tebe.
Inspirisan ovom temom i jednom naopakom izjavom:
http://www.mycity.rs/IT-desavanja-u-svetu/Linux-postaje-dominantan.html
Ko nije bio na forumu tih dana, samo da napomenem da je u pitanju jedna pompezna izjava Džima Zemlina (koji je inače poznat po tome) koja je izvađena iz konteksta u prevodu vesti IT Sveta (koji su inače poznati po tome). Zemlin je pričao o mobilnim uređajima: Android i Moblin pre svega. Originalna izjava, koliko se sećam, nije bila toliko pompezna kao IT Svet prevod. Možda čak i dosta umerena.
Elem, kako se to obično dešava sa sličnim temama na MC, ova tema se ubrzo pretvorila u Windows vs. Linuks. U žaru diskusije je pomenuta jedna stvar koju sam u više navrata hteo da argumentovano demantujem, ali je već prošlo previše vremena (a da ne pominjem da je cela priča offtopic u toj temi. To je:
raine ::i windows je unix, hint->vms, takodje windows je vise posix kompatibilan nego svi linux-i skupa
Ovo je netačno na više nivoa.
1. Windows nije Unix. Windows čak nije ni VMS.
Osim toga do Windows-a 2000, Pod imenom Windows su se podrazumevale DOS bazirane verzije Windowsa: Windows 3.x, Windows 9.x. Windows NT je predstavljan kao poseban operativni sistem.
Inače, ove verzije (3.x, 9.x i ranije) nemaju nikakve zajedničke veze sa VMS-om. Priča počinje 1981-ve. Za Microsoft počinje da radi Charles Simony, nekadašnji član Xerox PARC tima koji je radio na razvoju Xerox Alto i kasnije Xerox Star. Pored Simony-a, u Microsoft je stiglo još nekoliko ljudi iz Xeroxa. Među njima i Scott McGregor, jedan od glavnih članova razvojnog tima ranog Windowsa (do sredine osamdesetih). Negde u to vreme (verovatno podsatknut pričom Simony-a i drugih pridošlica), Gates kupuje Xerox Star (te 1981-ve vrlo skupa investicija čak i za MS koji je tada bio još uvek "mali") i pokazuje je svojim inžinjerima. Parafraziram: "ovo je budućnost". Iste godine Apple unajmljuje Microsoft za razvoj GUI aplikacija za njihov supertajni projekat pod kodnim imenom "Macintosh", takođe inspirisan Xerox PARC projektima. Štaviše, Džobs i tim Apple inženjera je dobio pristup i licencu za korišćenje viđenog u zamenu za akcije tada odlično kotirajućeg Apple-a. Apple je u to vreme bio ono što je MS danas - najjača kompanija na tržištu kućnih/ličnih računara. Mada je postojala bitna razlika. Iako je Apple razvijao i softverske proizvode, oni su ipak bili više hardverska kompanija (ovaj trend se nastavlja i do današnjeg dana).
Bez obzira prve GUI "školjke" za PC ne dolaze iz Microsofta. Visicorp Visi-on je izašao 1983. Prethodne godine (1982) je demonstriran na COMDEX-u (legenda kaže da je Gates bio upoznat i impresioniran sa "Visi-on"-om). Tandy Deskmate je bio dostupan na Tandy 1000 računarima 1984-te (nešto kasnije i za generičke IBM PC računare). 1985-te je izašao DR GEM, Mac OS klon za PC iz Digital Researcha (u početku za CP/M, ali uskoro i za PC DOS).
Grafički interfejsi su se polako širili i na drugim kućnim/ličnim računarima. Apple Lisa je zvanično predstavljena 1983. 1984-te je predstavljen prvi Macintosh. Iste godine Commodore izlazi na tržište sa linijom Amiga računara koji dolaze sa grafičkim Amiga OS-om. Atari predstavlja Atari ST sa Atari TOS-om (GEMDOS + licencirani port DR GEM-a). 1986-te izlazi GEOS za Commodore 64 računare.
Van kućnih/ličnih računara, GUI se širi i na radnim stanicama. Na Stanfordu je 1981-1983 razvijen W grafičkim sistem razvijen za V operativni sistem. MIT implementira prvu verziju X grafičkog okruženja za Unix 1984 po uzoru na W. U saradnji Carnegie Mellon univerziteta i IBM-a, 1985-te je implementiran projekat Andrew (čiji je softverski deo kasnije portovan na X11). 1987-me (godine kad je izašla prva verzija Windowsa) Bellcore predstavlja MGR za Sun računare.
Sve u svemu, GUI je već bio uveliko trend 80-tih. A Microsoft je i dalje imao dosta problema sa razvojem Windowsa. Termin Vaporware je možda upravo potekao tokom razvoja prve verzije Windowsa. 1985-te vođstvo nad Windows projektom preuzima Tandy Tower i projekat se revitalizuje. S obzirom da je Tower morao da radi sa onim što je već bilo dostupno, prva verzija Windowsa je imala ograničeni interfejs. U verziji 2.x on je uspeo da implementira i preostale ideje (preklapajući prozori, različiti fontovi, Windows Write). U otprilike to vreme on angažuje dizajnere i implementira procedure za GUI dizajn i usability testing (ovo nije postojalo u ranijim verzijama). Windows 3.x je dalje razvio postavljene koncepte. Iako Towers nije bio zadužen za projekat "Chicago" (Windows 95), sarađivao je sa razvojnim timom i njegove ideje su imale veliki uticaj na razvoj korisničkog interfejsa. Ovaj interfejs i dan danas živi (možda malo modernizovan) i u modernim verzijama Windowsa. Mada je sam Windows 95 GUI očigledno inspirisan Macintoshom, sa dodatkom boja (Mac OS je podržavao boje na aplikativnom nivou, ali standardni korisnički interfejs je uglavnom i dalje bio crno-beli sve do kasnih 90tih).
Što se tiče NT-a, tu je Raine delimično u pravu kada su u pitanju VMS koreni. Ali kao što rekoh, Windows nije VMS. Microsoft je unajmio grupu programera iz DEC-a koji su radili na razvoju VMS-a. Na sistemskom nivou interni NT API (ne Win32 API) je u velikoj meri inspirisan VMS-om. Ovo je stiglo i do DEC-a koji je odlučio da umesto tužbe, dogovori saradnju i licenciranje sa Microsoftom. NT je inače prvobitno trebao da koristi OS/2 API, ali podstaknut uspehom Win 3.x, Microsoft je implementirao Win32 API kao nativni za Win NT (jedan od mnogih izvora sukoba u vrlo teškoj saradnji na relaciji IBM - Microsoft). Mada je NT uključivao OS/2 podsistem. U osnovi NT kernel je inspirisan i ima dosta sličnosti sa VMS-om, ali sam eksterni razvojni API i korisnički interfejs je inspirisan sa Win 3.x i vrlo verovatno bar jednim delom sa OS/2. Osim toga interni NT API nije dostupan direktno i nedokumentovan je. Ono što programer, administrator, korisnik vidi i koristi su win32 interfejs i win32 API. Znači s te strane Windows NT nije VMS.
2. Windows NT i POSIX
Što se tiče POSIX-a, Microsoft je bio primoran da implementira nativni POSIX.1 podsistem, zato što je krajem osamdesetih POSIX.1 kompatiblinost bio jedan od uslova za učešće u konkursima i trgovinom sa vladom SAD-a. Ovo je prvobitni POSIX standard i ne uključuje mnoge stvari iz kasnijih revizija (pre svega podršku za thread-ove, sockete, RPC). Ovaj nativni podsistem nije našao svoje mesto u Windows-u NT 4. Zamenjen je sa opcionalno dostupnim dodatkom Windows SFU (Windows Services for Unix). Prve verzije su bile zasnovane na MKS toolkitu, dok su kasnije koristile Interix (do Windows-a XP).
Dakle, nativni POSIX podsistem je postojao samo u verzijama 3.x. I tu je u pitanju prvobitna verzija POSIX-a. S obzirom da je Linuks baziran na GNU C biblioteci i GNU korisničkim shellom i alatima, kompatibilnost sa različitim verzijama POSIX i SUS standarda se ogleda kroz kompatibilnost GNU biblioteke i userspace-a sa istim.
Ako pogledamo dokumentaciju iz 1998 za GNU C biblioteku (Internet Archive WayBack Machine), navodi se podrška POSIX.1c i XPG4 (X/Open Portability Guide - prethodnik SUS). Wikipedia nam kaže koje su to novosti u POSIXu 1.b i 1.c:
Citat:POSIX.1b
POSIX.1b, Real-time extensions (IEEE Std 1003.1b-1993)
Priority Scheduling
Real-Time Signals
Clocks and Timers
Semaphores
Message Passing
Shared Memory
Asynch and Synch I/O
Memory Locking Interface
POSIX.1c
POSIX.1c, Threads extensions (IEEE Std 1003.1c-1995)
Thread Creation, Control, and Cleanup
Thread Scheduling
Thread Synchronization
Signal Handling
Znači da je POSIX kompatibilnost GNU C biblioteke u 1998-moj bila bolja od tada aktuelnog Windowsa NT 4.0. To znači da je i Linux POSIX kompatibilnost bila bolja od Windowsa NT. I ne samo to, GNU Lib C uključuje i delimičnu kompatibilnost sa (tada) nadolazećom Single Unix Specification (preko kompatibilnosti sa XPG4).
Btw, Linus Torvalds je od samog početka naglašavao ciljanje ka POSIX kompatibilnosti. Linuks je u početku koristio sopstvenu C biblioteku, delimično baziranu na GNU C bibiloteci. U rano doba (1992 i možda 1993) Linux nije bio u potpunosti POSIX kompatibilan. Ali već godinu-dve kasnije je situacija bila mnogo drugačija. Znači ta priča o boljoj POSIX kompatibilnosti ima smisla možda eventualno 1993-1994. Mada POSIX ima nekoliko revizija, pa je POSIX kompatibilnost relativan pojam. Sadašnje verzije su jedan od sastavnih delova SUS specifikacija. Za SUS kompatibilnost na modernom Linuksu postoji LSB projekat i LSB specifikacija. Mada ovo nije vendor neutral specifikacije i sadrži neke Red Hat/Novell/Caldera specifičnosti.
Elem, nazad na NT. Gledano petnaestak godina unapred: Windows Vista izlazi 2005-te. SFU je zamenjen sa SUA (Sub-system for Unix Based Applications). SUA donosi pobljšanu podršku za POSIX API-je, uključujući podršku za POSIX thread-ove. Iako su alati koji dolaze uz SUA često u starim verzijama i neke od bazičnih UNIX alatki ne podržavaju Unicode. SUA dolazi sa manjim brojem aplikacija od SFU i dostupna je za Windows 2003 (kao update za SFU), Vista, 7 i 2008. Serverske komponente (NIS i NFS server) dolaze samo uz SUA za Windows 2003 i 2008. Razvojno okruženje uključuje starije verzije GNU razvojnih alatki (GCC 3.3 napr), ali je predefinisano podešeno za starije verzije MS VC++ kompajlera. Ažurnije alatke su dostupne iz trećih izvora, ali SUA nije kompatibilna sa novijim verzijama GNU razvojnog toolkita. Inače, SUA koristi Microsoftovu C biblioteku. Nivo implementiranosti POSIX i kasnijih SUS standarda će zavisiti od njihovih implementacija u njoj. Za ovo ne postoji jasna dokumentacija. Čak nije jasno da li je u pitanju posebna POSIX kompatibilna biblioteka ili standardna C biblioteka koja dolazi uz VC++.
Danas mnogo veći nivo kompatibilnosti imaju Red Hat-ov Cygwin i AT&T-ov UWIN. Oba dolaze sa liberalnim licencama i kompatibilni su sa novijim softverom.
Dakle Windows NT bazirani operativni sistemi implementiraju POSIX kompatibilnost na aplikativnom nivou od verzije 4.0. POSIX implementacija je delimična i ograničena na pojedine revizije standarda. Standardni alati su često zastareli i nivo kompatibilnosti sa modernim UNIX softverom je ograničen. A od Windows 8, čak i SUA izgleda postaje zastarela i verovatno neće ni biti dostupna.
3. (Open)VMS i Unix
VMS je poseban operativni sistem i u osnovi se veoma razlikuje od UNIX-a. Od internih API-ja do osnovnog korisničkog interfejsa. Doduše, ranije je ta razlika bila mnogo izraženija, ali danas je lako portovati Unix softver na OpenVMS. Od zvaničnog razvojnog okruženja do biblioteka i aplikacija iz trećeg izvora. Mislim da OpenVMS danas čak uključuje veliki broj Unix-olikih alatki.
Osim toga, OpenVMS je mnogo napredniji operativni sistem od NT-a. Na glasu je kao jako siguran OS za mission-critical aplikacije. Mislim da moderni Windowsi i dan danas imaju ograničeni podršku za klastere. VMS ju je imao još pre dvadesetak godina (možda čak i koju godinu ranije). Najbolji izvor informacija o naprednim tehničkim mogućnostima je zvanični OpenVMS FAQ (pomenut u referencama).
Reference:
http://www.windowsitpro.com/article/windows-2000/w.....-the-story
http://technologizer.com/2010/03/08/the-secret-origin-of-windows/
http://www.folklore.org/StoryView.py?story=A_Rich_Neighbor_Named_Xerox.txt
http://www.mac-history.net/computer-history/2011-09-30/apple-and-xerox-parc
http://www.gnu.org/software/libc/
http://web.archive.org/web/19981207062619/http://w...../libc.html
http://mba.shengwushibie.com/itbook/BookChapter.asp?id=28176
http://brianreiter.org/2011/09/15/sua-deprecated-in-windows-8/
http://www.cygwin.com/
http://www2.research.att.com/~gsf/download/uwin/uwin.html
http://www.openvms.compaq.com/faq/openvms_faq.html
http://www.hoffmanlabs.com/vmsfaq/
http://books.google.rs/books?id=ti4EAAAAMBAJ&p.....mp;f=false
Wikipedia
Dopuna: 19 Mar 2012 17:32
Po nalogu gazde prebacio tekst ovde. A sad nek on briše šta mu gde ne odgovara.
|