Die Welt der Computerei zerfällt in Hardware auf der einen Seite und Software auf der anderen. Hardware ist physisch und kann somit anfasst werden. Man kann sie in einer Box im Laden kaufen und nach Hause tragen. Versorgt man sie mit Strom, kann der Spass beginnen. Aber eine Komponente fehlt da noch: die Software. Ohne entsprechende Software ist die teuerste Hardware sinnlos.

Software ist nun von Hause aus nicht-physisch. Man kann sie natürlich auf physischen Medien abspeichern, aber sie ist an und für sich nur eine Menge von Zahlen. Maschinensprache und Daten, die der Rechner verstehen kann. Ein Mensch müsste diese erst mühsam entziffern, wie eine Sprache der Vorgeschichte.

Als Ingenieur kann ich euch sagen, dass der größte Unterschied zwischen Hard- und Software darin besteht, wie einfach man Fehler korrigieren kann. Das geht soweit, dass Intel eine ganze CPU Auslieferung wegen eines Fehlers zurücknehmen musste. Peinlich, aber bei der Komplexität der modernen Hardware nicht auszuschließen. Viel Intelligenz und Arbeit fließt tagtäglich in die Entwicklung von besseren Fehlererkennungs- und -vermeidungsstrategien. Das geht von automatisierten Tests in der Chipfabrik bis zu Selbstchecks der Hardware und optimalerweise ist die Hardware so gebaut, dass sie kleine Fehler ausgleichen kann. Im Wesentlichen ist das dann eine finanzielle Abwägungsfrage, wieviel Ausschuss man sich erlauben möchte.

Software ist nun nachträglich heilbar, man kann Updates ausliefern. Moderne Plattformen, wie die App Stores oder Steam, machen das auch noch ganz einfach für den Anwender.

Auf einer fundamentalen Ebene ist Hardware- und Softwarenentwicklung allerdings beides ein Thema der Informatik und hat so viele Ähnlichkeiten. So werden Chips auch programmiert, also die Hardware-Logiken. Stichwort sind hier Hardware-Beschreibungs-Sprachen wie Verilog oder VHDL. Diese haben wie die Programmiersprachen für Software auch Integrierte Entwicklungsumgebungen und andere Tools.

Wir wollen uns also merken: Hardware ist physisch, Software besteht aus Informationen. Beides wirkt zusammen und ist in der Entwicklung nicht so weit voneinander entfernt. Teilweise wird auf eine Weise entwickelt, dass Hard- und Software für ein System gleichzeitig erstellt werden – das ist das sogenannte Hardware-Software-Kodesign.

Wir haben nun einen Einblick in das Thema Hardware-und-Software erhalten und kennen nun einige Unterschiede und Gemeinsamkeiten.