Computer

Aus besserwiki.de
setting the input parameters
A Colossus Mark 2 computer being operated by Dorothy Du Boisson (left) and Elsie Booker (right), 1943
Man replacing one vacuum tube out of hundreds in early computer
Rows of large, dark computer cabinets in warehouse-like room
Purple video game console with attached controller
Smartphone with rainbow-like display held in a hand
Computer und Datenverarbeitungsgeräte aus verschiedenen Epochen.
Obere Reihe: Automatische mechanische Rechenmaschine (1820) (Difference Engine), Computer der ersten Generation (Colossus Computer)
Mittlere Reihe: Früher Röhrenrechner (ENIAC), Supercomputer (IBM Summit)
untere Reihe: Videospielkonsole (Nintendo GameCube), Smartphone (LYF Water 2)

Ein Computer ist eine digitale elektronische Maschine, die so programmiert werden kann, dass sie automatisch eine Folge von arithmetischen oder logischen Operationen (Berechnungen) ausführt. Moderne Computer können generische Sätze von Operationen ausführen, die als Programme bezeichnet werden. Diese Programme ermöglichen es Computern, eine Vielzahl von Aufgaben auszuführen. Ein Computersystem ist ein "kompletter" Computer, der die Hardware, das Betriebssystem (die Hauptsoftware) und die Peripheriegeräte umfasst, die für den "vollständigen" Betrieb benötigt und verwendet werden. Der Begriff kann sich auch auf eine Gruppe von Computern beziehen, die miteinander verbunden sind und zusammenarbeiten, wie z. B. ein Computernetzwerk oder ein Computercluster.

Ein breites Spektrum von Industrie- und Konsumgütern nutzt Computer als Steuersysteme. Dazu gehören einfache Spezialgeräte wie Mikrowellenherde und Fernbedienungen, Fabrikgeräte wie Industrieroboter und computergestütztes Design sowie Allzweckgeräte wie Personalcomputer und mobile Geräte wie Smartphones. Computer treiben das Internet an, das Milliarden anderer Computer und Nutzer miteinander verbindet.

Die ersten Computer waren nur für Berechnungen gedacht. Einfache manuelle Instrumente wie der Abakus haben den Menschen seit der Antike bei ihren Berechnungen geholfen. Zu Beginn der industriellen Revolution wurden einige mechanische Geräte gebaut, um langwierige Aufgaben zu automatisieren, wie z. B. das Führen von Mustern für Webstühle. Zu Beginn des 20. Jahrhunderts übernahmen ausgefeiltere elektrische Maschinen spezielle analoge Berechnungen. Die ersten digitalen elektronischen Rechenmaschinen wurden während des Zweiten Weltkriegs entwickelt. Auf die ersten Halbleitertransistoren in den späten 1940er Jahren folgten in den späten 1950er Jahren die auf Silizium basierenden MOSFET- (MOS-Transistor) und monolithisch integrierten Schaltkreisen (IC) basierenden Chip-Technologien, die in den 1970er Jahren zur Revolution der Mikroprozessoren und Mikrocomputer führten. Geschwindigkeit, Leistung und Vielseitigkeit von Computern haben sich seitdem dramatisch erhöht, wobei die Anzahl der Transistoren in rasantem Tempo zunahm (wie vom Mooreschen Gesetz vorhergesagt), was zur digitalen Revolution im späten 20. und frühen 21.

Ein moderner Computer besteht in der Regel aus mindestens einem Verarbeitungselement, in der Regel einer Zentraleinheit (CPU) in Form eines Mikroprozessors, und einer Art von Computerspeicher, in der Regel Halbleiterchips. Das Verarbeitungselement führt arithmetische und logische Operationen durch, und eine Sequenzierungs- und Steuereinheit kann die Reihenfolge der Operationen in Abhängigkeit von den gespeicherten Informationen ändern. Zu den Peripheriegeräten gehören Eingabegeräte (Tastaturen, Mäuse, Joysticks usw.), Ausgabegeräte (Bildschirme, Drucker usw.) und Eingabe-/Ausgabegeräte, die beide Funktionen erfüllen (z. B. der Touchscreen der 2000er Jahre). Peripheriegeräte ermöglichen es, Informationen von einer externen Quelle abzurufen und das Ergebnis von Operationen zu speichern und abzurufen.

Babbages Analytical Engine, 1834-1871. (9660574685).jpg
Versuchsmodell der Analytical Engine
Z3 Deutsches Museum.JPG
Zuse Z3, 1941
Two women operating ENIAC.gif
ENIAC, 1946
Pdp-7-oslo-2004.jpeg
DEC PDP-7, 1965
Apple II Plus, Museum of the Moving Image.jpg
Apple II, 1977
IBM PC 5150.jpg
IBM PC, 1981
MacBook.jpg
Notebook (Laptop) MacBook, 2006
IBM Blue Gene P supercomputer.jpg
IBM Blue Gene, 2007
Summit (supercomputer).jpg
Summit, 2018

Ein Computer (englisch; deutsche Aussprache [kɔmˈpjuːtɐ]) oder Rechner ist ein Gerät, das mittels programmierbarer Rechenvorschriften Daten verarbeitet. Dementsprechend werden vereinzelt auch die abstrahierenden beziehungsweise veralteten, synonym gebrauchten Begriffe Rechenanlage, Datenverarbeitungsanlage oder elektronische Datenverarbeitungsanlage sowie Elektronengehirn verwendet.

Charles Babbage und Ada Lovelace gelten durch die von Babbage 1837 entworfene Rechenmaschine Analytical Engine als Vordenker des modernen universell programmierbaren Computers. Konrad Zuse (Z3, 1941 und Z4, 1945) in Berlin, John Presper Eckert und John William Mauchly (ENIAC, 1946) bauten die ersten funktionstüchtigen Geräte dieser Art. Bei der Klassifizierung eines Geräts als universell programmierbarer Computer spielt die Turing-Vollständigkeit eine wesentliche Rolle. Sie ist benannt nach dem englischen Mathematiker Alan Turing, der 1936 das logische Modell der Turingmaschine eingeführt hatte.

Die frühen Computer wurden auch (Groß-)Rechner genannt; ihre Ein- und Ausgabe der Daten war zunächst auf Zahlen beschränkt. Zwar verstehen sich moderne Computer auf den Umgang mit weiteren Daten, beispielsweise mit Buchstaben und Tönen. Diese Daten werden jedoch innerhalb des Computers in Zahlen umgewandelt und als solche verarbeitet, weshalb ein Computer auch heute eine Rechenmaschine ist.

Mit zunehmender Leistungsfähigkeit eröffneten sich neue Einsatzbereiche. Computer sind heute in allen Bereichen des täglichen Lebens vorzufinden, meistens in spezialisierten Varianten, die auf einen vorliegenden Anwendungszweck zugeschnitten sind. So dienen integrierte Kleinstcomputer (eingebettetes System) zur Steuerung von Alltagsgeräten wie Waschmaschinen und Videorekordern oder zur Münzprüfung in Warenautomaten; in modernen Automobilen dienen sie beispielsweise zur Anzeige von Fahrdaten und steuern in „Fahrassistenten“ diverse Manöver selbst.

Universelle Computer finden sich in Smartphones und Spielkonsolen. Personal Computer (engl. für persönliche Computer, als Gegensatz zu von vielen genutzten Großrechnern) dienen der Informationsverarbeitung in Wirtschaft und Behörden sowie bei Privatpersonen; Supercomputer werden eingesetzt, um komplexe Vorgänge zu simulieren, z. B. in der Klimaforschung oder für medizinische Berechnungen.

Etymologie

Das englische Substantiv computer ist abgeleitet von dem englischen Verb to compute. Jenes ist abgeleitet von dem lateinischen Verb computare, was zusammenrechnen bedeutet.

Der englische Begriff computer war ursprünglich eine Berufsbezeichnung für Hilfskräfte, die immer wiederkehrende Berechnungen (z. B. für die Astronomie, für die Geodäsie oder für die Ballistik) im Auftrag von Mathematikern ausführten und damit Tabellen wie z. B. eine Logarithmentafel füllten. Dieser Beruf wurde vorwiegend von Frauen ausgeübt.

In der frühen Kirchengeschichte erfolgte eine Ablösung des jüdischen Kalenders durch den Julianischen Kalender. Die hieraus resultierenden Berechnungsschwierigkeiten des Osterdatums dauerten bis zum Mittelalter an und waren Gegenstand zahlreicher Publikationen, häufig betitelt mit Computus Ecclesiasticus. Doch finden sich noch weitere Titel, z. B. von Sigismund Suevus 1574, die sich mit arithmetischen Fragestellungen auseinandersetzen. Der früheste Text, in dem das Wort Computer isoliert verwendet wird, stammt von 1613. Der englische Autor Richard Brathwaite schrieb:

“What art thou (O Man) and from whence hadst thou thy beginning? What matter art thou made of, that thou promisest to thy selfe length of daies: or to thy posterity continuance. I have read the truest computer of Times, and the best Arithmetician that ever breathed, an he reduceth thy dayes into a short number: The daies of Man are threescore and ten.”

„Was bist du (O Mensch) und woher stammst du? Woraus bist du gemacht, dass du dir selbst versprichst, lange Tage zu leben: oder deinen Nachkommen Fortbestand. Ich habe den wahren Computer aller Zeiten gelesen, und die besten Arithmetiker die jemals atmeten, und er reduzierte deine Tage zu einer kleinen Zahl: Die Lebenszeit des Menschen sind siebzig [Jahre]“

Richard Brathwaite, „The Yong Mans Gleanings“, 1613

Die Bedeutung und der Kontext des Textes sind nicht eindeutig und lassen mehrere Interpretationen zu. Mit computer ist wohl ein sehr intelligenter Mann gemeint, allerdings kann im Mittelalter nur Gott die Lebenszeit des Menschen beeinflussen, so dass im zweiten Teil des Zitats auch Gott handeln könnte. The daies of Man are threescore and ten ist ein Zitat aus Psalm 90,10 KJV, der in der Einheitsübersetzung mit „Der ewige Gott – der vergängliche Mensch“ überschrieben ist.

In der Zeitung The New York Times tauchte das Wort erstmals am 2. Mai 1892 in einer Kleinanzeige der United States Navy mit dem Titel A Computer Wanted ‚Ein Rechner gesucht‘ auf, in der Kenntnisse in Algebra, Geometrie, Trigonometrie und Astronomie vorausgesetzt worden sind.

An der University of Pennsylvania in Philadelphia wurden im Auftrag der United States Army ballistische Tabellen berechnet. Das Ergebnis waren Bücher für die Artillerie, die für unterschiedliche Geschütze Flugbahnen unterschiedlicher Geschosse vorhersagten. Diese Berechnungen erfolgten größtenteils von Hand. Die einzige Hilfe war eine Tabelliermaschine, die zu multiplizieren und zu dividieren vermochte. Die Angestellten, die dort rechneten, wurden „computer“ (im Sinne eines menschlichen Computers) genannt. Erstmals wurde der Begriff 1946 bei der dort entwickelten elektronischen Rechenanlage Electronic Numerical Integrator and Computer (ENIAC) für ein technisches Gerät verwendet. Seit 1962 ist der Begriff in Deutschland belegt.

A human computer.
Ein menschlicher Computer, mit Mikroskop und Taschenrechner, 1952

Das Online Etymology Dictionary gibt die erste belegte Verwendung von Computer in den 1640er Jahren an, was so viel bedeutet wie "einer, der rechnet"; dies ist ein "Agentensubstantiv von compute (v.)". Das Online Etymology Dictionary gibt an, dass die Verwendung des Begriffs im Sinne von 'Rechenmaschine' (jeder Art) aus dem Jahr 1897 stammt. Das Online Etymology Dictionary gibt an, dass die "moderne Verwendung" des Begriffs im Sinne von "programmierbarer digitaler elektronischer Computer" aus dem Jahr 1945 unter diesem Namen stammt; [in einem] theoretischen [Sinn] aus dem Jahr 1937, als Turing-Maschine".

Geschichte

Vor dem 20. Jahrhundert

Der Ishango-Knochen, ein Knochenwerkzeug aus dem prähistorischen Afrika.

Seit Tausenden von Jahren werden Geräte zur Unterstützung von Berechnungen eingesetzt, wobei meist eine Eins-zu-eins-Korrespondenz mit den Fingern verwendet wird. Das früheste Zählgerät war wahrscheinlich eine Art Kerbholz. Spätere Aufzeichnungshilfen im gesamten Fruchtbaren Halbmond umfassten calculi (Tonkugeln, Kegel usw.), die die Zählung von Gegenständen, wahrscheinlich Vieh oder Getreide, darstellten und in hohlen, ungebrannten Tonbehältern versiegelt waren. Die Verwendung von Zählstäben ist ein Beispiel dafür.

