Multics

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2020. szeptember 10-én felülvizsgált verziótól ; az ellenőrzések 19 szerkesztést igényelnek .
Multics
Fejlesztő MIT [2] [3] , General Electric [2] [3] és Bell Labs [2] [3] [4]
Első kiadás 1965 [5]
legújabb verzió
Támogatott nyelvek angol
Támogatott platformok GE 645 [d] és Honeywell 6000 sorozat [d]
Engedély MIT licenc
Source Code Repository web.mit.edu/multics-hist…
Következő UNIX
Weboldal multicians.org
 Médiafájlok a Wikimedia Commons oldalon

A Multics ( MPA : [ m ʌ l t ɪ k s ]; a Multiplexed  Information and Computing Service [6] ) egy korai időmegosztó operációs rendszer , amely az egyszintű memória koncepcióján alapul.

A Multics operációs rendszer fejlesztését 1964 -ben kezdték el, és a Bell Labs -nál a BESYS operációs rendszer létrehozása során felhalmozott munkára alapozták , melynek projektmenedzsere Viktor Vysotsky volt . Kezdetben a Massachusetts Institute of Technology (MIT), valamint a General Electric (GE) és maga a Bell Labs vett részt a Multics fejlesztési projektben . A Bell Labs 1969 -ben kilépett a projektből , és 1970 -ben a General Electric számítógépes üzletágát (a Multics-szal együtt) átvette a Honeywell , aki eladta a Bullnak . A Multicsot a General Electric kereskedelmi terméknek képzelte el, és a Honeywell vezetésével azzá vált, bár soha nem aratott sikert a számítógépes piacon.

A Multics rendszer igen nagy hatást gyakorolt ​​a számítástechnikai iparra a benne foglalt sok innovatív és értékes ötletnek köszönhetően. Bár a rendszert számos kritikus gúny érte [7] , mégis megmutatta, hogy a benne foglalt fogalmaknak joguk van a hosszú távú élethez az operációs rendszerek világában.

A Multics rendszer számos olyan funkcióval rendelkezett, amelyek biztosították a megbízhatóságot és a nagy teljesítményt. Például a rendszer a szoftveres modularitás támogatása mellett a működése során használt elektronikus eszközök moduláris támogatására is fókuszált, ami lehetővé tette a rendszer számítási képességeinek növelését a modulok egyszerű cseréjével: központi processzor, memória, lemezterület stb. Az egyes felhasználók számára különálló fájl-hozzáférési listák rendkívül rugalmas mechanizmust biztosítottak az információk rendszeren belüli megosztásához, miközben garantálják a felhasználók által tárolt és használt információk teljes bizalmasságát. A Multics rendszer számos szabványos mechanizmussal is rendelkezett, amelyek lehetővé tették a mérnökök számára a rendszer számítási teljesítményének elemzését, valamint egy sor olyan mechanizmust, amely biztosította magának az operációs rendszernek az optimalizálását.

Innovatív ötletek

A Multics volt az egyik első operációs rendszer, amely egy lapos adattárolási modellt valósított meg, világosan elválasztva a fájlok ( a Multics rendszerben szegmensek ) fogalmát és a számítási folyamatok memóriáját . A számítási folyamatok memóriája szegmensekből állt, amelyek mindegyikének saját címtere volt . A szegmensek olvasásához vagy írásához a számítási folyamat a rendszer központi processzorának utasításait használta , az operációs rendszer pedig gondoskodott a megváltozott adatok elmentéséről a számítógép külső memóriaeszközére.

Így a Multicsban egy teljesen központosított fájlrendszert terveztek és valósítottak meg, amelyben a fizikailag különböző fizikai külső memóriaeszközökön elhelyezkedő fájlok logikailag egyetlen központi archívummá vagy faszerű hierarchikus struktúrává egyesülnek, amelynek köztes csomópontjait könyvtáraknak nevezik, és a a levelek fájlokat tartalmaznak.

