Schlagwort-Archive: 801

Meltdown and Spectre – born 40 years ago

IT developers typically don’t care about the  history of computers and programming. The underlying failing mechanism of Meltdown and Spectre was „invented“ more than 40 years ago and implemented the first time in the 801 Mini Computer at the IBM Thomas J. Watson Research Center in Labs in Yorktown Heights N.Y. George Radin (the best manager I ever worked for) was leading  a team of about 20 hardware and software researchers. They tried to integrate advanced ideas about CPU hardware, memory and I/O  (e.g. fibre channels for I/O) as well as optimizing compiler techniques and deliver a working prototype. Center piece was a CPU with a reduced instruction set (RISC), which could be implemented completely in hardware. Programs should written in a high level language and translated by an optimizing compiler to machine instructions.  Programmers should not use machine language at all.

In 1975 state of the art computers had complex instruction sets (CISC) e.g. IBM /370. Efficient programs had to be written in assembler machine language – a highly inefficient task. Key to the performance of CISC processors were the efficient use of internal registers and optimal sequencing of memory accesses by programmers. The RISC designers developed an efficient register allocation scheme (colouring) and preemptive parallel execution scheme (branch prediction and speculative execution – ref  SPECTRE paper) to speed up sequential operations of compiled programs.

A central problem of multitasking systems was the seperation of different tasks running concurrently. CISC machines used complex hardware to provide some basic security. The 801 RISC machine took a software approach to security.

ref fhe 801 Minicomputer by George Radin

Modern CPU architectures like (ARM – a direct derivative of the 801), INTEL or others use advanced 801 execution features. However, the designers seem to be not aware of the basic rule: only compiled user code should run on the CPU. If attackers can run machine code on the CPU they can break system  security.

MELTDOWN and SPECTRE are typical examples of sequencing attacks, which are quite common in software controlling hardware or asynchronous software systems. Most programmers have not been educated on design and implementation of asynchronous systems (who knows PETRI nets?). Sequencing problems in complex systems are difficult to analyse and even more difficult to correct.

Many systems designer are not aware of the concept of Trusted System Kernel in any secure system. Experienced security designers will ask „what are the trusted components and organisations“ before discussing cryptography, potential security leaks and attacks. Obviously modern IT system designers are not aware of relying on the CPU as trusted component.

MELTDOWN and SPECTRE will force the IT industry to rethink system security and business models.

801 History IBM did not persue the 801 technology being to cheap and a /370 system revenue killer. Hewlett Packard hired key 801 team members and used the RISC architecture for their line of UNIX processors.  Today ARM is the driver of RISC CPU architecture used in smartphones and IoT devices. Japanese and recently Chinese companies hold major stakes in ARM.

Advertisements

Was ist eigentlich neu beim iPhone? – Technikgeschichte

Die Apple Marketing Maschine läßt das verehrte Publikum gerne glauben, dass die neuen Produkte komplett innovativ sind. In Realität war Steve Jobs aber kein Erfinder sondern ein begnadeter Systemintegrator, der neue Technologien immer beobachtet hat und beim iPhone auch die richtige Auswahl getroffen hat. Wirklich innovativ ist die benutzerfreundliche Nutzung des zugekauften Displays. Durch Größe, hohe Auflösung und vor allem durch die Nutzung der  kapazitativen Touch Screen Technologie hat Apple ein total neue Benutzerschnittstelle geschaffen. Man muss nur einmal bei einer deutschen Bank auf den Touchscreen z.B. des Kontoauszugsdruckers (deutsche Wertarbeit) drücken um sich den Grad der Verbesserung zu verdeutlichen.

Benutzerschnittstellen mit tippen und wischen auf einem Bildschirm gab es bereits in den 70er Jahren. Damals wurde noch ein Lichtstift z.B. mit dem System CADAM (für Konstruktion von Mechanik) benutzt. Die Terminals waren allerdings groß wie ein Schrank und kosteten 70 000 $. Später gab es resistive Touchscreens mit denen man auch Notepad PCs ausrüstete. Die Zuverlässigkeit, Auflösung und Genauigkeit waren aber so schlecht, daß keine Begeisterung bei den Kunden aufkam – u.a. hat da HP viel Geld verloren. Steve Jobs hat hier erkannt, dass eine eigentlich aufgegebene, problematische Benutzerschnittstelle mit neuer Technologie plötzlich interessant werden kann.

Alle anderen Teile des iPhones u.a. Kamera für Fotos und Videos sind schon länger bekannt und fanden sich schon 2005  im Nokia Handy N70, das eigentlich nur einen zu kleinen Bildschirm und keine vernünftige Software und Anwendungsinfrastruktur hatte. Das Management von Nokia hatte aber keine Idee, was die Kunden mit einem Internethandy alles machen könnten.

Grafische APPs, die der Benutzer auf sein Gerät herunterladen konnte, habe ich persönlich schon 1978 programmiert (und an Kunden verkauft). Man brauchte damals diese Technologie um Grafische Terminals (damals Tektronix) über langsame Leitungen betreiben zu können ( die Telfonleitungen sind auch heute noch relativ langsam). Anders als heute bei Apple haben sich die APPs 1978  aber an Softwareänderungen im Basissystem automatisch angepasst. Darauf werden die Kunden von Apple sicher noch ein Jahrzehnt warten müssen.

Die innovative Benutzerschnittstelle des iPhone benötigt extrem schnelle, leistungsarme Prozessoren. Die ARM RISC Prozessoren werden von einer englsichen Firma entworfen und dann bei Halbleiterherstellern in Fernost gefertigt. Die RISC Technologie für Prozessoren wurde u.a. von John Cocke (er legte immer Wert darauf dass der letzte Buchstabe seines Namens als „i“ ausgesprochen wurde) seit 1963 bei IBM entwickelt, Das Urmodell, der IBM 801 RISC Prozessor, lief ab 1978 im Watson Labor der IBM und war etwa 10 mal schneller, 10 mal billiger und 10 mal kliner als die damals üblichen Großrechner. Das IBM Management hat dann aber entschieden, diesen Prozessor nicht zu bauen, weil man damit das Geschäft mit den  traditionellen /370 Maschinen kaputt machen würde.  Bei der Entwicklung des RISC Prozessors wurde in Zusammenarbeit mit vielen US Universitäten auch die Programmiersprache C und die Compiler Technlogie  für die RISC Technologie entwickelt (dumme Rechner brauchen intelligente Compiler!) u.a. mit Nutzung des Internet Vorläufers Arpanet für die kooperative Entwicklung. Die Hardware wurde übrigens mit meinem auf APPs basierenden grafischen Design System entwickelt.

Das iPhone ist deshalb wie fast alle wirklich revolutionären neuen Produkte eine geniale Kombination aus alten bewährten Techniken (deren Patentrechte schon längst abgelaufen sind) und einigen neuen Ideen und Verfahren. Es braucht aber schon einen Steve Jobs um das Ganze so zu integrieren, dass die Kunden begeistert sind. Hat man dann noch das Marketing Talent von Steve Jobs kommt auch der wirtschaftliche Erfolg.  Dafür muss man aber das nötige Knowhow, exzellente Mitstreiter  und einen sehr langen Atem haben.