Warum Erdlinge fehlerhafte Software und Hardware herstellen
Ich denke, niemand wird mit der Tatsache argumentieren, dass die Qualität komplexer Systeme, die von Erdbewohnern geschaffen wurden, alles andere als ideal ist. Natürlich können wir sagen, dass alles funktioniert - Flugzeuge fliegen, Raumschiffe pflügen die offenen Räume der Erdumlaufbahn usw.Gleichzeitig ist jeder daran gewöhnt, dass die Software auf seinen Geräten unvorhersehbar funktioniert. Selbst die Installation der neuesten Updates garantiert nicht, dass es keine Sicherheitsprobleme gibt. Oft finden sie Fehler in offenem, weit verbreitetem Code, der dort seit vielen Jahren existiert Bei großen und „Technologie“ -Unternehmen gibt es Abstürze und Datenlecks, bei denen Raumfahrzeuge abstürzen oder einen Teil der Funktionalität verlieren. Dies ist überhaupt nicht auf die Intrigen von Außerirdischen zurückzuführen (Marsianer schwören, dass sie ExoMars nicht zum Absturz gebracht haben).Ich möchte die Ursachen und möglichen Lösungen für dieses Planetenproblem betrachten.- — , , . , , . , - , , , .
- / / — , , . , , 160 , .
- / — . - «, », « », « ».
Wenn Erdlinge die schwierigsten Aufgaben übernehmen, ist es logisch, die besten verfügbaren Werkzeuge zu verwenden, um sie zu lösen.Und dieses Tool, es ist definitiv nicht das menschliche Gehirn , das Homo Sapiens-Gehirn ist nur ein Tool aus der Serie "Es scheint zu funktionieren" und sollte nicht überrascht sein, dennoch wurde es für völlig andere Aufgaben entwickelt, sodass selbst der coolste Profi einen dummen Fehler auf dem Haufen machen kann Gründe.Natürlich kann das Zusammenbringen vieler guter Gehirne das Ergebnis verbessern, aber ohne ein gutes Werkzeug werden nicht alle Gehirne des Planeten das erreichen, was bereits erreicht wurde.Um zu verstehen, welche Art von magischem Werkzeug es wert ist, Fragen wie „Warum kollabieren Wolkenkratzer nicht unter ihrem eigenen Gewicht oder im Wind?“, „Wie kommt unser Raumschiff in den Weiten des Weltraums zum Ziel?“, „Wie schaffen wir es, Daten zuverlässig zu senden? über unzuverlässige Kommunikationskanäle? "," Woher kamen die zuverlässigen Verschlüsselungsmethoden? " und so weiter und so fort.Die Antwort auf all diese Fragen ist eine, dieses Werkzeug ist Mathematik . Mathematik ist die Magie der modernen Welt, für die Uneingeweihten Artefakte wie Zcash oder CryptDB , und wie üblich sieht asymmetrische Verschlüsselung wie Magie aus, obwohl dies nur eine Anwendung dieses mächtigen Werkzeugs ist.Um zu sagen "Ja, das Programm funktioniert wie erforderlich", müssen Sie einen mathematischen Beweis für diese Aussage haben. Leider bin ich kein Experte auf diesem Gebiet, aber soweit ich weiß, ist der Prozess dieses Beweises ziemlich kompliziert, aber dies sollte aus folgenden Gründen kein Hindernis sein:- Es gibt keinen anderen Weg, unsere Systeme werden komplizierter, neue Schichten verlassen sich auf die alten, aber leider ist dies keine sehr zuverlässige Grundlage.
- Sie müssen kleine Programme ( Unix Way ) beweisen .
- Es müssen nur Programme nachgewiesen werden, die für die Zuverlässigkeit der Zuverlässigkeit von entscheidender Bedeutung sind. Sie können die Richtigkeit der Office-Suite nicht nachweisen, aber der Mikrokernel des Betriebssystems oder der Verschlüsselungsbibliothek muss nachgewiesen werden.
- , , - , , , , .
- (Haskell?). , - , .
- , .
Der Nachweis von Programmen erspart uns natürlich nicht die Notwendigkeit, Anforderungen genau zu formulieren, aber ich denke, dies ist ein lösbares Problem, zumal in einigen Fällen (wie bei Verschlüsselungsbibliotheken) die Anforderungen selbst auch formalisiert werden.Ich denke, jeder möchte, dass absolut zuverlässige Software in Kernkraftwerken, in medizinischen Geräten und ähnlichen Orten funktioniert.Ich werde nicht sagen, dass dies lange Zeit notwendig war, die Branche hat sich rasant entwickelt, viele Dinge haben sich erheblich geändert, aber heute ist die Branche aus meiner Sicht reif genug, um die Dinge in Ordnung zu bringen.Es gibt neue Klassen von Aufgaben wie Quantencomputer und spezialisierte Prozessoren für neuronale Netze, alles fängt gerade erst dort an. Die Entwicklung dieser Branchen negiert jedoch nicht die Notwendigkeit eines klassischen Ansatzes - alles hat seine eigenen Aufgaben.Die irdische Zivilisation ist jetzt sehr abhängig von der Zuverlässigkeit von Computersystemen. Um nachts nicht vor dem Geräusch der Flügel eines fliegenden Spechts zurückzuschrecken, müssen wir nach Lösungen suchen, die die Zuverlässigkeit erhöhen.Specht? Und hier der Specht: « , »
Unabhängig davon ist es erwähnenswert, über neuronale Netze zu sprechen. Neuronale Netze sind ein Versuch, das Gehirn mit all seinen Vor- und Nachteilen zu kopieren. Die Lösung für neuronale Netze enthält dieselben Probleme wie das menschliche Gehirn. Sie müssen daher nur angewendet werden, wenn wir nicht wissen, wie wir das Problem mit formal lösen sollen Der Algorithmus arbeitet absolut zuverlässig.Ich denke, damit sich die irdische Zivilisation stetig entwickelt, ist es Zeit für sie, über die Zuverlässigkeit ihrer Infrastruktur nachzudenken. In Bezug auf die IT sehe ich das so. Sie müssen eine mathematische Programmiersprache auf hoher Ebene auswählen / erstellen und damit beginnen (ohne die versteckten Dateien unter der Haube) die kritischsten Programme zu erstellen ihren nachfolgenden Beweis. Es ist wahrscheinlich, dass die Hardwarearchitektur der Prozessoren für die Ausführung von Programmen in dieser Sprache bewiesen und geschärft werden sollte (Lisp Maschinen ?).Wer sollte das tun? Ich weiß es nicht, aber die gleiche Frage könnte zu dem Vorschlag der ganzen Welt gestellt werden, den Kernel des Betriebssystems zu schreiben, aber Linux ist geschrieben, was bedeutet, dass es Optionen gibt. Zum Beispiel gibt es einen formal verifizierten seL4- Kernel ( Erklärungen in ihrem Wiki ), der bei NICTA entwickelt wurde. Wenn solche Projekte nicht zur Grundlage für die digitale Infrastruktur der Zukunft werden, hat die Menschheit die Chance, nicht durch den großen Filter der Zivilisationen zu gelangen (wer ist sicher, dass das Virus keinen Atomkrieg auslösen wird?).einige Texte, . , , , , , , , , , , .
— … ! , !
— . , …
— , , … ?..
« »
UPDATE: Während der Diskussion ist ein wichtiger Gedanke in den Kommentaren gereift. Um verifizierte Software in kritischen Bereichen zu implementieren, ist es nicht erforderlich, die aktuelle Entwicklung zu stoppen. Sie müssen kostenlos verifizierte Komponenten parallel erstellen und entsprechend ihrer Bereitschaft, mit ihrer Hilfe neue Dinge zu tun, beispielsweise den oben genannten seL4-Mikrokernel für eingebettete Bedürfnisse gibt es bereits, was bedeutet, dass Sie es verwenden müssen, wo immer es passt. Und an anderen Komponenten arbeiten. Source: https://habr.com/ru/post/de400149/
All Articles