Multics

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 10.9.2020 tarkistetusta versiosta . tarkastukset vaativat 19 muokkausta .
Multics
Kehittäjä MIT [2] [3] , General Electric [2] [3] ja Bell Labs [2] [3] [4]
Ensimmäinen painos 1965 [5]
uusin versio
Tuetut kielet Englanti
Tuetut alustat GE 645 [d] ja Honeywell 6000 -sarja [d]
Lisenssi MIT-lisenssi
Lähdekoodivarasto web.mit.edu/multics-hist…
Seuraava UNIX
Verkkosivusto multicians.org
 Mediatiedostot Wikimedia Commonsissa

Multics ( MPA : [ m ʌ l t ɪ k s ]; lyhenne sanoista Multiplexed  Information and Computing Service [6] ) on varhainen aikajakokäyttöjärjestelmä , joka perustuu yksitasoisen muistin käsitteeseen.

Multics - käyttöjärjestelmän kehittäminen aloitettiin vuonna 1964 ja se perustui Bell Labsin BESYS - käyttöjärjestelmän luomisen aikana kertyneeseen työhön , jonka projektipäällikkönä toimi Viktor Vysotsky . Aluksi Massachusetts Institute of Technology (MIT) sekä General Electric (GE) ja Bell Labs itse olivat mukana Multics-kehitysprojektissa . Bell Labs vetäytyi projektista vuonna 1969 , ja vuonna 1970 General Electricin tietokoneliiketoiminnan (yhdessä Multicsin kanssa) otti Honeywell , joka myi sen Bullille . General Electric suunnitteli Multicsin kaupalliseksi tuotteeksi, ja siitä tuli sellainen Honeywellin johdolla, vaikka se ei koskaan saavuttanut menestystä tietokonemarkkinoilla.

Multics-järjestelmällä on ollut erittäin suuri vaikutus tietokoneteollisuuteen sen sisältämien monien innovatiivisten ja arvokkaiden ideoiden ansiosta. Vaikka järjestelmä joutuikin useiden kriitikkojen pilkan kohteeksi [7] , se osoitti silti, että siihen upotetuilla käsitteillä on oikeus pitkäkestoiseen elämään käyttöjärjestelmien maailmassa.

Multics-järjestelmässä oli monia ominaisuuksia, jotka varmistivat sen luotettavuuden ja korkean suorituskyvyn. Esimerkiksi ohjelmiston modulaarisuuden tukemisen lisäksi järjestelmä keskittyi myös sen toiminnassa käytettävien elektronisten laitteiden modulaariseen tukeen, mikä mahdollisti järjestelmän laskentakyvyn lisäämisen yksinkertaisesti vaihtamalla sen moduulit: keskusprosessori, muisti, levytilaa jne. Jokaiselle käyttäjälle erilliset tiedostojen käyttöoikeusluettelot tarjosivat erittäin joustavan mekanismin tietojen jakamiseen järjestelmän välillä, samalla kun ne takaavat käyttäjien tallentamien ja käyttämien tietojen täydellisen luottamuksellisuuden. Multics-järjestelmässä oli myös useita vakiomekanismeja, joiden avulla insinöörit pystyivät analysoimaan järjestelmän laskentatehoa, sekä joukko mekanismeja, jotka varmistivat itse käyttöjärjestelmän optimoinnin.

Innovatiivisia ideoita

Multics oli yksi ensimmäisistä käyttöjärjestelmistä, joka otti käyttöön litteän tiedontallennusmallin, joka erotti selkeästi tiedostojen käsitteet (jota kutsutaan Multics-järjestelmässä segmenteiksi ) ja laskentaprosessien muistia . Laskentaprosessien muisti koostui segmenteistä, joilla jokaisella oli oma osoiteavaruutensa . Segmenttien lukemiseen tai kirjoittamiseen laskentaprosessi käytti järjestelmän keskusprosessorin ohjeita ja käyttöjärjestelmä huolehti muuttuneiden tietojen tallentamisesta tietokoneen ulkoiseen muistilaitteeseen.

Siten Multicsissa suunniteltiin ja toteutettiin täysin keskitetty tiedostojärjestelmä, jossa eri fyysisille ulkoisille muistilaitteille fyysisesti sijaitsevat tiedostot yhdistetään loogisesti yhdeksi keskitetyksi arkistoksi tai puumaiseksi hierarkkiseksi rakenteeksi, jonka välisolmut ovat nimetyt hakemistot. lehdet sisältävät tiedostoja.