A Multics egy nagy szegmensoldalas virtuális memóriát is tervezett és implementált, amely lehetővé tette a fájlok virtuális memória szegmensekhez való hozzárendelését. Más szóval, amikor a megfelelő folyamat virtuális memóriájában megnyitott egy fájlt, akkor létrejött egy szegmens, amelybe a külső memóriában lévő fájl teljes egészében megjelent (a Multics OS fájlrendszerében a lapozási szerkezetű fájlok támogatottak alapszinten.. A bonyolultabb szervezetek kiegészítésként szolgáltak). A fájllal végzett további munka a virtuális memória kezelésének általános mechanizmusán alapult.

Ennek a megközelítésnek az egyik fő kellemetlensége (főleg azon számítógépek elektronikus architektúráinak különbségei miatt, amelyeken a rendszer működött) a szegmens méretének 256 * 1024 32 bites szóra való korlátozása, ami 1 megabájtnak felel meg. Ezért a meghatározott határnál nagyobb fájlokkal való munkavégzéshez további kódot kellett használni a végrehajtható programokban. Magukat a 256 * 1024 32 bites szónál nagyobb fájlokat a rendszer összekapcsolt szegmensek sorozataként ábrázolta.

A nagy adatbázisok és a hatalmas grafikus adatok megjelenése előtt ezt a fájlméret-korlátot ritkán szegték meg.

A Multics rendszer volt az első, amely megvalósította a következő innovatív ötletet - egy futtatható program dinamikus összekapcsolását (dinamikus linkelése) kódkönyvtárak segítségével. Dinamikus összekapcsolás esetén a végrehajtható folyamat megkérheti a rendszert, hogy csatoljon további szegmenseket a saját címteréhez, nevezetesen a végrehajtható program számára hasznos kódot tartalmazó szegmenseket.

Ily módon a programok automatikusan használhatják a különálló szegmensekben tárolt külső kódkönyvtárakat, miközben dinamikus hivatkozásokat hozhatnak létre az ezekben a könyvtárakban tárolt függvényekhez. Dinamikus hivatkozás külső végrehajtható kóddal csak egyszer jött létre, egy függvény első meghívásakor a könyvtárból, és később újra felhasználható volt. Mivel a rendszerben minden felhasználó külön folyamatnak felelt meg, a felhasználó igényeitől függően különböző külső könyvtárak kapcsolódhattak ugyanahhoz a programhoz.

Ugyanilyen fontos volt, hogy a Multics megfelelő biztonsági beállításaival az egyik szegmens kódja hozzáférhetett a teljesen más folyamatban inicializált adatstruktúrákhoz. A felhasználói és az egyes démonfolyamatok (vagy egyszerűen csak démonok) közötti ilyen interakcióhoz a felhasználói folyamatnak dinamikusan össze kellett kapcsolnia az ehhez a folyamathoz tartozó kódszegmenst, és meg kellett hívnia az ott található metódusokat. A csatlakoztatott szegmensben lévő kód közvetlenül együttműködhet a démonban használt adatstruktúrákkal. Amikor a csatlakoztatott szegmensből meghívott kód végrehajtása befejeződött, a végrehajtás visszatért a felhasználói folyamathoz a hívott metódus normál visszatérési eljárásával.

A fenti két ötlet a mai legelterjedtebb operációs rendszerekben még nem valósult meg teljesen, a számítástechnika 1960- as években kezdődött nagy fejlődése ellenére ; bár jelenlegi megvalósításukban ezek az ötletek alkotják az úgynevezett dinamikus összekapcsolást a számítógépes rendszerekben.

A Multics rendszer támogatta a teljes rendszer nagyon agresszív, menet közbeni újrakonfigurálását, lehetővé téve a CPU-k, memóriablokkok, merevlemezek és egyéb eszközök csatlakoztatását, leválasztását és konfigurálását anélkül, hogy a teljes rendszert leállítaná. Például az MIT-nél bevett gyakorlat volt a Multics karbantartása során, hogy egy rendszert – amely többprocesszoros volt – két részre osztottak, fokozatosan konfigurálva a számítástechnikai eszközöket két független rendszer létrehozására. Az egyik létrejött rendszer továbbra is kiszolgálta az összes csatlakoztatott felhasználót, míg a másik lehetővé tette a karbantartást, új eszközök telepítését vagy szoftverfrissítéseket. Az összes szükséges tevékenység elvégzése után a rendszer újraindítás nélkül ismét egyetlen egésszé állt össze.

