アプリ版:「スタンプのみでお礼する」機能のリリースについて

OSなしのコンピューター(インストールされていないのではなく、開発されていない)の問題点、またどのような方法なら使用可能か教えてください。

A 回答 (5件)

OSが開発されていないという前提のあたり新規開発されたCPUでのブートストラップ問題についてでしょうか?



一般的には全くOSがない環境にOSを構築するためにはClangやGCCといったオープンソースのコンパイラを、
新しいCPU向けのバイナリデータを出力できるように改造したものを用意します。
OSについてはNetBSDのようにハードウェア固有のコードが分離が進んでいるOSにハードウェア固有のコードを追加して、
改造したコンパイラでコンパイルして使用するという事が多いです。

商用OS含めて比較的分離が進んでいないとされるLinuxでさえすぐに特定ボード向けのカスタムディストリビューションが登場する位ですので、
あまりにCPUの機能が少ないなど特殊な事情がなければソースコードが手元にあって移植できないOSは無いと言っても過言ではないような状況です。

一方で歴史的には、パンチカードなどに直接機械語を入力して最低限のアセンブラを作りそれを使ってより高度なアセンブラを作りそれを使ってそれを使ってOSを作る等ということをしていました。
けれど、今となっては余程特殊な事情が合ない限り行われていません。
    • good
    • 2

ハード依存部分は、最低限、アセンブラで書かなければなりません。


最低限というのは、キャラクタI/Oです。少しましなOSを移植するなり開発するのであれば、ブロックI/Oも。
キャラクタI/Oというのは1バイトの入出力を行う機能です。ブロックI/Oは512バイトなり、1024バイトをまとめて入出力を行う機能です。
ネットワークの機能を持たせるのであればCRC計算も必要です。Cあたりで書くと1000倍は遅いので。

後は地道にOSを開発するか、出来合いのOSを移植するか。タイニィCコンパイラを移植して、まともなCコンパイラをコンパイルするとか進めていけば、OSそのものの移植はできます。
その課程でローダというかIPLというかブートストラップというか(どれも同じですが)、そんなものも書く必要はあるでしょう。

UN*X系なら、conf.cというシステム資源の定義とかiovec.cというI/Oベクタの定義とかが書ければ、さほど難しくはありません。
Linuxは、・・・あれは特殊というか変なところが落とし穴のようにあるので(移植し終わっても落とし穴だらけ)、私は手を出しません。
    • good
    • 1

>OSなしのコンピューター(インストールされていないのではなく、開発されていない)の問題点、



OSが開発されていないコンピュータは何も出来ないので「ただの箱以下の物体(制作コストだけはかかる使えない物体)」と言うだけ。

>またどのような方法なら使用可能か教えてください。

OSを開発すれば使用可能になります。
    • good
    • 2

OSのないパソコンはなにも出来ませんけれど。

どのような方法?OSを入れることですね。
    • good
    • 1

質問の意味が、見えません???


<どのような方法なら使用可能か教えてください。>使用可能はPCそれとも、ソフト??どちらも利用できますよ。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!