Multics suunnitteli ja toteutti myös suuren segmenttisivuisen virtuaalimuistin , joka mahdollisti tiedostojen yhdistämisen virtuaalimuistin segmentteihin. Toisin sanoen, kun tiedosto avattiin vastaavan prosessin virtuaalimuistissa, muodostui segmentti, johon ulkoisessa muistissa oleva tiedosto näytettiin kokonaan (Multics OS:n tiedostojärjestelmässä sivurakenteen omaavat tiedostot tuettiin monimutkaisemmat organisaatiot olivat lisäosa). Tiedoston jatkotyöskentely perustui virtuaalimuistin hallinnan yleiseen mekanismiin.

Yksi tämän lähestymistavan suurimmista haitoista (johtuen pääasiassa niiden tietokoneiden elektronisten arkkitehtuurien eroista, joissa järjestelmä toimi) oli segmentin koon rajoittaminen 256 * 1024 32-bittiseen sanaan, mikä vastaa 1 megatavua. Siksi, jotta voidaan työskennellä määritettyä rajaa suurempien tiedostojen kanssa, suoritettavissa ohjelmissa oli käytettävä lisäkoodia. Itse tiedostot, jotka ovat suurempia kuin 256 * 1024 32-bittistä sanaa, järjestelmä esitti sarjana yhdistettyjä segmenttejä.

Ennen suurten tietokantojen ja valtavien graafisten tietojen tuloa tätä tiedostokokorajoitusta rikottiin harvoin.

Multics-järjestelmä toteutti ensimmäisenä seuraavan innovatiivisen idean - suoritettavan ohjelman dynaamisen linkityksen (dynaaminen linkitys) koodikirjastoilla. Dynaamisella linkityksellä suoritettava prosessi voi pyytää järjestelmää liittämään lisäsegmenttejä omaan osoiteavaruuteensa, nimittäin segmenttejä, jotka sisältävät hyödyllistä koodia suoritettavalle ohjelmalle.

Tällä tavalla ohjelmat voisivat automaattisesti käyttää ulkoisia koodikirjastoja, jotka on tallennettu erillisiin segmentteihin, ja samalla luoda dynaamisia linkkejä näihin kirjastoihin tallennettuihin toimintoihin. Dynaaminen linkki ulkoisen suoritettavan koodin kanssa luotiin vain kerran, funktion ensimmäisen kutsun aikana kirjastosta, ja sitä voitiin käyttää myöhemmin uudelleen. Koska jokainen järjestelmän käyttäjä vastasi erillisiä prosesseja, samaan ohjelmaan voitiin liittää useita ulkoisia kirjastoja käyttäjän tarpeiden mukaan.

Yhtä tärkeää oli se, että Multicsin oikeilla suojausasetuksilla yhden segmentin koodi pääsi käsiksi täysin eri prosessissa alustettuihin tietorakenteisiin. Tällaista käyttäjän ja yksittäisten demoniprosessien (tai yksinkertaisesti demonien) välistä vuorovaikutusta varten käyttäjäprosessin piti dynaamisesti yhdistää tähän prosessiin liittyvä koodisegmentti ja kutsua siellä olevia menetelmiä. Yhdistetyn segmentin koodi voisi toimia suoraan demonissa käytettyjen tietorakenteiden kanssa. Kun yhdistetystä segmentistä kutsuttu koodi oli suoritettu loppuun, suoritus palasi käyttäjäprosessiin normaalin paluumenettelyn kautta kutsutusta menetelmästä.

Kahta yllä olevaa ideaa ei ole vielä täysin toteutettu nykypäivän yleisimmissä käyttöjärjestelmissä huolimatta tietotekniikan suuresta kehityksestä, joka alkoi 1960-luvulla . vaikka nykyisessä toteutuksessaan nämä ideat muodostavat niin sanotun dynaamisen linkityksen tietokonejärjestelmissä.