Der chinesische Suanpan (算盘). Die auf diesem Abakus dargestellte Zahl ist 6.302.715.408.

Der Abakus wurde ursprünglich für arithmetische Aufgaben verwendet. Der römische Abakus wurde aus Geräten entwickelt, die bereits 2400 v. Chr. in Babylonien verwendet wurden. Seitdem wurden viele andere Formen von Rechentafeln oder -tischen erfunden. In einem mittelalterlichen europäischen Zählhaus wurde ein kariertes Tuch auf einen Tisch gelegt, auf dem nach bestimmten Regeln Markierungen verschoben wurden, um Geldbeträge zu errechnen.

Der Mechanismus von Antikythera, der auf das antike Griechenland (ca. 150-100 v. Chr.) zurückgeht, ist ein frühes analoges Rechengerät.

Laut Derek J. de Solla Price gilt der Mechanismus von Antikythera als der früheste bekannte mechanische Analogrechner. Er war für die Berechnung astronomischer Positionen konzipiert. Er wurde 1901 im Wrack von Antikythera vor der griechischen Insel Antikythera, zwischen Kythera und Kreta, entdeckt und auf ca. 100 v. Chr. datiert. Geräte von vergleichbarer Komplexität wie der Mechanismus von Antikythera tauchten erst im vierzehnten Jahrhundert wieder auf.

Viele mechanische Rechen- und Messgeräte wurden für astronomische und navigatorische Zwecke konstruiert. Die Planisphäre war eine Sternkarte, die von Abū Rayhān al-Bīrūnī im frühen 11. Das Astrolabium wurde in der hellenistischen Welt entweder im 1. oder 2. Jahrhundert v. Chr. erfunden und wird oft Hipparchus zugeschrieben. Das Astrolabium, eine Kombination aus Planisphäre und Dioptrie, war praktisch ein analoger Computer, mit dem verschiedene Probleme der sphärischen Astronomie gelöst werden konnten. Ein Astrolabium mit einem mechanischen Kalenderrechner und Zahnrädern wurde 1235 von Abi Bakr in Isfahan, Persien, erfunden. Abū Rayhān al-Bīrūnī erfand um 1000 n. Chr. das erste mechanische Astrolabium für den Mondkalender, eine frühe festverdrahtete Wissensverarbeitungsmaschine mit Zahnradgetriebe und Zahnrädern.

Der Sektor, ein Recheninstrument zur Lösung von Proportions-, Trigonometrie-, Multiplikations- und Divisionsproblemen und für verschiedene Funktionen wie Quadrate und Kubikwurzeln, wurde im späten 16. Jahrhundert entwickelt und fand Anwendung in der Kanonenkunde, Vermessung und Navigation.

Das Planimeter war ein manuelles Instrument zur Berechnung der Fläche einer geschlossenen Figur, die mit einem mechanischen Gestänge überfahren wurde.

Ein Rechenschieber.

Der Rechenschieber wurde um 1620-1630 von dem englischen Geistlichen William Oughtred erfunden, kurz nachdem er das Konzept des Logarithmus veröffentlicht hatte. Es handelt sich dabei um einen handbetriebenen analogen Rechner zur Durchführung von Multiplikation und Division. Im Laufe der Entwicklung der Rechenschieber wurden zusätzliche Skalen für Kehrwerte, Quadrate und Quadratwurzeln, Würfel und Kubikwurzeln sowie für transzendente Funktionen wie Logarithmen und Exponentiale, zirkuläre und hyperbolische Trigonometrie und andere Funktionen eingeführt. Rechenschieber mit speziellen Skalen werden immer noch für die schnelle Durchführung von Routineberechnungen verwendet, wie z. B. der kreisförmige Rechenschieber E6B, der für Zeit- und Entfernungsberechnungen in Leichtflugzeugen eingesetzt wird.

In den 1770er Jahren baute der Schweizer Uhrmacher Pierre Jaquet-Droz eine mechanische Puppe (Automat), die mit einem Federkiel schreiben konnte. Durch Umschalten der Anzahl und Reihenfolge der inneren Räder konnten verschiedene Buchstaben und damit verschiedene Nachrichten erzeugt werden. Die Puppe konnte sozusagen mechanisch "programmiert" werden, um Anweisungen zu lesen. Zusammen mit zwei anderen komplexen Maschinen befindet sich die Puppe im Musée d'Art et d'Histoire von Neuchâtel in der Schweiz und ist noch immer in Betrieb.

In den Jahren 1831-1835 entwickelte der Mathematiker und Ingenieur Giovanni Plana eine Maschine für den Ewigen Kalender, die über ein System von Rollen und Zylindern den ewigen Kalender für jedes Jahr von 0 n. Chr. (d. h. 1 v. Chr.) bis 4000 n. Chr. vorhersagen konnte und dabei Schaltjahre und unterschiedliche Tageslängen berücksichtigte. Die von dem schottischen Wissenschaftler Sir William Thomson 1872 erfundene Gezeitenvorhersagemaschine war für die Navigation in flachen Gewässern von großem Nutzen. Sie nutzte ein System von Rollen und Drähten, um automatisch die voraussichtlichen Gezeitenstände für einen bestimmten Zeitraum an einem bestimmten Ort zu berechnen.

Der Differentialanalysator, ein mechanischer Analogrechner zur Lösung von Differentialgleichungen durch Integration, verwendete Rad-Scheiben-Mechanismen zur Durchführung der Integration. Sir William Thomson hatte bereits 1876 über die mögliche Konstruktion solcher Rechner nachgedacht, war aber an dem begrenzten Ausgangsdrehmoment der Kugel-Scheiben-Integratoren gescheitert. In einem Differenzialanalysator trieb der Ausgang eines Integrators den Eingang des nächsten Integrators oder einen Graphikausgang an. Der Drehmomentverstärker war der Fortschritt, der den Betrieb dieser Maschinen ermöglichte. Ab den 1920er Jahren entwickelten Vannevar Bush und andere mechanische Differenzialanalysatoren.

Der erste Computer

Ein Teil von Babbages Differenzialmaschine.

Charles Babbage, ein englischer Maschinenbauingenieur und Universalgelehrter, schuf das Konzept eines programmierbaren Computers. Er gilt als "Vater des Computers" und hat Anfang des 19. Jahrhunderts den ersten mechanischen Computer konzipiert und erfunden. Nach der Arbeit an seiner revolutionären Differenzmaschine, die für Navigationsberechnungen gedacht war, erkannte er 1833, dass eine viel allgemeinere Konstruktion, eine analytische Maschine, möglich war. Die Eingabe von Programmen und Daten in die Maschine sollte über Lochkarten erfolgen, eine Methode, die damals zur Steuerung von mechanischen Webstühlen wie dem Jacquard-Webstuhl verwendet wurde. Für die Ausgabe sollte die Maschine über einen Drucker, einen Kurvenplotter und eine Glocke verfügen. Die Maschine sollte auch in der Lage sein, Zahlen auf Karten zu stanzen, die später eingelesen werden konnten. Die Engine enthielt eine arithmetische Logikeinheit, einen Kontrollfluss in Form von bedingten Verzweigungen und Schleifen sowie einen integrierten Speicher und war damit der erste Entwurf für einen Allzweckcomputer, der in modernen Begriffen als Turing-komplett bezeichnet werden konnte.

Die Maschine war ihrer Zeit etwa ein Jahrhundert voraus. Alle Teile seiner Maschine mussten von Hand gefertigt werden, was bei einem Gerät mit Tausenden von Teilen ein großes Problem darstellte. Schließlich wurde das Projekt mit der Entscheidung der britischen Regierung, die Finanzierung einzustellen, aufgelöst. Dass es Babbage nicht gelang, die Rechenmaschine fertig zu stellen, ist vor allem auf politische und finanzielle Schwierigkeiten zurückzuführen, aber auch auf seinen Wunsch, einen immer ausgefeilteren Computer zu entwickeln und schneller voranzukommen, als andere ihm folgen konnten. Dennoch stellte sein Sohn Henry Babbage 1888 eine vereinfachte Version der Recheneinheit der analytischen Maschine (die Mühle) fertig. Im Jahr 1906 demonstrierte er erfolgreich die Verwendung der Mühle zum Rechnen von Tabellen.

Analoge Computer

Sir William Thomsons dritter Entwurf einer Maschine zur Vorhersage der Gezeiten, 1879-81

In der ersten Hälfte des 20. Jahrhunderts wurden viele wissenschaftliche Rechenanforderungen durch immer ausgefeiltere Analogrechner erfüllt, die ein direktes mechanisches oder elektrisches Modell des Problems als Berechnungsgrundlage verwendeten. Diese waren jedoch nicht programmierbar und verfügten im Allgemeinen nicht über die Vielseitigkeit und Genauigkeit moderner Digitalrechner. Der erste moderne Analogrechner war eine Gezeitenvorhersagemaschine, die 1872 von Sir William Thomson (dem späteren Lord Kelvin) erfunden wurde. Der Differentialanalysator, ein mechanischer Analogrechner zur Lösung von Differentialgleichungen durch Integration mit Hilfe von Rad-Scheiben-Mechanismen, wurde 1876 von James Thomson, dem älteren Bruder des berühmteren Sir William Thomson, konzipiert.

Die Kunst des mechanischen Analogrechnens erreichte ihren Höhepunkt mit dem Differentialanalysator, der ab 1927 von H. L. Hazen und Vannevar Bush am MIT gebaut wurde. Dieser baute auf den mechanischen Integratoren von James Thomson und den von H. W. Nieman erfundenen Drehmomentverstärkern auf. Ein Dutzend dieser Geräte wurden gebaut, bevor ihre Veralterung offensichtlich wurde. In den 1950er Jahren hatte der Erfolg digitaler elektronischer Computer das Ende der meisten analogen Rechenmaschinen eingeläutet, doch blieben analoge Computer in den 1950er Jahren in einigen Spezialanwendungen wie im Bildungswesen (Rechenschieber) und in der Luftfahrt (Steuersysteme) in Gebrauch.

Digitale Computer

Elektromechanische

1938 hatte die US-Marine einen elektromechanischen Analogrechner entwickelt, der klein genug war, um an Bord eines U-Boots eingesetzt zu werden. Es handelte sich um den Torpedo Data Computer, der mit Hilfe der Trigonometrie das Problem des Abschusses eines Torpedos auf ein bewegliches Ziel löste. Während des Zweiten Weltkriegs wurden ähnliche Geräte auch in anderen Ländern entwickelt.

Replik des Z3 von Konrad Zuse, des ersten vollautomatischen, digitalen (elektromechanischen) Computers.

Die frühen Digitalrechner waren elektromechanisch; elektrische Schalter trieben mechanische Relais an, um die Berechnungen durchzuführen. Diese Geräte hatten eine niedrige Arbeitsgeschwindigkeit und wurden schließlich durch viel schnellere vollelektrische Computer ersetzt, die ursprünglich Vakuumröhren verwendeten. Der Z2, den der deutsche Ingenieur Konrad Zuse 1939 entwickelte, war eines der frühesten Beispiele für einen elektromechanischen Relaiscomputer.

1941 ließ Zuse seine frühere Maschine mit der Z3 folgen, dem ersten funktionierenden elektromechanisch programmierbaren, vollautomatischen Digitalcomputer der Welt. Die Z3 wurde mit 2000 Relais gebaut, die eine Wortlänge von 22 Bit implementierten und mit einer Taktfrequenz von etwa 5-10 Hz arbeiteten. Der Programmcode wurde auf Lochstreifen geliefert, während die Daten in einem Speicher von 64 Wörtern gespeichert oder über die Tastatur eingegeben werden konnten. In mancher Hinsicht war sie modernen Maschinen recht ähnlich und leistete Pionierarbeit bei zahlreichen Fortschritten, wie z. B. bei den Gleitkommazahlen. Anstelle des schwieriger zu implementierenden Dezimalsystems (das in Charles Babbages früherem Entwurf verwendet wurde) bedeutete die Verwendung eines Binärsystems, dass Zuses Maschinen einfacher zu bauen und angesichts der damals verfügbaren Technologien potenziell zuverlässiger waren. Die Z3 war selbst kein Universalcomputer, konnte aber so erweitert werden, dass sie Turing-komplett war.

Zuses nächster Computer, die Z4, wurde der erste kommerzielle Computer der Welt; nach anfänglichen Verzögerungen aufgrund des Zweiten Weltkriegs wurde er 1950 fertiggestellt und an die ETH Zürich geliefert. Der Computer wurde von Zuses eigener Firma, der Zuse KG, hergestellt, die 1941 als erstes Unternehmen mit dem alleinigen Zweck der Entwicklung von Computern gegründet worden war.

Vakuumröhren und digitale elektronische Schaltungen

