Unika: Rational R1000/400

Fra Terma har datamuseum.dk modtaget en maskine der er lidt af et unika, en Rational R1000/400

Den er et unika fordi der aldrig blev lavet ret mange af dem og de fleste er tilsyneladende blevet destrueret omhyggeligt fordi de har været brugt til militær og klassificeret softwareudvikling.

Men den er også et Unika fordi den er drasisk anderledes end andre computere, f.eks laver den access-control og type-checking i hardware.

Hvaba ?

Jo, hvert objekt, f.eks et heltal, er ikke bare 32 bits et tilfældigt sted i hukommelsen, nej, det er et rigtigt objekt, der er tagget med sikkerhedsklasse og type.

Hvis man prøve at addere to heltal af forskellig sikkerhedsklasse, bliver resultatet automatisk sat i den højeste sikkerhedsklasse og hvis dit program ikke har adgang dertil, bliver det stoppet.

Ligeledes kan det slet ikke lade sig gøre at lægge et heltal til en pointer. For det første fordi maskinen ikke har pointers til at begynde med, men for det andet fordi det er to forskellige typer.

Det er bestemt ikke nogen nem maskine at skrive malware til og det er sådan set præcist ideen.

Jeg har scannet to dokumenter om hardware-arkitekturen, der er links til dem nederst på vores Wiki side, brug en kaffe-pause på dem, hvis du har tid og lyst til at få din horizont forøget.

Rational's hardware beskyttelse er en vigtig komponent i tankegodset bag Java Virtual Machine ideen: Flyt objekterne ned på laveste niveau, så kan folk ikke snyde med dem.

Som nogen af jer formodentlig har gættet, er der tale om en maskine der er bygget til sproget Ada og instruktionerne ved faktisk forbavsende meget om Ada-sprogets struktur og arkitektur, men jeg har ikke nået at find et godt dokument om den del endnu.

Oven på Ada instruktionerne kører maskinen hvad der formodentlig er det første rigtige IDE og det er disse maskiner og teamet bag dem der senere fører direkte til opfindelsen/definitionen af UML.

Det med softwaren er et ømt punkt: Vi har ikke nogen software.

Vi er ved at prøve om der noget sted i verden skulle findes en venlig sjæl der kan donere en software-kopi til os, men foreløbigt uden held.

Pt. kender jeg kun til to andre overlevende maskiner: En på Computer History Museum og en der mangler sin 5V 200A strømforsyning fordi den blev sendt til Terma, i privateje hos en af hjernerne bag Rational.

Det formodes at der er visse producenter af militært isenkram der stadig har maskiner stående, men vi ved det ikke med sikkerhed.

Mange tak til Terma og Erling, for at donere dette unika til datamuseum.dk

phk

Kommentarer (21)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Torben Mogensen Blogger

Det giver typemæssig mening at lægge en pointer og et heltal sammen. Som i C er resultatet også en pointer. Derimod giver det ikke typemæssig mening at lægge to pointere sammen, hvilket selv C da også brokker sig over.

Så årsagen til, at maskinen ikke kan lægge en pointer og et heltal sammen skyldes ikke, at de har forskellige typer, men (som du sagde), at maskinen slet ikke har en pointertype.

Det er i øvrigt ikke den eneste maskine, der har haft objekter på maskinniveau: Et tidligere eksempel er Rekursiv (en.wikipedia.org/wiki/Rekursiv), og Intels iAPX 432 havde også hardwareunderstøttelse af objekter. Ingen af dem var nogen stor succes -- tendensen gik i retning af simplere hardware. Selv om 8086 ikke er en RISC processor, så var det en af de simplere CISC processorer, hvilket Intel dog har sat over styr med senere modeller. De har dog undgået dobbelt indirekte adressering og lignende ting, som man fandt på de "klassiske" CISC processorer (f.eks. Vax).

Kai Birger Nielsen

Datalogi på Århus Universitet havde en lisp maskine omkring 1985, hvis jeg husker ret. Jan Rubæk-Pedersen og Kurt Fleckner var studenterprogrammører på den og jeg plejede at drille dem med at al tiden gik med at lægge nye versioner af systemet ind på maskinen. Det var glade dage, vi havde både Sun 2'ere og Perq arbejdsstationer og (tadaaaah) en laserprinter.
Det var såvidt jeg husker en Symbolics computer, men jeg kender ikke dens yderligere skæbne. Men jeg kender nok nogle, der gør, hvis ikke Jan eller Kurt giver lyd fra sig her.
Hmm, eller også var det en xerox 1108?

Palle Simonsen

@PHK & Kai
Xerox .dk havde både Xerox 1108 og 1186 Interlisp-D maskiner med Smalltalk, Loops, Commonlisp, der i stor udstrækning blev brugt til kundeprojekter. AUC havde Xerox 1108 med KEE og Loops. Såvidt jeg husker, havde Lyngsøe en Symbolics eller en TI-explorer.

På Xerox maskinerne var kommandofortolkeren en LISP repl (read-eval-apply) loop. IDE'et var kraftigt forud for sin tid. Editoren kendte sproget, havde syntaks highlightning og man kunne under debugning af et kørende program ændre kildekoden, rulle runtime stakken passende tilbage og fortsætte eksekveringen med den nu rettede kode. LOOPS og KEE benyttede begge LISP's faciliteter fuldtud.

Se f.eks.: http://www.ics.uci.edu/~andre/ics228s2006/teitelmanmasinter.pdf
og http://www2.parc.com/istl/members/stefik/loops.html

Venligst, Palle

Claus Agerskov

I Retskrivningsordbogen er unika i ental noget, der kun findes et eksemplar af, og som i flertal hedder unikaer.

Noget som er enestående er et unikum, som i flertal bliver til unika eller unikummer.

Da der findes flere Rational R1000/400, så må det være sidstnævnte betegnelse, som er korrekt - og Victor, som har ret.

Kim Bygum

Nej - hvis du nærlæser under unikum kan du se at der står "el. unika, bf. pl. unikummerne el. unikaene ", dvs. der er valgfrihed. Retskrivningsordbogen giver stavningen og er ikke udtømmende mht. betydningen, så den nuanceforskel du beskriver kommer udelukkende af at der ikke blev brugt copy-paste ... (aka "sjusk")

Log ind eller Opret konto for at kommentere