A Multics többprocesszoros számítógépeken is futhat, lényegében az egyik legkorábbi többprocesszoros operációs rendszer.

A Multics volt az egyik első olyan rendszer is, amely a programok és a felhasználók közötti interakció biztonságára összpontosított. Sőt, a Multics lehetett a legelső operációs rendszer, amelyet a kezdetektől fogva biztonságosként vezettek be, annak ellenére, hogy a Multics rendszer korai verzióit még mindig többször feltörték. A rendszerfeltörések olyan biztonsági változtatásokhoz vezettek, amelyek végül meghatározták az operációs rendszerek biztonsági architektúrájának széles körben elterjedt megközelítését, és magát a Multicsot is biztonságosabbá tették. Miután a rendszerbe telepítették a második generációs elektronikus berendezéseket, amelyek beépített támogatást nyújtanak a felhasználói jogosultságokhoz (amelyek meghatározzák a felhasználó adatokhoz és programokhoz való hozzáférési jogait), a Multics rendszerbe való feltörések nagyon ritkák lettek.

A Multics az elsők között valósított meg hierarchikus fájlrendszert. A fájlnevek szinte tetszőleges hosszúságúak lehetnek, és bármilyen karaktert tartalmazhatnak. Egy fájlnak vagy könyvtárnak több neve is lehet (rövid és hosszú); a könyvtárak közötti szimbolikus hivatkozások ( symlink ) is használhatók voltak .

Szintén a Multics úttörő szerepet játszott abban a (ma már szabványos) megközelítésben, hogy a rendszermagban minden egyes számítási folyamathoz veremeket használnak , külön veremekkel a kernel körüli minden egyes biztonsági réteghez.

A Multics volt az egyik első operációs rendszer, amelyet magas szintű PL/I nyelven írtak (a legelső ilyen rendszer a Burroughs B5000 számítógépekhez készült MCP volt, amely az Algol nyelvjárást használta ).

Projekttörténet

A Multics eredetileg a GE-645 36 bites mainframe- hez, majd később a Honeywell 6180 sorozatú gépekhez készült .

A Bell Labs 1969 -ben kilépett a projektből . A cégnél a Multics rendszert kifejlesztők közül többen átálltak a UNIX rendszer kiépítésére . A később megalkotott UNIX rendszer felületes hasonlóságot mutatott a Multics rendszerrel, többek között a használt parancsok elnevezésében is. A UNIX tervezési filozófiája azonban teljesen más volt, és a lehető legkisebbre és a lehető legegyszerűbbre összpontosította a rendszert, ez volt a fő különbség a Multics rendszertől.

A " UNIX " (eredetileg "Unics") név a "Multics" szóból származik. Az U a UNIX névben az "egytagú" ("egytagú") szót jelentette, szemben a Multics rendszer nevének alapjául szolgáló "Multiplexed" ("komplex") szóval, hogy hangsúlyozzák a a UNIX megalkotói, hogy távolodjanak el a Multics rendszer bonyolultságától, és egyszerűbb és működőképesebb megközelítést dolgozzanak ki.

A Honeywell kivásárolta a GE számítógépes részlegét, és 1985 -ig folytatta a Multics rendszer fejlesztését . Körülbelül 80 több milliós egységet szállítottak egyetemi, ipari és kormányzati adatközpontokba.

Az 1980-as évek elején Franciaországban is több egyetemen telepítettek Multics rendszerű számítógépeket.

Miután a Honeywell leállította a Multics támogatását, a felhasználók más rendszerekre vándoroltak, beleértve a UNIX rendszereket is.

