Een korte recensie van Elbrus OS. Besturingssysteem "Elbrus" en binnenlandse processor. Monoblok "KM4-Elbrus"

BOOT gestart. BOOT E2S VERSIE: release-2.13.3.0-E2S::::::: (/tags/release-2.13.3.0-E2S bij revisie 3816) GEBOUWD DOOR neo TARGET: mono OP 2 november 2015 om 18:05:37 COMPILER : lcc:1.17.12:27-nov-2012:e2k-linux.cross:i386-linux Onderwerpmodel: posix gcc versie 3.4.6 compatibel. VLAGGEN: -DDEBUG_TEST_BOOTBLOCK ........ -DRELEASE ........
Door op de spatiebalk te drukken wanneer daarom wordt gevraagd (45 seconden nadat de stroom is ingeschakeld), kunt u het proces afbreken automatisch downloaden systeemkernel en ga naar het hoofdopdrachtenmenu, waar ze worden weergegeven of gewijzigd basisparameters bootlader. Door op de Tilde-toets te drukken, kunt u vanuit dit menu naar de interface gaan opdrachtregel, indien beschikbaar fijnafstemming apparatuur - van het instellen van de datum en tijd tot het instellen van de bedrijfsmodi van randcontrollers en systeembus. Hoewel er een optie in het menu is om instellingen geforceerd op te slaan, worden wijzigingen vanaf de opdrachtregel automatisch opgeslagen; V als laatste redmiddel, kunnen de instellingen worden gereset met behulp van een jumper op het moederbord.

Logboek van werkzaamheden in het systeemmenu(geheel op Pastebin)