Rein elektronische Schaltkreise ersetzten bald ihre mechanischen und elektromechanischen Äquivalente, und gleichzeitig löste die digitale Berechnung die analoge ab. Der Ingenieur Tommy Flowers, der in den 1930er Jahren an der Post Office Research Station in London arbeitete, begann, die Möglichkeiten des Einsatzes von Elektronik für die Telefonzentrale zu erforschen. Die von ihm 1934 gebaute Versuchsanlage wurde fünf Jahre später in Betrieb genommen und wandelte einen Teil des Telefonvermittlungsnetzes in ein elektronisches Datenverarbeitungssystem um, das Tausende von Vakuumröhren verwendete. In den USA entwickelten und testeten John Vincent Atanasoff und Clifford E. Berry von der Iowa State University 1942 den Atanasoff-Berry-Computer (ABC), den ersten "automatischen elektronischen Digitalrechner". Auch dieser Entwurf war vollelektronisch und verwendete etwa 300 Vakuumröhren, wobei Kondensatoren in einer mechanisch rotierenden Trommel als Speicher dienten.

Two women are seen by the Colossus computer.
Colossus, der erste elektronische, programmierbare Digitalrechner, wurde während des Zweiten Weltkriegs eingesetzt, um deutsche Chiffren zu knacken. Hier sieht man ihn 1943 im Einsatz in Bletchley Park.

Während des Zweiten Weltkriegs erzielten die britischen Codeknacker in Bletchley Park eine Reihe von Erfolgen beim Entschlüsseln der verschlüsselten deutschen Militärkommunikation. Die deutsche Verschlüsselungsmaschine Enigma wurde zunächst mit Hilfe der elektromechanischen Bomben angegriffen, die oft von Frauen bedient wurden. Um die anspruchsvollere deutsche Maschine Lorenz SZ 40/42 zu knacken, die für die Kommunikation auf höchster Ebene der Armee verwendet wurde, beauftragten Max Newman und seine Kollegen Flowers mit dem Bau des Kolosses. Von Anfang Februar 1943 an verbrachte er elf Monate mit der Entwicklung und dem Bau des ersten Colossus. Nach einem Funktionstest im Dezember 1943 wurde Colossus nach Bletchley Park verschifft, wo er am 18. Januar 1944 ausgeliefert wurde und am 5. Februar seine erste Nachricht absetzte.

Colossus war der erste elektronische, digital programmierbare Computer der Welt. Er verwendete eine große Anzahl von Röhren (Vakuumröhren). Er verfügte über eine Papierband-Eingabe und konnte so konfiguriert werden, dass er eine Vielzahl von booleschen logischen Operationen mit seinen Daten durchführen konnte, war aber nicht Turing-komplett. Neun Mk II Colossi wurden gebaut (der Mk I wurde zu einem Mk II umgebaut, so dass insgesamt zehn Maschinen entstanden). Colossus Mark I enthielt 1.500 thermionische Röhren, aber Mark II mit 2.400 Röhren war sowohl fünfmal schneller als auch einfacher zu bedienen als Mark I, was den Dekodierungsprozess erheblich beschleunigte.

ENIAC war das erste elektronische, Turing-komplette Gerät und führte für die US-Armee ballistische Flugbahnberechnungen durch.

Der ENIAC (Electronic Numerical Integrator and Computer) war der erste elektronische programmierbare Computer, der in den USA gebaut wurde. Obwohl der ENIAC dem Colossus ähnelte, war er viel schneller, flexibler und Turing-komplett. Wie beim Colossus wurde ein "Programm" auf dem ENIAC durch die Zustände seiner Verbindungskabel und Schalter definiert, was weit entfernt war von den elektronischen Maschinen mit gespeicherten Programmen, die später entwickelt wurden. Sobald ein Programm geschrieben war, musste es mechanisch in die Maschine eingegeben werden, indem die Stecker und Schalter manuell zurückgesetzt wurden. Die Programmiererinnen des ENIAC waren sechs Frauen, die oft als die "ENIAC-Girls" bezeichnet werden.

Sie kombinierte die hohe Geschwindigkeit der Elektronik mit der Fähigkeit, für viele komplexe Probleme programmiert zu werden. Sie konnte 5000 Mal pro Sekunde addieren oder subtrahieren, tausend Mal schneller als jede andere Maschine. Außerdem verfügte er über Module zum Multiplizieren, Dividieren und Quadratwurzeln. Der Hochgeschwindigkeitsspeicher war auf 20 Wörter (etwa 80 Byte) begrenzt. Der ENIAC wurde unter der Leitung von John Mauchly und J. Presper Eckert an der Universität von Pennsylvania entwickelt und gebaut und war von 1943 bis Ende 1945 in Betrieb. Die Maschine war riesig, wog 30 Tonnen, verbrauchte 200 Kilowatt elektrische Leistung und enthielt über 18.000 Vakuumröhren, 1.500 Relais und Hunderttausende von Widerständen, Kondensatoren und Induktoren.

Moderne Computer

Konzept des modernen Computers

Das Prinzip des modernen Computers wurde von Alan Turing in seinem bahnbrechenden Werk On Computable Numbers (Über berechenbare Zahlen) aus dem Jahr 1936 vorgeschlagen. Turing schlug ein einfaches Gerät vor, das er "Universal Computing machine" nannte und das heute als universelle Turing-Maschine bekannt ist. Er bewies, dass eine solche Maschine in der Lage ist, alles zu berechnen, was berechenbar ist, indem sie auf Band gespeicherte Anweisungen (Programme) ausführt, so dass die Maschine programmierbar ist. Das grundlegende Konzept von Turings Entwurf ist das gespeicherte Programm, bei dem alle Anweisungen für Berechnungen im Speicher abgelegt sind. Von Neumann erkannte an, dass das zentrale Konzept des modernen Computers auf diese Arbeit zurückzuführen ist. Turing-Maschinen sind bis heute ein zentraler Untersuchungsgegenstand der Rechentheorie. Abgesehen von den Beschränkungen, die ihnen durch ihren endlichen Speicher auferlegt werden, gelten moderne Computer als Turing-komplett, d. h. sie können Algorithmen genauso gut ausführen wie eine universelle Turing-Maschine.

Gespeicherte Programme

Three tall racks containing electronic circuit boards
Ein Teil des Manchester Baby, des ersten elektronischen Computers mit gespeicherten Programmen

Frühe Rechenmaschinen hatten feste Programme. Um ihre Funktion zu ändern, musste die Maschine neu verdrahtet und umstrukturiert werden. Mit dem Vorschlag des speicherprogrammierbaren Computers änderte sich dies. Ein speicherprogrammierter Computer verfügt von vornherein über einen Befehlssatz und kann eine Reihe von Anweisungen (ein Programm), die die Berechnung im Detail beschreiben, im Speicher ablegen. Die theoretische Grundlage für den speicherprogrammierbaren Computer wurde von Alan Turing in seiner Arbeit aus dem Jahr 1936 gelegt. Im Jahr 1945 trat Turing in das National Physical Laboratory ein und begann mit der Entwicklung eines elektronischen Digitalcomputers mit gespeicherten Programmen. Sein Bericht "Proposed Electronic Calculator" von 1945 war die erste Spezifikation für ein solches Gerät. Auch John von Neumann von der University of Pennsylvania brachte 1945 seinen ersten Entwurf eines Berichts über den EDVAC in Umlauf.

Das Manchester Baby war der erste speicherprogrammierbare Computer der Welt. Er wurde an der Universität von Manchester in England von Frederic C. Williams, Tom Kilburn und Geoff Tootill gebaut und führte sein erstes Programm am 21. Juni 1948 aus. Er wurde als Prüfstand für die Williams-Röhre entwickelt, den ersten digitalen Speicher mit wahlfreiem Zugriff. Obwohl der Computer nach den Maßstäben seiner Zeit als "klein und primitiv" galt, war er die erste funktionierende Maschine, die alle wesentlichen Elemente eines modernen elektronischen Computers enthielt. Sobald das Baby die Machbarkeit seines Designs bewiesen hatte, wurde an der Universität ein Projekt gestartet, um es zu einem brauchbareren Computer, dem Manchester Mark 1, weiterzuentwickeln. Grace Hopper war die erste Person, die einen Compiler für eine Programmiersprache entwickelte.

Der Mark 1 wiederum wurde schnell zum Prototyp für den Ferranti Mark 1, den ersten kommerziell erhältlichen Allzweckcomputer der Welt. Er wurde von Ferranti gebaut und im Februar 1951 an die Universität von Manchester geliefert. Mindestens sieben dieser späteren Maschinen wurden zwischen 1953 und 1957 ausgeliefert, eine davon an die Shell-Labors in Amsterdam. Im Oktober 1947 beschlossen die Direktoren des britischen Catering-Unternehmens J. Lyons & Company, die kommerzielle Entwicklung von Computern aktiv zu fördern. Der LEO I-Computer wurde im April 1951 in Betrieb genommen und führte die erste reguläre Bürocomputerarbeit der Welt aus.

Transistoren

Bipolarer Sperrschichttransistor (BJT)

Das Konzept des Feldeffekttransistors wurde von Julius Edgar Lilienfeld im Jahr 1925 vorgeschlagen. John Bardeen und Walter Brattain, die unter William Shockley in den Bell Labs arbeiteten, bauten 1947 den ersten funktionierenden Transistor, den Punktkontakttransistor, dem 1948 der bipolare Transistor von Shockley folgte. Ab 1955 ersetzten die Transistoren die Vakuumröhren bei der Entwicklung von Computern und begründeten die "zweite Generation" von Computern. Im Vergleich zu Vakuumröhren haben Transistoren viele Vorteile: Sie sind kleiner und benötigen weniger Strom als Vakuumröhren, geben also weniger Wärme ab. Verbindungstransistoren waren viel zuverlässiger als Vakuumröhren und hatten eine längere, unbegrenzte Lebensdauer. Transistorisierte Computer konnten Zehntausende von binären Logikschaltungen auf relativ kompaktem Raum enthalten. Die frühen Transistoren waren jedoch relativ sperrige Geräte, die sich nur schwer in Massenproduktion herstellen ließen, was sie auf eine Reihe von Spezialanwendungen beschränkte.

An der Universität Manchester entwarf und baute ein Team unter der Leitung von Tom Kilburn eine Maschine, die die neu entwickelten Transistoren anstelle von Ventilen verwendete. Ihr erster Transistorcomputer, der erste der Welt, war 1953 betriebsbereit, und eine zweite Version wurde im April 1955 fertiggestellt. Die Maschine nutzte jedoch Röhren zur Erzeugung der 125-kHz-Taktsignale und in den Schaltkreisen zum Lesen und Beschreiben des Magnettrommelspeichers, war also nicht der erste vollständig transistorisierte Computer. Diese Auszeichnung geht an den Harwell CADET von 1955, der von der Elektronikabteilung des Atomic Energy Research Establishment in Harwell gebaut wurde.

MOSFET (MOS-Transistor), mit Gate (G), Gehäuse (B), Source (S) und Drain (D). Das Gate ist durch eine Isolierschicht (rosa) vom Gehäuse getrennt.

Der Metall-Oxid-Silizium-Feldeffekttransistor (MOSFET), auch bekannt als MOS-Transistor, wurde 1959 von Mohamed M. Atalla und Dawon Kahng in den Bell Labs erfunden. Er war der erste wirklich kompakte Transistor, der miniaturisiert und in Massenproduktion für eine breite Palette von Anwendungen hergestellt werden konnte. Dank seiner hohen Skalierbarkeit, seines wesentlich geringeren Stromverbrauchs und seiner höheren Dichte als Bipolartransistoren ermöglichte der MOSFET den Bau integrierter Schaltungen mit hoher Dichte. Neben der Datenverarbeitung ermöglichte er auch den praktischen Einsatz von MOS-Transistoren als Speicherelemente, was zur Entwicklung des MOS-Halbleiterspeichers führte, der die früheren Magnetkernspeicher in Computern ersetzte. Der MOSFET führte zur Revolution der Mikrocomputer und wurde zur treibenden Kraft der Computerrevolution. Der MOSFET ist der am weitesten verbreitete Transistor in Computern und stellt den grundlegenden Baustein der digitalen Elektronik dar.

Integrierte Schaltkreise

Der nächste große Fortschritt bei der Rechenleistung kam mit dem Aufkommen der integrierten Schaltungen (IC). Die Idee des integrierten Schaltkreises stammt von einem Radarwissenschaftler, der für das Royal Radar Establishment des Verteidigungsministeriums arbeitete, Geoffrey W.A. Dummer. Dummer präsentierte die erste öffentliche Beschreibung einer integrierten Schaltung auf dem Symposium on Progress in Quality Electronic Components in Washington, D.C. am 7. Mai 1952.

