oc inferno installimine akendele. Tasuta Inferno OS-i ülevaade: süsteemi ja rakenduse installimine. Inferno rakenduste väliskeskkond

Demonstratsioonina jooksis Inferno all ka pluginana Internet Explorer versioon 4.

Iga Inferno süsteem pakub rakendustele identset keskkonda, sõltumata aluseks olevast host OS-ist või arhitektuurist, võimaldades arendajal töötada tõeliselt homogeenses keskkonnas mitmel erineval platvormil.

Kaasaskantavad rakendused
Inferno rakendused on kirjutatud Limbo®-s, mis on kaasaegne, turvaline, modulaarne, C-laadse süntaksiga samaaegne programmeerimiskeel. See on võimsam kui C, kuid tunduvalt lihtsam mõista ja siluda kui C++ või Java. Füüsilise maailma samaaegsust on lihtne väljendada otse Limbo süntaksis. Iga Inferno rakendus töötab kõigil Inferno platvormidel.

Kaasaskantav kood
Limbo kood on kompileeritud Dis® virtuaalmasina arhitektuurist sõltumatuks koodiks, millel on kompaktne esitus. Dis-i saab tõlgendada otse (ruumi säästmine) või etteantud sihtprotsessori jaoks lennult kompileerida (aja säästmine). Valiku saab teha töötamise ajal, mooduli kaupa. Dis-arhitektuur oli hoolikalt kavandatud, et muuta lennates koodide genereerimine lihtsaks. Selle juhiseid on lihtne rakendada.

Läbipaistvad ressursid
Inferno pakub ressursside ja andmete täielikku läbipaistvust, kasutades lihtsat, kuid võimsat "nimeruumi" süsteemi. Failidena esindatud ressursside ja ühe standardse sideprotokolli – 9P (Styx®) – abil saab Inferno süsteemide vahel hõlpsasti jagada ressursse, nagu andmesalve, teenuseid ja väliseid seadmeid. Ressursi liidese võib importida kohalikku süsteemi ja rakendused seda kasutada, ilma et nad teaksid või peaksid teadma, kas see on kohalik või kaug.

Turvalisus
Kõrgetasemeline turvalisus on Inferno süsteemi oluline osa. Kasutades üht standardprotokolli kogu võrgusuhtluse jaoks, saab turvalisuse keskenduda ühele punktile ja tagada süsteemi tasemel. Inferno pakub täielikku tuge autentitud, krüptitud ühendustele, kasutades sertifikaadipõhist kasutajatuvastusskeemi ja mitmesuguseid algoritme, sealhulgas:

  • IDEA, 56-bitine DES, 40-, 128- ja 256-bitine RC4 krüpteerimisalgoritmid
  • MD4, MD5 ja SHA turvalised räsialgoritmid

Täielik lahendus
Inferno pole mitte ainult operatsioonisüsteemi, on see ka terviklik arenduskeskkond, mis pakub kõiki selles töötavate rakenduste loomiseks, testimiseks ja silumiseks vajalikke tööriistu.

  • Acme IDE: sisaldab redaktorit, kesta, täiustatud mustrite sobitamise tööriistu ja palju muud
  • Kiire kompilaator: täieliku süntaksi ja kompileerimisaja tüübi kontrolliga
  • Graafiline silur: täieliku virnajäljega praegu töötavate lõimede jaoks
  • Võimas Shell: keerukate skriptimisvõimalustega
  • UNIX-i sarnased käsud: sealhulgas bind, grep, gzip, mount, ps, tar, yacc ...
Et näha, kuidas Vita Nuova ja Inferno saavad teile lahenduse pakkuda, võtke meiega ühendust või valige üks allolevatest linkidest.

sissejuhatus Inferno OS-i

Sellest on palju aega möödas, kui me teile uutest operatsioonisüsteemidest rääkisime. Kuid maailm ei seisa paigal ja OS-i turg ei piirdu sugugi Linuxi, Windowsi ja *BSD-ga, mille kohta teave - nii CP-s kui ka muudes paber- ja elektroonilistes väljaannetes - ilmub kadestusväärse regulaarsusega.
Ja siis ilmus hea põhjus: teade väljalaske (ja saadavuse kohta tasuta allalaadimine) OS-i 4. versioon põrguliku nimega (selles kontekstis öeldakse tavaliselt "infernal", aga meie puhul on see tautoloogia :) nimega Inferno. Kuid kuna oleme kindlad, et vähemalt pooled meie lugejatest pole sellest OS-ist kunagi kuulnud ja seetõttu ei tea, kas selliste uudiste üle rõõmustada või mitte, otsustasime pühendada Infernole terve “täispika” materjali, mis põhineb selle süsteemi arendajate artikkel. Muide, vaadake artikli lõpus olevat autorite nimekirja, oleme kindlad, et olete meeldivalt üllatunud;)

sissejuhatus