Az utolsó autót Multicsival 2000. október 31- én állították meg a kanadai védelmi minisztériumnál.

2007-ben a Multics forráskódját és dokumentációját a BULL adományozta a Massachusetts Institute of Technology -nak , és közzétette az MIT honlapján.

Jelenlegi állapot

2006-ban a Bull HN kiadta az MR12.5, a Multics utolsó 1992-es kiadásának forráskódját az MIT-nek [8] . A rendszer nagy része immár ingyenes szoftverként is elérhető, néhány további rész kivételével, mint például a TCP/IP [9] .

2014-ben a Multics sikeresen elindult modern hardveren emulátor segítségével [10] . Az emulátor 1.0-s verziója 2017 óta érhető el [11] . A Multics 12.6f kiadását az 1.0-s emulátor megjelenése kíséri, és számos új funkcióval bővült, beleértve a továbbfejlesztett I/O rendszert, valamint a videokimenet szerkesztésének lehetőségét [12] .

A pillanatnyi legfrissebb MR12.7-es verzió 2021. július 30-án jelent meg, és elérhető a GitHub adattárában [13] [14] .

Támogatott parancsok

Az alábbiakban felsoroljuk a Multics [15] [16] [17] CLI által támogatott alapvető számítógépes feladatokhoz szükséges programokat és parancsokat .

További megjegyzések

A Multics rendszer magja, amely folyamatosan a számítógép memóriájában volt, és azokban az első években gyakran nevetségessé vált mérete és összetettsége miatt, mindössze 135 kilobájt kódot foglalt el.

Az első GE-645 számítógépek memóriamérete 512 * 1024 32 bites szó (2 megabájt), így a rendszermag nem foglalt sok helyet.

A teljes operációs rendszer, beleértve a kifinomult PL/I fordítót, a felhasználói parancsokat és a további könyvtárakat, körülbelül 1500 forrásfájlból állt, amelyek mindegyike körülbelül 200 kódsort tartalmazott. Lefordított formában az összes kód körülbelül 4,5 megabájtot foglalt el, ami akkoriban óriási méretnek számított.

A Multics fordítók főként a méretre optimalizálták a kódot, nem pedig a CPU hatékonyságára, amit a többfelhasználós rendszerekben a memória megtakarítása indokolt.

Lásd még

Jegyzetek

  1. https://github.com/dancrossnyc/multics/releases/tag/MR12.7
  2. 1 2 3 https://www.youtube.com/watch?v=de2Hsvxaf8M&t=23s
  3. 1 2 3 https://www.youtube.com/watch?v=QFK6RG47bww&t=5m46s
  4. https://www.multicians.org/project-mac.html
  5. https://www.multicians.org/
  6. " Multiplex információs és számítástechnikai szolgáltatások "
  7. Mítoszok a multikról . Letöltve: 2006. október 7. Az eredetiből archiválva : 2014. február 1..
  8. Van Vleck, Tom Open Source for Multics . Multicians.org . Letöltve: 2022. szeptember 8.  
  9. Anthony, Charles Re : [dps8m-developers Többprocesszoros és/vagy hálózati multik] . sourceforge.net . Letöltve: 2022. szeptember 8.  
  10. RingZero - Multics újjászületett . WikidotCom . Letöltve: 2022. szeptember 8.  
  11. Multics Simulator . Letöltve: 2022. szeptember 8.  
  12. Multics telepítése . Letöltve: 2022. szeptember 8.  
  13. Multics kiadás 12.7 . Letöltve: 2022. szeptember 8.  
  14. MR12.7 _ _ Letöltve: 2022. szeptember 8.  
  15. Honeywell Bull Inc. Multics parancsok és aktív funkciók (angolul) (PDF) (1985. február). Letöltve: 2022. szeptember 7.  
  16. Unix és Multics . Letöltve: 2022. szeptember 7.  
  17. Multics parancsok . Letöltve: 2022. szeptember 7.  

Irodalom

Linkek