Die ersten funktionierenden ICs wurden von Jack Kilby bei Texas Instruments und Robert Noyce bei Fairchild Semiconductor erfunden. Kilby hielt seine ersten Ideen zum integrierten Schaltkreis im Juli 1958 fest und demonstrierte am 12. September 1958 erfolgreich das erste funktionierende integrierte Beispiel. In seiner Patentanmeldung vom 6. Februar 1959 beschrieb Kilby sein neues Gerät als "einen Körper aus Halbleitermaterial ..., in dem alle Komponenten der elektronischen Schaltung vollständig integriert sind". Bei Kilbys Erfindung handelte es sich jedoch um eine hybride integrierte Schaltung (Hybrid-IC) und nicht um einen monolithischen integrierten Schaltkreis (IC) Chip. Kilbys IC hatte externe Drahtverbindungen, was eine Massenproduktion erschwerte.

Auch Noyce kam ein halbes Jahr später als Kilby mit seiner eigenen Idee eines integrierten Schaltkreises auf den Markt. Noyce' Erfindung war der erste echte monolithische IC-Chip. Sein Chip löste viele praktische Probleme, die der Chip von Kilby nicht gelöst hatte. Er wurde bei Fairchild Semiconductor hergestellt und bestand aus Silizium, während Kilbys Chip aus Germanium gefertigt war. Noyces monolithischer IC wurde mit dem Planarverfahren hergestellt, das sein Kollege Jean Hoerni Anfang 1959 entwickelt hatte. Das planare Verfahren wiederum basierte auf Mohamed M. Atallas Arbeiten zur Passivierung von Halbleiteroberflächen durch Siliziumdioxid in den späten 1950er Jahren.

Moderne monolithische ICs sind überwiegend integrierte MOS-Schaltungen (Metall-Oxid-Halbleiter), die aus MOSFETs (MOS-Transistoren) aufgebaut sind. Der erste experimentelle MOS-IC, der hergestellt wurde, war ein Chip mit 16 Transistoren, der 1962 von Fred Heiman und Steven Hofstein bei RCA gebaut wurde. General Microelectronics stellte 1964 den ersten kommerziellen MOS-IC vor, der von Robert Norman entwickelt wurde. Nach der Entwicklung des MOS-Transistors mit selbstjustierendem Gate (Silizium-Gate) durch Robert Kerwin, Donald Klein und John Sarace in den Bell Labs im Jahr 1967 wurde der erste MOS-IC mit selbstjustierendem Gate von Federico Faggin bei Fairchild Semiconductor im Jahr 1968 entwickelt. Der MOSFET hat sich seither zum wichtigsten Bauelement in modernen ICs entwickelt.

Die Entwicklung des integrierten MOS-Schaltkreises führte zur Erfindung des Mikroprozessors und läutete eine explosionsartige Zunahme der kommerziellen und persönlichen Nutzung von Computern ein. Obwohl die Frage, welches Gerät genau der erste Mikroprozessor war, umstritten ist, was zum Teil auf die fehlende Einigung über die genaue Definition des Begriffs "Mikroprozessor" zurückzuführen ist, ist es weitgehend unbestritten, dass der erste Ein-Chip-Mikroprozessor der Intel 4004 war, der von Federico Faggin mit seiner Silizium-Gate-MOS-IC-Technologie zusammen mit Ted Hoff, Masatoshi Shima und Stanley Mazor bei Intel entworfen und realisiert wurde. In den frühen 1970er Jahren ermöglichte die MOS-IC-Technologie die Integration von mehr als 10.000 Transistoren auf einem einzigen Chip.

System on a Chip (SoCs) sind komplette Computer auf einem Mikrochip (oder Chip) von der Größe einer Münze. Sie können über integrierten RAM und Flash-Speicher verfügen oder auch nicht. Wenn sie nicht integriert sind, befindet sich der Arbeitsspeicher in der Regel direkt über (bekannt als Package on package) oder unter (auf der gegenüberliegenden Seite der Leiterplatte) dem SoC, und der Flash-Speicher ist in der Regel direkt neben dem SoC platziert, um die Datenübertragungsgeschwindigkeit zu erhöhen, da die Datensignale keine langen Strecken zurücklegen müssen. Seit ENIAC im Jahr 1945 haben sich die Computer enorm weiterentwickelt. Moderne SoCs (wie der Snapdragon 865) haben die Größe einer Münze, sind aber hunderttausendmal leistungsfähiger als ENIAC, haben Milliarden von Transistoren integriert und verbrauchen nur wenige Watt Strom.

Mobile Computer

Die ersten mobilen Computer waren schwer und wurden mit Netzstrom betrieben. Der 23 kg schwere IBM 5100 war ein frühes Beispiel. Spätere tragbare Computer wie der Osborne 1 und der Compaq Portable waren wesentlich leichter, mussten aber immer noch an das Stromnetz angeschlossen werden. Die ersten Laptops, wie z. B. der Grid Compass, machten dieses Erfordernis durch den Einbau von Batterien überflüssig - und mit der fortschreitenden Miniaturisierung der Computerressourcen und den Fortschritten bei der Lebensdauer tragbarer Batterien wurden tragbare Computer in den 2000er Jahren immer beliebter. Die gleichen Entwicklungen ermöglichten es den Herstellern, Anfang der 2000er Jahre Rechenressourcen in Mobiltelefone zu integrieren.

Diese Smartphones und Tablets laufen mit einer Vielzahl von Betriebssystemen und haben sich in letzter Zeit zum dominierenden Computergerät auf dem Markt entwickelt. Sie werden von System on a Chip (SoCs) angetrieben, das sind komplette Computer auf einem Mikrochip von der Größe einer Münze.

Typen

Computer können auf verschiedene Weise klassifiziert werden, unter anderem:

Nach Architektur

  • Analoger Computer
  • Digitaler Computer
  • Hybrider Computer
  • Harvard-Architektur
  • Von-Neumann-Architektur
  • Computer mit komplexem Befehlssatz
  • Computer mit reduziertem Befehlssatz

Nach Größe, Formfaktor und Zweck

  • Supercomputer
  • Großrechner
  • Minicomputer (der Begriff wird nicht mehr verwendet)
  • Server
  • Personal Computer
    • Arbeitsplatzrechner
    • Mikrocomputer (Begriff wird nicht mehr verwendet)
      • Heimcomputer
    • Desktop-Computer
      • Tower-Desktop
      • Slimline-Desktop
        • Multimedia-Computer (Computer mit nichtlinearem Schnittsystem, Videobearbeitungs-PCs und dergleichen)
        • Spiele-Computer
      • Alles-in-einem-PC
      • Nettop (PCs mit kleinem Formfaktor, Mini-PCs)
      • Heimkino-PC
      • Tastatur-Computer
      • Tragbarer Computer
      • Thin-Client
      • Internet-Anwendung
    • Laptop
      • Desktop-Ersatzcomputer
      • Spiele-Laptop
      • Robuster Laptop
      • 2-in-1-PC
      • Ultrabook
      • Chromebook
      • Subnotebook
      • Netbook
  • Mobile Computer:
    • Tablet-Computer
    • Smartphone
    • Ultramobiler PC
    • Taschen-PC
    • Palmtop-PC
    • Handheld-PC
  • Wearable Computer
    • Smartwatch
    • Smartglasses
  • Einplatinen-Computer
  • Steck-Computer
  • Stick-PC
  • Speicherprogrammierbare Steuerung
  • Computer auf einem Modul
  • System auf einem Modul
  • System in einem Gehäuse
  • System-on-Chip (auch bekannt als Anwendungsprozessor oder AP, wenn er keine Schaltungen wie z. B. Funkschaltungen enthält)
  • Mikrocontroller

Hardware

Video zur Demonstration der Standardkomponenten eines "Slimline"-Computers

Der Begriff Hardware umfasst alle Teile eines Computers, die greifbare physische Objekte sind. Schaltkreise, Computerchips, Grafikkarten, Soundkarten, Speicher (RAM), Hauptplatine, Bildschirme, Netzteile, Kabel, Tastaturen, Drucker und "Mäuse"-Eingabegeräte sind alle Hardware.

Geschichte der Computer-Hardware

Erste Generation
(mechanisch/elektromechanisch)
Rechenmaschinen Pascalsche Rechenmaschine, Arithmometer, Differenzmaschine, Quevedos analytische Maschinen
Programmierbare Geräte Jacquard-Webstuhl, Analytische Maschine, IBM ASCC/Harvard Mark I, Harvard Mark II, IBM SSEC, Z1, Z2, Z3
Zweite Generation
(Vakuumröhren)
Rechenmaschinen Atanasoff-Berry-Rechner, IBM 604, UNIVAC 60, UNIVAC 120
Programmierbare Geräte Colossus, ENIAC, Manchester Baby, EDSAC, Manchester Mark 1, Ferranti Pegasus, Ferranti Mercury, CSIRAC, EDVAC, UNIVAC I, IBM 701, IBM 702, IBM 650, Z22
Dritte Generation
(diskrete Transistoren und integrierte Schaltungen SSI, MSI, LSI)
Mainframes IBM 7090, IBM 7080, IBM System/360, BUNCH
Minicomputer HP 2116A, IBM System/32, IBM System/36, LINC, PDP-8, PDP-11
Desktop-Rechner HP 9100
Vierte Generation
(Integrierte VLSI-Schaltungen)
Minicomputer VAX, IBM AS/400
4-Bit-Mikrocomputer Intel 4004, Intel 4040
8-Bit-Mikrocomputer Intel 8008, Intel 8080, Motorola 6800, Motorola 6809, MOS Technology 6502, Zilog Z80
16-Bit-Mikrocomputer Intel 8088, Zilog Z8000, WDC 65816/65802
32-Bit-Mikrocomputer Intel 80386, Pentium, Motorola 68000, ARM
64-Bit-Mikrocomputer Alpha, MIPS, PA-RISC, PowerPC, SPARC, x86-64, ARMv8-A
Eingebetteter Computer Intel 8048, Intel 8051
Personal Computer Desktop-Computer, Heimcomputer, Laptop-Computer, Persönlicher Digitaler Assistent (PDA), Tragbarer Computer, Tablet PC, Wearable Computer
Theoretisch/experimentell Quantencomputer
Chemische Computer
DNA-Rechner
Optischer Computer
Spintronik-basierter Computer
Wetware/Organischer Computer

Andere Hardware-Themen

Peripheriegerät (Eingabe/Ausgabe) Eingabe Maus, Tastatur, Joystick, Bildscanner, Webcam, Grafiktablett, Mikrofon
Ausgabe Monitor, Drucker, Lautsprecher
Beide Diskettenlaufwerk, Festplattenlaufwerk, optisches Laufwerk, Fernschreiber
Computer-Busse Kurzer Bereich RS-232, SCSI, PCI, USB
Große Reichweite (Computernetzwerke) Ethernet, ATM, FDDI

Ein Allzweckcomputer besteht aus vier Hauptkomponenten: der arithmetischen Logikeinheit (ALU), der Steuereinheit, dem Speicher und den Ein- und Ausgabegeräten (zusammen als E/A bezeichnet). Diese Teile sind durch Busse miteinander verbunden, die oft aus Gruppen von Drähten bestehen. In jedem dieser Teile befinden sich Tausende bis Billionen kleiner elektrischer Schaltkreise, die mit Hilfe eines elektronischen Schalters ein- oder ausgeschaltet werden können. Jeder Schaltkreis repräsentiert ein Bit (binäre Ziffer) der Information, so dass er im eingeschalteten Zustand eine "1" und im ausgeschalteten Zustand eine "0" darstellt (in positiver logischer Darstellung). Die Schaltungen sind in logischen Gattern angeordnet, so dass eine oder mehrere Schaltungen den Zustand einer oder mehrerer anderer Schaltungen steuern können.

Eingabegeräte

Wenn unverarbeitete Daten mit Hilfe von Eingabegeräten an den Computer gesendet werden, werden die Daten verarbeitet und an Ausgabegeräte gesendet. Die Eingabegeräte können von Hand bedient werden oder automatisiert sein. Der Vorgang der Verarbeitung wird hauptsächlich von der CPU gesteuert. Einige Beispiele für Eingabegeräte sind:

  • Computertastatur
  • Digitalkamera
  • Digitales Video
  • Grafiktablett
  • Bildscanner
  • Joystick
  • Mikrofon
  • Maus
  • Overlay-Tastatur
  • Echtzeituhr
  • Trackball
  • Touchscreen
  • Lichtstift

Ausgabegeräte

Die Mittel, mit denen ein Computer Ausgaben tätigt, werden als Ausgabegeräte bezeichnet. Einige Beispiele für Ausgabegeräte sind:

  • Computerbildschirm
  • Drucker
  • PC-Lautsprecher
  • Projektor
  • Soundkarte
  • Videokarte

Steuergerät