Inferno operatsioonisüsteemi töötas välja Bell Labs Computer Research Center, Lucent Technologiesi uurimis- ja arendusosakond. Hiljem jätkasid selle arendamist teised Lucenti divisjonid ning tänaseks kuuluvad selle süsteemi ainuõigused Inglise tarkvarafirmale Vita Nuova.
Süsteemi põhieesmärk on luua riistvarast sõltumatuid hajutatud arvutussüsteeme ja kasutada neid sisseehitatud seadmetes.
Inferno on mõeldud kasutamiseks erinevates võrgukeskkondades, nagu nutitelefonid, pihuarvutid, kaabel- ja satelliittelevisioonisüsteemid, odavad internetiterminalid ja loomulikult traditsioonilised arvutisüsteemid.
Kus saab Infernot edukalt kasutada? Kaabeltelevisiooni võrkudes otse satelliitlevi, Internet ja kõik muud andmesidevõrgud (ja muidugi ka multiteenus).
Erinevalt telefonisüsteemid oma standardsete terminalide ja signaalidega arendatakse arvutivõrke erinevate terminalide, võrguseadmete ja protokollide maailmas. Ainult hästi disainitud, ökonoomne operatsioonisüsteemi suudab erinevatel transpordi- ja esitlusplatvormidel kokku tuua erinevaid sisu- ja teenusepakkujaid. Nagu arvata võis, on Inferno just selline operatsioonisüsteem;)
Inferno eelised põhinevad selle teisaldatavusel ja paindlikkus järgmistes valdkondades:
- protsessori tugi: Hetkel on toetatud Intel, Sparc, MIPS, ARM, HP PA, PowerPC, teiste protsessorite tugi on ettevalmistamisel.
- erinevate keskkondade tugi: Inferno töötab nagu eraldi süsteem väikestes terminalides, töötab kasutajaprotsessina ka opsüsteemides Windows NT, Windows 95, Unix (Irix, Solaris, FreeBSD, Linux, AIX, HP/UX) ja Plan 9. Kõigil neil juhtudel on Inferno rakendustel sama liides.
- hajutatud struktuur: kasutajaterminali ja serverisse on installitud identsed keskkonnad, millest igaüks saab importida teise ressursse (nt saadaolevaid I/O-seadmeid või võrke). Tänu süsteemi suhtlusvõimalustele saab rakendusi lihtsalt (isegi dünaamiliselt) kliendi ja serveri vahel jagada.
- minimaalsed varustusnõuded: eraldiseisvad rakendused töötavad 1 MB mäluga arvutis ega vaja mälukontrollerit.
- rakenduse kaasaskantavus: Inferno rakendused on kirjutatud Limbo tüüpi keeles ja kompilaatori poolt genereeritud binaarne esitus on kõigil platvormidel identne.
- dünaamiline kohanemine: rakendused võivad olenevalt riistvarast või muudest saadaolevatest ressurssidest kasutada erinevaid tarkvara moodulid konkreetsete funktsioonide täitmiseks. Näiteks võib seda kasutada videopleier erinevaid mooduleid dekooder
Inferno disain põhineb mudelil, mis eeldab, et kasutatakse mitmesuguseid rakendusi. Paljud pakkujad on huvitatud meedia- ja muude teenuste pakkumisest: telefoniteenus, www-teenus, kaabeltelevisioon, kaubandus, erinevad infoteenused. Samuti on palju sidetehnoloogiaid: tavapärane telefoni modemid, ISDN, ATM, Internet, maapealne analoog- või kaabeltelevisioon, kaabelmodemid, digitaalne video ja interaktiivne televisioon.
Lucenti praegustele ja tulevastele vajadustele vastavad rakendused hõlmavad lülitite ja ruuterite haldust. Pange tähele ka seda, et Bell Labsi sisevõrk ja serverid on kaitstud Infernol põhinevate tulemüüridega.
Inferno on väga ressursitõhus, võimaldades sellel toetada tänapäeva riistvaras üsna keerulisi rakendusi. Eelkõige võimaldab süsteem arendajatel luua rakendusrakendused, töötab erinevates seadmetes. Võtame näiteks interaktiivse ostukataloogi: võimalus töötada analoogmodemi kaudu tekstirežiimis, kuvada ISDN-i kaudu toodetest pilte (võimalik, et ka heliga) ja kuvada videoklippe digikanali kaudu.
Muidugi ei sunni keegi teid kui arendajat kasutama kõiki Inferno funktsioone, kuid pidage meeles, et süsteemi arhitektuuri piiravad ainult kliendi nõuded ja fantaasiad, saadaolevad võrgukanalid ja serveritehnoloogiad, kuid mitte tarkvaraga.

Inferno liidesed

Inferno süsteemi ülesanne on luua mitu standardsed liidesed teie rakenduste jaoks:
1. Rakendused kasutavad mitmesuguseid sisemisi süsteemiressursse, näiteks virtuaalmasinat, mis käivitab programme ja teegimooduleid erinevate toimingute tegemiseks, alates lihtsatest, nagu stringidega manipuleerimine, kuni keerukamate (teksti, piltide, kõrgetasemeliste teekide või videoga töötamine) ).
2. Rakendused eksisteerivad väliskeskkonnas, mis sisaldab ressursse, näiteks faile koos andmetega, mida saab manipuleerida, ja nimega objekte, mida saab manipuleerida nagu faile, kuid intensiivsemalt. Seadmed (kaug kaugjuhtimispult, MPEG dekooder või võrguliides) esitatakse rakendustele failidena.
3. Rakenduste interaktsiooniks on standardsed sideprotokollid nii samas hostis kui ka Infernot käitavate erinevate masinate vahel. Sel viisil saavad Inferno rakendused tõhusalt koostööd teha.
Samal ajal kasutab Inferno olemasoleva keskkonna pakutavaid liideseid, näiteks olemasolevat riistvara või protokolle ja süsteemikõned operatsioonisüsteem.
Tüüpiline Inferno-põhine teenus koosneb paljudest suhteliselt odavatest terminalidest, mis käitavad Infernot algse OS-ina, ja väiksemast arvust suurtest masinatest (serveritest), mis kasutavad Infernot külalissüsteemina. Sellistel serverimasinatel saab Inferno pakkuda juurdepääsu andmebaasile, tehingusüsteemile või muudele algse operatsioonisüsteemi pakutavatele ressurssidele. Inferno rakendusi saab käivitada klientsüsteemis või serveris või mõlemas.

Inferno rakenduste väliskeskkond

