1
OS-Design / Re: Qemu = ok, echt Hardware = Auaa... ;(
« am: 14. February 2014, 08:17 »Wie kann man den einen Kernel töten?Mit der Kreissäge? Aus deiner Perspektive befindet sich der Kernel in der Matrix.
21. November 2024, 13:40
Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.
Wie kann man den einen Kernel töten?Mit der Kreissäge? Aus deiner Perspektive befindet sich der Kernel in der Matrix.
Also ist es damit dann möglich, dem SATA-Controller zu sagen er soll die Daten in den Speicher laden, also das DMA-System von PCI nutzen? Ich habe nämlich gehört, dass dies mit fragmentierten Speicherbereichen arbeiten kann.DMA arbeitet mit physischen Speicheradressen. Der Treiber muss virtuelle Adressen zuerst umwandeln oder gleich physische Speicherbereiche anfordern. Der physische Speicher muss zusammenhängend sein, eventuell reichen auch eine einzelne 4KB-Pages.
Nachdem ich vor einer halben Stunde meinen PC eingeschaltet habe ist er abgestürzt und [...] jetzt sind fast alle meine Dateien weg
Dieser Fix hat natürlich nur eingeschränkte Auswirkung auf die gesamte Anwendung. Dass dem so ist wird vom Editor per Datenflussanalyse geprüft.Von so Dingen wie "Turing-Vollständigkeit" und "Halteproblem" hast du gehört und weißt, dass damit jede Datenflussanalyse deutliche Grenzen hat?
Und wer programmiert den Updater in seiner ganzen Komplexität fehlerfrei?
Gib mal Beispiele, die man heute nicht erreichen kann.
Jetzt mal was ganz anderes, wenn man z.B. einen Virus schreiben will, muss man sich mit dem Programm/Betriebssystem besser auskennen als der Entwickler?Wenn ICH einen Virus schreiben wollen würde, würde ich mir zuerst alle Programme und Betriebssysteme vornehmen, die weit verbreitet sind: Web-Browser, Email-Clients, PDF-Reader, Office-Programme sowie Spiele und bei den Betriebssystemen Windows, Linux und Mac OS. Bei den Betriebssystemen würde ich mir vor Allem die Libraries für den Netzwerkstack, Treiber allgemein, Videocodecs und Grafikroutinen vornehmen.
Weder Windows noch Linux erlauben einem Benutzer, Dienste im Hintergrund zu starten oder unbeabsichtigte, das System beeinflussende, Dinge zu tun.Wirklich? Also ich habe da schon ganz andere Geschichten gehört.
Siehe aktualisierte Posts vom 18. März 2013, 21:09 und 20. März 2013, 23:22.Die Sicherheit soll hardwareseitig, durch das Design und durch Runtime-Checks gewährleistet werden.Das heißt, du setzt moderne Hardware voraus (IOMMU, 64-Bit-Modus), verzichtest damit auf Segmentierung und arbeitest ausschließlich mit "managed Code" in einem Hypervisor.
Willst du wirklich den Source-Code von Firefox, Chrome, Internet Explorer einsehen und zur Laufzeit ändern können? Glaubst du, es gibt Programmierer auf dieser Welt, der in der Lage ist, sich auf die Schnelle in solch ein Mammutprojekt einzulesen und seiteneffektfreie Änderungen vorzunehmen?Nehmen wir einmal an, du hast ein Programm und willst diesem eine Funktion hinzufügen, die dir das Arbeiten erleichtert. Wenn dieses Programm überhaupt Scripting bereitstellt, wie willst du damit die Benutzeroberfläche erweitern und vorhandenen Code des Programms anpassen? Geht das auch bei Anwendungen, die auf dem Server laufen? Bei meinem System reicht ein Klick mit gehaltener F-Taste auf das Fenster und das zu bearbeitende Formular und alle verknüpften Ereignisse werden im Editor geöffnet. Da die Symbole im Editor sofort aufgelöst werden, sind die Effekte direkt sichtbar.
ich fasse zusammen, was ich da rauslese (bei Fehlern bitte korrigieren):
- du programmierst den Kernel extrem defensiv, auf Kosten der Performance
Das tun sie. Und sie profitieren vom Buffer-Overflow-Schutz der Sandbox. Mittels sparsam vergebenen Berechtigungen weiss man, wo man genau hin schauen muss (in Container-Sandboxen werden diese für alle untergeordneten Prozesse abgefangen).Sobald ein System-Prozess spezielle Berechtigungen anfordert, hat dieser eine gewisse Verantwortung.Damit fallen also alle Treiber unter die Trusted Computing Base. Hätten wir das also geklärt.
Ich schrieb "es gibt keine Hardwaretreiber". Das ist was anderes.Und nicht so gedacht. Bus-, Chipsatz- und Gerätetreiber laufen als Prozess. (Siehe aktualisierten Post.)