Diagramm, das zeigt, wie eine bestimmte Anweisung der MIPS-Architektur vom Steuersystem dekodiert werden würde

Die Steuereinheit (oft als Steuersystem oder zentraler Controller bezeichnet) verwaltet die verschiedenen Komponenten des Computers; sie liest und interpretiert (dekodiert) die Programmanweisungen und wandelt sie in Steuersignale um, die andere Teile des Computers aktivieren. Steuersysteme in fortgeschrittenen Computern können die Reihenfolge der Ausführung einiger Anweisungen ändern, um die Leistung zu verbessern.

Eine Schlüsselkomponente, die allen CPUs gemeinsam ist, ist der Programmzähler, eine spezielle Speicherzelle (ein Register), die festhält, von welcher Stelle im Speicher die nächste Anweisung gelesen werden soll.

Die Funktion des Steuersystems ist wie folgt - dies ist eine vereinfachte Beschreibung, und einige dieser Schritte können je nach CPU-Typ gleichzeitig oder in einer anderen Reihenfolge ausgeführt werden:

  1. Lesen des Codes für die nächste Anweisung aus der vom Programmzähler angegebenen Zelle.
  2. Dekodierung des numerischen Codes für die Anweisung in eine Reihe von Befehlen oder Signalen für jedes der anderen Systeme.
  3. Inkrementieren des Programmzählers, so dass er auf die nächste Anweisung zeigt.
  4. Lesen der für die Anweisung erforderlichen Daten aus den Zellen des Speichers (oder vielleicht aus einem Eingabegerät). Der Ort dieser erforderlichen Daten ist normalerweise im Befehlscode gespeichert.
  5. Übergabe der erforderlichen Daten an eine ALU oder ein Register.
  6. Wenn die Anweisung eine ALU oder spezielle Hardware erfordert, weisen Sie die Hardware an, die angeforderte Operation durchzuführen.
  7. Schreiben Sie das Ergebnis der ALU zurück in einen Speicherplatz oder in ein Register oder eventuell in ein Ausgabegerät.
  8. Springen Sie zurück zu Schritt (1).

Da der Programmzähler (konzeptionell) nur ein weiterer Satz von Speicherzellen ist, kann er durch Berechnungen in der ALU verändert werden. Würde man den Programmzähler um 100 erhöhen, würde die nächste Anweisung von einer Stelle 100 Stellen weiter unten im Programm gelesen werden. Befehle, die den Programmzähler verändern, werden häufig als "Sprünge" bezeichnet und ermöglichen Schleifen (Befehle, die vom Computer wiederholt werden) und häufig die Ausführung bedingter Befehle (beides Beispiele für den Kontrollfluss).

Die Abfolge der Operationen, die die Steuereinheit durchläuft, um einen Befehl zu verarbeiten, ist an sich wie ein kurzes Computerprogramm, und in der Tat gibt es in einigen komplexeren CPU-Konstruktionen einen weiteren, noch kleineren Computer, den so genannten Mikrosequenzer, der ein Mikrocodeprogramm ausführt, das all diese Ereignisse auslöst.

Zentrale Verarbeitungseinheit (CPU)

Die Steuereinheit, die ALU und die Register sind zusammen als Zentraleinheit (CPU) bekannt. Frühe CPUs bestanden aus vielen einzelnen Komponenten. Seit den 1970er Jahren sind CPUs in der Regel auf einem einzigen integrierten MOS-Schaltkreis-Chip, dem Mikroprozessor, aufgebaut.

Arithmetische Logikeinheit (ALU)

Die ALU kann zwei Arten von Operationen durchführen: arithmetische und logische. Die von einer bestimmten ALU unterstützten arithmetischen Operationen können sich auf Addition und Subtraktion beschränken oder auch Multiplikation, Division, trigonometrische Funktionen wie Sinus, Kosinus usw. und Quadratwurzeln umfassen. Einige können nur mit ganzen Zahlen (Integer) arbeiten, während andere Fließkommazahlen verwenden, um reelle Zahlen darzustellen, wenn auch mit begrenzter Genauigkeit. Allerdings kann jeder Computer, der nur die einfachsten Operationen ausführen kann, so programmiert werden, dass er die komplexeren Operationen in einfache Schritte zerlegt, die er ausführen kann. Daher kann jeder Computer so programmiert werden, dass er eine beliebige arithmetische Operation ausführt - auch wenn er dafür mehr Zeit benötigt, wenn seine ALU die Operation nicht direkt unterstützt. Eine ALU kann auch Zahlen vergleichen und boolesche Wahrheitswerte (wahr oder falsch) zurückgeben, je nachdem, ob die eine gleich, größer oder kleiner als die andere ist ("ist 64 größer als 65?"). Logische Operationen beinhalten Boolesche Logik: AND, OR, XOR und NOT. Diese können für die Erstellung komplizierter bedingter Anweisungen und die Verarbeitung boolescher Logik nützlich sein.

Superskalare Computer können mehrere ALUs enthalten, so dass sie mehrere Anweisungen gleichzeitig verarbeiten können. Grafikprozessoren und Computer mit SIMD- und MIMD-Funktionen enthalten oft ALUs, die Vektoren und Matrizen arithmetisch verarbeiten können.

Speicher

Magnetkernspeicher (mit magnetischen Kernen) waren in den 1960er Jahren der Computerspeicher der Wahl, bis er durch Halbleiterspeicher (mit MOS-Speicherzellen) ersetzt wurde.

Der Speicher eines Computers kann als eine Liste von Zellen betrachtet werden, in die Zahlen eingegeben oder gelesen werden können. Jede Zelle hat eine nummerierte "Adresse" und kann eine einzelne Zahl speichern. Der Computer kann angewiesen werden, "die Zahl 123 in die Zelle mit der Nummer 1357 einzugeben" oder "die Zahl in Zelle 1357 mit der Zahl in Zelle 2468 zu addieren und das Ergebnis in Zelle 1595 einzugeben". Die im Speicher abgelegten Informationen können praktisch alles darstellen. Buchstaben, Zahlen und sogar Computerbefehle können ebenso einfach im Speicher abgelegt werden. Da die CPU nicht zwischen verschiedenen Arten von Informationen unterscheidet, ist es Aufgabe der Software, dem, was der Speicher als bloße Zahlenreihe ansieht, eine Bedeutung zu geben.

In fast allen modernen Computern ist jede Speicherzelle so eingerichtet, dass sie binäre Zahlen in Gruppen von acht Bits (Byte genannt) speichert. Jedes Byte kann 256 verschiedene Zahlen darstellen (28 = 256); entweder von 0 bis 255 oder -128 bis +127. Um größere Zahlen zu speichern, können mehrere aufeinanderfolgende Bytes verwendet werden (in der Regel zwei, vier oder acht). Wenn negative Zahlen benötigt werden, werden sie normalerweise in Zweierkomplement-Notation gespeichert. Andere Anordnungen sind möglich, werden aber in der Regel nur bei speziellen Anwendungen oder in historischen Zusammenhängen verwendet. Ein Computer kann jede Art von Information im Speicher ablegen, wenn sie numerisch dargestellt werden kann. Moderne Computer haben Milliarden oder sogar Billionen von Bytes Speicherplatz.

Die CPU enthält einen speziellen Satz von Speicherzellen, die so genannten Register, die viel schneller gelesen und beschrieben werden können als der Hauptspeicherbereich. Je nach CPU-Typ gibt es in der Regel zwischen zwei und einhundert Register. Register werden für die am häufigsten benötigten Daten verwendet, damit nicht jedes Mal auf den Hauptspeicher zugegriffen werden muss, wenn Daten benötigt werden. Da ständig mit Daten gearbeitet wird, erhöht sich die Geschwindigkeit des Computers erheblich, da weniger auf den Hauptspeicher zugegriffen werden muss (der im Vergleich zur ALU und den Steuereinheiten oft langsam ist).

Den Hauptspeicher eines Computers gibt es in zwei Varianten:

  • Direktzugriffsspeicher (RAM)
  • Nur-Lese-Speicher oder ROM

Der Arbeitsspeicher (RAM) kann jederzeit von der CPU gelesen und beschrieben werden, während der Festspeicher (ROM) mit Daten und Software vorgeladen ist, die sich nie ändern, so dass die CPU nur von ihm lesen kann. ROM wird in der Regel verwendet, um die ersten Startanweisungen des Computers zu speichern. Im Allgemeinen wird der Inhalt des RAM gelöscht, wenn der Computer ausgeschaltet wird, aber das ROM behält seine Daten auf unbestimmte Zeit. In einem PC enthält das ROM ein spezielles Programm, das BIOS, das das Laden des Betriebssystems von der Festplatte in das RAM steuert, wenn der Computer eingeschaltet oder zurückgesetzt wird. In eingebetteten Computern, die häufig keine Festplattenlaufwerke haben, kann die gesamte erforderliche Software im ROM gespeichert sein. In ROM gespeicherte Software wird oft als Firmware bezeichnet, da sie eher der Hardware als der Software ähnelt. Flash-Speicher verwischt die Unterscheidung zwischen ROM und RAM, da er seine Daten auch im ausgeschalteten Zustand beibehält, aber auch wiederbeschreibbar ist. Er ist jedoch in der Regel viel langsamer als herkömmlicher ROM und RAM, so dass seine Verwendung auf Anwendungen beschränkt ist, bei denen eine hohe Geschwindigkeit nicht erforderlich ist.

In anspruchsvolleren Computern können ein oder mehrere RAM-Cache-Speicher vorhanden sein, die langsamer als Register, aber schneller als der Hauptspeicher sind. Im Allgemeinen sind Computer mit dieser Art von Cache so konzipiert, dass häufig benötigte Daten automatisch in den Cache verschoben werden, oft ohne dass der Programmierer eingreifen muss.

Grundsätzlich unterscheiden sich zwei Bauweisen: Ein Rechner ist ein Digitalrechner, wenn er mit digitalen Geräteeinheiten digitale Daten verarbeitet (also Zahlen und Textzeichen); er ist ein Analogrechner, wenn er mit analogen Geräteeinheiten analoge Daten verarbeitet (also kontinuierlich verlaufende elektrische Messgrößen wie Spannung oder Strom).

Heute werden fast ausschließlich Digitalrechner eingesetzt. Diese folgen gemeinsamen Grundprinzipien, mit denen ihre freie Programmierung ermöglicht wird. Bei einem Digitalrechner werden dabei zwei grundsätzliche Bestandteile unterschieden: Die Hardware, die aus den elektronischen, physisch anfassbaren Teilen des Computers gebildet wird, sowie die Software, die die Programmierung des Computers beschreibt.

Ein Digitalrechner besteht zunächst nur aus Hardware. Die Hardware stellt erstens einen Speicher bereit, in dem Daten portionsweise wie auf den nummerierten Seiten eines Buches gespeichert und jederzeit zur Verarbeitung oder Ausgabe abgerufen werden können. Zweitens verfügt das Rechenwerk der Hardware über grundlegende Bausteine für eine freie Programmierung, mit denen jede beliebige Verarbeitungslogik für Daten dargestellt werden kann: Diese Bausteine sind im Prinzip die Berechnung, der Vergleich und der bedingte Sprung. Ein Digitalrechner kann beispielsweise zwei Zahlen addieren, das Ergebnis mit einer dritten Zahl vergleichen und dann abhängig vom Ergebnis entweder an der einen oder der anderen Stelle des Programms fortfahren. In der Informatik wird dieses Modell theoretisch durch die eingangs erwähnte Turing-Maschine abgebildet; die Turing-Maschine stellt die grundsätzlichen Überlegungen zur Berechenbarkeit dar.

Erst durch eine Software wird der Digitalcomputer jedoch nützlich. Jede Software ist im Prinzip eine definierte, funktionale Anordnung der oben geschilderten Bausteine Berechnung, Vergleich und bedingter Sprung, wobei die Bausteine beliebig oft verwendet werden können. Diese Anordnung der Bausteine, die als Programm bezeichnet wird, wird in Form von Daten im Speicher des Computers abgelegt. Von dort kann sie von der Hardware ausgelesen und abgearbeitet werden. Dieses Funktionsprinzip der Digitalcomputer hat sich seit seinen Ursprüngen in der Mitte des 20. Jahrhunderts nicht wesentlich verändert, wenngleich die Details der Technologie erheblich verbessert wurden.

Analogrechner funktionieren nach einem anderen Prinzip. Bei ihnen ersetzen analoge Bauelemente (Verstärker, Kondensatoren) die Logikprogrammierung. Analogrechner wurden früher häufiger zur Simulation von Regelvorgängen eingesetzt (siehe: Regelungstechnik), sind heute aber fast vollständig von Digitalcomputern abgelöst worden. In einer Übergangszeit gab es auch Hybridrechner, die einen Analog- mit einem digitalen Computer kombinierten.