Enamiku Inferno rakenduste eesmärk on pakkuda kasutajale teavet või meediat. Sellised rakendused peavad avastama ressursi asukoha võrgus ja looma nendest andmetest kohaliku esituse kasutaja seadmes. Enamik infovoogusid ei ole aga ühesuunalised: kasutajaterminal (olgu selleks võrguarvuti, teler, personaalarvuti või videotelefon) on ka teatud teabe allikas ja peab selle teabe rakendustele edastama. Inferno järgib paljuski Plan9 (seotud operatsioonisüsteem, mille on välja töötanud ka Bell Labs) kujundusest, kuidas see rakendustele ressursse esitab. See struktuur järgib kolme põhimõtet:
1. Kõik ressursid on nimelised ja saadaval failidena hierarhilise failisüsteemi puus;
2. Eraldi ressursside hierarhiad erinevaid teenuseid, on ühendatud üheks kohalikuks nimega ruumiks;
3. Styxi sideprotokolli kasutatakse kohalikele või kaugressurssidele juurdepääsu ühendamiseks.
Praktikas näeb enamik rakendusi kataloogipuusse organiseeritud failide kogumit. Mõned failid sisaldavad tavalisi andmeid, teised on aktiivsemad ressursid. Seadmed on kujutatud failidena (nt modem, MPEG-dekooder, võrguliides või teleriekraan), mis on süsteemiga ühendatud väikeste kataloogidena. Need kataloogid sisaldavad tavaliselt kahte faili: data ja ctl, mis määratlevad vastavalt I/O ja seadme juhtimistoimingud. Süsteemiteenused on juurdepääsetavad ka nimeliste failide kaudu. Näiteks pääseb nimeserverisse konkreetse nime abil, ütleme näiteks /net/dns; Pärast sellesse faili hosti domeeninime kirjutamist tagastab järgnev lugemine vastava IP-aadressi numbrilises vormingus.
Liim, mis hoiab nimeruumi eraldi osi koos, on Styxi protokoll. Infernos vastavad kõik seadme draiverid ja muud sisemised ressursid Styxi protseduurilisele versioonile.
Inferno kernel sisaldab niinimetatud "mount draiverit", mis teisendab failisüsteemi toimingud võrgu kaudu edastamise kaugprotseduurikutseks. Ühenduse teises otsas loeb server Styx protokolli sõnumeid ja rakendab vastavaid kõnesid kasutades kohalikud ressursid. Sel viisil on võimalik importida osa nimetatud ruumist (st saadaolevatest ressurssidest) teistest masinatest.
Ülaltoodud näidet laiendades on ebatõenäoline, et lõppseade salvestaks nimeserveri koodi iseseisvalt. Selle asemel impordib Interneti-brauser ressursi /net/dns otse oma nimeruumi võrgus olevast serverimasinast.
Styxi protokoll on kõrgem kiht ja transpordiprotokollist sõltumatu; see töötab üle TCP, PPP, ATM või erinevate modemiprotokollide.

Inferno rakenduste sisekeskkond

Inferno programmid on kirjutatud uues Limbo keeles, mis loodi spetsiaalselt Infernos töötamiseks. Selle süntaks on inspireeritud C-st ja Pascalist ning see toetab tavalist standardsed tüübid andmed ja mitmed kõrgetasemelised andmetüübid, nagu loendid, kordused, stringid, dünaamilised massiivid ja lihtsad abstraktsed andmetüübid.
Lisaks toetab Limbo mitmeid Inferno virtuaalmasinasse manustatud keerulisi konstruktsioone. Täpsemalt suhtlusmehhanism, kanal, mida suhtlemiseks kasutatakse erinevaid ülesandeid Limbo teie kohalikus masinas või võrgu kaudu. Kanal edastab andmeid masinast sõltumatult, seega keerulised struktuurid andmeid, sealhulgas kanaleid endid, saab edastada Limbo ülesannete vahel või lisada nimeruumi failidele, et tagada masinatevaheline koostalitlusvõime keele tasemel.
Multitegumtöötlust toetab otseselt Limbo keel: saab luua sõltumatuid lõime ja ülesannetevahelise kanaliühenduse koordineerimiseks kasutatakse alt-avaldist (st. Alt kasutatakse ühe mitmest suhtlemisvalmis kanalist valimiseks). Manustades keelde ja selle virtuaalmasinasse kanaleid ja ülesandeid, muudab Inferno selle kasutamise lihtsaks ja ohutul viisil interaktsioonid.
Limbo programmid koosnevad moodulitest, mis on pakendatud konteinerid, millel on funktsioonide/meetodite, abstraktsete andmetüüpide ja konstantide kujul määratletud liides, mis on määratletud moodulis ja on väliselt juurdepääsetavad. Moodulitele pääseb juurde dünaamiliselt, st kui üks moodul soovib kasutada teist, siis kutsutakse load dünaamiliselt välja kutsutava mooduli nimega ja tagastatakse osuti uus moodul. Kui uut moodulit enam ei kasutata, laaditakse selle keskkond ja kood maha.
Modulaarse struktuuri paindlikkus tuleneb tüüpilise Inferno rakenduse väiksusest. Näiteks ülalkirjeldatud ostukataloogis kontrollib põhirakenduse moodul dünaamiliselt videoressursi saadavust ja kui ressurss pole saadaval, siis videodekoodrit ei laadita.
Limbo kontrollib kompileerimisel ja täitmisel täielikult andmetüüpide õigsust, näiteks enne kasutamist kontrollitakse viiteid (muide, rangemad kui C-s). Dünaamiliselt laetava mooduli tüübivastavust kontrollitakse laadimise käigus. Limbo rakendused töötavad masinas stabiilselt ilma riistvaralise mälukaitseta.
Veelgi enam, kõiki süsteemiandmeobjekte ja programmiobjekte juhib "prügikoguja", mis on ühendatud Limbosse. Virtuaalmasin jälgib kõiki selliseid objekte ja laadib need pärast kasutamist maha. Näiteks kui rakendus loob graafikaakna ja lõpetab oma ülesande, suletakse aken automaatselt pärast kõigi viidete eemaldamist sellele objektile.
Limbo-programmid kompileeritakse baitkoodiks, mis sisaldab juhiseid Dis-i virtuaalmasina jaoks. Dis aritmeetilise osa arhitektuur on lihtne 3-aadressiline masin, mis on varustatud mitmete spetsiaalsete operatsioonidega töötamiseks kõrgetasemelised tüübid andmeid, nagu massiivid ja stringid. Prügi kogub allpool ehjdytv ja ülesannete ajastamine on samamoodi peidetud. Kui baidikood laaditakse mällu, laiendatakse see täitmiseks tõhusamasse vormingusse. Olemasolev kompilaator teisendab Dis-i käsuvoo riistvara masinajuhisteks käigupealt. See teisendamine on tõhus, kuna Dis juhised vastavad käsukomplektidele väga hästi kaasaegsed arhitektuurid. Saadud kood töötab kiirusega, mis on võrreldav kompileeritud C-programmidega.
Dis-i all on Inferno tuum, mis sisaldab reaalajas tõlgendajat ja kompilaatorit, samuti mäluhaldurit, planeerijat, seadme draivereid, protokollivirnasid ja muud sarnast. Tuum sisaldab ka failisüsteemi selgroogu (nimekäsitleja ja kood, mis tõlgib failisüsteemi toimingud kaugprotseduurikõnedeks olemasolevate sidekanalite kaudu).
Lõpuks rakendab Inferno virtuaalmasin sisemiselt mitmeid standardmooduleid. Sys moodul, mis pakub süsteemikõnesid ja väikest rutiinide teeki (võrguühenduste loomine, stringitoimingud). Draw moodul on põhiline graafikateek, mis töötab rastergraafika, fontide ja akendega. Valmistamismoodul on üles ehitatud Drawile, et toetada struktureeritud komplekse, mis sisaldavad aknas pilte ja teksti. Neid objekte saab kerida, valida ja muuta, kasutades Prefab meetodeid. Moodul Tk on uus teostus Tk graafiline raamatukogu ja Limbo liides. Matemaatika moodul sisaldab protseduure matemaatiliste toimingute programmeerimiseks.

