NeXTSTEP
NeXTSTEP byl operační systém plně kompatibilní se systémem UNIX. Poprvé byl představen v říjnu 1988. NeXTSTEP verze 1.0 se dostal na trh 18. září 1989. Vyvinula jej firma NeXT Computer Inc., založená Stevem Jobsem. Původně byl určen pouze pro počítače NeXT s procesorem Motorola 68040, od roku 1993 byl vyvíjen pro PC s procesory Intel.
Vyvíjí | NeXT |
---|---|
Rodina OS | Unix |
Druh | uzavřený vývoj |
Aktuální verze | 3.3 / 1995 |
Podporované platformy | ' |
Typ jádra | hybridní |
Programovací jazyk | C |
Licence | proprietární EULA |
Stav | bez podpory |
Válka softwarových světů
editovatApple Macintosh byl drahý uzavřený svět s relativně malým množstvím programů. Běžní uživatelé používali počítače PC/AT, kde se prosadil MS-DOS. Nezmar MS-DOS, tenkrát ve verzi 3.30, poskytoval textově orientovanému uživateli pouze základní služby. Uživatelé počítačů ovšem odmítají nepřátelství příkazové řádky a zcela jednoznačně chtějí používat prostředí typu Windows. Proto se začaly objevovat ve světě stolních PC počítačů nové operační systémy založené na grafickém uživatelském prostředí - GUI. Mezi tyto operační systémy patří Windows NT, OS/2, Solaris a NeXTSTEP 3.1.
Představitelé Microsoftu ovšem takticky přehlížejí fakt, že Windows NT nejsou objektově orientovaným systémem. OS/2 nemají chuť podporovat vývojáři z prostředí Windows. OS/2 trpí nedostatkem vlastních aplikací. Solaris 2.0 běží už na počítačích PC/386, ale počítá se s tím, že hlavní práci při náročných výpočetních operacích budou přebírat počítače s procesorem SPARC. Kromě toho Solaris má velké problémy s vlastní stabilitou a odmítá pracovat i na certifikovaném hardwaru. NeXTSTEP je prvním plně objektově orientovaným operačním systémem, který dokáže, kromě jiného, bezproblémově spolupracovat v heterogenních sítích s různými operačními systémy. Vlastníkem NeXTSTEPu je americká firma NeXT Computer Inc., kterou založil v roce 1986 Steve Jobs.
Steve Jobs
editovatPo usilovném vývoji představil v roce 1989 Steve Jobs veřejnosti svůj první počítač NeXT a sklidil za promyšlenou koncepci hodně chvály. Součástí počítače vybaveného mikroprocesorem Motorola 68040 byl i operační systém NeXTSTEP. NeXTSTEP je plně kompatibilní se systémem UNIX, protože ho tvoří celkem čtyři vrstvy:
- Jádro je tvořeno Mach kernelem, který má svůj původ na Carnegie-Mellonově univerzitě. Mach kernel má objektově orientovanou stavbu s podporou multitaskingu.
- Základní služby operačního systému obhospodařuje kompletní BSD Unix verze 4.3, který byl vyvinut na univerzitě v Berkeley.
- Používání grafického prostředí zajišťuje Windows server.
- A konečně čtvrtou vrstvou je softwarové prostředí, které obsahuje všechny vývojové prostředky a utility, které můžeme při práci využít.
Z toho také vyplývá, že si lze kdykoliv otevřít okno a řídit NeXTSTEP pomocí složitých příkazů Unixu. Kromě toho NeXTSTEP v oblasti Unixu umí bez problémů emulovat prostředí X Window, což je grafické uživatelské prostředí rozšířené téměř na všech jeho platformách. Důležitou vlastností NeXTSTEPu, která souvisí s jeho obslužnou vrstvou BSD Unixu je, že ho lze celkem snadno přenést na jiný procesor a dokonce aplikace vytvořená na určitém procesoru (např. HP PA-RISC) může bez nejmenších úprav běžet na procesoru jiném (např. MIPS R4000). Možnost startovat jednu aplikaci na různých procesorech obhospodařuje mechanismus s názvem „Multi-architecture Binary Support“, který se zcela automaticky postará o výběr odpovídající části kódu.
Snadno dokáže pracovat v lokálních heterogenních sítích, kde může bez problémů komunikovat s počítači Macintosh (rozhraní AppleShare), PC (rozhraní TCP/IP původem z Unixu), Novell (běžně známé rozhraní IPX) a Unix systémy (rozhraní TCP/IP). OS Unix však má jednu slabinu. Díky rozmanitosti funkcí a vlastností systému Unix, je jeho obsluha velmi komplikovaná. A právě tuto slabinu (asi také jedinou) pomůže uživateli překonat grafický obslužný OS NeXTSTEP. 10. února 1993 se firma NeXT Computer Inc. rozhodla ukončit výrobu „černého železa“ pracovních stanic NeXT a orientovat se pouze na software. Zároveň s tím převést OS NeXTSTEP z prostředí procesoru Motorola 68040 na procesor Intel 486, což je určitě historický krok. Převedení na platformu Intel bylo dokončeno 25. května 1993.
Multimédia v NeXTSTEPu jsou samozřejmostí. Samozřejmostí je i používání technologie Display PostScript Level 2 pro zobrazování i tisk dokumentů a implementace technologie True Color.
První oficiální představení NeXTSTEPu pro procesory Intel proběhlo 1. července 1993. Z prezentace bylo zřejmé, že NeXTSTEP nabízí ještě více funkcí než Windows NT. Nároky na hardware počítače ovšem nejsou o nic menší. NeXTSTEP se nabízí ve 2 rozdílných variantách:
- Uživatelské prostředí, které slouží pouze ke startovaní některých nástrojů OS a hotových aplikací (Runtime). Uživatelské prostředí vyžaduje počítač PC s Intel 486, 16 MB RAM paměti a 120 MB na disku.
- Programátorské prostředí, které obsahuje všechny vývojové nástroje a mnoho dalších podpůrných utilit pro vytváření, udržování a další zdokonalování aplikací. Programátorské prostředí vyžaduje počítač PC s Intel 486, 20 MB RAM paměti a nejméně 350 MB na disku.
Desktop
editovatObrazovka monitoru představuje pracovní plochu uživatele – Desktop. Stejně jako ve Windows 3.1 si můžete Desktop libovolně upravit podle svých požadavků. Pozadí pracovní plochy je standardně vyplněno barvou, kterou si určí uživatel. Všechno ostatní je považováno za přemístitelné objekty. Objekty pracovní plochy se člení podle logického významu do různých skupin. První skupinou jsou okna na která se vážou ovladače oken a různé posuvníky i šipky. Aplikační okno není omezeno fyzickou velikostí monitoru a jeho velikost může být libovolná. S tím, že na obrazovce je vidět příslušný výřez okna. Přesun na jinou část okna zajistí právě již zmíněné posuvníky s jezdci.
Další skupinou jsou dialogová okna, která slouží při nastavování různých parametrů prostředí. Nejzajímavějším dialogovým oknem je určitě Data Browser, který slouží k přehlednému zobrazení hierarchických seznamů. Adresáře jsou znázorněny po sloupcích. Vpravo se vždy nachází aktuální adresář. Snadnější ovládání umožňuje skupina ikon. Ikony se používají při různých činnostech desktopu. Nejčastěji ikony reprezentují objekty nebo soubory. Stejně jako ve Windows 3.1 i zde ikony slouží k rychlému určení objektu na základě jeho grafické reprezentace.
U NeXTSTEPu existuje také odpadkový koš známý z počítačů Macintosh. Jmenuje se „recyklovač“. V protikladu k odpadkovému koši počítače Macintosh nezapomíná při vypnutí recyklovač vyhozená data. K pracovní ploše patří také On-line nápověda, která obsahuje podrobný popis celého operačního systému. Také zde je vidět, že uživatel je pánem, poněvadž nápověda ovládá šest vesměs světových jazyků - anglicky, německy, španělsky, italsky, francouzsky a švédsky.
Workspace Manager
editovatHlavním nástrojem uživatele NeXTSTEPu bude určitě Workspace Manager sloužící jako grafický správce při interaktivní práci v systémovém prostředí. Workspace Manager přináší novou techniku využívání aplikací. Často používané aplikace může uživatel přemístit na „application dock“, kde mu jsou k dispozici po celou dobu práce se systémem. Každý systémový objekt můžeme zobrazit v okně INSPECTORu. Atributy jednotlivých objektů můžeme zobrazit v Inspektoru atributů.
Pokud máme na disketě např. grafický soubor v méně obvyklém formátu, můžeme (podle přípony souboru) tento soubor přiřadit k určité aplikaci pomocí TOOLS INSPECTORu. Jednou z nejdůležitějších funkcí Workspace Manageru je okno procesů s běžícími programy. Okno procesů nám zobrazí všechny aktuálně spuštěné aplikace. Pokud by se nějaká aplikace začala chovat vůči systému agresivně nebo by ztuhla, můžeme ji zde předčasně ukončit příkazem KILL. Při práci s objekty a aplikacemi můžeme v plné míře využít techniku Drag-and-drop. Libovolný soubor přemístíme pomocí myši nad ikonu programu. Program se spustí a otevře nabídnutý soubor.
NeXTMail
editovatNeXTmail je multimediální elektronický systém pošty. Podporuje Rich Text Format (RTF) textových souborů, zvuk a grafiku. Rovněž podporuje standardní nemultimediální poštu UNIX systémů. NeXTmail podstatným způsobem rozšiřuje možnosti komunikace mezi uživateli heterogenní sítě.
Edit
editovatTextový editor EDIT je univerzální systémový editor, kde uživatel může vytvářet a upravovat ASCII a RTF soubory. Edit také podporuje obrázky ve formátu TIFF a EPS. Celkem umí Edit zpracovávat čtyři druhy souborů:
- Obecné textové soubory (ASCII formát)
- Obecné textové soubory (RTF formát)
- Zdrojové soubory jazyka C
- Hypertextové dokumenty
Edit má všechny rysy a funkce komfortního textového editoru, který je schopen splnit všechna přání rozdílně zaměřených uživatelů. Pokud uživatel vytváří program v jazyku C, Edit může rozvinout určený příkaz již při napsání několika počátečních písmen. Všechny funkce Editu můžeme také ovládat myší.
TeX
editovatJedním z dalších uživatelských nástrojů je sázecí program TeX. Program TeX nelze ovládat myší, takže ovladatelnost programu trochu vybočuje z jednotného uživatelského prostředí.
Digital Webster
editovatDigital Webster představuje digitální implementaci Websterova výkladového slovníku. Websterův slovník a tezaurus vám mohou pomoci, když narazíte na nějakou nesrozumitelnost ve velmi rozsáhlém HELP systému každého uživatelského nástroje. Je rovněž výhodný při časté práci s rozsáhlými anglickými texty. Zajímavým pro podnikatele určitě bude FaxReader, což je program automaticky přijímající došlé FAX dokumenty. Fax můžete snadno odesílat z libovolné aplikace nebo rozesílat elektronickou poštou. Pokud si potřebujete prohlédnout nebo vytisknout libovolné Postscriptové soubory použijte program Preview. Program umí to samé s obrázky formátu TIFF a jeho používání je snadné.
Digital Librarian
editovatI když to není na první pohled zřejmé Digital Librarian patří mezi nejdůležitější nástroje hlavně pro správce systému a programátory. Jde o relativně jednoduchý indexový systém, jenž umožňuje rychle prohledávat velké množství dokumentace. Digital Librarian je v kompletní verzi OS NeXTSTEP doplněn o kompletní dokumentaci k operačnímu systému. Jste správcem NeXTSTEPu a potřebujete svůj výkonný počítač propojit v síti s počítačem Apple Macintosh ? Žádný problém, poněvadž stačí spustit Digital Librarian a zadat třeba sousloví - „Macintosh File System“. Za několik sekund se vám zobrazí seznam všech dokumentů obsahujících zmínku o systému souborů Macintoshe. S Digital Librarianem může samozřejmě stejným způsobem pracovat i programátor.
Configure
editovatSlužby aplikace Configure oceníme až při nutnosti změnit konfiguraci pracovní stanice. Kdykoliv můžeme instalovat nový ovladač zařízení, změnit parametry aktuálního ovladače nebo zrušit starý nepotřebný ovladač. Kromě toho jsou všechny ovladače v NeXTSTEPu značně inteligentní, poněvadž přesně „vědí“ jaké nároky mohou uplatňovat vůči systému. Jednotlivé ovladače nelze v žádném případě připojit k zařízení, které samy neumějí ovládat.
Objektové programátorské nástroje
editovatVývojové prostředí NeXTSTEPu obsahuje všechny nástroje, které potřebujete při vytváření aplikací. Interface Builder je velmi pokročilým vývojovým nástrojem, jenž vám umožní vytvořit grafickou aplikaci a otestovat její uživatelské rozhraní ve velmi krátké době. Celý proces vytváření, ladění a upravování řídí Project Builder. Project Builder vám zároveň dává naprostou svobodu při vytváření aplikací. Vývojové prostředí NeXTSTEPu samozřejmě také obsahuje grafický debugger a kompilátory objektově orientovaných jazyků Objective C a Objective C++. Výhodou integrovaného vývojového prostředí je skutečnost, že každá vytvořená aplikace má prakticky identické ovládání, což vždy kontrastovalo s chaosem v oblasti MS-DOS. Ve vývojovém prostředí NeXTSTEPu byla například programována a vyvíjena hra DooM od firmy id Software, uvedená na trh v prosinci 1993.
Project Builder
editovatProject Builder slouží k vytváření, ladění a udržování projektu aplikace. Udržuje všechny soubory a zdroje spojené s aplikací. Project Builder dovede sám připravit základní rozhraní, které je společné většině aplikací. Project Builder také umí vygenerovat Makefile. Make je velmi silný nástroj pro správu projektů, který je součástí téměř každé implementace UNIX systému. Jestliže při kompilaci projektu se objeví chyba, Project Builder se okamžitě postará, aby se kritická část kódu přenesla do integrovaného editoru EDIT, kde můžeme chybu opravit. Navíc NeXTSTEP obsahuje mnoho hotových projektů, které programátor může studovat jako příklady. S pomocí Project Builderu můžete tyto projekty modifikovat a využít při vytváření vlastní aplikace.
Interface Builder
editovatInterface Builder je primárním nástrojem pro vytváření designu celého programu. Interface Builder maximálně využívá objektové podstaty NeXTSTEPu, což vzhledem k ostatním operačním systémům, umožňuje provádět věci v době jeho nástupu nevídané. Prostředí je založeno na samostatných objektech, které si libovolně mohou posílat různé zprávy, data, obrázky nebo cokoliv jiného. To ve svém důsledku znamenalo zásadní změnu při vytváření aplikací. Pomocí množiny vzájemně komunikujících objektů si uživatel může vytvořit např. složitou ekonomickou agendu bez napsání jediné řádky programu. Stačí prostě vzít myš a objekty vhodným způsobem spojit. Interface Builder rovněž podporuje vytváření interaktivní nápovědy a lokalizaci aplikací do jednotlivých národních jazyků. Interface Builder významně zjednodušuje práci při psaní programů. Umožňuje vytváření podtříd již popsaných tříd objektů pouhým jednoduchým dodáním nových funkcí.
Graphical Debugger
editovatSlouží pro ladění programů. Výkonný Graphical Debugger umožňuje ladit optimalizovaný kód a přerušovací body v programu. GDB debugger je plně integrován s editorem EDIT a Project Builderem, včetně podpory myši při nastavování přerušovacích bodů, zkušebních dat, zastavování a spouštění programu nebo při dalších ladících operacích.
Application Kit
editovatObjekty z Application Kit zajišťují v aplikacích standardní rozhraní, ovládání a řízení událostí, správu jednotlivých oken programu. Objekty rovněž zajišťují ovládání tisku a faxu. Protože jsou všechny objekty vytvořeny v jazyku Objektive C, může je uživatel libovolně upravovat a rozšiřovat počet jejich funkcí. Application Kit také obsahuje návrhy mnoha jednoduchých ovládacích prvků (buttons) a posuvných seznamů (scrollers), podobně jako mnohem později vyvinutá vývojová prostředí pro ostatní OS. Je podporováno sdílení dat mezi aplikacemi pomocí (CUT, COPY, PASTE). S pomocí distribuovaných objektů z Application Kit lze poměrně snadno do aplikací zabudovat technologii Klient/Server.
Database Kit
editovatDatabase Kit je objektově orientovaný nástroj pro vývoj databázových aplikací. Umožňuje vytvářet databáze s nezávislou vnitřní architekturou, což významně usnadní přenášení aplikací do odlišného databázového prostředí. Díky tomu lze provozovat přenesenou aplikaci bez změny uživatelského rozhraní a logiky ovládání. Uvedená vlastnost radikálně redukuje čas potřebný k vytvoření a implementaci grafického prostředí v interaktivních databázových programech. V současné době je možné vytvářet databáze v prostředí ORACLE a SYBASE. V databázových aplikacích je možné uplatnit mnoho různých typů dat - jednoduchý text, RTF text, čísla, obrázky nebo dokonce zvuk. Database Kit spolupracuje s DBModelerem, což je grafický nástroj pro vytváření databázových modelů. Database Kit rozšiřuje oblast použitelnosti objektového programování i na hromadné zpracování dat, kde zatím objektové databáze nebyly příliš úspěšné.
3D Graphics Kit
editovatJak už napovídá sám název jedná se o sadu objektů a nástrojů pro tvorbu grafických aplikaci ve 3D. Tento 3D Kit používá patentovanou technologii RenderMan firmy Pixar. 3D Kit nabízí řadu nástrojů pro interaktivní vytváření třírozměrné grafiky a tisk výsledných obrázků se provede pomocí integrovaného jazyka 2D PostScript. Teprve když obyčejný člověk pozoruje na monitoru, jak jsou dva nádherné obrázky překryty rotující trojrozměrnou krychlí, pochopí sílu 3D grafiky.
Programovací jazyk Objective-C
editovatObjective-C nabízí mnoho vlastností jazyka SmallTalk s výkonností jazyka C. Objektové C nabízí možnost dynamického vytváření programů, což je podstatné při programování flexibilního GUI a vytváření vzdálených zpráv (na jiný počítač v rámci počítačové sítě). Rozšířené výhody objektu v distribuovaném počítačovém prostředí dovolují aplikacím zasílat zprávy (informační objekty) jiným aplikacím v síti. To přináší možnost řídit událostmi celou počítačovou síť. Zdrojový kód programu je automaticky optimalizován a uložen ve proveditelném formátu. V NeXTSTEPu existovala vedle Objective-C, také jeho rozšířená varianta Objective C++ a průmyslový standard ANSI C, který byl zařazen pouze kvůli zpětné kompatibilitě.
První dojmy z doby začátků
editovatNeXTSTEP v roce 1993 podporoval šest jazyků včetně češtiny. V té době se prodával NeXTSTEP verze 3.1 a předpokládalo se uvedení vylepšené verze 3.2. Součástí verze 3.2 měl být také emulátor MS-DOSu a Windows od společnosti Insignia Software. začaly se objevovat programy šité na míru NeXTSTEPu.
Přenosné distribuované objekty
editovatPřenosné distribuované objekty (PDO – Portable Distributed Objects) byly v polovině roku 1994 unikátní technologií, která byla určitou nadstavbou NeXTSTEPu verze 3.2. PDO byl prvním produktem, který dovoloval provozovat heterogenní klient/server aplikace založené na objektové technologii. NeXTSTEP aplikace, které se spoléhaly na objektovou strukturu NeXTSTEPu, mohou komunikovat s čímkoliv jiným přes systém zpráv. Tato architektura tehdy nabízela výjimečně dobré klient/server prostředí, jež eliminovalo nutnost neustálého předělávání původní modelu, což je vyžadováno při používání tradičního strukturovaného programování. Objekty organizované do bloků mohly být prováděny na hardwaru klienta nebo řídícího serveru, kdykoliv to vyžadovala spuštěná úloha. PDO přitom dokázalo rozvinout objekty serverů na pracovních stanicích s odlišným operačním systémem (HP-UX 9.0 a později dalších). Tyto objekty mohly používat rozmanité klient aplikace.
PDO dále dovoloval rozšířit tuto strukturu o bezešvou objektovou strukturu NeXTSTEPu pro lokální i distribuované objekty. PDO nástroje a objektové knihovny byly podmnožinou stávajících nástrojů a knihoven NeXTSTEPu. PDO také obsahoval nízkoúrovňové protokoly pro lokální klient objekty. Technologie PDO se skládala z následujících komponent:
- Objective C – mělo a má mnoho vlastností SmallTalku s výkonností Céčka. Objektové C nabízí možnost dynamického vytváření programů, což je podstatné při programování flexibilního GUI a distribuovaných zpráv pro jiný počítač v rámci počítačové sítě. Rozšířené výhody objektu v distribuovaném počítačovém prostředí dovolují aplikacím zasílat zprávy jiným aplikacím v síti. To už tehdy nabízelo možnost řídit událostmi celou počítačovou síť. Objective C bylo založeno na GCC verze 2.4 od firmy Free Software Foundation Inc.
- ANSI C – Průmyslový standard ANSI C byl zařazen pouze kvůli zpětné kompatibilitě.
- GDB Debugger – Umožňoval ladit optimalizovaný kód s pomocí přerušovacích bodů a byl plně integrován s editorem EDIT a Project Builderem včetně kompletní podpory myši.
- Objekty jádra NeXTSTEPu – Objekty jádra poskytovaly strukturu pro ovládání datových struktur, jež jsou běžné ve většině aplikací.
- Distribuované objekty NeXTSTEPu – Objekty vysoké úrovně, které měly v sobě zapouzdřeny detaily síťových protokolů a dovolující distribuci procesů, sdílení objektových služeb a komunikaci mezi aplikacemi.
- DOEventLoop – Koordinoval vícenásobné vstupy a oznamoval ovladačům, kde jsou dostupná data pro čtení, pokud na portu čekala zpráva od jádra Mach. DOEventLoop byl objekt určený pro textově orientované aplikace na serveru.
- Přenosný nmserver – Dovoloval transparentní komunikaci přes TCP/IP s dalšími implementacemi nmserveru bez nutnosti dodatečně instalovat software na straně klienta.
- NeXTSTEP souborové funkce – Poskytovaly transparentní nezávislý přístup k původnímu souborovým systémům. Jednalo se o API vybavené pro čtení, zapisování a modifikování proudů dat nezávisle na původních souborech, obsahu paměti apod.
- Přenosný BuildServer – Byl určený vývojářům a dovoloval vytvářet PDO objekty na cílové platformě.
- Systém nastavení NeXTSTEPu - Nastavoval funkce a programy pro čtení a zápis standardních nastavení uživatele pro NeXTSTEP i hostitelský operační systém.