BOOT SETUP Druk op de opdrachtletter of druk op "h" om hulp te krijgen: h HELP "p" of "s" - laad en start bestand "c" - Wijzig opstartparameters "u" - toon huidige parameters "d" - toon schijven en partities "m" - sla params op in NVRAM "b" - start het Boot.conf-menu "`", "~" - ga naar de verbeterde cmd-modus:` VERBETERDE CMD-MODUS Voer de opdracht in, "help" om hulp te krijgen, of Esc om af te sluiten # set vga primair 1 core: 0x0, link: 0x0, bus: 0x3, slot: 0x0, func: 0x0, ven: 0x1002, dev: 0x6779, rev: 0x0, classcode: 0x30000 is geselecteerd! # boot boot# auto CPU#00: Label "auto" gevonden, parameters laden Probeert de afbeelding te laden en te starten met de volgende parameters: drive_number: "4" partitie_nummer: "0" command_string: "console=tty0 root=/dev/sda3 ......." bestandsnaam: "/boot/image-033.6.57" initrdbestandsnaam: "" CPU#00: Lezen: Bestand - "/boot/image-033.6.57", Schijf - 4, Partitie -. 0 ........
Opmerkelijk is onder meer de mogelijkheid om de Echelon-E vertrouwde opstarthardware-softwaremodule te activeren en te deactiveren, hoewel er geen bord op de computer is geïnstalleerd dat lijkt op traditionele APMDZ. Het was niet mogelijk om duidelijke informatie over een dergelijk apparaat te vinden, met uitzondering van één opmerking waarin werd vermeld dat dit een gespecialiseerde versie is van het MDZ-Echelon-product, dat volledig softwareontwikkeling is en standaard computerhardware gebruikt.

Direct vanaf de opdrachtregel, zonder het besturingssysteem te laden, kunt u tests uitvoeren voor de correcte werking van de apparatuur (systeem van test- en diagnostische programma's) - ofwel degenen die op schijf zijn opgeslagen en beschikbaar zijn voor lancering vanuit het besturingssysteem, of enkele andere: we konden er niet achter komen, omdat je de exacte naam moet opgeven uitvoerbaar bestand en er is geen documentatie.

Om dezelfde reden - vanwege het ontbreken van de juiste documentatie - was het niet mogelijk om je te verdiepen in de fijne kneepjes van het beheer van de bootloader van het besturingssysteem, of preciezer gezegd, hoe je iets anders laadt dan standaard systeem. Hier wordt immers dezelfde bootloader (SILO) gebruikt als op computers met de SPARC-architectuur - en daar mag het niet werken met een buitenlandse reeks instructies. De opstartparameters zelf zijn intuïtief: u moet het partitienummer en de bestandsnaam opgeven met de systeemkernel, evenals de kernelstartargumenten en de naam van het archiefbestand ondersteunende programma's (begin, indien nodig), time-out tijdens het wachten op annulering door de gebruiker. Deze parameters worden uit het bestand gelezen /boot/boot.conf in de eerste schijfpartitie gespecificeerd vanaf de opdrachtregel; Er kunnen standaard meerdere sets parameters in het bestand worden gedefinieerd; de parameter die in de richtlijn is opgegeven, wordt gebruikt standaard, of die de naam “ auto" Maar wat moet u doen om besturingssystemen te draaien voor de x86- of x86-64-architectuur, waarvan de transparante ondersteuning wordt vermeld als een van de belangrijkste kenmerken"Elbrus"? Ontbrekend bestand boot.conf op installatie schijf Windows of populair Linux-distributie kan worden gecompenseerd door handmatige invoer via het menu. Hoe kan ik de besturing overbrengen naar een nieuwe bootloader die niet de Linux-kernel is? Hoe kan ik op zijn minst de Linux-kernel uitvoeren als deze voor x86 is? Het was onmogelijk om dit uit te zoeken zonder documentatie: de zaak eindigde steevast in een bevriezing op het moment dat de controle overging van de bootloader naar de kernel.

Standaard bootloaderconfiguratie (boot.conf)

Standaard=auto time-out=3 label=auto partitie=0 image=/boot/image-033.6.57 cmdline=console=tty0 console=ttyS0,115200 consoleblank=0 hardreset REBOOT root=/dev/sda3 video=DVI-D-1 :1024x768-24@60 video=VGA-1:1024x768-24@60 fbcon=kaart:10
Wat de standaardkernels van het Elbrus-besturingssysteem betreft, bevat het bootloader-configuratiebestand slechts één set parameters, en deze verwijzen naar de standaardkernel. Daarnaast zijn er twee kernels - met de achtervoegsels " n" En " rt": afgaande op de assemblageconfiguratie van deze kernen betekent de eerste "geen NUMA" (een vereenvoudigde versie voor systemen met één processor; waarom zou je deze niet op een pc gebruiken?), en de tweede - " realtime"(Linux-kernelextensies voor het verzenden van in de tijd beperkte taken). Zonder zelfs maar oppervlakkige kennis op deze gebieden vindt de auteur het moeilijk om commentaar te geven over de voor- of nadelen van deze of gene alternatieve kernel.

Wat betreft PPS- en PTP-ondersteuning

De enige bekende configuratieoptie is het inschakelen van PPS API-ondersteuning (pulse per seconde) in de kernel." rt", waarmee je het verloop van de systeemklok van de computer kunt aanpassen aan een externe klokpuls, bijvoorbeeld van een GPS/GLONASS-ontvanger of van een cesiumklok, als je er toevallig een hebt liggen. Het is gewoon niet duidelijk hoe deze synchronisatie precies moet worden opgezet: in tegenstelling tot bijvoorbeeld FreeBSD, waar alles als vanzelf begint te werken na het opnieuw opbouwen van de kernel met de vereiste parameter en het herconfigureren van NTPd om systeemdiscipline te gebruiken, in Linux vereist dit meestal dansen met een tamboerijn rond het hulpprogramma vastmaken, waarmee een virtueel PPS-apparaat wordt gemaakt op basis van COM-poort of LPT - dit vereist geschikte stuurprogramma's in de kernel of in afzonderlijke modules, maar deze zijn hier niet zichtbaar.

De ingebouwde netwerkkaart vertoonde ook geen tekenen van hardwareondersteuning voor tijdsynchronisatie: hulpprogramma-uitvoer ethtool met betrekking tot het PTP-protocol gaf de afwezigheid aan soortgelijke functies. In ieder geval - dat bij gebruik van de standaardkernel, die realtime is, de enige bron van systeemtijd het apparaat is " Het"("Elbrus-timer"?) met een discretie van 1 μs. Niet dat dit te grof is, maar moderne computers zijn heel goed in staat om kwantisering op het niveau van 25-50 ns te leveren, ongeacht de huidige processorfrequentie.


Standaard start het besturingssysteem samen met de grafische omgeving: er worden 12 seconden besteed aan het laden van de kernel in het geheugen en nog ongeveer 23 seconden voordat de inlogprompt verschijnt - een totaal van 80 seconden vanaf het moment dat de kernel wordt ingeschakeld. Zoals eerder vermeld, konden we geen kernelargumenten selecteren om in de single-user-modus te draaien: bij het specificeren van “ S" of " 1 » het systeem heeft nog steeds niveau 5 bereikt en probeert daarna het niveau te verlagen met behulp van het commando begin leidde tot de ineenstorting van het systeem.

Omdat de computer twee videoadapters heeft, worden er afwisselend virtuele terminals verdeeld: de eerste terminal wordt geopend discrete kaart, de tweede - op de ingebouwde controller, de derde - opnieuw op een discrete, enzovoort. De grafische desktop, die zich op de zevende terminal bevindt, komt zo op een discrete videokaart terecht, waarvan de prestaties geen vragen oproepen. Ik wilde heel graag controleren hoe responsief de desktop zou zijn als ik deze zou weergeven via de ingebouwde controller, omdat binnenlandse platforms hier problemen mee hebben: bijvoorbeeld door simpelweg het scherm opnieuw te tekenen met behulp van de module grafische adapters (eigen ontwikkeling MCST) kan enkele seconden duren - niet alleen langzaam, maar bijna zoals het regel voor regel verschijnen van de screensaver in games voor de ZX Spectrum geladen vanaf een tapecassette. Helaas, geen bewerking Xorg.conf in een afbeelding en gelijkenis gaven noch de selectie van kernelargumenten, noch de wijziging van de primaire videoadapter in de hardware-instellingen het gewenste effect.

Een merkwaardige nuance

Terwijl het primaire scherm is ingeschakeld discrete videokaart wordt geïnitialiseerd in de tekstmodus, wordt hetzelfde scherm op de ingebouwde controller geïnitialiseerd grafische modus en toont 4 processorlogo's (zoals sommige Linux-kernels doen direct nadat ze zijn gestart), maar gebruikt nog steeds alleen de bovenste 25 regels tekst.


Standaard wordt de kernel gestart met het argument " harde reset", waarmee het systeem wordt geïnstrueerd een complete harde reset bij het opnieuw opstarten van de computer. In de x86-wereld is iedereen aan deze optie gewend, maar alternatieve platforms, waarbij koude initialisatie na het opstarten enkele minuten duurt, kunnen een snelle herstart van het besturingssysteem bieden - en het werkt echt, in tegenstelling tot de "loterij" met kexec van Intel/AMD. We konden geen argument vinden dat door de kern van het Elbrus-systeem zou worden ondersteund en tegelijkertijd zou worden gegeven gewenst resultaat.

Software

besturingssysteem"Elbrus" (OS El, OSL) is standaard voor alle MCST-computers, hoewel de poort van het MSVS 3.0-systeem ook op het SPARC-platform kan functioneren. Officieel systeem identificatie van softwareproducten gaat terug naar hun decimale getallen: “OS 316‑10” staat bijvoorbeeld voor “besturingssysteem TVGI.00316‑10 met de kernel TVGI.00315‑03, dat deel uitmaakt van de algemene software TVGI.00311-05". Aan de ene kant lijkt het meer alfanumeriek titels dan op serienummers versies. Aan de andere kant: het een of het ander softwareproduct meestal nauw verbonden met een specifiek hardwareproduct en ondergaat tijdens de levensduur ervan geen significante veranderingen. Echter, in het bestand /etc/mcst_version je kunt de tag “release 2.2.1” zien, en in het pseudo-bestand /proc/bootdata- “versie 2.13.3.0”. Geen van deze symbolen verschijnt echter in de gebruikersinterface.

$ cat /etc/mcst_version release 2.2.1 $ cat /proc/bootdata boot_ver=" release-2.13.3.0-E2S::::::: (/tags/release-2.13.3.0-E2S bij revisie 3816) gebouwd op 2 november 2015 om 18:05:58" mb_type="MONOCUB" chipset_type="IOHUB" cpu_type="E2S" cache_lines_damaged=0 $ cat /proc/version Linux versie 2.6.33-elbrus.033.6.57 (gavrilova_tg@e2k13) (compatibel met gcc versie 4.4.0) #1 SMP zo 11 okt 00:10:58 MSK 2015 $ uname -a Linux MONOCUB-10-XX 2.6.33-elbrus.033.6.57 #1 SMP zo 11 okt 00:10: 58 MSK 2015 e2k E2S MONOCUB GNU/Linux
De kern van het systeem is Linux 2.6.33, geporteerd naar de Elbrus-2000 (E2K) architectuur, en het systeem als geheel is gebaseerd op Debian-distributie met een selectieve benadering van de keuze van pakketten: voor het grootste deel komt het overeen met de 7.0 "Wheezy" release of nieuwer, maar de versies van sommige pakketten liggen dichter bij 5.0 "Lenny". Als je een recent rapport (PDF, 172 KB) mag geloven, wordt er ook onderzoek gedaan naar een directe port van de originele distributie met al zijn verscheidenheid aan pakketten, maar wordt dezelfde ‘Grootvader Lenin’ als basis gekozen. En dat allemaal omdat het noodzakelijk is om te voorzien achterwaarts compatibel met applicatie- en systeemsoftware ontwikkeld voor nog oudere versies van bibliotheken en compilers. Maar waarom zouden we dan niet meerdere versies van het systeem uitbrengen – op een oudere en een nieuwere pakketbasis – zodat de consument zelf kan kiezen? Waarschijnlijk omdat er onvoldoende vraag is vanuit de doelgroep en certificeringsproblemen waarschijnlijk een belangrijke rol spelen.

Eenmaal geïnstalleerd, is het systeem niet meer onderhevig aan regelmatige updates vanuit de officiële MCST-repository en bevat het onmiddellijk alle beschikbare pakketten. Hier zijn de versies van enkele van de belangrijkste (met uitzondering van de ontwikkelingstools die in het volgende deel van het artikel worden besproken):

  • kantoorhulpmiddelen: abiword 2.8.6, evince 2.32.0, geeqie 1.1, gimp 2.6.12, gnumeric 1.10.0, graphviz 2.32.0, mtpaint 3.40, xsane 0.998;
  • Internethulpmiddelen: dillo 3.0.3, Firefox 3.6.28, links 2.2, Linphone 3.5.2, lynx 3.81, Thunderbird 3.1.20, sylpheed 2.7.0;
  • cryptografie: gnutls 3.1.22, openssl 0.9.8zc, openvpn 2.2.2;
  • multimedia: ffmpeg 1.0, mplayer 1.1.1;
  • teksteditors: ed 1.7, leafpad 0.8.17, vim 7.3 + gvim 7.3;
  • bestandsbeheerders: mc 4.7.0.8, thunar 1.4.0;
  • opdrachttolken: bash 4.2.53, pdksh 5.2.14, tcsh 6.18.01, zsh 5.0.2;
  • diensten: openssh 6.1p1, httpd 2.4.3, postgresql 9.2.3 + slony1 2.2.0, zeromq 2.1.11;
  • pakketbeheerders: apt 0.9.7.9, aptitude 0.6.8.2, dpkg 1.16.10, pkgtools 13.1.
Er zijn in totaal 679 vermeldingen in de pakketbeheerder, wat tientallen keren kleiner is dan de oorspronkelijke Debian-pool, maar er moet rekening mee worden gehouden dat niet alle daadwerkelijk geïnstalleerde software is verpakt: het systeem heeft bijvoorbeeld daadwerkelijk een virtuele machine en een Java-ontwikkelkit, maar de pakketbeheerder weet ik hier niet van.

De enige grafische desktopomgeving is Xfce 4.10. Verrassend genoeg worden nieuw aangemaakte gebruikersprofielen in het binnenlandse besturingssysteem standaard geconfigureerd Engelse taal interface, en in het programmamenu zijn er geen snelkoppelingen voor het instellen van wisselende toetsenbordindelingen, en de huidige lay-outindicator is ook nergens te bekennen. Ervaren gebruikers weten echter dat binnenlandse besturingssystemen dat wel zijn Linux-gebaseerd Meestal proberen ze de “beste” tradities van Windows te kopiëren: werken als root en van lay-out wisselen met Alt+Shift.

Xfce-bureaublad (weergave bij benadering)

Update gedateerd 02/09/2016. De opmerkingen suggereren dat de functie van het maken van schermafbeeldingen grafisch is GIMP-editor,- een terechte opmerking, maar hiervoor moet je wel zijn ervaren gebruiker dit programma; de auteur, hoewel hij alle illustraties voor dit artikel in GIMP heeft verwerkt, behoort niet tot die experts. Wat betreft het maken van schermafbeeldingen met behulp van opdrachtregelhulpprogramma's, die standaard beschikbaar zijn of onafhankelijk zijn gebouwd, werd deze methode niet overwogen vanwege de lage gebruiksvriendelijkheid voor de gemiddelde gebruiker.

Zoals eerder vermeld, konden we geen besturingssysteem van derden lanceren dat voor de x86- of x86-64-architectuur was gecompileerd vanwege een gebrek aan documentatie. Pogingen om een ​​aangepaste applicatie die voor Linux x86-64 was gecompileerd rechtstreeks vanaf de Elbrus-opdrachtregel te starten, waren ook niet succesvol. Er is geen WinAPI-emulatielaag en geen manier om PE-binaire bestanden in het systeem te starten, maar om WinE zelf te compileren bronteksten, is het noodzakelijk om architectuurafhankelijke codegedeelten te porten. Qemu-emulator ook niet standaard meegeleverd, maar min of meer succesvol gemonteerd (met parameters ‑‑enable-tcg-interpreter ‑‑disable-fout) en het lijkt zelfs in varianten te werken i386-softmmu, x86_64-softmmu, sparc-zachtmmu, sparc64-softmmu; porten is echter vereist voor "applicatie" -varianten *-linux-gebruiker. Het is duidelijk dat de makers van de binaire vertaaltechnologie van Elbrus dit helemaal niet in gedachten hadden toen ze het hadden over x86-hardware-emulatie, dus we zagen geen zin in het testen van de prestaties van Qemu - en het is zo duidelijk dat het traag en triest zou zijn .

Terugkerend naar het onderwerp standaardsoftware durven we te suggereren dat het onwaarschijnlijk is dat een gemiddelde gebruiker van dit systeem zich tekortgedaan zal voelen, aangezien hij problemen zal moeten oplossen in gespecialiseerde programma's ontwikkeling door derden, of maak eenvoudige documenten in kantoorpakketten, scannen en printen - en daarvoor hebben maar weinig mensen het meeste nodig nieuwste versies. De enige uitzondering hier is misschien de webbrowser: de eenvoudigste Dillo en tekst Lynx / Links pretenderen niets te zijn, maar Firefox 3.6 is, hoewel niet 1.5 van WSWS 3.0, maar nog steeds hopeloos oud voor moderne sites. Deze versie wordt bijvoorbeeld niet ondersteund door Yandex en Google maps (in tegenstelling tot OSM en Bing), Google Documenten; je ziet alleen de header van de websites Intel, Mail.ru en Sberbank. En bij gebrek aan ingebouwde ondersteuning voor HTML Video en de Flash-plug-in kun je natuurlijk op geen enkele site video's bekijken, of het nu buitenlandse YouTube is met een rapport over de lancering van Doom 3 op de Elbrus 401 ‑PC of het ideologisch trouwe Kremlin.ru met toespraken van de opperbevelhebber. Blijkbaar wordt dit ook niet als een nadeel beschouwd, aangezien typisch scenario gebruik van dergelijke computers - toegang tot interne, speciaal ontworpen sites in gesloten netwerk bedrijven of afdelingen.

Pogingen om toegang te krijgen tot internet(het woord “Namoroka” in de schermafbeeldingen is niet de zoveelste rebranding van Firefox voor Debian, maar slechts een codenaam voor versie 3.6)

Maar een software-update dient niet alleen om de functionaliteit uit te breiden, maar elimineert ook ernstige fouten en kwetsbaarheden - wat te doen hiermee? Blijkbaar geloven informatiebeveiligingsideologen dat sindsdien externe toegang V particulier netwerk Nee, en interne gebruikers met fysieke toegang tot hun computers zullen niet willens en wetens kwaadwillige acties ondernemen of twijfelachtige opslagmedia aansluiten door nalatigheid, dan is er niets aan de hand. Als laatste redmiddel, als een bug je echt zorgen baart en je erover wilt praten, heeft MCST zijn eigen bugzilla met een login en tickets, in die zin dat je zonder de aan jou gegeven login er niet komt, en je alleen maar bekijk uw eigen tickets, zelfs als het probleem al duizend keer met andere klanten is besproken en er al lang een oplossing is gevonden.

BOOT gestart. BOOT E2S VERSIE: release-2.13.3.0-E2S::::::: (/tags/release-2.13.3.0-E2S bij revisie 3816) GEBOUWD DOOR neo TARGET: mono OP 2 november 2015 om 18:05:37 COMPILER : lcc:1.17.12:27-nov-2012:e2k-linux.cross:i386-linux Onderwerpmodel: posix gcc versie 3.4.6 compatibel. VLAGGEN: -DDEBUG_TEST_BOOTBLOCK ........ -DRELEASE ........
Door op de spatiebalk te drukken wanneer de overeenkomstige prompt verschijnt (45 seconden nadat de stroom is ingeschakeld), kunt u het automatisch laden van de systeemkernel onderbreken en naar het hoofdopdrachtenmenu gaan, waar de basisparameters van de bootloader worden weergegeven of gewijzigd. Door op de "Tilde"-toets te drukken, kunt u vanuit dit menu naar de opdrachtregelinterface gaan, waar fijnafstemming van de apparatuur beschikbaar is - van het instellen van de datum en tijd tot het instellen van de bedrijfsmodi van randapparatuurcontrollers en de systeembus . Hoewel er een optie in het menu is om instellingen geforceerd op te slaan, worden wijzigingen vanaf de opdrachtregel automatisch opgeslagen; als laatste redmiddel kunnen de instellingen worden gereset met behulp van een jumper op het moederbord.

Logboek van werkzaamheden in het systeemmenu(geheel op Pastebin)

BOOT SETUP Druk op de opdrachtletter of druk op "h" om hulp te krijgen: h HELP "p" of "s" - laad en start bestand "c" - Wijzig opstartparameters "u" - toon huidige parameters "d" - toon schijven en partities "m" - sla params op in NVRAM "b" - start het Boot.conf-menu "`", "~" - ga naar de verbeterde cmd-modus:` VERBETERDE CMD-MODUS Voer de opdracht in, "help" om hulp te krijgen, of Esc om af te sluiten # set vga primair 1 core: 0x0, link: 0x0, bus: 0x3, slot: 0x0, func: 0x0, ven: 0x1002, dev: 0x6779, rev: 0x0, classcode: 0x30000 is geselecteerd! # boot boot# auto CPU#00: Label "auto" gevonden, parameters laden Probeert de afbeelding te laden en te starten met de volgende parameters: drive_number: "4" partitie_nummer: "0" command_string: "console=tty0 root=/dev/sda3 ......." bestandsnaam: "/boot/image-033.6.57" initrdbestandsnaam: "" CPU#00: Lezen: Bestand - "/boot/image-033.6.57", Schijf - 4, Partitie -. 0 ........
Opmerkelijk is onder meer de mogelijkheid om de Echelon-E vertrouwde opstarthardware-softwaremodule te activeren en te deactiveren, hoewel er geen bord op de computer is geïnstalleerd dat lijkt op traditionele APMDZ. Het was niet mogelijk om duidelijke informatie over een dergelijk apparaat te vinden, met uitzondering van één opmerking waarin werd vermeld dat dit een gespecialiseerde versie is van het MDZ-Echelon-product, dat volledig softwareontwikkeling is en standaard computerhardware gebruikt.