Inferno keskkond

Inferno loob rakenduste jaoks standardse keskkonna. Sama rakendust saab käivitada erinevat tüüpi keskkondades, sealhulgas hajutatud keskkondades, ja näha identseid ressursse. Olenevalt keskkonnast, milles Inferno ise töötab, on mitu tuuma, Dis/Limbo tõlgi ja seadmedraiverite komplekti versioone.
Kui Inferno töötab ühe operatsioonisüsteemina, sisaldab kernel kõiki vajalikke madala taseme osi (katkestuste töötlejad, graafika ja muud draiverid), mida on vaja rakenduste kõrgetasemeliste abstraktsioonide rakendamiseks.
Külalissüsteemina, näiteks Unixis või Windowsis, töötab Inferno nagu tavaliste protsesside kogum. Kasutamise asemel enda võimeid Riistvara haldamiseks kasutab Inferno ressursse, mida pakub see operatsioonisüsteem, millel see töötab. Näiteks Unixi all saab graafikateeki realiseerida XWindow abil ja võrgutoe pistikuteegi abil. Windowsis kasutab Inferno natiivset graafikasüsteem ja Winsock helistab.
Inferno on kirjutatud standardis C ja enamik selle komponente on sõltumatud operatsioonisüsteemidest, mis võivad Infernot hostida.

turvalisus Infernos

Inferno tagab turvalise side, ressursside kasutamise ja süsteemi terviklikkuse.
Iga välise kanali kaudu edastatakse andmed selgel kujul koos digitaalse kokkuvõttega, et vältida kahjustusi, või krüpteeritakse, et vältida andmete kahjustamist ja pealtkuulamist. Võtmeid vahetatakse standardse avaliku võtme mehhanismi kaudu. Pärast võtmevahetust kasutavad krüpteerimine ja digitaalallkirjad standardset sümmeetrilist mehhanismi.
Inferno pakub kaitset halvasti kirjutatud rakenduste eest (vigade või pahatahtlike kõrvalekalletega) ning võimaldab turvalist suhtlust "kahtlaste" teenusepakkujate ja klientide vahel. Ressursid, programmi jaoks vajalik, on saadaval ainult programmi nimeruumis, saadaval on ka standardsed kaitsemehhanismid. See kehtib andmete, sidekanalite ja tegelike käivitatavate failide ja teekide kohta. Kriitilised süsteemiressursid on juurdepääsetavad ainult neid pakkuvale moodulile suunatud kõne kaudu, uute failide ja teenuste lisamine nimetatud ruumi on kontrollitud ja võimalik ainult pärast autentimist. Näiteks kui võrguressurss rakenduse nimeruumist eemaldatud, muutub võrguühenduse loomine võimatuks.
Objektimooduleid saab allkirjastada nende autentsuse ja kehtivuse kinnitamiseks ning süsteem saab neid allkirju kontrollida, kui sellistele moodulitele juurde pääseb.
Kuigi Inferno pakub suurt hulka autentimis- ja turvamehhanisme, mida kirjeldatakse allpool, vajavad vähesed rakendused nende rakendamist või vähemalt nende kasutamiseks mingit programmeerimist.
Sagedamini korraldab juurdepääsu piiratud ressurssidele turvalise kanali kaudu eelnevalt süsteem, milles rakendus töötab. Näiteks kui klientsüsteem kasutab serverisüsteemi ning juurdepääsu kontroll ja krüpteerimine on saadaval, antakse serveriressursid rakenduse nimeruumi osana. Suhtluskanal, mis pakub Styxi protokolli, saab seadistada autentimiseks või krüptimiseks. Sel viisil kaitstakse automaatselt kõigi ressursside kasutamist.

turvamehhanismid

