Unix och OS/2
kommer från helt olika världar.
Men de börjar inkräkta på varandras områden
Marknaden
kommer att se flera kollisioner innan
det lugnar ned sig.
I det tidiga 80-talet gick det rätt så bra med CP/M och tidiga MS-DOS-versioner för persondatorerna. Men maskinvara utvecklas mycket snabbare än programvara: Trots åtta uppdateringar de senaste sju åren kan MS-DOS bara utnyttja en liten del av de möjligheter som finns i dagens persondatorer.
Den moderna "lyx-PC:n" har nära nog samma datakraft som minidatorerna hade för sju år sedan. Dessa persondatorer kan dra fördel av operativsystem som stöder stora minnesutrymmen, flera processer och minnesskydd. OS/2 är IBM:s och Microsofts lösning.
Paradoxalt nog har OS/2-debuten nytänt, eller åtminstone bekräftat intresset för Unix. Men vad gör ett system mer lämpligt för en tillämpning än det andra? Skall man kanske rentav utveckla tillämpningar parallellt för bägge två? Vilka karakteristika delas av systemen, och vad är det bäst att undvika för att befrämja flyttbarheten?
I denna och nästa artikel diskuteras dessa frågor, där Unix och OS/2 sätts under skalpellen för skärskådning och jämförelse. I den här artikeln sätter vi upp scenariot för dramat genom att sondera marknadsbilden för systemen: Vilket är ursprunget och den generella designbasisen för systemen? Vilka är de tillgängliga systemtyperna, komponenterna, försäljarna osv? Hur väl utnyttjar varje system den befintliga maskinvaran?
I nästa artikel dyker vi ner i specifika arkitekturdetaljer och jämför de olika operativsystemens service i minneshantering, flerprocesstöd, intern processkommunikation, filsystem och allmänt in- och utstöd. En kommande artikel skall handla om jämförelser mellan användargränssnitten i Unix och OS/2, speciellt X-Windows och Presentation Manager.
När datavetare på AT&T:s Bell Laboratories utvecklade Unix under det tidiga 1970-talet var maskinvara mycket dyrare än nu. Ett operativsystem som tillät många användare att dela maskintid var ett sätt att uppnå tillräcklig kompensation för investering i maskinvara. Naturligt nog gick Unixkonstruktörerna långt i försöken att dela upp systemets processortid och resurser rättvist mellan användarna.
Utvecklarna bemödade sig också om systemverktyg som lättade bördan för datavetenskapare och programutvecklare. Efterföljande implementeringar har fortsatt denna trend och gjort Unix till en favorit hos programvaruingenjörer och utvecklare.
AT&T försåg många universitet med källkoden till Unix - och tack vare detta tjänade en hel generation datavetare sina lärpengar på just det operativsystemet. Genom sin tillgänglighet och öppenhet fortsätter Unix att vara ett viktigt operativsystem för forskning i datavetenskap.
Ett remarkabelt faktum med Unix är den breda räcka av datorer på vilket det är installerat. Gränssnittet mellan Unix, maskinvaran och de verktyg som utför in- och utoperationer är väl definierat. Därför kan den åtgärd som krävs för att ta Unix från en plattform till en annan, beräknas och prissättas med relativt god träffsäkerhet.
Men Unix är långsamt i jämförelse med enanvändarsystem som MS-DOS, främst genom sitt teckenbaserade arbetssätt för den interna processkommunikationen och in- och utoperationer. Systemkonstruktörer har försökt att kompensera för detta genom snabbare maskinvara, förbättringar och tillskott till internprocessens kommunikationsmekanismer och minneshanteringens teknik.
Processorer som Intels 80386 och Motorolas 68030 har 32-bitars processkraft och arkitektur jämförbar med mikrodatorerna Unix utvecklades på. Unix kan omedelbart utnyttja nya karakteristika hos dessa mikroprocessorer, vilket inte OS/2 och MS-DOS kan.
Unix utvecklades inte för grafik. I stället är Unix bäst på att stödja många användare genom billiga, teckenbaserade terminaler, och de flesta Unixinstallationer är fortfarande ägnade åt en sådan uppgift. Men Unixgruppen var ändå pionjärer i användandet av grafik på arbetsstationer. Tillsammans med Sun Microsystems och Apollo är Unix favoritsystemet på marknaden för arbetsstationer i högprestandaklassen vad gäller grafiksystem.
Även om Microsoft började leverera OS/2-paket för programutveckling i mitten av förra året har några av de viktigaste bitarna fortfarande varit under utveckling, främst då Presentation Manager, som planerades för marknadsdebut i oktober i år. Andra undersystem, som Microsoft OS/2 LAN Manager och IBM OS/2 Extended Edition är färdiga produkter.
Det som särskiljer OS/2 från Unix är Presentation Manager. Presentation Manager är en standardkomponent i OS/2: Det definierar programutseende för användaren såväl som en rad gränssnitt för utvecklaren. Unixsystemen saknar som helhet ett användargränssnitt för grafik med liknande bredd. Just nu är antagligen OSF:s användargränssnitt Motif det som de flesta Unixleverantörerna kommer att använda. Men det kommer nog att ta minst tre år innan det systemet finns som kommersiell produkt.
Flyttbarhet är en annan skillnad mellan de två systemen. Till skillnad från Unix utvecklades inte OS/2 med flyttbarhet i åtanke. OS/2:s kärna är till en större andel skriven i assembler, medan Unix nästan helt och hållet är konstruerat i C. Microsoft och IBM skrev OS/2 för att utnyttja Intels 80286-processor.
Även om OS/2 använder flerprocess- och minneshanteringskapaciteten hos 286, utnyttjar det inte nya tillskott hos 386 som sidväxling och virtuell 8086. Microsoft utvecklar en 386-specifik version av OS/2 men har ännu inte annonserat leveransdatum.
Skillnaderna i marknadsorienteringen hos Unix och OS/2 är givna. Unixtillverkare snor ihop stora paket med programvaruutvecklings- och textbehandlingsmöjligheter. Men OS/2-tillverkare - som tänker på den tillämpningsorienterade traditionen hos MS-DOS - låter inte vare sig utvecklingsverktyg eller tillämpningar följa med operativsystemet. Separata produkter, ofta från tredjehandstillverkare, fyller upp de luckorna för OS/2-utvecklare.
Unixanvändande på persondatorer har begränsats främst till tekniska arbetsstationer. På grund av minnesbegränsning hos IBM PC/XT och långsamhet hos 6 MHz PC/AT-kompatibla maskiner, är bara en liten del av de affärstillämpningar och ingenjörsverktyg som tagits fram på Unixbaserade stor- och minidatorer lätt flyttbara till persondatorer under Unix.
Av samma anledning skriver inte utvecklare nya tillämpningar för dessa persondatorer. Vissa försäljare använder dock persondatorn och Unix till att fylla luckor som MS-DOS lämnar: t ex affärstillämpningar för fleranvändare med ett begränsat antal kontorsanställda som kör på en persondator från flera terminaler. Hursomhelst - med hastighets- och arkitekturbegränsningarna bortsopade av de snabbare 286-kompatiblerna och 386-baserade datorer har antalet Unix-tillämpningar som flyttats till Unix-baserade persondatorer ökat betydligt.
Som livlig kontrast till Unix står MS-DOS, som lyckats bra på alla marknadsplan. Persondatorer används inte bara för "skrivbordsdata" utan också för specialinriktade tillämpningar. Persondatorer som emballerats i stryktåligare chassin för att klara tuffare industrimiljo har till och med börjat ta över många processstyrningstillämpningar i fabriksautomation - och MS-DOS är vad man kör på de flesta av dessa maskiner.
Jämfört med MS-DOS är både Unix och OS/2 långsammare och kräver kostsamma system med stort minnesutrymme.
De flesta Unixversioner i bruk idag är baserade på endera av de två huvudvarianterna av Unix - Berkeley-universitetets BSD eller AT&T:s System V. Båda är ättlingar till originalsystemet som togs fram vid Bell-labben. AT&T har utsträckt System V, sin nuvarande gren i Unix familjeträd, till världen med affärstillämpningar. BSD, å andra sidan, är mer inriktat på tekniska, utbildningsmässiga och forskningsrelaterade behov.
Unix-system som är tillgängliga för persondatorklassen är för det mesta baserade på System V-grenen. Men de flesta har också karakteristika och möjligheter från BSD-systemet pålagda.
En AT-kompatibel maskin skulle knappast gälla för att vara det om den inte körde MS-DOS. Ändå är det många kompatibler som inte kan köra OS/2. OS/2 använder inte DOS-rutinerna som gränssnitt till maskinvara eftersom DOS-rutinerna inte tagits fram för "protected-mode"-operationer. Istället är det så att varje tillverkare av AT-kompatibler måste anpassa OS/2 till den egna maskinvaran. Tredjehandstillverkare av skivenheter och annan kringutrustning måste också förse sina produkter med OS/2-tillägg om de vill att de skall fungera.
Till dags dato finns ingen variant på OS/2-kärnan - det har ju inte gått så lång tid ännu. Till yttermera visso är önskan hos många tillverkare att hålla sig kompatibla med IBM något som kan hålla OS/2 ifrån att blomma upp i lika många varianter som i Unix-världen. Men viktigast av allt: det är bara Microsoft och IBM som har tillgång till källkoden för operativsystemets kärna. Maskinvarutillverkare som har licens för OS/2 får bara binär anpassningsutrustning som de använder för att modifiera systemet.
En aspekt i OS/2:s implementering är att viktiga element är inte en del av kärnan. Dessa i huvudsak modulära tillbehör, paketerade som dynamiska länkbibliotek, omfattar Presentation Manager, Microsofts LAN Manager och IBM:s Extended Edition samt Database Manager. OS/2-tillverkare kan sälja sin produkt med egna subsystem.
De flesta utvecklare av delsystem till OS/2 är inte färdiga med sina produkter, medan de som har det bara är i den mycket tidiga marknadsföringsfasen.
Det är för tidigt att bestämma priser och specifika detaljer angående produktpaketen.
Versioner av Unix är tillgängliga för alla Intels 80x86 processorer, såväl som många andra maskinvaruarkitekturer. OS/2, å andra sidan, kör bara på Intel 286- och 386-processorer, men drar inte fördel av 386-specialiteter som 32-bitars register eller krav på sidindelat minne. Både Unix och OS/2 tillhandahåller multiuppdragskörning. OS/2 stöder länkar (eng. threads) som en form av multiuppdragskörning inom en process, medan Unix endast stöder processer.
Bastjänster hos bägge systemen är lika - OS/2 lånar till och med lite Unixterminologi. Fil- och enhetskontrollerade gränssnitt är klart jämförbara. Båda operativsystemen tillåter processer att synkroniseras och kommunicera med varandra genom semaforer och delat minne.
Virtuell minneshantering som tillåter stora adressytor stöds av bägge systemen. Bara Unix drar fördel av minneshanteringen hos 386 som tillåter sidväxling och segment upp till 4 Gbyte. OS/2 använder minneshanteringskapaciteten hos 286, vilket begränsar segmenten till 64 Kbyte.
Bägge systemen stöder delade bibliotek för att minska den totala mängden systemminne som krävs för att köra multiuppdrag som delar vanliga biblioteksfunktioner.
I överensstämmelse med deras olika ursprung har Unix och OS/2 också olika förhållningssätt till övervakningsprocesser. Unix algoritm betonar likvärdigt delande av processorn för bättre systemgenomflöde, medan OS/2 betonar snabb växling för snabbare svarstid.
Unix övervakning är baserad på en komplex algoritm vanligen konfigurerad som ett "round-robin"-system. Inom kärnan avpassar övervakaren varje uppdrags prioritet på slutet av en ensekunds tidsdel. Systemadministratören kan konfigurera tidsdelens längd. Övervakaren placerar uppdrag som använder den mesta systemresursen (som t ex processortid) i en lågprioritetskö. Tillämpningsprogram kan inte ställa specifika prioriteringar genom systemkommandon eller kärnanrop, utom ett systemanrop som tillåter en process sänka sin egen prioritet.
Den övervakande algoritmen försöker också att lösa "flaskhalsar" i systemet. Övervakaren ger t ex högre prioritet till ett uppdrag som väntar på att avsluta läsning och skrivning på ett skivminne, än ett som väntar på ett buffertminne - uppdraget på gång med läsning och skrivning kommer förmodligen att släppa ett buffertminne eller annan resurs som frigör ett eller flera blockerade uppdrag.
Som kontrast kan inte OS/2 tillåta en "rättvis" tilldelning av systemtid eller resurser för flera användare - det var heller inte tänkt så. OS/2:s övervakning är orienterat mot behovet hos en användares grafikarbetsstation i vilken multipla uppdrag "tävlar" om ett uppsättning resurser, inkluderat bilskärms- och inmatningsenheterna som ger användaren gränssnitt till tillämpningsprogramvaran.
OS/2:s övervakning baseras på 32 prioritetsnivåer inom tre klasser: kritisk, reguljär och vilande. Tillval i CONFIG.SYS-filen tillåter slutanvändaren att ändra övervakningsparametrar som t ex tidsdelen. Genom detta förhållningssätt till övervakning hoppas konstruktörerna av OS/2 att systemet ger så snabba svarstider som möjligt, medan det fortfarande ger andra uppdrag möjlighet att köras.
Det är bara Unix som tillhandahåller inbyggd fleranvändarkapacitet. Den förste användaren kan utnyttja persondatorns vanliga tangentbord och teckenfönster, vilket ger snabb utmatning. Tillkommande användare ansluter sig genom teckenbaserade terminaler genom långsammare asynkrona linjer med vanligtvis 9 600 bitar/s.
Även den bästa av kärnor har lågt värde om det blir för dyrt eller svårt att utveckla tillämpningar. Unix och OS/2:s skalmöjligheter skiftar stort. De två populäraste Unix-skalen är C och Bourne. Ett tredje, Korn, har dykt fram som en omtyckt efterträdare men är inte lika tillgänglig. Alla tre är programmerarorienterade gränssnitt till kärnan och tjänar både som kommandotolk och programspråk.
De omfattar en rad programkontroll- och villkorliga hoppinstruktioner och extensivt varierbara manipuleringsmöjligheter.
Även om vissa Unixskal till viss del uppträder som Presentation Manager har inget vunnit stor popularitet. En teckenbaserad fönstermässig miljö, SCO:s MultiView, paketeras med några av Unixsystemen.
Utvecklingsmiljön för Unixsystem omfattar C-kompilatorn och källnivåavlusaren som i standardutgåvan från AT&T. Inkluderat är också länkare, biblioteksprogram och källkonfigurations- och make-kontroll. I skalmöjligheterna finns andra kraftfulla utvecklingsverktyg för Unix som yacc och lex, som genererar program som utför komplicerad filtrering, lexikal och syntaktisk analys och stränguppdelning i tillämpningar som textbehandling, datareduktion och kompilatorskrivning.
Microports utvecklingspaket Software Development System V/386 omfattar flera andra verktyg, som t ex den populära Green Hills C-kompilatorn. SCO:s Xenix Development system har tillagda verktyg för MS-DOS korsutveckling och Microsofts optimerande C-kompilator. IBM:s PS/2-version av AIX tillhandahåller standardsetet av AT&T:s verktyg som tillval mot en extra kostnad.
Av de två OS/2-skalen, kommandotolken och Presentation Manager, är det bara den förra som har C- och Bourne-skalen. Kommandotolken är mycket närmare MS-DOS-skalet än Unix-skalet vad gäller omfattning och kapacitet. Presentation Manager erbjuder en nyckellösning som helt bygger på fönster, grafik och mus.
OS/2:s kommandotolk erbjuder fler möjligheter än MS-DOS COMMAND.COM, t ex mycket kraftfullare flödeskontroll, villkorliga hoppinstruktioner och fillänkning. Fast till och med dessa funktioner kan inte kommandotolken närma sig kapacitetsbredden som Unixskal erbjuder.
OS/2:s relativa ungdom är en annan nackdel när det gäller utvecklingsverktyg. Tillverkarna har ännu inte flyttat över sina produkter till OS/2 och till skillnad från Unix måste utvecklarna köpa många verktyg separat. Vidare: OS/2 har ännu inte möjligheter för källkodsunderhåll som är så kraftfulla som de man finner hos Unix' Source Code Control System. Dock finns nu optimerande C-kompilator, avlusare och make-program tillgängligt för OS/2.
Microsoft säljer en hyggligt komplett utvecklingssats, OS/2 Software Development Kit, för ungefär 26 000 kronor (ytterligare satser kostar 10 000 kronor) som omfattar själva operativsystemet, C-kompilator, makroassembler, komplett användar- och programmerardokumentation och en 1-års prenumeration på Microsofts direktanslutna understödsnätverk för programvaruutvecklare.
Kvaliteten och mångfalden av generella MS-DOS-tillämpningar har utan tvekan skämt bort många användare, som kan vänta sig en redig grundstötning om de hoppar till antingen Unix eller OS/2 och förväntar sig liknande omgivningar. I OS/2-världen är problemet återigen det tidiga utvecklingsstadiet - många tillverkare har annonserat OS/2-produkter, men få har verkligen också visat upp några.
Unix har "smör-och-bröd"-rutiner (ordbehandling, kalkylprogram och databashantering), men inte mångfalden som är tillgänglig under MS-DOS.
Med Unix Documentors Workbench kan utvecklare ta fram utarbetade dokument genom att bädda in formateringskommandon i textfiler med en standardredigerare och så processköra filerna med en mängd hjälpprogram. Även om dessa textformaterings- och dokumentbehandlingsverktyg är kraftfulla, är de menade för programmerare och inte så interaktiva som de flesta populära ordbehandlare för persondatorer. När de integreras med "shell script"-möjligheter är de dock praktiska verktyg för dokumentberedning.
Microport, Interactive och IBM (i AIX för PS/2) tillhandahåller alla möjligheter hos AT&T:s Documentors Workbench som tillval mot extra kostnad. SCO erbjuder en delmängd av paketet.
Allt eftersom Unix blir mer populär på PC, hittar bekanta MS-DOS-tillämpningar in i Unixriket. WordPerfect har varit tillgängligt för Unix sedan mars i år och Borland International planerar att introducera en Unix-version av sin ordbehandlare Sprint och databasprogram Paradox i slutet av detta år. Databasprogram för Unix är särskilt väl representerade. Tillverkare eller tredjehandsförsäljare säljer nu Unix-versioner av Relational Technologys Ingres, Oracles Oracle, Fox Softwares Foxbase+, Progress Softwares Progress och Informix Softwares Informix.
Många tillverkare har annonserat OS/2-versioner av sina databasprogram, men bara ett fåtal har visats upp, såsom Borlands Paradox och Microrims R:Base. IBM är den enda tillverkaren som har annonserat databasfunktioner paketerade med OS/2, i det här fallet i Extended Edition, som kommer att vara bas för OS/2-användaråtkomst i IBM:s Systems Network Architectures distribuerade databasfunktion.
Alla PC-baserade Unixtillverkare erbjuder någon form av fönsterhanteringsmiljö för Unix. Microport stöder MultiScreen-paketet och Interactive och SCO stöder MultiView (som Microport planerat att göra i framtiden).
MultiView, en teckenbaserad fönstermiljo, tillåter en användare att använda multipla fönster på persondatorer och anslutna ASCII-terminaler. Varje fönster är en separat uppdragsmiljö på Unix och MultiViews fönsterhanteringssystem.
Den enklaste form av fönster, erbjudet både av Unix och OS/2, är den virtuella skärmbilden. OS/2 kallar en processgruppering som delar teckenfönster och tangentbord en "session"; Unix använder termen "virtuell" terminal" eller "virtuell konsol".
Processer i en session eller virtuell terminal som icke visas kan fortsätta att köra. Under Unix är det möjligt att logga in olika konton i olika virtuella terminaler och växla fritt mellan dem med "heta" tangenter. I OS/2 växlar användaren mellan sessioner med en het tangent eller från en meny som finns i Session Manager.
Flera tillverkare har annonserat realiseringar av XWindow, som väl kan kallas nätverksgrafikstandard. IBM skall erbjuda en implementering för AIX. Interactive Systems planerar att bygga en full realisering som skall stödja EGA- och VGA-grafik på en persondatorplattform som opererar över ett nätverk baserat på TCP/IP.
Digital Research har också utvecklat sitt grafikgränssnitt Gem till X/Gem, en XWindowskompatibel version som går på MS-DOS, Unix och företagets eget realtidsoperativsystem Flexos.
Microport rekommenderar en XWindows-produkt från Microfield, en icke-nätverksrealisering som använder ett kort med högupplösande grafik. Microports Unix-system kommer också att stödja Locus Computings Xsight, som kommer att fungera som en XWindows-betjänt med understöd av EGA- och VGA-grafik, såväl som fjärrtangentbord och möss.
Som en grafikstandard innehåller inte XWindow alla verktyg som finns i Presentation Manager, t ex dialogboxen och menygenereringen. Företag som Digital Equipment och Graphics Software Systems erbjuder verktygssatser med de felande länkarna.
Microsoft och IBM räknade med släppande av Presentation Manager i början av oktober 1988. Många ägare av OS/2 SDK har redan en förutgåva som inkluderar en uppdragsväljare, sessionshanterare, och en filhanterartillämpning. Eftersom den här utgåvan dock innehåller en hel del "löss" går det långsamt för utvecklare med tillämpningar som innehåller Presentation Managerspecialiteter.
Två av dessa, API:n och det grafisk gränssnittet, är vida mer än fönsterhanteringssystem. Dessa gränssnitt utgör tillträde till tillämpningar inom ett ramverk för slutanvändare. Även om olika tillverkare säljer dessa tillämpningar för olika ändamål, kan de dela data, interagera och visas och uppdateras samtidigt på en bildskärm. Tangentbords- och musarbete är samma för alla tillämpningar.
Alla Unix och Xenix-system stöder en av de två populära MS-DOS-extensionerna som är tillgänglig på 80x86 Unix-system.
Microport stöder MS-DOS Merge från Locus Computing. Interactive och SCO stöder VP/iX, som utvecklats av Interactive och Phoenix Technologies. AIX kommer att erbjuda MS-DOS Windows som liknar MS-DOS Merge. Båda produkterna stöder flera MS-DOS-sessioner i 386-miljön, i vilken varje MS-DOS-tillämpning körs i sin egna virtuella 8086-maskin. Systemen kan köra samtidiga MS-DOS-tillämpningar i ett eller flera fönster och stöder de flesta tillämpningar, också de som inte betraktas vara "väluppfostrade".
OS/2 utnyttjar inte den virtuella 86-kapaciteten hos 386:an - användaren kan bara köra en MS-DOS-session åt gången. På grund av begränsningar i 286-kretsen kan bara "städade" MS-DOS-program köras i OS/2:s kompatibilitetslåda. Program som försöker med direkt åtkomst till fast skivminne, diskett, DMA-kontroll eller avbrottskontroll körs som regel inte.
OS/2 placerar också sina styrrutiner inom det låga minnet, så mindre minne finns tillgängligt för MS-DOS än i ett typiskt singel-MS-DOS-system. MS-DOS-program som inte är i förgrunden körs inte. Kommunikationsprogram felkörs ibland i kompatibilitetslådan eftersom systemövervakningstiden kan orsaka att tecken förloras.
Robert Morris och William Brooks är grundare av företaget Applied System Technology. De har utvecklat grafiska användargränssnitt och distribuerade datainsamlingssystem för industrin.