オペレーティングシステムがない場合、コンピューターはどのように使用できますか?
それを行うにはどのようなツールや知識が必要ですか?
モニターなどのコンピューターハードウェアリソースを使用するには、すべてのコマンドをバイナリで指定する必要がありますか?
オペレーティングシステムがない場合は、理解できる言語を使用してプロセッサを直接プログラムする必要があります。これは、CPUだけを意味するのではなく、グラフィックカードプロセッサ、サウンドカードプロセッサなどの他のプロセッサも意味します。各プロセッサには、理解可能な何らかの基本言語 命令セット 。命令セットはプロセッサモデル間で異なり、メモリアドレス指定、フロー制御、ロジック、および算術命令で構成されています。より高度な操作は、これらの基本的な指示から構成されます。命令セットを使用して記述されたコードは machine code と呼ばれます。
そこから Assembly languages にアクセスできます。これも、特定のプロセッサアーキテクチャに固有であり、通常はプロセッサの命令に強力にマップされます。これらは人間にとってコードの記述を容易にし、低レベルではありますが、すでにプログラミング言語と見なされています。アセンブリコードは assembler を使用してマシンに変換されます。
したがって、これら2つは、コンピュータのプログラミングを直接開始するために知っておく必要があることです。手元にある特定のプロセッサの命令セットとアセンブリ言語、およびこれらの基本的な命令を使用して意味のある操作を構築する方法を学びます。アセンブリのみを使用して、グラフィックプログラムなどの複雑なものを構築できます。 http://www.floodyberry.com/asm_toys/ を参照してください。
そこからレイヤーに包まれ始め、すべてが下位レベルの抽象化とAPIを提供します。上位レベルの言語、ドライバー、カーネル、OS、フレームワークからクライアントアプリケーションまでです。この上位レベルのコードはすべて、最終的に compilers および interpreters なので、プロセッサは何をすべきか理解できます。
OSを使用せずにコードを記述し、ハードドライブ、オプティカルドライブ、またはUSBドライブの特定のアドレスに配置して実行することができます。このようなコードをネットワークから実行することもできます(ネットワークブートオプション)。
また、拡張BIOSのようなコードを実行することもできます。実際には、CPUがユーザーコードにジャンプし、BIOSもOSも機能しませんが、ユーザーコードは機能します。
OSが制御を取得する前に独自のプログラムを実行するロシアのセキュリティPCIボードの例を以下に示します。ボードは、まもなく、識別および認証ユーザーに役立ち、グラフィカルインターフェースを実行し、ファイルシステムなどで動作できます。
言語に関係なく、コンピューターはオペレーティングシステムを必要としません。 (コンピューターは、オペレーティングシステムの有無にかかわらず、ネイティブコードで実行されます。)
組み込みシステムには、2つの基本モデルがあります。1)作業は割り込みで完了し、残りの時間はバックグラウンドループ内にあります。 2)バックグラウンドループで作業が完了し、割り込みがタイマー(I/Oの増分など)の迅速なアクティビティに使用されます。
プロセッサが{read-only}メモリでコードを実行してシャットダウンする場合があります。
デスクトップPCだけがコンピューターではないことに注意してください。電子レンジ、食器洗い機、テレビのリモコンにはすべてコンピューターが内蔵されています。だけでなく、現代の車。一部のプラットフォームはオペレーティングシステム(電子レンジや食器洗い機など)を検討するには小さすぎますが、大きなプラットフォームにはプリンターや自動車などのリアルタイムオペレーティングシステム(RTOS)があります。
ツールに関する限り、言語を取得してターゲットシステムのプロセッサにコンパイルできるビルドシステムが必要です。どういうわけか、その実行可能ファイルをプラットフォームに取り込む必要があります。 「リモート」デバッガも役に立ちます。これらは基本的なツールです。これらは単一のIDEで見つけることができます。または、さまざまなベンダーからさまざまな部品を入手できます。通常、ツールはターゲットプロセッサに依存します。ターゲットプラットフォームがPICコントローラーの場合、= IDE Pentiumプロセッサ用のプログラムをビルドすることは、あなたには役に立たない。
デバッガーまたはモニターへのコマンドは、バイナリ形式で古くからあります。ほとんどの「モニター」は、ターミナルポートを介してコマンドを取得し、コマンドリストや構文を忘れたときのための「ヘルプ」セクションを含むことがよくあります。現代では、バイナリは主に、ハードウェアレジスタのビットの設定とクリア、または密にパックされたプロトコルのフィールドに使用されます。 Binaryはフレンドリーではなく、効率的でもありません。したがって、コードを効率的に生成する必要がある場合、バイナリは脇に置かれました。