実行可能ファイル(例:Windowsの場合は.exe)はバイナリです。私は16進数のファイルとアセンブリについて知っています。私はまた、OS APIについて知っています。理論的には、OS APIを使用してNASMでアセンブルし、実行可能ファイルを取得するアセンブリコードでWebブラウザー全体を書くことができます。しかし、私の質問は、どのようにオペレーティングシステムは、アプリケーションを制御するのですか?たとえば、ビデオメモリに書き込み、ランダムなもので画面を埋めるWindows上の実行可能ファイルを持つことができます。私はこれを(実際に)試して、Windowsはアプリケーションを停止します。アプリケーションをどのように制御しますか?さらに、Linuxの実行可能ファイルを持っていて、まったく同じハードウェアのWindowsマシンで実行しようとすると、理論的には(プロセッサのアーキテクチャは同じですが、Windows APIは使用しませんが)動作するはずですそれは傾ける。 OSはどのくらい正確にバイナリを制御していますか?実行可能なバイナリとOS
答えて
オペレーティングシステム、特にWindowsとLinuxは、他のアプリケーションとオペレーティングシステム自体をアプリケーションから保護します。したがって、アプリケーションが理想的にはユーザーとして実行することができない保護レイヤーがあります。
ピクセルを画面に表示したい場合は、オペレーティングシステムにピクセル値を入力する必要があります。オペレーティングシステムがパンチスルー(rootとして実行する必要があるかもしれないmmapを呼び出す)方法を許可している場合、あなたは自由にコンピュータをゴミ箱に入れることができます。計画/設計は、あなたが直接アクセスできるようにすることではなく、仮想空間、サンドボックスをアプリケーションに適用するために、あなたは自由に読み書きできるRAMを備えた仮想アドレス空間を持っていますが、それ以外では、シャットダウンするか、少なくとも何らかの方法で処理する必要があります。
普通のWindowsプログラムやLinuxプログラムの場合は、どの言語を使ってアプリケーションを作成しますか?そのターゲット、asm、ada、Cなどのマシンコードを生成するには何もできません。特定の仮想マシン(Java、Python)を話す場合は、選択肢が制限されます。戻り値以外の何らかの出力を持つように、あなたのスペースで遊ぶ以上のことをしたいのであれば、システムが必要とするターゲットとオペレーティングシステム固有の方法でシステムコールを行う必要があります。もう一度、適切な命令、レジスタ、メモリ構造、またはオペレーティングシステムが必要とするものを、使用している言語やライブラリにリンクしたり、他のプログラムとリンクさせたりすることができますあなたは完全に実行可能な、nasmを使用してアセンブリ言語でWebブラウザを作成したいと思っています。 osがサポートしているバイナリ形式を作成し、システムが必要とする方法で必要に応じてシステムコールを作成する必要があります。
- 1. 実行可能なバイナリとしてのGatlingテストスイートのパック
- 2. gem内のバイナリ実行可能ファイルのベンダー化可能性?
- 3. PHPを実行可能なウェブサイトとして実行可能
- 4. 実行時API実行なしのOSコマンド注入が可能ですか?
- 5. ArtifactoryのMaven SNAPSHOTとして実行可能なバイナリをパブリッシュする
- 6. SAFELY Windowsで実行可能な実行可能ファイルへのパス
- 7. バイナリ実行可能ファイルを含むBashスクリプト
- 8. 実行可能ファイルのバイナリ形式を返すPowershellスクリプト?
- 9. .mファイルをバイナリ実行可能に変換する
- 10. Cコードで実行可能な実行
- 11. Javaで実行可能なパイプとフィルタグラフ
- 12. 実行可能なJarとデータベース
- 13. 実行可能な2.2.0
- 14. 実行可能なJavaCVプロジェクト
- 15. 実行可能なパス
- 16. Cocoaと実行可能ファイル
- 17. テンプレートと実行可能ファイル
- 18. 移植可能なバイナリからimpalaクラスタを実行しています
- 19. OS Xでの固定/ bin /実行可能ファイル
- 20. 32ビットOSで64ビット実行可能ファイルを作成する
- 21. 実行可能なノードからnpmとノードを実行
- 22. SmalltalkはMac OS Xの実行可能な開発言語ですか?
- 23. Mac OS Xで実行可能なシェルのドックアイコンを削除しますか?
- 24. Cで実行可能なC実行可能ファイルをCで実行するシェルスクリプトから実行する
- 25. 長期実行可能なDjangoプロセスが実行可能ですか?
- 26. 実行可能なバイナリ形式とエミュレータにはどのようなものがありますか?
- 27. 実行可能ファイルを別の実行可能ファイルにインクルード
- 28. ソフトウェアBOTとは、「常に実行可能な実行可能ファイル」とソフトウェアサーバーの違いは何ですか?
- 29. slickgridの編集可能な行と編集不可能な行
- 30. 実行中のWebサービスと実行可能なJARが一致しない