Autentimine ja digitaalallkirjad on esindatud krüptimise abil avalikud võtmed. Avalikud võtmed on sertifitseeritud ja allkirjastatud sertifikaadi väljastanud organisatsiooni privaatvõtmetega.
Inferno kasutab krüptimist:
- osapoolte pidev autentimine;
- osapooltevaheliste sõnumite autentimine;
- sõnumite krüpteerimine.
Inferno pakutavad krüpteerimisalgoritmid hõlmavad SHA, MD4 ja MD5 räsi. avalikud allkirjad ja Elgamali allkirjade kinnitus, RC4 ja DES krüpteerimine. Avaliku privaatvõtme vahetus põhineb Diffie Hellmani skeemil. Avaliku võtme allkirjad võivad olla kuni 4096 bitti pikad, vaikimisi 512 bitti.
Puudub üldine riiklik või rahvusvaheline organisatsioon avalike või privaatsete krüpteerimisvõtmete salvestamiseks või genereerimiseks. Seetõttu sisaldab Inferno tööriista usaldusväärse organisatsiooni kasutamiseks või loomiseks, kuid ei paku sellist organisatsiooni ise, kuna see on haldusfunktsioon. Seega peab Infernot (või mõnda muud turva- ja võtmevahetussüsteemi) kasutav organisatsioon looma oma süsteem oma vajadustele ja eelkõige otsustada, kellele sertifitseerimine usaldada. Inferno disain on aga piisavalt paindlik ja modulaarne, et mahutada praktikas kasutatavaid protokolle.
Kasutajate avalikud võtmed allkirjastav sertifikaadi asutus määrab võtme suuruse ja algoritmi. Inferno pakutavad tööriistad kasutavad autentimiseks neid allkirju. Allkirjastamiseks ja kinnitamiseks on Limbo rakendused varustatud liideste raamatukoguga.
Kui osapooled vahetavad andmeid, kasutavad nad osapoolte tuvastamiseks ja salajase võtme genereerimiseks protokolli Station to Station. Protokoll Station to Station kasutab sellise jagatud salavõtme loomiseks Diffie-Hellmani algoritmi. Protokoll on kaitstud kordusrünnakute eest, valides iga interaktsiooni jaoks uued väärtused. Protokoll on kaitstud keskmiste rünnakute eest, vahetades osapoolte vahel sertifikaate ja allkirjastades seejärel protokolli peamised osad. Teiseks osapooleks maskeerumiseks peab ründaja jäljendama selle osapoole allkirja.

liini turvalisus

Võrgusidet saab kaitsta muutmise või muutmise ja pealtkuulamise eest. Modifikatsiooni eest kaitsmiseks võib Inferno kasutada MD5 või SHA räsi (nimetatakse kokkuvõtteks) -

räsi (salajane, sõnum, sõnumi tunnus)

iga sõnumi kohta. Messageid on 32. number, mis algab 0-st ja suureneb iga järgneva sõnumi puhul 1 võrra. See tähendab, et sõnumit ei saa muuta ega kustutada, sõnumite järjekorda voos muuta ei saa ainult siis, kui võti on saadaval või räsialgoritm on murtud.
Pealtkuulamise eest kaitsmiseks kasutab Inferno kogu seansi krüptimist, kasutades RC4 või DES-i (DESCBC, DESECB).
Inferno kasutab sama kapseldamisvormingut nagu Netscape'i Secure Sockets Layer. Erinevate kaitsetasemete tagamiseks on võimalik mitu sõnumivoo kapseldamist.

juhuslikud arvud

Krüptoalgoritmi tugevus sõltub eelkõige sellest juhuslikud arvud, mida kasutatakse klahvide, Diffie Hellmani parameetrite, initsialiseerimisvektorite jne valimiseks. Inferno saavutab selle kahes etapis: aeglane (100 kuni 200 bps) juhuslik bitivoog saadakse vabalt jooksva loenduri madalate bittide diskreedimisel iga taktitsükliga. tundi. Kell peab olema sünkroniseerimata või loenduriga halvasti sünkroonitud. Seda juhuslike arvude generaatorit kasutatakse seejärel oleku muutmiseks kiire generaator pseudojuhuslikud arvud. Mõlemat generaatorit on testitud mitmesugustel arhitektuuridel, kasutades enesekorrelatsiooni, juhuslikke liigutusi ja korduvaid teste.

Inferno kirjeldus

Kirjutage ülevaade artiklist "Inferno (operatsioonisüsteem)"

Märkmed

Vaata ka

Lingid

  • (inglise)
  • ametlike allikatega (inglise keeles)
  • (vene)
  • (vene)
  • (vene)
  • (vene)
  • - artikkel, mis sisaldab linkide loendit teistele Inferno ressurssidele (vene keeles)
  • (inglise)
  • (vene)
  • (vene)

Infernot (operatsioonisüsteemi) iseloomustav väljavõte

