Ich weiß, dass ausführbare Dateien (zB: .exe für Windows) Binärdateien sind. Ich weiß über Hex-Dateien und Assembly und so weiter. Ich kenne auch OS-APIs. Theoretisch könnte ich einen Webbrowser komplett in Assemblercode schreiben, der die OS-APIs verwendet, ihn mit NASM zusammensetzen und eine ausführbare Datei erhalten. Aber meine Frage ist, wie steuern Betriebssysteme die Anwendungen? Zum Beispiel könnte ich eine ausführbare Datei unter Windows haben, die in den Videospeicher schreibt und den Bildschirm mit zufälligem Zeug füllt. Ich habe das (tatsächlich) versucht und Windows hält die Anwendung an. Wie kontrolliert es die Anwendung? Außerdem, wenn ich eine Linux-ausführbare Datei habe und versuche, sie auf einer Windows-Maschine mit genau der gleichen Hardware auszuführen, sollte sie theoretisch funktionieren (obwohl sie keine Windows-APIs verwenden wird), da die Prozessorarchitektur dieselbe ist, aber noch Es kann nicht. Wie kontrolliert das Betriebssystem die Binärdateien?Ausführbare Binärdateien und das OS
Antwort
Das Betriebssystem, insbesondere Windows und Linux schützen andere Anwendungen und das Betriebssystem selbst vor Anwendungen. Es gibt also eine Schutzschicht, die eine Anwendung im Idealfall nicht als Benutzer ausführen kann.
Sie möchten Pixel auf dem Bildschirm platzieren, müssen Sie das Betriebssystem bitten, es für Sie zu tun. Wenn das Betriebssystem eine Möglichkeit bietet, durchzudringen (indem man mmap aufruft, muss vielleicht als root laufen), dann kann man den Computer nach Belieben zerstören, ja. Der Plan/Entwurf ist, Dir keinen direkten Zugriff zu erlauben, Du erhältst einen virtuellen Raum, eine Sandbox, in Deiner Anwendung zu spielen, Du hast einen virtuellen Adressraum mit irgendeinem RAM, den Du beliebig lesen und schreiben kannst, aber Du gehst Außerhalb davon müssen Sie stillgelegt oder zumindest irgendwie behandelt werden.
Soweit welche Sprache Sie Anwendungen in ja schreiben, wenn es ein normales Windows-Programm oder Linux-Programm ist, dann alles, was Sie tun können, Maschinencode für das Ziel zu generieren, asm, ada, C, usw. Wenn Sie es sind sprechen spezifische virtuelle Maschinen (Java, Python) dann werden Ihre Entscheidungen begrenzt. Wenn Sie mehr als nur in Ihrem Space spielen möchten und eine andere Ausgabe als einen Rückgabewert haben möchten, müssen Sie Systemaufrufe so durchführen, wie es das System erfordert. Dies ist ziel- und betriebssystemspezifisch. Und wieder, Sie erhalten die richtigen Anweisungen oder Register oder Speicherstruktur oder was auch immer von dem Betriebssystem für diesen Aufruf in welcher Sprache Sie oder Bibliotheken, mit denen Sie verknüpfen können, dann kann der Rest Ihres Programms kann in jeder Sprache, ja absolut Sie möchten einen Webbrowser in Assemblersprache mit nasm schreiben, komplett machbar. müssen ein binäres Format erstellen, das das Betriebssystem unterstützt, und die Systemaufrufe bei Bedarf so vornehmen, wie es das System erfordert.
- 1. Wie führt OS kompilierte Binärdateien aus?
- 2. Spezifikation von signierten Binärdateien unter OS X
- 3. Emulation von Linux-Binärdateien unter Mac OS X
- 4. SVN und Binärdateien
- 5. Wie man Objective-C-Symbole aus OS X-Binärdateien entfernt?
- 6. Wie ausführe ich Mac OS x ausführbare mit c iphone
- 7. Tragbare Binärdateien mit Rust
- 8. Wie berechnet man Unterschiede zwischen zwei Binärdateien (d. H. Zwei ausführbare Dateien) in Linux
- 9. Ausführbare ausführbare Datei aus Speicher
- 10. Wie ausführbare Binärdateien auf einem Android-Betriebssystem ausführen, wo chmod + x nicht funktioniert?
- 11. Binärdateien zusammenführen
- 12. Versionskontrolle für Sound-, Video- und andere Binärdateien
- 13. Darwin-Kernel-Architektur und OS X, 64bit auf 32-Bit-Kernel, wie funktioniert das?
- 14. Kopieren Binärdateien fread mit und fwrite
- 15. kann nicht hinzugefügt ausführbare
- 16. android Studio auf 64-Bit-OS 64-Bit-OS ERROR geben: 32-Bit-Linux Android Emulator Binärdateien DEPRECATED
- 17. So machen Sie SVN ADD ignorieren Binärdateien
- 18. Strukturvalidierung für Binärdateien
- 19. entfernen Binärdateien in Mercurial
- 20. Binärdateien an SVN übergeben
- 21. Wie lege ich das Arbeitsverzeichnis eines OS X-Anwendungspakets fest?
- 22. Reparieren eines Git-Repos, das wegen großer Binärdateien verlangsamt wird
- 23. IDA Pro und ausführbare Dateien bearbeiten
- 24. C Lesen Binärdateien
- 25. Binärdateien mit C++ schreiben: Ist das Standardgebietsschema wichtig?
- 26. Alle Binärdateien im Ordner
- 27. Simulation Binärdateien Dateiposition
- 28. Python 2.5 Windows-Binärdateien?
- 29. Android OS und postgreSQL
- 30. löschen ausführbare