No.2ベストアンサー
- 回答日時:
>1今のウィンドウズOSは、調べたら、Cや、C+等で書かれている、とあるのですか、これでいいでしょうか?
概ねあっているかと。
ただ、ウィンドウズOSというのが、どっからどこまでなのかの問題もあるので、一概に正しいとは言えないかもしれません。
ハード制御はアセンブラで書いていると思われます。
http://q.hatena.ne.jp/1121131416
http://okwave.jp/qa/q83429.html
>理屈上では、ニーモニックやベーシックを使って、vistaOSを書くことはできるでしょうか?
ニーモニックとはアセンブリ言語のことでしょうかね。
アセンブリ言語は機械語と1対1の最下層の言語ですから作れます。
Basicではメモリが直接扱えるよう独自拡張でもしなければ出来ません。
「階層」という表現がよくわかりませんが、高水準言語、低水準言語という分け方が一般的かと。
http://ja.wikipedia.org/wiki/%E9%AB%98%E6%B0%B4% …
この回答への補足
こんにちは、いろいろお返事ありがとうございました。
自分で書いてて変ですが、
OSと、言語の関係は、はっきりしたものはあるのでしょうか?
OSの上で走る言語、なるものは存在しますか?
つまり、言語とOSはどちらが本質的なんでしょうか?
あるいはそんな定義はないのかも知れないのですが、疑問なので、質問させてくださいー。
いえ違いますねーVBなどは、OSの上で動きますものねー。
でも・・
いわゆるインタープリンタとしてのベイシックやニーモニック、高級言語であるCやフォートランなどと、OSとの比較、という意味の質問にさせてください。
No.6
- 回答日時:
BASICでハードウェア制御ができる(特にCPU制御やメモリ制御)ならOSを書くのも不可能ではないかもね。
ただしほかの人が書いているようにMSXとx86系ではアーキテクチャーがまったく違う。
昔のZ80時代にはBASICで高速化したいところをマシン語で書くのは定番の技法でしたね。
後回答者の中に勘違いしている人がいてBASICはインタプリタ型のみと思いこんでいる人がいるけどコンパイラ型のBASICも過去には存在していました。(VBではなくて)有名どころだと富士通のF-BASIC386が有名ですかね。
>BASICでハードウェア制御ができる(特にCPU制御やメモリ制御)ならOSを書くのも不可能ではない
そうですか!そうですよねー。詳しい方に念を押してもらってすっきりしました!
>Z80時代にはBASICで高速化したいところをマシン語で書くのは
僕もやりましたー、画面を印刷するプログラム作ったときにvramの読み込みだけマシン語で組みました、なつかしいー。
は~~一歩前進です。
またしょーもない質問させてもらうかも知れませんが、よろしくお願いします!
No.5
- 回答日時:
>Cや、C++のかわりに、ベーシックで置き換えることはできるでしょうか?そういう意味で同じレベルのものと考えられるでしょうか?
BASICの文法を捨てて、OSの記述のための文法に変えたらインタープリタ言語でOSが記述出来るか?って事ですよね。
書けることは書けると思いますが、実際OSに必要な動作を記述しているのがインタープリタを記述しているアセンブラなので、実質OSを操っているのはインタープリタと言う機械語プログラムの部分となります。分かりますかね?
こんにちは!
>書けることは書ける
これが聞きたかったんですー!
納得ですー。
下の説明なんとか分かります。
確かインタープリンタは、逐次読み込んで1行ごとマシン語に変換して実行するんですよねー、大まかに。うんうん。
ありがとうございましたー。
No.4
- 回答日時:
1. マイクロソフトのシステム記述言語は、アセンブラ(MASM)、Microsoft Pascal、Microsoft C(当初はLattice-CのOEM)、Visual C、C++と移行していたと思います(最近の部分は、私のリタイア後なナので怪しいです)。
現在は、C++が主力の筈ですが、カーネルの一部に古いの(OS/2時代の記述)が残っているはずです(もう無いかも)。現在でも、カーネルのLow-Levelな部分、ブートローダーやイニシャルデバイスのドライバはアセンブラで書かれているはずです。なお、ホストでは事情が異なり、かなり早い時期から高級言語がシステム機じゃ津に使われます。有名なのはBurroughsのAlgolですが、IBMもPL/Iを使っていますし、他のメーカーもマクロアランブラのスーパーセットのようなのを使います。これは、x86のセグメント64Kにくらべ、IBMなどはページング1024バイトだったので、アセンブラで書くのは煩雑すぎるという理由もあります。
2. MSXはZ80用のOSですから、アセンブラもザイログニーモニックになり、x86で使っているマイクロソフトニーモニック(MASM)やインテルニーモニック(ASM86など)とは違いますから、そのままでは書くことはできません。
BASICには、ネイティブインタープリタと中間コードインタープリタ(p-code interpreterが代表的)があり、MSXも中間コードインタープリタですから、x86用のコードは出力不可能です。
知識として対応できるかと言えば、一番基本的な考え方は一緒ですから可能でしょうが、ハードルはとてつもなく高いです。
回送というのが、カーネル、デバイスドライバ、シェルという意味であれば、カーネルとデバイスドライバをすべて高級言語で書くのは現実的ではありません。シェルは高級言語だけで記述できます。
なお、MS-DOSでCが使われているのは一部の外部コマンドだけだったはずです。
後、インタープリタでOSが書けそうなのはFORTHくらいでしょう。
回答ありがとうございます。
>1
お詳しいですねー!マイクロソフトにいるプログラマーの方がこつこつ作られてるんでしょうねー。(こつこつ?)
>2
はい、僕が知りたかったのは、知識として対応できるか、と言う方ですが、理屈では可能、ということですね。やってやれないことはない・・みたいな。
だいぶすっきりしました!!
No.3
- 回答日時:
1. 大部分はそうだと思われますが、ソースコードが全部公開されているわけではないので、断定はできません
タイミングのシビアなものとかは、アセンブリを使っているでしょう。
2. ニーモニックをいうのは機械語を人間がわかるような表現にしたもので、言語としては「アセンブリ言語」と呼ぶのが普通です。
>ニーモニックやベーシックは、現在のOSを作っている言語と同じ階層でしょうか?
「階層」ってどんな意味で使っているかがよくわかりません。
>理屈上では、ニーモニックやベーシックを使って、vistaOSを書くことはできるでしょうか?
PCが理解し実行できるのは機械語だけです。
C言語はコンパイルして最終的に機械語に変換します。
機械語はニーモニックと1対1で対応しています。
ゆえに、アセンブリ言語だけでVistaを書くことは可能です。
が、現在の複雑で大規模なプログラムを全部アセンブリ言語だけで記述するのは、まったく非現実的です。
こんにちは、遅くなり済みません。
階層という言葉は、・・なんというか、オブジェエクト志向のクラスや、あるいはネットのプロトコルの、階層がありますが、ああいう風な意味なのですが、
あまりそう言うことは一般的には、パソコン全体やプログラミング言語では言及されてるのを聞いたことがないので、無理に作った言葉です。すみません。
アセンブリ言語で書くことはやはり可能ですか・・
なんかだいぶ分かってきた気がします!
No.1
- 回答日時:
>1今のウィンドウズOSは、調べたら、Cや、C+等で書かれている、とあるのですか、これでいいでしょうか?
CやC++をメインとして、一部には、C#かVB.NET、C++/CLIなどが使われています。
>2.昔MSXというパソコンで学習していた、ニーモニックやベーシックは、現在のOSを作っている言語と同じ階層でしょうか?
ニーモニックはアセンブラですね。MSXはZ80でウィンドウズはx86系なので規模が全く違いますが、WindowsOSの一部にはアセンブラも使われています。
ベーシックはインタプリタです。CやC++はコンパイラでアセンブラの出力と同じ機械語を出力します。なので同じ階層ではありません。
>理屈上では、ニーモニックやベーシックを使って、vistaOSを書くことはできるでしょうか?
Z80の知識では書くことはできません。ベーシックでは記述することが出来ないほど複雑です。ちなみにMSX-DOSを作るにもアセンブラとC言語が必要です。
こんな答えでよろしいでしょうか?
この回答への補足
MSXーDOSって、C言語で書かれてたんですかー。知らなかった。
あんな昔からあったんですねー。
パソコンが複雑に成りすぎて、自分が何が分かってないのかも分からなくなっていました。
というか回答文を読んで、アセンブラとコンパイラが違うのに気付きました。というか、今まで区別してなかったことの自覚もなかったので、たらーです。
wikiの方には、アセンブルもコンパイルも同じマシン語に直すこととありながら、
コンパイルは、一度アセンブリ言語に直してアセンブラにかけるんだ、という記述もあるのですが、いかがなものなんでしょうか?
後者が本当であれば、アセンブリ言語を元にして、高級言語が組み立てられている、という理解でいいのでしょうか?
Z80といまのCPUはもちろん違うのですが、
もし、ベーシックが言語として非常に充実していていて、過不足ないとしたら、
処理速度の問題も除いたら、
Cや、C++のかわりに、ベーシックで置き換えることはできるでしょうか?
そういう意味で同じレベルのものと考えられるでしょうか?
(コンパイラとインタープリンタの違いは横に置いておいて)
同じものを作れる(厳密じゃないですが)という意味では、同じものでしょうか?
OSは、大きなソフトだと考えるなら、インタープリタもコンパイラも、OSを記述することができるという意味で、OSより本質的なものと言えるでしょうか?
アバウトな質問が続き済みません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 どうしたらパソコンに詳しくなれる?? 5 2022/04/04 19:09
- Word(ワード) 質問!。 Windows11にしたら、 Word32bit版で作成保存した文書は使えませんよね?。 3 2022/11/16 19:33
- その他(プログラミング・Web制作) WEBアプリ開発に必要な言語 5 2023/06/28 16:57
- 日本語 意味とは何か? どこにあるのか?(Ⅱ) 4 2022/04/21 13:35
- 日本語 「サ変動詞」(熟語動詞)(仮称)に関する疑問 8 2023/08/03 18:29
- その他(悩み相談・人生相談) 昔は優秀だったのに、現在若い人に抜かれる(仕事や勉強など)と どんな感じがしますか。 【私の場合】 3 2023/06/25 13:46
- TOEFL・TOEIC・英語検定 英検準2級対策。 1 2022/05/29 13:37
- IT・エンジニアリング 大規模言語モデルは今後どのように進化していくでしょうか? 1 2023/07/20 19:17
- ドイツ語 昭和時代のスキー用語•山用語•医学用語•学生用語は圧倒的に独語多いです。→ これは日本でしか使われて 2 2023/07/02 00:55
- Windows 8 win8 "ベータ ワールドワイド言語サポートで Unicode UTF-8 を使用"を出したい 2 2023/05/23 19:57
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】看板の文字を埋めてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・【穴埋めお題】恐竜の新説
- ・我がまちの「給食」自慢を聞かせてっ!
- ・冬の健康法を教えて!
- ・一番好きな「クリスマスソング」は?
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アセンブリ言語からC言語への変...
-
今はマシン語は使わないんですか?
-
コンピュータ言語とプログラミ...
-
昔のゲーム製作に使用する言語...
-
0xffffとは?
-
計算機科学 計算機科学に詳しい...
-
8ビットのデータの、先頭ビット...
-
アセンブラからC言語に変換する...
-
PC-9801でマシン語を学習するに...
-
ライン数とステップ数の違いは?
-
三菱シーケンサーの命令でFROM ...
-
C++ のDLLがdelphiで読めない
-
なぜソフトウェアでハードウェ...
-
エクセルVBAのIf,Then 構...
-
PICはアセンブラとC言語のどち...
-
アセンブラ言語がわかりません。
-
シーケンサのデータレジスタD...
-
03分22秒36のような時間の単位...
-
C言語やC++言語でビット毎に値...
-
分解能10msのタイマー(dosで)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
昔のゲーム製作に使用する言語...
-
電化製品って何言語?
-
コンピュータ言語とプログラミ...
-
割り込みベクターをC言語で書...
-
アセンブリ言語からC言語への変...
-
文系のSE志望です。プログラミ...
-
PICのC言語でキャリーオーバー
-
Windowsはいったい何言語で書か...
-
MASM32の言語は何
-
アセンブリとC言語ではどっちが...
-
OSはどんなコンピューター言語...
-
成人してから
-
フローチャートを書く書かない
-
BASICのGOTOってコードの書き換...
-
NS Basic/Palm の入門書ありま...
-
コンピュータ制御
-
パチンコやスロットについて
-
言語としてCを選択する理由
-
CASL(アセンブラ言語)に関する...
-
アセンブラ言語って何をするた...
おすすめ情報