"See on Metampsic," ütles Sonya, kes õppis alati hästi ja mäletas kõike. -Egiptlased uskusid, et meie hing on loomades ja läheb tagasi loomade juurde.
"Ei, tead, ma ei usu seda, et me olime loomad," ütles Nataša samas sosinal, kuigi muusika oli lõppenud, "aga ma tean kindlalt, et me olime siin-seal inglid ja seepärast. me mäletame kõike. ”…
- Kas ma saan teiega liituda? - ütles Dimmler, kes astus vaikselt ligi ja istus nende kõrvale.
- Kui me olime inglid, siis miks me langesime madalamale? - ütles Nikolai. - Ei, see ei saa olla!
“Mitte madalam, kes sulle seda madalamalt ütles?... Miks ma tean, mis ma enne olin,” vaidles Nataša veendunult vastu. - Lõppude lõpuks on hing surematu ... seepärast, kui ma elan igavesti, siis nii elasin ma enne, elasin igavesti.
"Jah, aga meil on raske ette kujutada igavikku," ütles Dimmler, kes lähenes noortele leebe ja põlgliku naeratusega, kuid rääkis nüüd sama vaikselt ja tõsiselt nagu nemadki.
– Miks on raske igavikku ette kujutada? - ütles Nataša. - Täna on see, homme on, see on alati ja eile oli ja eile oli...
- Nataša! nüüd on sinu kord. "Laula mulle midagi," kõlas krahvinna hääl. - Et sa istusid maha nagu vandenõulased.
- Ema! "Ma ei taha seda teha," ütles Nataša, kuid tõusis samal ajal püsti.
Kõik, isegi keskealine Dimmler, ei tahtnud vestlust katkestada ja diivaninurgast lahkuda, kuid Nataša tõusis püsti ja Nikolai istus klavikordi juurde. Nagu ikka, keset saali seistes ja valides suurepärane asukoht Resonantsi saamiseks hakkas Nataša laulma oma ema lemmikpala.
Ta ütles, et ta ei taha laulda, kuid ta polnud varem ega kaua aega pärast seda laulnud, nagu ta tol õhtul laulis. Krahv Ilja Andreich kontorist, kus ta Mitinkaga vestles, kuulis teda laulmas ja nagu õpilane, kiirustades mängima, tundi lõpetades läks ta sõnades segadusse, andis juhatajale korraldusi ja jäi lõpuks vait. , ja Mitinka, samuti kuulates, vaikselt naeratades, seisis krahvi ees. Nikolai ei võtnud silmi oma õelt ja hingas koos temaga. Sonya mõtles kuulates, milline tohutu erinevus on tema ja ta sõbra vahel ja kui võimatu on olla tema suguvõsaga sama võluv kui tema nõbu. Vana krahvinna istus rõõmsalt kurva naeratusega ja pisarsilmil, aeg-ajalt pead vangutades. Ta mõtles Natašale ja oma noorusele ning sellele, kuidas Nataša eelseisvas abielus prints Andreiga oli midagi ebaloomulikku ja kohutavat.
Dimmler istus krahvinna kõrvale ja sulges silmad ning kuulas.
"Ei, krahvinna," ütles ta lõpuks, "see on Euroopa talent, tal pole midagi õppida, see pehmus, õrnus, jõud..."
- Ah! "Kuidas ma tema pärast kardan, kuidas ma kardan," ütles krahvinna, kes ei mäletanud, kellega ta rääkis. Tema emainstinkt ütles talle, et Natašas on midagi liiga palju ja see ei tee teda õnnelikuks. Nataša polnud veel laulmist lõpetanud, kui entusiastlik neljateistkümneaastane Petja jooksis tuppa teatega, et mummud on saabunud.
Nataša jäi järsku seisma.
- Loll! - karjus ta vennale, jooksis tooli juurde, kukkus sellele ja nuttis nii palju, et ei suutnud pikka aega peatuda.
"Ei midagi, ema, tegelikult mitte midagi, lihtsalt nii: Petya hirmutas mind," ütles ta naeratada püüdes, kuid pisarad voolasid pidevalt ja nutt lämmatas kurku.
Riietatud teenijad, karud, türklased, kõrtsmikud, daamid, õudsed ja naljakad, tuues endaga kaasa külmuse ja lusti, algul arglikult esikus tunglemas; siis sunniti nad üksteise taha peitu pugedes saali; ja algul arglikult, seejärel aga aina rõõmsamalt ja sõbralikumalt algasid laulud, tantsud, koori- ja jõulumängud. Krahvinna, tundes näod ära ja naerdes riietujate üle, läks elutuppa. Krahv Ilja Andreitš istus särava naeratusega saalis, tunnustades mängijaid. Noorus kadus kuhugi.

Eelmise postituse info on peaaegu 4 aastat vananenud ja mul paluti seda uuendada. Samuti paluti ühes postituses paigaldust häälestamisega mitte segada, nii et siin tuleb ainult installimine ja inferno seadistust kirjeldatakse eraldi postituses. Värskendus: Windowsi installikirjeldust värskendati juunis 2014.

Niisiis, installime hajutatud Inferno OS-i. Ametlikul veebisaidil on installijuhised, kuid need pole täiesti õiged ja on ka veidi aegunud. Inferno võib töötada kahes režiimis - emakeelena(paljas metallil või qemu/jne nagu kõik tavalised OS-id) ja majutatud(Kuidas tavaline rakendus*NIX/Win all). Native Inferno installimise juhised leiate vene vikist. Lisaks sellele on ka muid võimalusi – näiteks Inferno installimine Androidi (inglise keeles). Isiklikult ei näe ma tavalistes arvutites natiivse Inferno kasutamisel mõtet, seega kirjeldan majutatud Inferno installimist Gentoo, Ubuntu, FreeBSD, MacOSX ja Windowsi alla.

Paigaldusfunktsioonid