Mögliche Einsatzmöglichkeiten für Computer sind:

  • Mediengestaltung (Bild- und Textverarbeitung)
  • Verwaltungs- und Archivierungsanwendungen
  • Steuerung von Maschinen und Abläufen (Drucker, Produktion in der Industrie durch z. B. Roboter, eingebettete Systeme)
  • Berechnungen und Simulationen (z. B. BOINC)
  • Medienwiedergabe (Internet, Fernsehen, Videos, Unterhaltungsanwendungen wie Computerspiele, Lernsoftware)
  • Kommunikation (Chat, E-Mail, soziale Netzwerke)
  • Softwareentwicklung

Eingabe/Ausgabe (E/A)

Festplattenlaufwerke sind gängige Speichergeräte in Computern.

E/A ist das Mittel, mit dem ein Computer Informationen mit der Außenwelt austauscht. Geräte, die Eingaben oder Ausgaben für den Computer bereitstellen, werden Peripheriegeräte genannt. Zu den Peripheriegeräten eines typischen Personalcomputers gehören Eingabegeräte wie Tastatur und Maus sowie Ausgabegeräte wie Bildschirm und Drucker. Festplattenlaufwerke, Diskettenlaufwerke und optische Laufwerke dienen sowohl als Eingabe- als auch als Ausgabegeräte. Computernetzwerke sind eine weitere Form von E/A. E/A-Geräte sind oft komplexe, eigenständige Computer mit eigener CPU und eigenem Speicher. Eine Grafikverarbeitungseinheit kann fünfzig oder mehr winzige Computer enthalten, die die für die Darstellung von 3D-Grafiken erforderlichen Berechnungen durchführen. Moderne Desktop-Computer enthalten viele kleinere Computer, die die Haupt-CPU bei der Durchführung von E/A unterstützen. Ein Flachbildschirm aus dem Jahr 2016 enthält seine eigenen Computerschaltungen.

Multitasking

Auch wenn ein Computer so aussieht, als würde er nur ein einziges gigantisches Programm im Hauptspeicher ausführen, ist es bei manchen Systemen notwendig, den Anschein zu erwecken, dass mehrere Programme gleichzeitig laufen. Dies wird durch Multitasking erreicht, d. h. der Computer schaltet schnell zwischen den einzelnen Programmen hin und her. Dies geschieht u. a. durch ein spezielles Signal, die so genannte Unterbrechung, die den Computer in regelmäßigen Abständen veranlasst, die Ausführung von Befehlen an der Stelle zu stoppen, an der er sich gerade befand, und stattdessen etwas anderes zu tun. Indem er sich merkt, wo er vor der Unterbrechung gearbeitet hat, kann der Computer später zu dieser Aufgabe zurückkehren. Wenn mehrere Programme "gleichzeitig" laufen, kann der Unterbrechungsgenerator mehrere hundert Unterbrechungen pro Sekunde auslösen, die jedes Mal einen Programmwechsel bewirken. Da moderne Computer Befehle in der Regel um Größenordnungen schneller ausführen als die menschliche Wahrnehmung, kann es den Anschein haben, dass viele Programme gleichzeitig laufen, obwohl zu einem bestimmten Zeitpunkt immer nur eines ausgeführt wird. Diese Methode des Multitasking wird manchmal als "Time-Sharing" bezeichnet, da jedem Programm ein "Stück" Zeit zugewiesen wird.

Vor der Ära preiswerter Computer bestand der Hauptzweck des Multitasking darin, mehreren Personen die gemeinsame Nutzung desselben Computers zu ermöglichen. Scheinbar würde Multitasking dazu führen, dass ein Computer, der zwischen mehreren Programmen wechselt, langsamer läuft, und zwar in direktem Verhältnis zur Anzahl der ausgeführten Programme, aber die meisten Programme verbringen einen Großteil ihrer Zeit damit, auf langsame Eingabe-/Ausgabegeräte zu warten, um ihre Aufgaben zu erledigen. Wenn ein Programm darauf wartet, dass der Benutzer mit der Maus klickt oder eine Taste auf der Tastatur drückt, wird es erst dann eine "Zeitscheibe" nehmen, wenn das Ereignis, auf das es wartet, eingetreten ist. Dadurch wird Zeit für die Ausführung anderer Programme freigemacht, so dass viele Programme ohne unannehmbare Geschwindigkeitseinbußen gleichzeitig ausgeführt werden können.

Multiprocessing

Cray hat viele Supercomputer entwickelt, die das Multiprocessing stark nutzen.

Einige Computer sind so konzipiert, dass sie ihre Arbeit auf mehrere CPUs in einer Multiprozessorkonfiguration verteilen, eine Technik, die früher nur in großen und leistungsstarken Maschinen wie Supercomputern, Großrechnern und Servern eingesetzt wurde. Personalcomputer und Laptops mit mehreren Prozessoren und Kernen (mehrere CPUs auf einem einzigen integrierten Schaltkreis) sind inzwischen weit verbreitet und werden daher zunehmend auch im unteren Marktsegment eingesetzt.

Vor allem Supercomputer haben oft eine ganz eigene Architektur, die sich deutlich von der grundlegenden Speicherprogrammarchitektur und von Allzweckcomputern unterscheidet. Sie verfügen oft über Tausende von CPUs, maßgeschneiderte Hochgeschwindigkeitsverbindungen und spezialisierte Computerhardware. Solche Konstruktionen eignen sich in der Regel nur für spezielle Aufgaben, da eine umfangreiche Programmorganisation erforderlich ist, um die meisten der verfügbaren Ressourcen gleichzeitig nutzen zu können. Supercomputer werden in der Regel für groß angelegte Simulationen, Grafikrendering und Kryptografieanwendungen sowie für andere so genannte "peinlich parallele" Aufgaben eingesetzt.

Software

Software bezieht sich auf Teile des Computers, die keine materielle Form haben, wie Programme, Daten, Protokolle usw. Software ist der Teil eines Computersystems, der aus kodierten Informationen oder Computeranweisungen besteht, im Gegensatz zu der physischen Hardware, aus der das System aufgebaut ist. Computersoftware umfasst Computerprogramme, Bibliotheken und zugehörige nicht ausführbare Daten wie Online-Dokumentation oder digitale Medien. Sie wird häufig in Systemsoftware und Anwendungssoftware unterteilt. Computerhardware und -software bedingen sich gegenseitig, und keine von beiden kann realistischerweise allein verwendet werden. Wenn Software in Hardware gespeichert ist, die nicht einfach geändert werden kann, wie z. B. das BIOS-ROM in einem IBM-PC-kompatiblen Computer, wird sie manchmal als "Firmware" bezeichnet.

Betriebssystem /Systemsoftware Unix und BSD UNIX System V, IBM AIX, HP-UX, Solaris (SunOS), IRIX, Liste der BSD-Betriebssysteme
Linux Liste der Linux-Distributionen, Vergleich der Linux-Distributionen
Microsoft Windows Windows 95, Windows 98, Windows NT, Windows 2000, Windows ME, Windows XP, Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10, Windows 11
DOS 86-DOS (QDOS), IBM PC DOS, MS-DOS, DR-DOS, FreeDOS
Macintosh-Betriebssysteme Klassisches Mac OS, macOS (früher OS X und Mac OS X)
Eingebettet und in Echtzeit Liste der eingebetteten Betriebssysteme
Experimentelle Amoeba, Oberon-AOS, Bluebottle, A2, Plan 9 von Bell Labs
Bibliothek Multimedia DirectX, OpenGL, OpenAL, Vulkan (API)
Programmier-Bibliothek C-Standardbibliothek, Standardvorlagenbibliothek
Daten Protokoll TCP/IP, Kermit, FTP, HTTP, SMTP
Dateiformat HTML, XML, JPEG, MPEG, PNG
Benutzeroberfläche Grafische Benutzeroberfläche (WIMP) Microsoft Windows, GNOME, KDE, QNX Photon, CDE, GEM, Aqua
Textbasierte Benutzeroberfläche Befehlszeilenschnittstelle, Textbenutzerschnittstelle
Anwendungssoftware Office-Paket Textverarbeitung, Desktop-Publishing, Präsentationsprogramm, Datenbankverwaltungssystem, Terminplanung und Zeitmanagement, Tabellenkalkulation, Buchhaltungssoftware
Internet-Zugang Browser, E-Mail-Client, Webserver, Mail Transfer Agent, Instant Messaging
Konstruktion und Fertigung Computergestütztes Design, Computergestützte Fertigung, Anlagenmanagement, Roboterfertigung, Lieferkettenmanagement
Grafiken Rastergrafik-Editor, Vektorgrafik-Editor, 3D-Modellierer, Animations-Editor, 3D-Computergrafik, Videobearbeitung, Bildbearbeitung
Audio Digitaler Audio-Editor, Audiowiedergabe, Mischen, Audiosynthese, Computermusik
Software-Entwicklung Compiler, Assembler, Interpreter, Debugger, Texteditor, Integrierte Entwicklungsumgebung, Software-Leistungsanalyse, Revisionskontrolle, Software-Konfigurationsmanagement
Bildung Edutainment, Lernspiel, Serious Game, Flugsimulator
Spiele Strategie, Arcade, Puzzle, Simulation, Ego-Shooter, Plattform, Massively Multiplayer, Interaktive Fiktion
Sonstiges Künstliche Intelligenz, Antivirus-Software, Malware-Scanner, Installer/Paketverwaltungssysteme, Dateimanager

Sprachen

Es gibt Tausende verschiedener Programmiersprachen - einige sind für allgemeine Zwecke gedacht, andere nur für hochspezialisierte Anwendungen.

Programmiersprachen
Listen von Programmiersprachen Zeitleiste der Programmiersprachen, Liste der Programmiersprachen nach Kategorie, Generationsliste der Programmiersprachen, Liste der Programmiersprachen, Nicht-englischsprachige Programmiersprachen
Gebräuchliche Assemblersprachen ARM, MIPS, x86
Gebräuchliche Hochsprachen Ada, BASIC, C, C++, C#, COBOL, Fortran, PL/I, REXX, Java, Lisp, Pascal, Object Pascal
Häufig verwendete Skriptsprachen Bourne-Skript, JavaScript, Python, Ruby, PHP, Perl

Programme

Das entscheidende Merkmal moderner Computer, das sie von allen anderen Maschinen unterscheidet, ist, dass sie programmiert werden können. Das bedeutet, dass dem Computer eine Art von Anweisungen (das Programm) gegeben werden kann, die er dann verarbeitet. Moderne Computer, die auf der von-Neumann-Architektur basieren, haben oft einen Maschinencode in Form einer imperativen Programmiersprache. In der Praxis kann ein Computerprogramm aus wenigen Anweisungen bestehen oder sich auf viele Millionen Anweisungen erstrecken, wie z. B. die Programme für Textverarbeitungsprogramme und Webbrowser. Ein typischer moderner Computer kann Milliarden von Anweisungen pro Sekunde ausführen (Gigaflops) und macht über viele Jahre hinweg nur selten einen Fehler. Für große Computerprogramme, die aus mehreren Millionen Befehlen bestehen, können Teams von Programmierern Jahre brauchen, um sie zu schreiben, und aufgrund der Komplexität der Aufgabe enthalten sie mit ziemlicher Sicherheit Fehler.

Architektur gespeicherter Programme

Nachbildung des Manchester Baby, des ersten elektronischen Speicherprogrammrechners der Welt, im Museum of Science and Industry in Manchester, England

Dieser Abschnitt gilt für die meisten gängigen Computer mit RAM-Speicher.

In den meisten Fällen sind die Computeranweisungen einfach: eine Zahl zu einer anderen addieren, einige Daten von einem Ort zu einem anderen verschieben, eine Nachricht an ein externes Gerät senden, usw. Diese Anweisungen werden aus dem Speicher des Computers gelesen und im Allgemeinen in der angegebenen Reihenfolge ausgeführt. In der Regel gibt es jedoch spezielle Befehle, die den Computer anweisen, zu einer anderen Stelle im Programm vor- oder zurückzuspringen und die Ausführung von dort aus fortzusetzen. Diese Befehle werden "Sprungbefehle" (oder Verzweigungen) genannt. Außerdem können Sprungbefehle an Bedingungen geknüpft sein, so dass je nach dem Ergebnis einer früheren Berechnung oder eines externen Ereignisses unterschiedliche Befehlsfolgen verwendet werden können. Viele Computer unterstützen Unterprogramme direkt, indem sie eine Art Sprungbefehl bereitstellen, der sich die Stelle "merkt", von der aus er gesprungen ist, und einen weiteren Befehl, um zu dem auf diesen Sprungbefehl folgenden Befehl zurückzukehren.

