1 Punkte von GN⁺ 2024-02-13 | 1 Kommentare | Auf WhatsApp teilen

Die Geschichte der Entwicklung des Multics-Betriebssystems

  • André Bensoussan, der am Multics-Betriebssystem arbeitete, war für die wesentlichen Änderungen am Dateisystem verantwortlich.
  • Der VTOC-Manager ist ein Subsystem, das die Übertragung von Dateiinformationen zwischen Festplatte und Speicher, die Verwaltung des Shared-Memory-Buffer-Pools sowie die Verwaltung des Informationsraums auf der Festplatte übernimmt.
  • André war für Entwurf, Implementierung und Test des VTOC-Managers zuständig und fertigte im Zuge der Entwurfsarbeit zahlreiche Diagramme an.

Entwicklungsprozess und Erfolg

  • Der Projektkoordinator Tom Van Vleck war wegen des Zeitplans besorgt, beruhigte sich jedoch, als André mit dem Schreiben des Codes begann.
  • André schrieb den Code mit dem Bleistift statt an einem Computerterminal, lehnte sogar Hilfe beim Tippen ab und erledigte alle Arbeiten selbst.
  • Am Ende gab er den sauber mit Bleistift geschriebenen Code in das Terminal ein und versuchte zu kompilieren; nach der Korrektur einiger Tippfehler wurde er erfolgreich kompiliert.
  • Nach der Integration in das System und den Tests funktionierte der VTOC-Manager von Anfang an perfekt.

Das Geheimnis von Andrés Erfolg

  • André schrieb mit dem Bleistift als einzigem Werkzeug ein perfektes Programm.
  • Der einzige im VTOC-Manager gefundene Bug ging auf einen Fehler von Tom Van Vleck zurück, der die Reihenfolge der Aufrufe in der Fehlerbehandlungsprozedur falsch angegeben hatte.
  • Andrés Arbeitsweise wurde als Geschichte über Software Engineering in der April-Ausgabe 1994 von IEEE Computer vorgestellt und im November 2003 aktualisiert.

Meinung von GN⁺

  • Die Geschichte von André Bensoussans Entwicklung des Multics-Betriebssystems zeigt, wie gründlicher Entwurf und Konzentration zu einem perfekten Ergebnis führen können.
  • Verglichen mit den komplexen modernen Werkzeugen der Softwareentwicklung unterstreicht die traditionelle Methode mit nur Bleistift und Papier die Bedeutung eines auf die Grundlagen fokussierten Ansatzes.
  • Diese Geschichte ist ein gutes Beispiel dafür, wie wichtig sorgfältige Vorarbeit und Tests im Software Engineering sind, und vermittelt auch für die Ingenieursausbildung eine wichtige Lehre.

1 Kommentare

 
GN⁺ 2024-02-13
Hacker-News-Kommentare
  • Zusammenfassung des ersten Kommentars:

    • Klare Anforderungen: Software hat weniger Bugs und ist schneller, weil es klar definierte Anforderungen gibt. Bei heutiger Software ist oft unklar, was gebaut werden soll, und durch die "agile" Vorgehensweise ändert es sich ständig. Wenn man Entwickler:innen eine klare API und gut definierte Kriterien gibt, können die meisten effizienten Code schreiben.
  • Zusammenfassung des zweiten Kommentars:

    • Die Fähigkeiten sowjetischer Programmierer: Aus der Erfahrung, mit einem Flüchtling aus der Sowjetunion gearbeitet zu haben, seien sowjetische Programmierer deshalb so gut gewesen, weil der Zugang zu Computern stark eingeschränkt war. Man musste mit Papier und Bleistift programmieren, weshalb man sich bemühte, es von Anfang an korrekt zum Laufen zu bringen.
  • Zusammenfassung des dritten Kommentars:

    • Die Bedeutung eines persönlichen Arbeitsplatzes: Unter Verweis auf einen Kommentar des Accounts jrd259 in einem früheren Hacker-News-Thread wird die Bedeutung eines großen Schreibtischs und eines privaten Arbeitsplatzes ohne Benachrichtigungen betont.
  • Zusammenfassung des vierten Kommentars:

    • Erfahrungen mit Programmieren auf Papier: In der Kindheit wurde im Haus des Großvaters ohne Computer mit einer Schreibmaschine ein Turbo-Pascal-Programm geschrieben und später auf einem PC ausgeführt. Außerdem wird die Erfahrung geteilt, die Binäradditionsfunktion der selbst entwickelten exotischen Programmiersprache Ziim auf Papier übertragen zu haben, um Bugs zu finden und zu beheben. Es wird betont, dass man besser durchdachten Code schreibt, wenn man die "einfachen" Wege einschränkt.
  • Zusammenfassung des fünften Kommentars:

    • Programmieren in der Vergangenheit: Gegen Ende der Ära des "Big Iron" unterschieden sich Programmierer kaum von Datenerfassungskräften. Programme wurden auf Papier geschrieben, und Rechenzeit war teuer und wertvoll. Trat ein Bug auf, konnte man ihn erst beheben, wenn der nächste CPU-Lauf eingeplant war. Das förderte ein sorgfältiges Vorgehen. Heute entwickelt man Software iterativ und debuggt in der IDE.
  • Zusammenfassung des sechsten Kommentars:

    • Von André Bensoussan geschriebener Code: Es wird ein Link zu Code bereitgestellt, den André Bensoussan geschrieben hat.
  • Zusammenfassung des siebten Kommentars:

    • Die Größe früherer Software: Software war damals viel kleiner als heute; die meisten Projekte lagen im Megabyte-Bereich und waren zu groß, um sie in einer einzigen Datei zu "protokollieren".
  • Zusammenfassung des achten Kommentars:

    • Programmieraufgaben in der Schule: Laut der Erfahrung eines Freundes wurden Programmieraufgaben in der Schule auf Papier abgegeben und das Ergebnis eine Woche später zurückgegeben. Diese einwöchige "Kompilierzeit" war eine lehrreiche Erfahrung, die dazu brachte, die eigene Arbeit doppelt zu prüfen.
  • Zusammenfassung des neunten Kommentars:

    • Fehlendes Agile/Scrum: Als Antwort darauf, wie André solche Arbeit leisten konnte, wird gesagt, dass Agile-/Scrum-Entwicklungsmethoden damals noch nicht erdacht waren.
  • Zusammenfassung des zehnten Kommentars:

    • Erfahrungen mit Coding auf Papier: Mit 14 wurde im Programmierunterricht der Highschool der Großteil des Codes auf Papier geschrieben. Als armes Kind in einem armen Land gab es zu Hause keinen PC, und die ZX-Spectrum-Klone im Schulcomputerraum konnten das verwendete Turbo Pascal nicht ausführen.