Multics-järjestelmä tuki erittäin aggressiivista koko järjestelmän lennossa tapahtuvaa uudelleenkonfigurointia, jonka avulla voit kytkeä, irrottaa ja määrittää prosessorit, muistilohkot, kiintolevyt ja muut laitteet pysäyttämättä koko järjestelmää. Esimerkiksi MIT:ssä oli yleinen käytäntö Multics-huollon aikana jakaa järjestelmä – joka oli moniprosessori – kahdeksi konfiguroimalla laskentalaitteet vähitellen kahden itsenäisen järjestelmän luomiseksi. Yksi tuloksena olevista järjestelmistä palveli edelleen kaikkia kytkettyjä käyttäjiä, kun taas toinen mahdollisti ylläpidon, uusien laitteiden asennuksen tai ohjelmistopäivitykset. Kun kaikki tarvittavat toiminnot oli suoritettu, järjestelmä koottiin jälleen yhdeksi kokonaisuudeksi ilman uudelleenkäynnistystä.

Multics voisi toimia moniprosessoritietokoneissa, mikä oli pohjimmiltaan yksi varhaisimmista moniprosessorikäyttöjärjestelmistä.

Multics oli myös yksi ensimmäisistä järjestelmistä, joka keskittyi ohjelmien ja käyttäjien välisen vuorovaikutuksen turvallisuuteen. Lisäksi Multics saattoi olla ensimmäinen käyttöjärjestelmä, joka suunniteltiin alusta alkaen ja toteutettiin turvalliseksi huolimatta siitä, että Multics-järjestelmän varhaisia ​​versioita hakkeroitiin edelleen toistuvasti. Järjestelmähakkerointi johti tietoturvaparannuksiin, jotka lopulta määrittelivät laajalle levinneitä lähestymistapoja käyttöjärjestelmien tietoturva-arkkitehtuuriin ja tekivät Multicsista itsestään turvallisemman. Kun järjestelmään asennettiin toisen sukupolven elektroniset laitteet, joissa oli sisäänrakennettu tuki käyttäjäoikeuksille (jotka määrittävät käyttäjän oikeudet päästä käsiksi tietoihin ja ohjelmiin), Multics-järjestelmään murtautumisesta tuli erittäin harvinaista.

Multics oli yksi ensimmäisistä, jotka ottivat käyttöön hierarkkisen tiedostojärjestelmän. Tiedostonimet voivat olla melkein mielivaltaisen pituisia ja sisältää mitä tahansa merkkejä. Tiedostolla tai hakemistolla voi olla useita nimiä (lyhyitä ja pitkiä); Myös symboliset linkit ( symlink ) hakemistojen välillä olivat käytettävissä .

Myös Multics oli edelläkävijä (nykyään vakiona) menetelmässä, jossa käytetään pinoja jokaista laskentaprosessia varten järjestelmän ytimessä ja jokaiselle ytimen ympärillä olevalle suojauskerrokselle on oma pino.

Multics oli myös yksi ensimmäisistä korkean tason kielellä PL/I kirjoitetuista käyttöjärjestelmistä (ensimmäinen tällainen järjestelmä oli MCP Burroughs B5000 -tietokoneille, joka käytti Algolin murretta ).

Projektihistoria

Multics kehitettiin alun perin GE-645 36-bittiselle keskuskoneelle ja myöhemmin Honeywell 6180 -sarjan koneille .

Bell Labs vetäytyi projektista vuonna 1969 . Useat ihmiset, jotka kehittivät Multics-järjestelmän kyseisessä yrityksessä, siirtyivät rakentamaan UNIX -järjestelmää . Myöhemmin luotu UNIX-järjestelmä osoitti pinnallista samankaltaisuutta Multics-järjestelmään, myös käytettyjen komentojen nimissä. UNIX-suunnittelufilosofia oli kuitenkin täysin erilainen, ja se keskittyi tekemään järjestelmästä mahdollisimman pieni ja mahdollisimman yksinkertainen, mikä oli sen tärkein ero Multics-järjestelmään.

Nimi UNIX (alun perin "Unics") on johdettu sanasta "Multics". UNIX-nimen U merkitsi sanaa "Uniplexed" ("monosyllabic"), toisin kuin sana "Multiplexed" ("kompleksi"), joka oli Multics-järjestelmän nimen perusta, jotta korostettiin yritystä UNIXin luojat siirtyvät pois Multics-järjestelmän monimutkaisuudesta ja kehittävät yksinkertaisempaa ja toimivampaa lähestymistapaa.