Die Programmausführung kann mit dem Lesen eines Buches verglichen werden. Während ein Mensch normalerweise jedes Wort und jede Zeile der Reihe nach liest, springt er manchmal zu einer früheren Stelle im Text zurück oder überspringt Abschnitte, die nicht von Interesse sind. In ähnlicher Weise kann ein Computer manchmal zurückgehen und die Anweisungen in einem bestimmten Abschnitt des Programms wieder und wieder wiederholen, bis eine interne Bedingung erfüllt ist. Dies wird als Kontrollfluss innerhalb des Programms bezeichnet und ermöglicht es dem Computer, Aufgaben wiederholt ohne menschliches Eingreifen auszuführen.

Zum Vergleich: Eine Person, die einen Taschenrechner benutzt, kann eine grundlegende Rechenoperation wie das Addieren zweier Zahlen mit nur wenigen Tastendrücken durchführen. Um jedoch alle Zahlen von 1 bis 1.000 zu addieren, bräuchte man Tausende von Tastendrücken und viel Zeit, wobei man mit ziemlicher Sicherheit einen Fehler machen würde. Andererseits kann ein Computer so programmiert werden, dass er dies mit ein paar einfachen Anweisungen tun kann. Das folgende Beispiel ist in der MIPS-Assemblersprache geschrieben:

  beginnen:
  addi $8, $0, 0 # Initialisierung der Summe auf 0
  addi $9, $0, 1 # erste zu addierende Zahl = 1 setzen
  Schleife:
  slti $10, $9, 1000 # prüfen, ob die Zahl kleiner als 1000 ist
  beq $10, $0, finish # wenn ungerade Zahl größer als n ist, dann exit
  add $8, $8, $9 # Summe aktualisieren
  addi $9, $9, 1 # nächste Zahl ermitteln
  j loop # Wiederholung des Summiervorgangs
  beenden:
  add $2, $8, $0 # Summe in Ausgangsregister schreiben <span title="Aus: Englische Wikipedia, Abschnitt &quot;Stored program architecture&quot;" class="plainlinks">[https://en.wikipedia.org/wiki/Computer#Stored_program_architecture <span style="color:#dddddd">ⓘ</span>]</span>

Sobald der Computer angewiesen wird, dieses Programm auszuführen, führt er die sich wiederholende Additionsaufgabe ohne weiteres menschliches Zutun aus. Er wird fast nie einen Fehler machen, und ein moderner PC kann die Aufgabe in einem Bruchteil einer Sekunde erledigen.

Maschinencode

In den meisten Computern werden die einzelnen Befehle als Maschinencode gespeichert, wobei jedem Befehl eine eindeutige Nummer (sein Operationscode oder kurz Opcode) zugeordnet wird. Der Befehl, zwei Zahlen zu addieren, hat einen Opcode, der Befehl, sie zu multiplizieren, hat einen anderen Opcode usw. Die einfachsten Computer sind in der Lage, eine Handvoll verschiedener Befehle auszuführen; die komplexeren Computer haben mehrere hundert zur Auswahl, jeder mit einem eindeutigen numerischen Code. Da der Speicher des Computers in der Lage ist, Zahlen zu speichern, kann er auch die Befehlscodes speichern. Daraus ergibt sich die wichtige Tatsache, dass ganze Programme (die nur Listen dieser Befehle sind) als Listen von Zahlen dargestellt werden können und selbst im Computer auf die gleiche Weise wie numerische Daten manipuliert werden können. Das grundlegende Konzept der Speicherung von Programmen im Speicher des Computers zusammen mit den Daten, auf denen sie arbeiten, ist der Kern der von-Neumann-Architektur oder der Architektur der gespeicherten Programme. In einigen Fällen kann ein Computer sein Programm ganz oder teilweise in einem Speicher ablegen, der von den Daten, die er verarbeitet, getrennt ist. Dies wird als Harvard-Architektur bezeichnet, nach dem Harvard Mark I Computer. Moderne von-Neumann-Computer weisen einige Züge der Harvard-Architektur auf, z. B. in den CPU-Caches.

Es ist zwar möglich, Computerprogramme als lange Listen von Zahlen (Maschinensprache) zu schreiben, und diese Technik wurde auch bei vielen frühen Computern verwendet, doch ist dies in der Praxis äußerst mühsam und potenziell fehleranfällig, insbesondere bei komplizierten Programmen. Stattdessen kann jeder Grundbefehl mit einem kurzen Namen versehen werden, der seine Funktion angibt und leicht zu merken ist - eine Mnemonik wie ADD, SUB, MULT oder JUMP. Diese Mnemotechniken werden als Assemblersprache des Computers bezeichnet. Die Umwandlung von in Assemblersprache geschriebenen Programmen in etwas, das der Computer tatsächlich verstehen kann (Maschinensprache), erfolgt in der Regel durch ein Computerprogramm namens Assembler.

Eine Lochkarte aus den 1970er Jahren, die eine Zeile aus einem Fortran-Programm enthält. Auf der Karte steht: "Z(1) = Y + W(1)" und ist zur Identifizierung mit "PROJ039" beschriftet.

Programmiersprache

Programmiersprachen bieten verschiedene Möglichkeiten, Programme zu spezifizieren, die von Computern ausgeführt werden können. Im Gegensatz zu natürlichen Sprachen sind Programmiersprachen so konzipiert, dass sie keine Mehrdeutigkeit zulassen und prägnant sind. Sie sind reine Schriftsprachen und lassen sich oft nur schwer laut lesen. Sie werden in der Regel entweder von einem Compiler oder einem Assembler in Maschinencode übersetzt, bevor sie ausgeführt werden, oder direkt zur Laufzeit von einem Interpreter übersetzt. Manchmal werden Programme auch mit einer Mischform der beiden Techniken ausgeführt.

Low-Level-Sprachen

Maschinensprachen und die Assemblersprachen, die sie repräsentieren (zusammenfassend als Low-Level-Programmiersprachen bezeichnet), sind im Allgemeinen auf die jeweilige Architektur der Zentraleinheit (CPU) eines Computers zugeschnitten. So kann beispielsweise eine CPU mit ARM-Architektur (wie sie in einem Smartphone oder einem tragbaren Videospiel zu finden ist) nicht die Maschinensprache einer x86-CPU verstehen, die in einem PC zu finden sein könnte. In der Vergangenheit wurden zahlreiche andere CPU-Architekturen entwickelt und häufig verwendet, insbesondere die MOS Technology 6502 und 6510 sowie der Zilog Z80.

Hochsprachen

Obwohl das Schreiben langer Programme in Assemblersprache wesentlich einfacher ist als in Maschinensprache, ist es oft schwierig und auch fehleranfällig. Daher werden die meisten praktischen Programme in abstrakteren Hochsprachen geschrieben, die die Bedürfnisse des Programmierers besser ausdrücken können (und dadurch helfen, Programmierfehler zu reduzieren). Hochsprachen werden in der Regel mit Hilfe eines anderen Computerprogramms, eines so genannten Compilers, in Maschinensprache (oder manchmal in Assemblersprache und dann in Maschinensprache) "übersetzt". Hochsprachen haben weniger mit der Funktionsweise des Zielcomputers zu tun als Assemblersprache, sondern eher mit der Sprache und der Struktur des Problems bzw. der Probleme, die das endgültige Programm lösen soll. Daher ist es oft möglich, verschiedene Compiler zu verwenden, um dasselbe Hochsprachenprogramm in die Maschinensprache vieler verschiedener Computertypen zu übersetzen. Dies ist ein Teil der Mittel, mit denen Software wie Videospiele für verschiedene Computerarchitekturen wie Personal Computer und verschiedene Videospielkonsolen verfügbar gemacht werden können.

Programmentwurf

Der Programmentwurf kleiner Programme ist relativ einfach und umfasst die Analyse des Problems, die Erfassung der Eingaben, die Verwendung der Programmierkonstrukte in den Sprachen, die Entwicklung oder Verwendung etablierter Verfahren und Algorithmen, die Bereitstellung von Daten für Ausgabegeräte und gegebenenfalls Lösungen für das Problem. Je größer und komplexer die Probleme werden, desto mehr kommen Funktionen wie Unterprogramme, Module, formale Dokumentation und neue Paradigmen wie die objektorientierte Programmierung zum Einsatz. Große Programme mit Tausenden von Codezeilen und mehr erfordern formale Software-Methodologien. Die Aufgabe, große Softwaresysteme zu entwickeln, stellt eine große intellektuelle Herausforderung dar. Die Herstellung von Software mit einer akzeptablen Zuverlässigkeit innerhalb eines vorhersehbaren Zeitplans und Budgets ist seit jeher schwierig; die akademische und professionelle Disziplin des Software-Engineering konzentriert sich speziell auf diese Herausforderung.

Fehler

Der erste Computerfehler, eine Motte, die sich in einem Relais des Harvard Mark II-Computers verfangen hatte

Fehler in Computerprogrammen werden als "Bugs" bezeichnet. Sie können harmlos sein und die Nützlichkeit des Programms nicht beeinträchtigen oder nur subtile Auswirkungen haben. In einigen Fällen können sie jedoch dazu führen, dass das Programm oder das gesamte System "hängen" bleibt und nicht mehr auf Eingaben wie Mausklicks oder Tastatureingaben reagiert, dass es vollständig versagt oder abstürzt. Ansonsten harmlose Bugs können manchmal von skrupellosen Benutzern für böswillige Zwecke ausgenutzt werden, indem sie einen Exploit schreiben, d. h. einen Code, der darauf abzielt, einen Fehler auszunutzen und die ordnungsgemäße Ausführung eines Computers zu stören. Bugs sind normalerweise nicht die Schuld des Computers. Da Computer lediglich die Anweisungen ausführen, die ihnen gegeben werden, sind Fehler fast immer das Ergebnis eines Programmierers oder eines Versehens beim Entwurf des Programms. Admiral Grace Hopper, ein amerikanischer Informatiker und Entwickler des ersten Compilers, soll den Begriff "Bugs" erstmals im Zusammenhang mit Computern verwendet haben, nachdem im September 1947 eine tote Motte gefunden wurde, die ein Relais im Harvard Mark II Computer kurzgeschlossen hatte.

Netzwerke und das Internet

Visualisierung eines Teils der Routen im Internet

Seit den 1950er Jahren werden Computer zur Koordinierung von Informationen zwischen mehreren Standorten eingesetzt. Das SAGE-System des US-Militärs war das erste groß angelegte Beispiel für ein solches System, das zu einer Reihe von kommerziellen Spezialsystemen wie Sabre führte. In den 1970er Jahren begannen Computeringenieure an Forschungseinrichtungen in den Vereinigten Staaten damit, ihre Computer mit Hilfe der Telekommunikationstechnologie miteinander zu verbinden. Die Bemühungen wurden von der ARPA (heute DARPA) finanziert, und das daraus entstandene Computernetz wurde ARPANET genannt. Die Technologien, die das Arpanet ermöglichten, verbreiteten sich und wurden weiterentwickelt.

Mit der Zeit verbreitete sich das Netz über akademische und militärische Einrichtungen hinaus und wurde als Internet bekannt. Die Entstehung von Netzwerken bedeutete eine Neudefinition der Natur und der Grenzen des Computers. Computer-Betriebssysteme und -Anwendungen wurden dahingehend geändert, dass sie die Möglichkeit boten, die Ressourcen anderer Computer im Netz, wie z. B. Peripheriegeräte, gespeicherte Informationen usw., als Erweiterung der Ressourcen eines einzelnen Computers zu definieren und darauf zuzugreifen. Ursprünglich standen diese Möglichkeiten vor allem Menschen zur Verfügung, die in High-Tech-Umgebungen arbeiteten, aber in den 1990er Jahren führte die Verbreitung von Anwendungen wie E-Mail und World Wide Web in Verbindung mit der Entwicklung billiger, schneller Netzwerktechnologien wie Ethernet und ADSL dazu, dass die Vernetzung von Computern fast allgegenwärtig wurde. Tatsächlich nimmt die Zahl der vernetzten Computer rasant zu. Ein sehr großer Teil der Personalcomputer stellt regelmäßig eine Verbindung zum Internet her, um zu kommunizieren und Informationen zu empfangen. Die "drahtlose" Vernetzung, bei der häufig Mobilfunknetze genutzt werden, hat dazu geführt, dass die Vernetzung auch in mobilen Computerumgebungen immer allgegenwärtiger wird.

Unkonventionelle Computer

Ein Computer muss weder elektronisch sein, noch einen Prozessor, einen Arbeitsspeicher oder eine Festplatte haben. Während der allgemeine Sprachgebrauch das Wort "Computer" als Synonym für einen elektronischen Personalcomputer verwendet, lautet die moderne Definition eines Computers wörtlich: "Ein Gerät, das Berechnungen durchführt, insbesondere eine programmierbare [in der Regel] elektronische Maschine, die mathematische oder logische Hochgeschwindigkeitsoperationen durchführt oder Informationen zusammenstellt, speichert, korreliert oder anderweitig verarbeitet." Jedes Gerät, das Informationen verarbeitet, gilt als Computer, insbesondere wenn die Verarbeitung zielgerichtet ist.