Rechtstreeks vanaf de opdrachtregel, zonder het besturingssysteem te laden, kunt u tests uitvoeren voor de juiste werking van de apparatuur (systeem van test- en diagnoseprogramma's) - ofwel de programma's die op schijf zijn opgeslagen en beschikbaar zijn voor lancering vanuit het besturingssysteem, of sommige anderen: Ik kon er niet achter komen, omdat je de exacte naam van het uitvoerbare bestand moet opgeven, en er is geen documentatie.

Om dezelfde reden - vanwege het gebrek aan goede documentatie - was het niet mogelijk om je te verdiepen in de fijne kneepjes van het beheer van de bootloader van het besturingssysteem, of preciezer gezegd, hoe je iets anders dan het standaardsysteem moest laden. Hier wordt immers dezelfde bootloader (SILO) gebruikt als op computers met de SPARC-architectuur - en daar mag het niet werken met een buitenlandse reeks instructies. De opstartparameters zelf zijn intuïtief: je moet het partitienummer en de bestandsnaam opgeven met de systeemkernel, evenals de argumenten voor het starten van de kernel, de naam van het bestand met het archief van hulpprogramma's ( begin, indien nodig), time-out tijdens het wachten op annulering door de gebruiker. Deze parameters worden uit het bestand gelezen /boot/boot.conf in de eerste schijfpartitie gespecificeerd vanaf de opdrachtregel; Er kunnen standaard meerdere sets parameters in het bestand worden gedefinieerd; de parameter die in de richtlijn is opgegeven, wordt gebruikt standaard, of die de naam “ auto" Maar wat moet er gedaan worden om besturingssystemen te laten draaien voor de x86- of x86-64-architectuur, waarvan de transparante ondersteuning wordt genoemd als een van de belangrijkste kenmerken van Elbrus? Ontbrekend bestand boot.conf bij installatie Windows-schijf of een populaire Linux-distributie kan worden gecompenseerd door handmatige invoer via het menu. Hoe kan ik de besturing overbrengen naar een nieuwe bootloader die niet de Linux-kernel is? Hoe kan ik op zijn minst de Linux-kernel uitvoeren als deze voor x86 is? Het was onmogelijk om dit uit te zoeken zonder documentatie: de zaak eindigde steevast in een bevriezing op het moment dat de controle overging van de bootloader naar de kernel.

Standaard bootloaderconfiguratie (boot.conf)

Standaard=auto time-out=3 label=auto partitie=0 image=/boot/image-033.6.57 cmdline=console=tty0 console=ttyS0,115200 consoleblank=0 hardreset REBOOT root=/dev/sda3 video=DVI-D-1 :1024x768-24@60 video=VGA-1:1024x768-24@60 fbcon=kaart:10
Wat de standaardkernels van het Elbrus-besturingssysteem betreft, bevat het bootloader-configuratiebestand slechts één set parameters, en deze verwijzen naar de standaardkernel. Daarnaast zijn er twee kernels - met de achtervoegsels " n" En " rt": afgaande op de assemblageconfiguratie van deze kernels betekent de eerste “geen NUMA” (een vereenvoudigde versie voor systemen met één processor; waarom zou je deze niet op een pc gebruiken?), en de tweede betekent “real time” (Linux-kernel uitbreidingen voor het verzenden van taken met een beperking door de uitvoeringstijd). Zonder zelfs maar oppervlakkige kennis op deze gebieden vindt de auteur het moeilijk om commentaar te geven over de voor- of nadelen van deze of gene alternatieve kernel.

Wat betreft PPS- en PTP-ondersteuning

De enige bekende configuratieoptie is het inschakelen van PPS API-ondersteuning (pulse per seconde) in de kernel." rt", waarmee je het verloop van de systeemklok van de computer kunt aanpassen aan een externe klokpuls, bijvoorbeeld van een GPS/GLONASS-ontvanger of van een cesiumklok, als je er toevallig een hebt liggen. Het is gewoon niet duidelijk hoe je deze synchronisatie precies moet instellen: in tegenstelling tot bijvoorbeeld FreeBSD, waar alles als vanzelf begint te werken na het opnieuw opbouwen van de kernel met de vereiste parameter en het opnieuw configureren van NTPd om de systeemdiscipline te gebruiken, vereist het in Linux meestal dansen met een tamboerijn rond het hulpprogramma vastmaken, dat een virtueel PPS-apparaat creëert op basis van een COM- of LPT-poort - hiervoor zijn geschikte stuurprogramma's in de kernel of in afzonderlijke modules nodig, maar deze zijn hier niet zichtbaar.

De ingebouwde netwerkkaart vertoonde ook geen tekenen van hardwareondersteuning voor tijdsynchronisatie: hulpprogramma-uitvoer ethtool met betrekking tot het PTP-protocol duidde op de afwezigheid van dergelijke functies. In ieder geval - dat bij gebruik van de standaardkernel, die realtime is, de enige bron van systeemtijd het apparaat is " Het"("Elbrus-timer"?) met een discretie van 1 μs. Niet dat dit te grof is, maar moderne computers zijn heel goed in staat om kwantisering op het niveau van 25-50 ns te leveren, ongeacht de huidige processorfrequentie.


Standaard start het besturingssysteem samen met de grafische omgeving: er worden 12 seconden besteed aan het laden van de kernel in het geheugen en nog ongeveer 23 seconden voordat de inlogprompt verschijnt - een totaal van 80 seconden vanaf het moment dat de kernel wordt ingeschakeld. Zoals eerder vermeld, konden we geen kernelargumenten selecteren om in de single-user-modus te draaien: bij het specificeren van “ S" of " 1 » het systeem heeft nog steeds niveau 5 bereikt en probeert daarna het niveau te verlagen met behulp van het commando begin leidde tot de ineenstorting van het systeem.

Omdat de computer twee videoadapters heeft, worden de virtuele terminals op hun beurt verdeeld: de eerste terminal wordt geopend op een discrete kaart, de tweede - op de ingebouwde controller, de derde - opnieuw op een discrete kaart, enzovoort. De grafische desktop, die zich op de zevende terminal bevindt, komt zo op een discrete videokaart terecht, waarvan de prestaties geen vragen oproepen. Ik wilde heel graag controleren hoe responsief de desktop zou zijn als ik deze zou weergeven via de ingebouwde controller, omdat binnenlandse platforms hier problemen mee hebben: een eenvoudige schermhertekening met behulp van de Graphics Adapter Module (MCST's eigen ontwikkeling) kan bijvoorbeeld meerdere keren duren. seconden - niet alleen langzaam, maar bijna zoals het regel voor regel uiterlijk van de screensaver in games voor de ZX Spectrum, geladen vanaf een tapecassette. Helaas, geen bewerking Xorg.conf in een afbeelding en gelijkenis gaven noch de selectie van kernelargumenten, noch de wijziging van de primaire videoadapter in de hardware-instellingen het gewenste effect.

Een merkwaardige nuance

Terwijl het primaire scherm op een afzonderlijke grafische kaart wordt geïnitialiseerd in tekstmodus, wordt hetzelfde scherm op een ingebouwde controller geïnitialiseerd in grafische modus en worden 4 CPU-logo's weergegeven (zoals sommige Linux-kernels doen direct nadat ze zijn gestart), maar gebruikt nog steeds alleen de bovenste 25 regels tekst.


Standaard wordt de kernel gestart met het argument " harde reset", waarmee het systeem wordt geïnstrueerd een volledige harde reset uit te voeren wanneer de computer opnieuw wordt opgestart. In de x86-wereld is iedereen aan deze optie gewend, maar alternatieve platforms, waarbij koude initialisatie na het opstarten enkele minuten duurt, kunnen een snelle herstart van het besturingssysteem bieden - en het werkt echt, in tegenstelling tot de "loterij" met kexec van Intel/AMD. We konden geen argument vinden dat ondersteund zou worden door de kern van het Elbrus-systeem en tegelijkertijd het gewenste resultaat zou opleveren.

Software

Het Elbrus-besturingssysteem (OS El, OSL) is standaard voor alle MCST-computers, hoewel de MSVS 3.0-systeempoort ook op het SPARC-platform kan functioneren. Het officiële systeem voor het identificeren van softwareproducten gaat terug naar hun decimale getallen: “OS 316‑10” staat bijvoorbeeld voor “besturingssysteem TVGI.00316‑10 met de kernel TVGI.00315‑03, onderdeel van de algemene software TVGI.00311 ‑05.” Aan de ene kant lijkt het meer alfanumeriek titels dan op serienummers versies. Aan de andere kant is een bepaald softwareproduct meestal nauw verwant aan een specifiek hardwareproduct en ondergaat het tijdens zijn levensduur geen significante veranderingen. Echter, in het bestand /etc/mcst_version je kunt de tag “release 2.2.1” zien, en in het pseudo-bestand /proc/bootdata- “versie 2.13.3.0”. Geen van deze symbolen verschijnt echter in de gebruikersinterface.

$ cat /etc/mcst_version release 2.2.1 $ cat /proc/bootdata boot_ver=" release-2.13.3.0-E2S::::::: (/tags/release-2.13.3.0-E2S bij revisie 3816) gebouwd op 2 november 2015 om 18:05:58" mb_type="MONOCUB" chipset_type="IOHUB" cpu_type="E2S" cache_lines_damaged=0 $ cat /proc/version Linux versie 2.6.33-elbrus.033.6.57 (gavrilova_tg@e2k13) (compatibel met gcc versie 4.4.0) #1 SMP zo 11 okt 00:10:58 MSK 2015 $ uname -a Linux MONOCUB-10-XX 2.6.33-elbrus.033.6.57 #1 SMP zo 11 okt 00:10: 58 MSK 2015 e2k E2S MONOCUB GNU/Linux
De kern van het systeem is Linux 2.6.33, geporteerd naar de Elbrus-2000 (E2K) architectuur, en in het algemeen is het systeem gebaseerd op de Debian-distributie met een selectieve benadering van de selectie van pakketten: voor het grootste deel is er sprake van compliance met versie 7.0 “Wheezy” of nieuwer. De versies van sommige pakketten liggen echter dichter bij 5.0 "Lenny". Volgens een recent rapport (PDF, 172 KB) wordt er ook onderzoek gedaan om de originele distributie met al zijn verscheidenheid aan pakketten rechtstreeks over te zetten, maar wordt dezelfde “Grootvader Lenin” als basis gekozen. En dat allemaal omdat het noodzakelijk is om achterwaartse compatibiliteit te garanderen met applicatie- en systeemsoftware die is ontwikkeld voor zelfs oudere versies van bibliotheken en compilers. Maar waarom zouden we dan niet meerdere versies van het systeem uitbrengen – op een oudere en een nieuwere pakketbasis – zodat de consument zelf kan kiezen? Waarschijnlijk omdat er onvoldoende vraag is vanuit de doelgroep en certificeringsproblemen waarschijnlijk een belangrijke rol spelen.

Eenmaal geïnstalleerd, is het systeem niet meer onderhevig aan regelmatige updates vanuit de officiële MCST-repository en bevat het onmiddellijk alle beschikbare pakketten. Hier zijn de versies van enkele van de belangrijkste (met uitzondering van de ontwikkelingstools die in het volgende deel van het artikel worden besproken):

  • kantoorhulpmiddelen: abiword 2.8.6, evince 2.32.0, geeqie 1.1, gimp 2.6.12, gnumeric 1.10.0, graphviz 2.32.0, mtpaint 3.40, xsane 0.998;
  • Internethulpmiddelen: dillo 3.0.3, Firefox 3.6.28, links 2.2, Linphone 3.5.2, lynx 3.81, Thunderbird 3.1.20, sylpheed 2.7.0;
  • cryptografie: gnutls 3.1.22, openssl 0.9.8zc, openvpn 2.2.2;
  • multimedia: ffmpeg 1.0, mplayer 1.1.1;
  • teksteditors: ed 1.7, leafpad 0.8.17, vim 7.3 + gvim 7.3;
  • bestandsbeheerders: mc 4.7.0.8, thunar 1.4.0;
  • opdrachttolken: bash 4.2.53, pdksh 5.2.14, tcsh 6.18.01, zsh 5.0.2;
  • diensten: openssh 6.1p1, httpd 2.4.3, postgresql 9.2.3 + slony1 2.2.0, zeromq 2.1.11;
  • pakketbeheerders: apt 0.9.7.9, aptitude 0.6.8.2, dpkg 1.16.10, pkgtools 13.1.
Er zijn in totaal 679 vermeldingen in de pakketbeheerder, wat tientallen keren kleiner is dan de oorspronkelijke Debian-pool, maar er moet rekening mee worden gehouden dat niet alle daadwerkelijk geïnstalleerde software is verpakt: het systeem heeft bijvoorbeeld daadwerkelijk een virtuele machine en een Java-ontwikkelkit, maar de pakketbeheerder weet ik hier niet van.

De enige grafische desktopomgeving is Xfce 4.10. Verrassend genoeg zijn nieuw gemaakte gebruikersprofielen in het binnenlandse besturingssysteem standaard ingesteld op de Engelse interfacetaal, en in het programmamenu zijn er geen snelkoppelingen voor het instellen van wisselende toetsenbordindelingen, en de huidige lay-outindicator is ook nergens te bekennen. Ervaren gebruikers weten echter dat binnenlandse op Linux gebaseerde besturingssystemen meestal de ‘beste’ tradities van Windows proberen te kopiëren: werken als root en schakelen tussen lay-outs met Alt+Shift.

Xfce-bureaublad (weergave bij benadering)

Update gedateerd 02/09/2016. De opmerkingen suggereren dat de functie van het maken van schermafbeeldingen in de grafische editor van GIMP zit - een terechte opmerking, maar hiervoor moet je een ervaren gebruiker van dit programma zijn; de auteur, hoewel hij alle illustraties voor dit artikel in GIMP heeft verwerkt, behoort niet tot die experts. Wat betreft het maken van schermafbeeldingen met behulp van opdrachtregelhulpprogramma's, die standaard beschikbaar zijn of onafhankelijk zijn gebouwd, werd deze methode niet overwogen vanwege de lage gebruiksvriendelijkheid voor de gemiddelde gebruiker.

Zoals eerder vermeld, konden we geen besturingssysteem van derden lanceren dat voor de x86- of x86-64-architectuur was gecompileerd vanwege een gebrek aan documentatie. Pogingen om een ​​aangepaste applicatie die voor Linux x86-64 was gecompileerd rechtstreeks vanaf de Elbrus-opdrachtregel te starten, waren ook niet succesvol. Er is geen WinAPI-emulatielaag of tools voor het starten van PE-binaire bestanden in het systeem, en om WinE zelf vanuit de broncode te bouwen, moet u architectuurafhankelijke codegedeelten overbrengen. Ook de Qemu-emulator zit niet in het standaardpakket, maar is min of meer succesvol geassembleerd (met parameters ‑‑enable-tcg-interpreter ‑‑disable-fout) en het lijkt zelfs in varianten te werken i386-softmmu, x86_64-softmmu, sparc-zachtmmu, sparc64-softmmu; porten is echter vereist voor "applicatie" -varianten *-linux-gebruiker. Het is duidelijk dat de makers van de binaire vertaaltechnologie van Elbrus dit helemaal niet in gedachten hadden toen ze het hadden over x86-hardware-emulatie, dus we zagen geen zin in het testen van de prestaties van Qemu - en het is zo duidelijk dat het traag en triest zou zijn .

Terugkerend naar het onderwerp standaardsoftware durven we te suggereren dat het onwaarschijnlijk is dat een gemiddelde gebruiker van dit systeem zich tekortgedaan zal voelen, omdat hij óf problemen in gespecialiseerde programma's van derden zal moeten oplossen, óf eenvoudige documenten in kantoorpakketten zal moeten maken, scannen en afdrukken, en Hiervoor hebben maar weinig mensen de nieuwste versies nodig. De enige uitzondering hier is misschien de webbrowser: de eenvoudigste Dillo en tekst Lynx / Links pretenderen niets te zijn, maar Firefox 3.6 is, hoewel niet 1.5 van WSWS 3.0, maar nog steeds hopeloos oud voor moderne sites. Deze versie wordt bijvoorbeeld niet ondersteund door Yandex en Google maps (in tegenstelling tot OSM en Bing), Google Docs; je ziet alleen de header van de websites Intel, Mail.ru en Sberbank. En bij gebrek aan ingebouwde ondersteuning voor HTML Video en de Flash-plug-in kun je natuurlijk op geen enkele site video's bekijken, of het nu buitenlandse YouTube is met een rapport over de lancering van Doom 3 op de Elbrus 401 ‑PC of het ideologisch trouwe Kremlin.ru met toespraken van de opperbevelhebber. Blijkbaar wordt dit ook niet als een nadeel beschouwd, aangezien het typische scenario voor het gebruik van dergelijke computers toegang is tot interne, speciaal ontworpen sites in een gesloten netwerk van een onderneming of afdeling.

Pogingen om toegang te krijgen tot internet(het woord “Namoroka” in de schermafbeeldingen is niet de zoveelste rebranding van Firefox voor Debian, maar slechts een codenaam voor versie 3.6)

Maar een software-update dient niet alleen om de functionaliteit uit te breiden, maar elimineert ook ernstige fouten en kwetsbaarheden - wat te doen hiermee? Blijkbaar zijn informatiebeveiligingsideologen van mening dat, aangezien er geen externe toegang is tot een particulier netwerk en interne gebruikers die fysieke toegang hebben tot hun computers, niet opzettelijk kwaadaardige acties zullen ondernemen of door nalatigheid dubieuze opslagmedia zullen aansluiten, er niets aan de hand is. Als laatste redmiddel, als een bug je echt zorgen baart en je erover wilt praten, heeft MCST zijn eigen bugzilla met een login en tickets, in die zin dat je zonder de aan jou gegeven login er niet komt, en je alleen maar bekijk uw eigen tickets, zelfs als het probleem al duizend keer met andere klanten is besproken en er al lang een oplossing is gevonden.




De processor heeft in maart 2014 de staatstests doorstaan Klokfrequentie 800 MHz 4 cores L2$ 8 MB, maximaal 23 bewerkingen/cyclus per core 3 kanalen DDR-geheugen interprocessorkanaal (16 GB/s) 1 IO-link-kanaal (4 GB/s) Verbeteringen in microarchitectuur Aantal transistors – 968 miljoen Vermogensdissipatie – ~45 W Technologie – 65 nm, 9 metaallagen Kristaloppervlak mm 2 Elbrus- 4S


De processor heeft de status voltooid. getest in 2014 Klokfrequentie 300 MHz, 2 Elbrus-cores L2$ 2 * 1 MB 2 DDR-interprocessorkanalen (elk 4 GB/s) 2 IO-link-kanalen (2 GB/s) Aantal transistors: 300 miljoen Vermogensdissipatie: ~20 W Technologie: 90 nm, 10 metaallagen Kristaloppervlak: 320 mm 2 Productie in de Mikron Elbrus-2SM-fabriek


KPI Klokfrequentie – 250 MHz 2 I/O-kanalen (2 * 1 GB/s). PCI-interfaces Express 1.0a x8 PCI 2.3 (33/66 MHz, 32/64 bit) Gigabit-Ethernet, 4 * SATA 2.0, 2 * USB 2.0 RS 232/485, IEEE1284, Audio, SPI, I2C, GPIO Aantal transistors - 30 miljoen Vermogensdissipatie - 5 W Technologie - 0,13 micron, 9 metaallagen Kristalgrootte - 10,6 x 10 0,6 mm




Asynchrone pre-paging Asynchrone datapaging-eenheid (AAU) Asynchrone programmaniveau 2-cache (L2$) RAM Bestand registreren (RF) Hoofdprogramma Rekenkundige logische eenheden (ALU) Pre-buffer data paging (APB) data asynchrone data-adressen Berekent adressen Oproepgegevens Beheert synchrone data paging


Topprestaties lin.uch. loops Int (8) / FP (9) / St (2) / Ld (4) Predicaatverwerking Overdracht van controle Letterlijke belasting 32/64- 4/2 + Asynchroon laden in RF- 4 + Adresberekening - 4 + Lustellerverwerking Totaal :18/16 23




SPECIFICATIES CPU2000FP












2015: Elbrus-8S 1,3 GHz 8 cores Elbrus 250 Gigaflops L2$ 8*512KB, L3$ 16 MB 4 DDR-geheugenkanalen interprocessor. kanalen van 16 GB/s 1 kanaal IO-link (16 GB/s) 320 mm 2, 2,7 miljard transistors 28 nm, stroomverbruik ~60 W Eerste technische monsters ontvangen


2015: KPI-2 1 kanaal IO-link (16 GB/s) PCI Express 2.0 x20 3 * Gigabit Ethernet 8 * SATA * USB * GPIO... 65 nm technologie Stroomverbruik 12 W Eerste technische monsters ontvangen


Servergebaseerd vier verwerkers Elbrus-8S 4 processoren Elbrus-8S Zuid-brug KPI-2 RAM tot 256 GB per server Interfaces: SATA 3.0 – 8 kanalen, Gigabit Ethernet – 3 kanalen, PCI Express 2.0 x20, PCI, interconnect Hoogte behuizing 1U Serververmogen – 1 Teraflops 40 Tflops in een rack Elbrus-8S server Prototype server met vier processors


Gflops SP TSMC Micron Elbrus-4S 65 nm, 4e 50GF Elbrus-8S 28 nm, 8e 250GF Elbrus-16S 16 nm, 8…16e 0,5 ... 1TF Elbrus-32S 10 nm, 32e 4TF Elbrus-4SM 65 nm, 4 i 50GF Elbrus-8SM 32 nm, 8 en 250GF Wegenkaart Elbrus-2SM 90 nm, 2e 10GF Elbrus-1C+ 40 nm, 1e + GPU 24GF Index “M” ( groente) gemarkeerde modellen gepland voor productie in de binnenlandse Mikron-fabriek (Zelenograd)






“Protected mode”: foutcontrole tijdens uitvoering Hardware controleert programmafouten bij het werken met geheugen en garandeert de integriteit van pointers Toegang buiten de grenzen van een object (array) Toegang via pointer naar reeds vrijgemaakt geheugen van een voltooid object levenscyclus Niet-geïnitialiseerde gegevens lezen Toegang krijgen tot niet-geadresseerde gegevens alsof het een aanwijzer is Resultaat: Toename van de productiviteit van programmeurs - met een orde van grootte Mogelijkheid om betrouwbare programma's te maken die bestand zijn tegen cyberaanvallen Vertraging in programmasnelheid - ongeveer 20%


Elbrus beveiligde modus. Descriptorstructuur 32 bit40 bit32 bit24 bit8 bit Huidige situatie Basisgrens Levensduur + servicebits Tags 128 bit 32 bit2 bit Gegevens of deel van een descriptor Tags Descriptor: Tagwaarden: 00 - Niet-geïnitialiseerd 10 - Data, 01 en 11 - Onderdeel van een descriptor Structuur machinewoord ter herinnering:




“Protected mode”: foutcontrole tijdens de uitvoering Programma’s uitvoeren op een gewone computer is als rijden op een snelweg met markeringen. Zolang alle programma's foutloos werken “volgens de regels”, werkt alles goed... ... maar als u de regels overtreedt, komt de veiligheid van de hele computer in gevaar. De beveiligde modus is als een scheidingsteken: het geeft “hard-wired” garanties dat alle correct werkende programma’s veilig zullen zijn


Elbrus OS maakt gebruik van de Debian-pakketstructuur. Er zijn meer dan 3000 geporteerd basispakketten uit de Debian 5.0 suite (Lenny) en vele andere, waaronder: LibreOffice 3.6 Firefox PostgreSQL 9.2 Qt 5.0 Gebaseerd op Linux-kernel Ingebouwde real-time ondersteuning Vertaler van binaire applicaties: x86 Elbrus architectuuroverschrijdende virtualisatielaag, compatibel met de WINE-emulator Ontwikkeltools – C/C++/Fortran-compilers, Java-machine (OpenJDK 6)

Zweed uit Finland.

Nee, het is niet goed, het is mogelijk om alleen te zijn, maar er zijn twee mensen die deelnemen aan een gesprek, daarom beslissen twee mensen, niemand heeft je het recht gegeven om voor jullie allebei te beslissen.

Ik heb het eigenlijk al beantwoord. Ik herhaal het nogmaals: in mijn contactenkring heb ik mensen die werken aan beveiligingssystemen, zowel in de defensie-industrie als in de banksector. Iedereen antwoordde mij unaniem dat de kracht van de aanvaller van het systeem altijd groter is dan de kracht van de verdediging. Mijn sociale kring heeft ervaring variërend van 5 jaar tot 40 jaar.

Wat snelle studie betreft, zal ik een echt voorbeeld geven:

‘In het hart van de operatiekamer Linux-systemen Een bug die al negen jaar bestond, werd opgelost. De ontwikkelaars besteedden geen aandacht aan de kwetsbaarheid omdat ze dachten dat deze geen praktisch nut had. Het bleek echter dat de gebruiker met zijn hulp rootrechten kan verwerven en de veiligheid van het hele systeem in gevaar kan brengen. Dit wordt gerapporteerd door de Github-portal.

Volgens Linux-ontwikkelaar Linus Torvalds ontdekte hij de Dirty COW-kwetsbaarheid ongeveer elf jaar geleden. Torvalds repareerde het, maar in 2007 werd de Linux-kernel bijgewerkt door een andere ontwikkelaar en de bug keerde terug."

Er zijn talloze situaties mogelijk. Er werd een bug met een bug_on ontdekt en opgelost die nog erger was dan met de fout. Er verstrijkt tijd tussen detecties, gedurende deze tijd kunt u deze gebruiken voor egoïstische doeleinden systeem. Ik herhaal: openheid heeft geen invloed op het maken van bladwijzers.

Welk fonds? Linux Stichting.

Je kent mij niet, dus jouw mening over mij doet er niet toe.

Wie neemt de uiteindelijke beslissing nadat de wijzigingen zijn aangebracht en naar de repositories zijn gestuurd, wie stuurt de verdere ontwikkeling en promotie van Linux? Ja, ja, achter de maker en sleutelfiguren.

Ik zal niets zeggen over de mogelijkheid om een ​​bedrijfssamenzwering te creëren, wat meer dan eens in de geschiedenis is gebeurd. De bedrijven kregen een straf, maar deze was altijd minder dan de winst die zij dankzij de kartelsamenzwering ontvingen. Nogmaals, er is altijd tijd voordat ze ontdekt worden. Als je de biografie en het gedrag van Linus zelf bestudeert, kun je begrijpen dat hij een buitengewoon en intelligent persoon is. Zelfs zijn grappen zijn niet standaard, maar er zit een vleugje humor in elke grap.

De laatste poging om u de moderne vrijheid uit te leggen. Er is altijd iemand die de vrijheid bewaakt en de uitvoering ervan controleert. De werkelijkheid hangt van deze persoon af.

Bij de VN heeft elk land het recht zijn boodschappen te uiten. Dit is vrijheid. Maar het VN-gebouw bevindt zich in de Verenigde Staten en de autoriteiten kunnen om verschillende redenen bepaalde ongewenste personen verbieden het land binnen te komen. Dat wil zeggen: er is vrijheid, maar deze is beperkt en gecontroleerd. Je ziet ook met eigen ogen hoe er anders naar een probleem kan worden gekeken en niet door mensen wordt herkend, waardoor je uiteindelijk van je rechten wordt beroofd. Begrijp je de betekenis? Misschien kan ik het voorbeeld van religie gebruiken om het uit te leggen. Het christendom heeft een oudere voorvader die de fundamenten heeft gelegd in de vorm van dogma’s die in vrijwel elke tak van het christendom worden weerspiegeld. Deze branches lijken op Linux-builds voor elke samenleving, maar de basis is gemeenschappelijk. En haar hypotheekverstrekkers controleren deze stichting binnen een aparte structuur. Er zijn andere godsdienstbewegingen die niet minder hebben oude geschiedenis met zijn takken.

Ik begrijp waarover u mij schrijft. Het probleem is dat je niet begrijpt waar ik over schrijf als ik het ‘onzin’ noem. Maar dit is niet langer mijn probleem.

Het werk aan de Elbrus-architectuur begon in 1986 in het team van het Instituut voor Precisiemechanica en computertechnologie(ITM en VT) vernoemd naar. SA Lebedev, waarin eerder de Sovjet-high-performance complexen Elbrus-1 en Elbrus-2 werden gecreëerd. De ontwikkeling van het Elbrus-3 computercomplex, dat werd uitgevoerd onder leiding van B.A. Babayan, werd voltooid in 1991. In dit computercomplex werden de ideeën om de parallelliteit van bewerkingen expliciet te controleren met behulp van een compiler voor het eerst tot leven gebracht.

Door de economische veranderingen in Rusland die in 1992 begonnen, konden de ontwikkelaars van Elbrus-3 de ingebruikname van het complex niet voltooien. In hetzelfde 1992 splitste het team van ontwikkelaars van machines van de Elbrus-familie zich op in het bedrijf ZAO MCST en begon te werken aan een microprocessorimplementatie van de Elbrus-architectuur.

Architectuur "Elbrus" - origineel Russische ontwikkeling. De belangrijkste kenmerken van de Elbrus-architectuur zijn energie-efficiëntie en hoge prestaties, bereikt door expliciet parallellisme van bewerkingen te specificeren.

Belangrijkste kenmerken van de Elbrus-architectuur

In traditionele architecturen zoals RISC of CISC (x86, PowerPC, SPARC, MIPS, ARM) ontvangt de processorinvoer een stroom instructies die zijn ontworpen voor sequentiële uitvoering. De processor kan onafhankelijke bewerkingen detecteren en deze parallel uitvoeren (superscalariteit) en zelfs de volgorde ervan wijzigen (uitvoering buiten de juiste volgorde). Dynamische afhankelijkheidsanalyse en ondersteuning bij out-of-order-uitvoering hebben echter hun beperkingen: de beste moderne verwerkers geschikt voor het analyseren en uitvoeren van maximaal 4 opdrachten per klokcyclus. Bovendien verbruiken de overeenkomstige blokken in de processor een merkbare hoeveelheid energie.

In de Elbrus-architectuur neemt de compiler het belangrijkste werk op zich: het analyseren van afhankelijkheden en het optimaliseren van de volgorde van bewerkingen. De processor ontvangt de zogenaamde input. "brede opdrachten", die elk instructies voor iedereen coderen actuatoren processors die met een bepaalde klokcyclus zouden moeten werken. De processor hoeft geen afhankelijkheden tussen operanden te analyseren of bewerkingen tussen brede instructies te herschikken: de compiler doet dit allemaal op basis van de analyse broncode en CPU-resourceplanning. Als gevolg hiervan kan processorhardware eenvoudiger en kosteneffectiever worden.

De compiler kan de broncode veel grondiger analyseren dan de RISC/CISC-processorhardware en meer onafhankelijke bewerkingen vinden. Daarom heeft de Elbrus-architectuur meer parallelle actuatoren dan traditionele architecturen, en demonstreert deze een onovertroffen architectonische snelheid in veel algoritmen.

Mogelijkheden van Elbrus-architectuur:

  • 6 kanalen van rekenkundige logische eenheden (ALU) die parallel werken.
  • Registerbestand van 256 84-bit registers.
  • Hardwareondersteuning voor lussen, inclusief lussen met pipelines. Verhoogt de efficiëntie van het gebruik van processorbronnen.
  • Programmeerbaar asynchrone data-vooroproepapparaat met aparte kanalen lezing. Hiermee kunt u vertragingen voor geheugentoegang verbergen en vollediger gebruik maken van de ALU.
  • Ondersteuning voor speculatieve berekeningen en predikaten van één bit. Hiermee kunt u het aantal overgangen verminderen en meerdere programmavertakkingen parallel uitvoeren.
  • Een brede opdracht die maximaal 23 bewerkingen in één klokcyclus kan specificeren (meer dan 33 bewerkingen bij het verpakken van operanden in vectorinstructies).

Prestaties bij echte taken:

Hieronder vindt u de prestaties van de Elbrus-2C+ processor op taken uit het SPEC2000-pakket in vergelijking met Intel Pentium-M ULV-processors (1GHz, 1M cache, 2xDDR-266) en Intel Atoom D510 (1,66 GHz, 1M cache, DDR2-800).

Gegevens voor Intel Pentium-M ULV verkregen van spec.org, ICC 9.1-compiler. Om prestaties te meten Intel-processor Atom D510 gebruikte zijn eigen verzameling SPEC-tests door MCST-medewerkers.

Het is belangrijk op te merken dat SPEC-regels wijziging van testbroncodes verbieden. De praktijk heeft uitgewezen dat de Elbrus-architectuur veel betekenis heeft een prestatiereserve die kan worden gebruikt door de broncode op kritieke gebieden te wijzigen.

x86-architectuur-emulatie

Zelfs in de ontwerpfase van de Elbrus MP begrepen de ontwikkelaars het belang van het ondersteunen van software waarvoor geschreven was Intel-architectuur x86. Voor dit doel werd een systeem voor dynamische (dat wil zeggen tijdens de uitvoering van het programma, of “on the fly”) vertaling van binaire x86-codes naar Elbrus-processorcodes geïmplementeerd. In feite creëert het binaire vertaalsysteem virtuele machine, dat een gastbesturingssysteem draait voor de x86-architectuur. Dankzij verschillende optimalisatieniveaus is het mogelijk om dit te bereiken hoge snelheid werking van de vertaalde code (zie diagrammen hierboven). De kwaliteit van x86-architectuuremulatie wordt bevestigd door de succesvolle lancering van meer dan 20 besturingssystemen op het Elbrus-platform (waaronder verschillende Windows-versies) en honderden toepassingen.

Beveiligde programma-uitvoeringsmodus

Een van de meest interessante ideeën, overgenomen van de Elbrus-1- en Elbrus-2-architecturen - dit is de zogenaamde beschermde uitvoering van programma's. De essentie ervan is ervoor te zorgen dat het programma alleen werkt met geïnitialiseerde gegevens, alle geheugentoegangen te controleren om er zeker van te zijn dat ze tot het geldige adresbereik behoren, en intermodule-bescherming te bieden (bescherm bijvoorbeeld het aanroepende programma tegen fouten in de bibliotheek). Al deze controles worden hardwarematig uitgevoerd. Voor de beschermde modus is er een volwaardige C/C++-compiler en een runtime-ondersteuningsbibliotheek.

Zelfs in de normale, “onbeschermde” bedrijfsmodus van de Elbrus MP zijn er functies die de betrouwbaarheid van het systeem vergroten. De stapel informatie (de keten van retouradressen voor procedurele oproepen) is dus gescheiden van de stapel gebruikersgegevens en is ontoegankelijk voor virusaanvallen zoals spoofing van retouradressen. Het is de moeite waard om apart op te merken dat er momenteel eenvoudigweg geen virussen zijn voor het Elbrus-platform.

Toepassingsgebied van microprocessors met Elbrus-architectuur
Uitgebreid temperatuurbereik, mogelijkheid tot productielokalisatie Staatsbevel, industriële computers, auto-elektronica

Verhoogde bescherming tegen virusaanvallen

Betaalterminals, firewalls, hackbestendige servers
Hoge prestaties op cryptografische algoritmen Encryptiemodules, beschermd dunne klanten, andere beveiligingssystemen
Hoge prestaties bij berekeningen met reële getallen (float, double) Robotica, luchtvaartelektronica, industriële controllers, beeldverwerkingssystemen, supercomputers
Werk onder controle van een binaire compiler in compatibiliteitsmodus met x86-architectuur Internetterminals, energiezuinige werkstations, kleine desktopcomputers en embedded computers
Beschermde modus Bijzonder kritische systemen, debugging stands

Elke vermelding van geregistreerde handelsmerken is uitsluitend bedoeld ter identificatie. Bovengenoemde heeft zich aangemeld handelsmerken zijn eigendom van hun respectieve particuliere eigenaren en bedrijven.