OS Inferno versioonid
Teoreetiliselt ilmus viimane ametlik "Neljas väljaanne" 2004. aasta paiku. Praegune versioon asub Mercuriali hoidlas Google Code'is ja nimetab end "New Editioniks". Praktikas pole mõtet kasutada muud kui praegust hoidlast pärit versiooni - see on täiesti stabiilne ja on alati olnud stabiilne. Me paigaldame selle.
Ühe- või mitme kasutaja paigaldusstiil
Inferno saab paigaldada kogu süsteemi ulatuses (nt /usr/inferno/), et kõik kasutajad saaksid seda kasutada. Inferno toetab kõike, mis selleks vajalik – töö kasutajaõigustega, eraldi kodukataloogid jne. Teisest küljest saab inferno lihtsalt oma kodukataloogi panna (näiteks ~/inferno/), mis on veelgi mugavam. Tegin viimase artikli pisut keerulisemaks, kirjeldades korraga mõlemat meetodit, kuid nüüd otsustasin, et lihtsam on kirjeldada ainult ühe kasutaja installimise võimalust. Kui kellelgi selle artikli lugejatest on server, millel on rohkem kui üks Inferno kasutaja, ei vaja nad tõenäoliselt minu juhiseid Inferno installimiseks. ;-) Seega installime selle *NIX-süsteemides kausta ~/inferno/ ja Windowsis kausta C:\inferno\.
32/64 bitti
OS Inferno 32-bitine. Seetõttu on 64-bitise OS-i installimiseks ja käitamiseks vajalik nende OS-i 32-bitiste rakenduste tugi. Kahjuks ei saanud ma kunagi Infernot käivitada 64-bitise FreeBSD-9.0 all.
Karastatud/PaX/SeLinux/jne.
Inferno käivitab koodi sisse virtuaalne masin, lisaks toetab see JIT-i, seega on erinevate kaitsetega samad probleemid nagu Java jne. Eelmises artiklis pöörasin sellele teemale rohkem tähelepanu, kui on küsimusi, siis vaadake sealt.
Aeg ja koht
Installitud inferno võtab umbes 200 MB. Kuid kompilaatorite installimine võib nõuda kuni 3 gigabaiti (näiteks Xcode'is või Visual Studio). Inferno kompileerib keskmises süsteemis sõna otseses mõttes paari minutiga.
Asukoht
Infernot oma kodukataloogi installides peaksite meeles pidama, et Infernole ei meeldi eriline. märgid faili/kataloogi nimedes, nii et kui tee kodukataloog sisaldab näiteks tühikut – võib tekkida raskusi, millega ma pole arvestanud.

Paigaldamine

(Kõvendatud) Gentoo Linuxi 32/64-bitises versioonis on kõik triviaalne – on olemas pakett, mis installib inferno kogu süsteemi ulatuses kausta /usr/inferno/ :
võhik - jõumees, kes ilmub põrgusse
Ja nüüd käsitleme ülejäänud operatsioonisüsteeme.
Mercurial, kompilaatorid ja kõik kõik kõik
... Ubuntu 12.04 32-bitine
sudo apt-get install -y mercurial sudo apt-get install -y libxext-dev
... Ubuntu 12.04 64-bitine
sudo apt-get install -y mercurial sudo apt-get install -y libc6-dev-i386 sudo apt-get install -y libxext-dev:i386
...FreeBSD 8.0 32-bitine
pkg_add -r elavhõbe
...Mac OS X 10.6.8 Lumeleopard 32-bitine
Mul olid juba installitud Xcode (3.2.2) ja Mercurial (1.7.1).
...Mac OS X 10.7.4 Lion 64-bitine
Installige Xcode (4.3.2) App Store'i kaudu.
Käivitage Xcode, minge menüüsse Xcode - Eelistused - Allalaadimised ja klõpsake käsureatööriistade jaoks Installi.
Minge saidile mercurial.berkwood.com ja laadige alla/installige praegune versioon (Mercurial 2.2.2 OS X 10.7 jaoks).
... Windows (XP 32-bitine, Seven 32-bit, Seven 64-bit)
Minge aadressile mercurial.selenic.com/downloads ja laadige alla/installige praegune versioon (3.0.1).

Kuid kompilaatoriga on valikud. Ilmselge võimalus installida Visual Studio Express maksab rohkem kui 3 gigabaiti kruvi kohta. Alternatiivne variant- WinSDK installimine maksab umbes 800 megabaiti. Kirjeldan mõlemat võimalust, valige ise.

Esimene variant. Minge aadressile www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express ja laadige alla/installige/värskendage (vastavalt vene tavale - kolm korda :) muidu kõiki värskendusi ei installita) " Visual C++ 2010 Express "

Teine variant. Esmalt minge saidile go.microsoft.com/fwlink/?LinkId=187668 ja laadige alla/installige täielik ". NET Framework 4. Seejärel minge aadressile www.microsoft.com/en-us/download/details.aspx?id=8279 ja laadige alla/installige Windows SDK 7.1. Installimisel piirduge järgmiste punktidega:
# Windowsi algkoodiarendus: # Windowsi päised ja teegid: # [X] Windowsi päised # [X] x86 teegid # [X] Visual C++ kompilaatorid # Edasilevitatavad paketid: # [X] Microsoft Visual C++ 2010 (2014. aastal keeldus minu SDK installimast, kuni ma desinstallisin kogu Visual C++ 2010 Redistributable - need osutusid selle jaoks liiga uueks versiooniks.) Siis värskendame ka. Tegelikult pole seda ilmselt vaja värskendada, see on lihtsalt harjumuseks saanud.