Zukunft

Es wird aktiv daran geforscht, Computer aus vielen vielversprechenden neuen Technologien wie optischen Computern, DNA-Computern, neuronalen Computern und Quantencomputern herzustellen. Die meisten Computer sind universell einsetzbar und in der Lage, jede berechenbare Funktion zu berechnen, und werden nur durch ihre Speicherkapazität und Arbeitsgeschwindigkeit begrenzt. So können Quantencomputer zum Beispiel einige moderne Verschlüsselungsalgorithmen (durch Quantenfaktorisierung) sehr schnell knacken.

Paradigmen der Computerarchitektur

Es gibt viele Arten von Computerarchitekturen:

  • Quantencomputer vs. Chemischer Computer
  • Skalarprozessor vs. Vektorprozessor
  • Computer mit uneinheitlichem Speicherzugriff (NUMA)
  • Registermaschine vs. Stapelmaschine
  • Harvard-Architektur vs. von-Neumann-Architektur
  • Zelluläre Architektur

Von all diesen abstrakten Maschinen verspricht ein Quantencomputer am meisten, die Datenverarbeitung zu revolutionieren. Logikgatter sind eine gängige Abstraktion, die auf die meisten der oben genannten digitalen oder analogen Paradigmen angewendet werden kann. Die Fähigkeit, Listen von Anweisungen, so genannte Programme, zu speichern und auszuführen, macht Computer extrem vielseitig und unterscheidet sie von Taschenrechnern. Die Church-Turing-These ist eine mathematische Erklärung für diese Vielseitigkeit: Jeder Computer mit einer Mindestfähigkeit (Turing-Vollständigkeit) ist grundsätzlich in der Lage, dieselben Aufgaben auszuführen, die auch jeder andere Computer ausführen kann. Daher kann jeder Computertyp (Netbook, Supercomputer, zellulärer Automat usw.) die gleichen Rechenaufgaben ausführen, wenn er genügend Zeit und Speicherkapazität hat.

Zukunftsperspektiven

Auch in wenig entwickelten Ländern immer wichtiger: Computerkurs in Osttimor

Zukünftige Entwicklungen bestehen voraussichtlich aus der möglichen Nutzung biologischer Systeme (Biocomputer), weiteren Verknüpfungen zwischen biologischer und technischer Informationsverarbeitung, optischer Signalverarbeitung und neuen physikalischen Modellen (Quantencomputer).

Ein Megatrend ist derzeit (2017) die Entwicklung künstlicher Intelligenz. Hier simuliert man die Vorgänge im menschlichen Gehirn und erschafft so selbstlernende Computer, die nicht mehr wie bislang programmiert werden, sondern mit Daten trainiert werden ähnlich einem Gehirn. Den Zeitpunkt, an dem künstliche Intelligenz die menschliche Intelligenz übertrifft, nennt man technologische Singularität. Künstliche Intelligenz wird heute (2017) bereits in vielen Anwendungen, auch alltäglichen, eingesetzt (s. Anwendungen der künstlichen Intelligenz). Hans Moravec bezifferte die Rechenleistung des Gehirns auf 100 Teraflops, Raymond Kurzweil auf 10.000 Teraflops. Diese Rechenleistung haben Supercomputer bereits deutlich überschritten. Zum Vergleich liegt eine Grafikkarte für 800 Euro (5/2016) bei einer Leistung von 10 Teraflops. Vier Jahre später (Dezember 2020) besitzen bereits Videospielkonsolen für ca. 500 € vergleichbare Leistung.

Für weitere Entwicklungen und Trends, von denen viele noch den Charakter von Schlagwörtern bzw. Hypes haben, siehe Autonomic Computing (= Rechnerautonomie), Grid Computing, Cloud Computing, Pervasive Computing, ubiquitäres Computing (= Rechnerallgegenwart) und Wearable Computing.

Die weltweite Websuche nach dem Begriff „Computer“ nimmt seit Beginn der Statistik 2004 stetig ab. In den zehn Jahren bis 2014 war diese Zugriffszahl auf ein Drittel gefallen.

Ein Computer löst Probleme genau so, wie er programmiert ist, ohne Rücksicht auf Effizienz, alternative Lösungen, mögliche Abkürzungen oder mögliche Fehler im Code. Computerprogramme, die lernen und sich anpassen, sind Teil des aufkommenden Bereichs der künstlichen Intelligenz und des maschinellen Lernens. Auf künstlicher Intelligenz basierende Produkte lassen sich im Allgemeinen in zwei Hauptkategorien einteilen: regelbasierte Systeme und Systeme zur Mustererkennung. Regelbasierte Systeme versuchen, die von menschlichen Experten verwendeten Regeln darzustellen, und sind in der Regel teuer in der Entwicklung. Musterbasierte Systeme verwenden Daten über ein Problem, um Schlussfolgerungen zu ziehen. Beispiele für musterbasierte Systeme sind Spracherkennung, Schrifterkennung, Übersetzung und das aufkommende Gebiet des Online-Marketings.

Berufe und Organisationen

Da sich der Einsatz von Computern in der gesamten Gesellschaft verbreitet hat, gibt es eine wachsende Zahl von Berufen, die mit Computern zu tun haben.

Computerbezogene Berufe
Hardware-bezogen Elektrotechnik, Elektronik, Computertechnik, Telekommunikationstechnik, optische Technik, Nanotechnik
Software-bezogen Informatik, Computertechnik, Desktop-Publishing, Mensch-Computer-Interaktion, Informationstechnologie, Informationssysteme, Computerwissenschaften, Softwaretechnik, Videospielindustrie, Webdesign

Die Notwendigkeit, dass Computer gut zusammenarbeiten und Informationen austauschen können, hat zahlreiche Standardisierungsorganisationen, Clubs und Gesellschaften formeller und informeller Natur hervorgebracht.

Organisationen
Normengruppen ANSI, IEC, IEEE, IETF, ISO, W3C
Fachgesellschaften ACM, AIS, IET, IFIP, BCS
Freie/Open-Source-Software-Gruppen Stiftung für freie Software, Mozilla-Stiftung, Apache-Software-Stiftung

Begriffsgeschichte

Rechner

Der deutsche Begriff Rechner ist abgeleitet vom Verb rechnen. Zur Etymologie siehe Rechnen#Etymologie.

Softwarearchitektur

Die Von-Neumann-Architektur ist gewissermaßen die unterste Ebene des Funktionsprinzips eines Computers oberhalb der elektrophysikalischen Vorgänge in den Leiterbahnen. Die ersten Computer wurden auch tatsächlich so programmiert, dass man die Nummern von Befehlen und von bestimmten Speicherzellen so, wie es das Programm erforderte, nacheinander in die einzelnen Speicherzellen schrieb. Um diesen Aufwand zu reduzieren, wurden Programmiersprachen entwickelt. Diese generieren die Zahlen innerhalb der Speicherzellen, die der Computer letztlich als Programm abarbeitet, aus Textbefehlen heraus automatisch, die auch für den Programmierer einen semantisch verständlichen Inhalt darstellen (z. B. GOTO für den „unbedingten Sprung“).

Später wurden bestimmte sich wiederholende Prozeduren in so genannten Bibliotheken zusammengefasst, um nicht jedes Mal das Rad neu erfinden zu müssen, z. B.: das Interpretieren einer gedrückten Tastaturtaste als Buchstabe „A“ und damit als Zahl „65“ (im ASCII-Code). Die Bibliotheken wurden in übergeordneten Bibliotheken gebündelt, welche Unterfunktionen zu komplexen Operationen verknüpfen (Beispiel: die Anzeige eines Buchstabens „A“, bestehend aus 20 einzelnen schwarzen und 50 einzelnen weißen Punkten auf dem Bildschirm, nachdem der Benutzer die Taste „A“ gedrückt hat).

In einem modernen Computer arbeiten sehr viele dieser Programmebenen über- bzw. untereinander. Komplexere Aufgaben werden in Unteraufgaben zerlegt, die von anderen Programmierern bereits bearbeitet wurden, die wiederum auf die Vorarbeit weiterer Programmierer aufbauen, deren Bibliotheken sie verwenden. Auf der untersten Ebene findet sich aber immer der so genannte Maschinencode – jene Abfolge von Zahlen, mit der der Computer auch tatsächlich gesteuert wird.

Computersystem

Als Computersystem bezeichnet man:

  • ein Netzwerk oder einen Verbund aus mehreren Computern, die individuell gesteuert werden und auf gemeinsam genutzte Daten und Geräte zugreifen können;
  • die einen einzelnen voll funktionstüchtigen Rechner in ihrem Zusammenspiel bedingende Gesamtheit von externen und internen Komponenten, d. h. Hardware, Software wie auch angeschlossenen Peripheriegeräten;
  • ein System von Programmen zur Steuerung und Überwachung von Computern.

Arten

Basierend auf Arbeitsweise des Computers

  • Analogrechner
  • Digitalrechner
  • Hybridrechner

Weltweite Marktanteile der Computerhersteller

Verkaufszahlen und Marktanteile der Computerhersteller nach Angaben des Marktforschungsunternehmens Gartner Inc., basierend auf Verkaufszahlen von Desktop-Computer, Notebooks, Netbooks, aber ohne Tabletcomputer, an Endkonsumenten:

Rang Hersteller Land Verkaufszahlen 2017 Marktanteil 2017 Verkaufszahlen 2011 Marktanteil 2011 Verkaufszahlen 2010 Marktanteil 2010 Verkaufszahlen 2009 Marktanteil 2009
1. Hewlett-Packard Flag of the United States.svg 55.179.000 21,0 % 60.554.726 17,2 % 62.741.274 17,9 % 58.942.530 19,1 %
2. Lenovo Flag of the People's Republic of China.svg 54.669.000 20,8 % 45.703.863 13,0 % 38.180.444 10,9 % 24.735.404 8,0 %
3. Dell Flag of the United States.svg 39.793.000 15,1 % 42.864.759 12,1 % 42.119.272 12,0 % 37.353.774 12,1 %
4. Apple Flag of the United States.svg 18.963.000 7,2 % unter Sonstige unter Sonstige unter Sonstige unter Sonstige unter Sonstige unter Sonstige
5. Asus Flag of the Republic of China.svg 17.952.000 6,8 % 20.768.465 5,9 % 18.902.723 5,4 % unter Sonstige unter Sonstige
6. Acer-Gruppe Flag of the Republic of China.svg 17.087.000 6,5 % 39.415.381 11,2 % 48.758.542 13,9 % 39.783.933 12,9 %
Toshiba Flag of Japan.svg unter Sonstige unter Sonstige unter Sonstige unter Sonstige 19.011.752 5,4 % 15.499.805 5,0 %
Sonstige Hersteller 59.034.000 22,5 % 143.499.792 40,6 % 128.862.141 34,5 % 132.026.226 42,9 %
Insgesamt 262.676.000 100 % 352.806.984 100 % 350.900.332 100 % 308.341.673 100 %

Bekannte Computerhersteller

Aktuelle Hersteller

  •  Acer (mit Gateway, Packard Bell, eMachines)
  •  :Apple
  •  ASRock
  •  Asus
  •  BenQ
  •  :Bluechip Computer
  •  Compal
  •  :Cray
  •  :Dell
  •  :Fujitsu
  •  Gigabyte
  •  Hasee
  •  HCL
  •  :HP Inc.
  •  :IBM
  •  Lenovo
  •  MDG Computers
  •  :Medion
  •  MSI
  •  :NEC Corporation
  •  :Olivetti
  •  Panasonic
  •  Positivo
  •  Quanta Computer
  • :Rover Computers
  •  Samsung
  •  :Sony
  •  :Toshiba
  •  :Unisys
  •  Vestel
  •  :ViewSonic
  •  Wortmann

Bekannte ehemalige Computerhersteller

  •  :Acorn
  •  :Amdahl Corporation
  •  :Amstrad
  •  :Atari
  •  :Commodore International
  •  :Compaq
  •  :Control Data Corporation
  •  :Digital Equipment Corporation (DEC)
  •  ELWRO
  •  :Diehl-Daten-Systeme
  •  :Dietz-Computer-Systeme
  •  :Escom
  • Japan/ :Fujitsu Siemens Computers
  •  :Gericom
  •  :Kaypro
  •  :Maxdata
  •  :Mohawk Data Siences Corporation (MDS)
  •  :NeXT
  •  Norsk Data
  •  :Nixdorf Computer
  •  :Schneider Computer Division
  •  :Sinclair Research
  •  Waibel
  •  :Zuse KG
  •  :Robotron