Honeywell osti GE:n tietokoneosaston ja jatkoi Multics-järjestelmän kehittämistä vuoteen 1985 asti . Yliopistojen, teollisuuden ja valtion palvelinkeskuksiin on toimitettu noin 80 usean miljoonan yksikköä.

Myös Ranskassa 1980 -luvun alussa Multics-järjestelmällä varustettuja tietokoneita asennettiin useisiin yliopistoihin.

Kun Honeywell lopetti Multics-tuen, käyttäjät siirtyivät muihin järjestelmiin, mukaan lukien UNIX-järjestelmiin.

Viimeinen Multicsilla varustettu auto pysäytettiin 31. lokakuuta 2000 Kanadan puolustusministeriössä.

Vuonna 2007 BULL lahjoitti Multicsin lähdekoodin ja dokumentaation Massachusetts Institute of Technologylle ja julkaistiin MIT:n verkkosivuilla.

Nykyinen tila

Vuonna 2006 Bull HN julkaisi MIT:lle MR12.5:n, vuoden 1992 viimeisen Multics-julkaisun, lähdekoodin [8] . Suurin osa järjestelmästä on nyt saatavilla ilmaisina ohjelmistoina, lukuun ottamatta joitain lisäosia, kuten TCP/IP [9] .

Vuonna 2014 Multics lanseerattiin onnistuneesti modernilla laitteistolla emulaattorin avulla [10] . Emulaattorin versio 1.0 on ollut saatavilla vuodesta 2017 [11] . Multicsin 12.6f-julkaisuun liittyy 1.0-emulaattorin julkaisu, ja se lisää useita uusia ominaisuuksia, kuten parannetun I/O-järjestelmän sekä mahdollisuuden muokata videolähtöä [12] .

Tällä hetkellä uusin versio MR12.7 julkaistiin 30. heinäkuuta 2021 ja on saatavilla GitHub -arkistosta [13] [14] .

Tuetut komennot

Seuraavassa on luettelo ohjelmista ja komennoista tietokoneen perustehtäviin, joita Multics [15] [16] [17] CLI tukee .

Lisähuomautuksia

Multics-järjestelmän ydin, joka oli jatkuvasti tietokoneen muistissa ja jota niinä alkuvuosina usein naurettiin sen koosta ja monimutkaisuudesta, vei vain 135 kilotavua koodia.

Ensimmäisten GE-645-tietokoneiden muistin koko oli 512 * 1024 32-bittistä sanaa (2 megatavua), joten järjestelmän ydin ei vienyt paljon tilaa.

Koko käyttöjärjestelmä, mukaan lukien kehittynyt PL/I-kääntäjä, käyttäjäkomennot ja lisäkirjastot, koostui noin 1 500 lähdetiedostosta, joista jokainen sisälsi noin 200 koodiriviä. Käännetyssä muodossa koko tämä koodi vei noin 4,5 megatavua, mikä oli valtava koko siihen aikaan.

Multics-kääntäjät optimoivat koodin pääasiassa koon eikä prosessorin tehokkuuden mukaan, mikä oli perusteltua halulla säästää muistia monikäyttäjäjärjestelmässä.

Katso myös

Muistiinpanot

  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 Information and Computing Services "
  7. Myyttejä Multicsista . Haettu 7. lokakuuta 2006. Arkistoitu alkuperäisestä 1. helmikuuta 2014.
  8. Van Vleck, Tom Open Source for Multics . Multicians.org . Haettu: 8.9.2022.  
  9. Anthony, Charles Re : [dps8m-developers Moniprosessori ja/tai verkkomultit] . sourceforge.net . Haettu: 8.9.2022.  
  10. RingZero - Multics uudestisyntynyt . WikidotCom . Haettu: 8.9.2022.  
  11. Multics- simulaattori . Haettu: 8.9.2022.  
  12. Multicsin asentaminen . Haettu: 8.9.2022.  
  13. Multics- julkaisu 12.7 . Haettu: 8.9.2022.  
  14. MR12.7 _ _ Haettu: 8.9.2022.  
  15. Honeywell Bull Inc. Multics-komennot ja aktiiviset toiminnot (englanniksi) (PDF) (helmikuu 1985). Haettu: 7.9.2022.  
  16. Unix ja Multics . Haettu: 7.9.2022.  
  17. Multics- komennot . Haettu: 7.9.2022.  

Kirjallisuus

Linkit