Laadige alla ja värskendage inferno allikaid
Hoolimata asjaolust, et ametlik veebisait pakub Windowsi jaoks eraldi arhiivi ja Maci jaoks eraldi binaarfaile, ei vaja me seda kõike ja see on isegi kahjulik (Windowsi arhiivi ei värskendata hoidlast tavaliselt - tekivad konfliktid). Nii et kõigi operatsioonisüsteemide alla installime saidilt inferno-20100120.tgz. Mõte on selle arhiivi asemel kasutada lihtne kloonimine Hoidla seisneb selles, et arhiiv sisaldab mõningaid faile (peamiselt fonte), mida litsents keelab Google Code'i postitada, seega pole neid hoidlas.
… *NIX
wget http://www.vitanuova.com/dist/4e/inferno-20100120.tgz tar xzf inferno-20100120.tgz cd inferno/ hg pull -uv
...Võida
Laadige alla www.vitanuova.com/dist/4e/inferno.zip (saidil soovitatakse, kuid võite võtta ka .tgz - saan mõlemad probleemideta kokku panna).
Pakkige see lahti kausta C:\inferno\. Ma ei tea, mida on vaja .tgz lahtipakkimiseks Windowsis – mul olid Far ja 7Zip installitud, pakkisin selle lahti Fariga.
Käivitage cmd.
cd \inferno hg pull -uv # kui saame konflikti nagu: libinterp/keyring.h ühendamine hoiatus: konfliktid ühendamise ajal. libinterp/keyring.h ühendamine on puudulik! (redigeeri konflikte, seejärel kasuta "hg solve --mark") libinterp/runt.h ühendamine hoiatus: konfliktid ühendamise ajal. libinterp/runt.h ühendamine on puudulik! (redigeeri konflikte, seejärel kasuta käsku "hg solve --mark") 3038 faili on värskendatud, 0 faili on liidetud, 106 faili on eemaldatud, 2 faili on lahendamata. Kasutage "hg lahendada" lahendamata failide ühendamise uuesti proovimiseks # ja taastage lihtsalt uusim versioon: hg revert - r tip libinterp\keyring.h hg revert -r tip libinterp\runt.h Välju cmd .
Keskkonnamuutujate seadistamine
Ainus tõeliselt vajalik muutuja on PATH . EMU määrab inferno käivitamiseks vaikeparameetrid, see on lihtsalt mugavuse huvides. Mis puutub INFERNO_ROOT-i, siis Inferno ei tea sellest üldse, me vajame seda muutujat lihtsalt mugavuse huvides. Lisaks muutujate määramisele praeguses seansis kirjutame need algusskriptidesse.
... Ubuntu
eksport INFERNO_ROOT=$(pwd) eksport PATH=$INFERNO_ROOT/Linux/386/bin:$PATH eksport EMU=-r$INFERNO_ROOT echo "eksport INFERNO_ROOT=$INFERNO_ROOT" >> ~/.bashrc echo "export PATH_NO\$INFERNO /Linux/386/bin:\$PATH" >> ~/.bashrc echo "export EMU=-r\$INFERNO_ROOT" >> ~/.bashrc
... FreeBSD
eksport INFERNO_ROOT=$(pwd) eksport PATH=$INFERNO_ROOT/FreeBSD/386/bin:$PATH eksport EMU=-r$INFERNO_ROOT echo "eksport INFERNO_ROOT=$INFERNO_ROOT" >> ~/.bash_profile echo PANOTH_\$ROOTER "export /FreeBSD/386/bin:\$PATH" >> ~/.bash_profile echo "export EMU=-r\$INFERNO_ROOT" >> ~/.bash_profile
...Mac OS X
eksport INFERNO_ROOT=$(pwd) eksport PATH=$INFERNO_ROOT/MacOSX/386/bin:$PATH eksport EMU=-r$INFERNO_ROOT echo "eksport INFERNO_ROOT=$INFERNO_ROOT" >> ~/.bash_profile echo\$INFERTH /MacOSX/386/bin:\$PATH" >> ~/.bash_profile echo "export EMU=-r\$INFERNO_ROOT" >> ~/.bash_profile
...Võida
Avage: Juhtpaneel -> Süsteem -> Süsteemi täiendavad parameetrid (XP-s lihtsalt "Täpsem") -> Keskkonnamuutujad.
Lisa lõppu Tee: ;C:\inferno\Nt\386\bin
Looge uus muutuja: INFERNO_ROOT: C:\inferno
Looge uus muutuja: EMU: -rC:\inferno
Ehitusparameetrite seadistamine
Saate mkconfig-faili käsitsi redigeerida kõigis operatsioonisüsteemides, kuid lihtsuse huvides annan võimaluse korral käsud, mis muudavad konfiguratsiooni automaatselt.
... Ubuntu
perl -i -pe "s/^ROOT=.*/ROOT=$ENV(INFERNO_ROOT)/m" mkconfig perl -i -pe "s/^SYSHOST=.*/SYSHOST=Linux/m" mkconfig perl -i - pe "s/^OBJTYPE=.*/OBJTYPE=386/m" mkconfig
Linuxis toetab Inferno IPv6. Lisaks kasutatakse vaikimisi IPv6. Kas see sobib teile või mitte - otsustage ise. Mina isiklikult lülitan selle välja:
perl -i -pe "s/ipif6/ipif/g" emu/Linux/emu emu/Linux/emu-g
... FreeBSD
perl -i -pe "s/^ROOT=.*/ROOT=$ENV(INFERNO_ROOT)/m" mkconfig perl -i -pe "s/^SYSHOST=.*/SYSHOST=FreeBSD/m" mkconfig perl -i - pe "s/^OBJTYPE=.*/OBJTYPE=386/m" mkconfig
...Mac OS X
perl -i -pe "s/^ROOT=.*/ROOT=$ENV(INFERNO_ROOT)/m" mkconfig perl -i -pe "s/^SYSHOST=.*/SYSHOST=MacOSX/m" mkconfig perl -i - pe "s/^OBJTYPE=.*/OBJTYPE=386/m" mkconfig
...Võida
Redigeeri mkconfig:
ROOT=c:/inferno SYSHOST=Nt OBJTYPE=386
Kokkupanek
… *NIX
sh makemk.sh mk nuke mk install # jäta see käsk vahele serverites ilma X-i ja GUI-ta mk CONF=emu-g install
...Win Seven 64-bitine
Kui installisite WinSDK, peate seda tegema uus otsetee"Windows SDK 7.1 Command Prompt" puhul minge selle atribuutidele ja lisage parameeter /x86 – see näeb välja selline:
C:\Windows\System32\cmd.exe /E:ON /V:ON /T:0E /K "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x86
Kui installisite Visual C++ 2010, siis ma ei tea, kuidas 32-bitist kompilaatorit käivitada (aga võib-olla saab seda teha samamoodi).
Mida edasi teha, kirjeldatakse järgmises lõigus kõigi Windowsi versioonide jaoks.
...Võida
Käivitage "Windows SDK 7.1 käsuviip" (või "Visual Studio Command Prompt (2010)" - olenevalt sellest, mida installisite).
cd\inferno mk nuke mk install

Käivitage

Tegelikult on see kõik. Nüüd saate käivitada inferno käsuga emu või emu-g (teine ​​erineb selle poolest, et see ei toeta graafika režiim, kuid see töötab ilma X-ita serverites ja on väga mugav erinevate võrguteenuste käitamiseks). Graafilist keskkonda saab näha, käivitades emu sees käsu wm/wm:
$ emu ; wm/wm