HeliOS
Utvecklare | Perihelion programvara |
---|---|
OS-familjen | Unix-liknande |
Arbetstillstånd | Historisk |
Källmodell | Öppen källa |
Initial release | 1988 |
Senaste släppningen | 1.3.1 / September 1992 |
Typ av kärna | Mikrokärna |
Licens | GPL v3 |
Officiell hemsida | https://github.com/axelmuhr/Helios-NG |
Helios är ett utgått Unix-liknande operativsystem för parallella datorer . Det utvecklades och publicerades av Perihelion Software . Dess primära arkitektur är Inmos Transputer . Helios mikrokärna implementerar ett distribuerat namnområde och meddelandeprotokoll, genom vilket tjänster nås. Ett POSIX- kompatibilitetsbibliotek möjliggör användning av Unix-programvara, och systemet tillhandahåller de flesta av de vanliga Unix-verktygen.
Arbetet med Helios började hösten 1986. Dess framgång begränsades av Transputerns kommersiella misslyckande, och försöken att flytta till andra arkitekturer fick begränsad framgång. Perihelion upphörde att handla 1998.
Namnet på produkten var Helios . I materialet de producerade Perihelion Software aldrig till operativsystemet som HeliOS .
Utveckling
I början av 1980-talet gick Tim King med MetaComCo från University of Bath och tog med sig några rättigheter till ett operativsystem som heter TRIPOS . MetaComCo säkrade ett kontrakt från Commodore för att arbeta på AmigaOS , med AmigaDOS- komponenten härledd från TRIPOS. 1986 lämnade King MetaComCo för att grunda Perihelion Software och började utveckla ett parallellt operativsystem, initialt inriktat på INMOS Transputer -serien av processorer. Helios utökade TRIPOS användning av en lättviktsarkitektur för meddelandeöverföring till nätverksanslutna parallella maskiner.
Helios 1.0 var den första kommersiella releasen sommaren 1988, följt av version 1.1 hösten 1989, 1.1a i början av 1990, 1.2 i december 1990 följt av 1.2.1 och 1.2.2 uppdateringar. Version 1.3 var en betydande uppgradering med många förbättringar av verktyg, bibliotek, server och drivrutiner. Den senaste kommersiella utgåvan var 1.3.1. Senare gav Tim King och Nick Garnett tillstånd att släppa källorna under GNU Public License v3. Helios 1.4 Alpha planerades att inkludera stöd för OpenLook, OpenMotif, KDE, Gnome och X11R6-stöd för Transputer, Linux, Solaris och Windows. Denna utgåva slutfördes inte.
Kärna och kärna
Helios designades för ett nätverk av flera noder, sammankopplade med flera kommunikationslänkar med hög bandbredd. Noder kan vara dedikerade bearbetningsnoder eller processorer med anslutna I/O-enheter. Små system kan bestå av en värddator eller arbetsstation ansluten till en uppsättning av flera bearbetningsnoder, medan större system kan ha hundratals bearbetningsnoder som stöds av dedikerade noder för lagring, grafik eller användarterminaler.
Ett Helios-nätverk kräver minst en I/O-servernod som kan tillhandahålla en filsystemserver , konsolserver och återställningskontroll för bearbetningsnoderna. Vid ström på startas Helios- kärnan från I/O - servern till nätverket. Varje nod startas upp med hjälp av en liten första stegs loader som sedan laddar ner och initierar själva kärnan. När den väl har körts kommunicerar en nod med sina grannar och startar dem i tur och ordning om det behövs.
Helios-kärnan består av kärnan, biblioteken, loader-tjänsten och processor manager-tjänsten.
Kärna
Helios-kärnan är i själva verket en mikrokärna , som ger en minimal abstraktion över hårdvaran med de flesta tjänster implementerade som icke-privilegierade serverprocesser. Den tillhandahåller minnesallokering, processhantering, meddelandeöverföring och synkroniseringsprimitiver.
Bibliotek
Helios-kärnan innehåller tre bibliotek: system-, server- och verktygsbibliotek. Verktygsbiblioteket tillhandahåller några grundläggande biblioteksrutiner för C -programmering som delas av de andra biblioteken. Systembiblioteket tillhandahåller det grundläggande kärngränssnittet och konverterar C-funktionsanrop till meddelanden som skickas till och från kärnan. Den implementerar en abstraktion som tillåter kommunikation mellan processer oavsett var de befinner sig i nätverket. Serverbiblioteket tillhandahåller stödfunktioner för namnutrymme för att skriva Helios-servrar, som beskrivs nedan.
Lastar- och processoransvarig
De återstående komponenterna i kärnan är loader- och processorhanterarservrarna. När kärnan väl har laddats, bootstraps dessa processer och de integrerar den nykörda noden i Helios-nätverket.
Namngivning och servrar
En nyckelfunktion i Helios är dess distribuerade namnsystem. Ett Helios-nätverk implementerar ett enda enhetligt namnutrymme, med en virtuell rotnod, valfria virtuella nätverksstruktureringsnoder, noder för varje processor och underprocessornamnrymder som tillhandahålls av tjänster. Namnen liknar de i Unix , med hjälp av ett snedstreck som separerar tecken och textuella namnelement.
Namnutrymmet hanteras av nätverksservern , som startas av I/O-servern när kärnan har startat på sin första anslutna nod. Nätverksservern använder en tillhandahållen nätverkskarta för att tilldela processornamn och initiera drivrutiner för hårdvaruenheter vid specifika noder i nätverket. Kärnan inkluderar en namnupplösare och hanterar en lokal cache med rutter till tidigare lösta namn.
Servrar är Helios-processer som implementerar General Server Protocol , vanligtvis med stöd av serverbiblioteket. Serverprotokollet liknar konceptuellt Unix VFS API, och närmare Plan 9 :s 9P . Det kräver att servrar representerar sina resurser som filer, med standardiserade operationer i öppen/läs/skriv/stängstil. I likhet med faciliteter som /proc i Plan 9 och andra Unix-liknande operativsystem, representeras resurser som filer, I/O-enheter, användare och processer alla som virtuella filer i namnutrymmet som betjänas av deras hanteringsprocess.
Nyckelservrar i Helios är den tidigare nämnda laddaren, processorhanteraren och nätverksservern, tillsammans med sessionshanteraren, fönsterservern och filservern. Andra inkluderar tangentbordet, musen, RS-232 och Centronics -servrarna (inbyggda i värd-I/O-servern), nollservern (som Unixs /dev/null ) och loggerservern (som Unixs syslog ).
Programmering och verktyg
Ur ett användarperspektiv är Helios ganska lik Unix. De flesta av de vanliga verktygsprogrammen tillhandahålls, några med tillägg för att återspegla tillgängligheten för flera maskiner.
Vad som inte är direkt uppenbart är att Helios utökar begreppet Unix-pipes till ett språk som kallas Component Distribution Language ( CDL). I CDL kallas en typisk Unix-shellpipeline som more en task force och distribueras transparent av Task Force Manager- servern över de tillgängliga CPU:erna. CDL utökar traditionell Unix-syntax med ytterligare operatörer för dubbelriktade rör, sekventiella och parallella processfarmoperatörer, lastbalansering och resurshantering.
Helios-applikationer kan skrivas med C , C++ , FORTRAN och Modula-2 . POSIX-biblioteket hjälper till att porta befintlig Unix-programvara och tillhandahåller en bekant miljö för programmerare. Helios stöder inte program skrivna i programmeringsspråket occam .
Hårdvara
Helios var främst tänkt att användas med transputersystem. Den är kompatibel med produkter från olika tillverkare inklusive INMOS TRAM-system, Meiko CS , Parsytec MultiCluster och SuperCluster och Telmat T.Node. Atari Transputer Workstation var kanske den mest profilerade Helios-hårdvaran, åtminstone utanför akademin.
Helios kan köras på T4xx och T8xx, 32-bitars transputrar (men inte T2xx 16-bitars modellerna) och inkluderar drivrutiner för olika SCSI, Ethernet och grafikhårdvara från Inmos, Transtech och andra.
I sina senare versioner portades Helios till TI TMS320C40 DSP och till ARM-arkitekturen , den senare användes av Active Book-surfplattan.
Vidare läsning
- Perihelion Software (1989). Operativsystemet Helios . Prentice Hall International (UK) Ltd. ISBN 0-13-386004-3 .
- Perihelion Software (1991). Helios parallella operativsystem . Prentice Hall International (UK) Ltd. ISBN 0-13-381237-5 .