こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

OSを動かすプログラミング言語

pythonを勉強しようと思い、Win10でインストール(?)しました。

ふと疑問に思ったのですが、Pythonが動いているWin10は、何のプログラム?で動いているのでしょうか。
というか、どうして動くのでしょうか。

投稿日時 - 2019-10-17 21:05:37

QNo.9668217

困ってます

質問者が選んだベストアンサー

 Python言語のシステムは、win10の上で動いている。他の言語だって、win10の上で動いているんだから、じゃ、そもそものwin10は言語無しでどうやってつくったんだ?という鶏と卵のような疑問かな。

 コンピュータは、根本的には、機械語という2進数の羅列で書かれたプログラムで動いています。その他の言語システムがやっていることは、人間が読みやすいように英語風の文法で書かれたプログラムを機械語に翻訳するのが仕事です。

 コンピュータの黎明期には、どんなプログラムも全部機械語で作りました。コンピュータに入れる最初のプログラムは、2進数の羅列である機械語で直接制作して入力したものです。
 当然、英語風の文章で書かれたプログラムを機械語に翻訳するプログラム(コンパイラとかインタプリタとか呼ばれます。)も、最初は機械語で制作します。
 キーボードを打つと文字が画面に出てくるという機構そのもののプログラム(これはwin10のようなOSが担当する部門です。)も、機械語で制作します。

 本当の一番最初は、最低限の入力・出力ができるOSの子供を機械語で作り、簡単な小さな言語のコンパイラを機械語で制作し、その後、その言語でもう少し便利になるようにOSとコンパイラを作り直して改良していく。という道筋になります。こうして、どんどんと、システム環境を大きく育てていくわけです。

 さて、今時なら、windows10を作ろうとしたときには、すでに、windows8というOSとその上で動く様々な言語環境がちゃんと揃っています。から、その環境内で作れば良いことになります。
 ちなみに、windows10そのものは、基本的にはCという言語で作られています。この言語は、やろうと思えば、機械語のように細かくCPUを操作することができるという特徴を持ちます。windowsに限らずOSを作るときには、よく使われる言語です。

投稿日時 - 2019-10-17 22:26:31

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(7)

質問が「Windws10自身の開発言語」ということであれば、カーネルに関しては以下に記事がある。

[Windows 10を開発するのに使われているプログラミング言語は何なのか? GIGAZINE]
https://gigazine.net/news/20190417-language-used-making-windows-10/
※原典も参照のこと

[Windows 10のソースコードは何で書かれている? @IT]
https://www.atmarkit.co.jp/ait/articles/1904/16/news050.html

両者の記事を総合すると、CやC++とのこと。


どうして動くのかについては話が長くなるので省くが、OSに関する実装の書籍や、低レイヤー技術の書籍を参照すると、理解の助けになるだろう。

[作って理解するOS x86系コンピュータを動かす理論と実装 技術評論社]
https://gihyo.jp/book/2019/978-4-297-10847-2

[低レイヤーを学ぶための技術書をまとめてみる Qiita]
https://qiita.com/hareku/items/3383be7aee616e04b80f

他にもあるので、google検索してほしい。

投稿日時 - 2019-10-18 21:17:02

ANo.6

最近のPCではBIOSはUEFIに切り替わっています。
またUEFIはC言語で開発されている事が多いようです。

投稿日時 - 2019-10-18 00:03:19

ANo.5

Win10は渡しが聞いたところによれば主にC言語とC++言語で開発されているそうです。OSを実際に使うときにはこれを機械語に翻訳してあるものを使います。
PCの電源を入れたらマザーボードのROMに書かれているBIOSが読み込まれます。BIOSはOSを起動するためのプログラムであって,どのOSでも同じものを使います。BIOSが起動したら,ハードディスクに書かれているOSを起動するわけですが,一気にすべてを行うわけではありません。まずディスクの最初の512バイト(MBR)をメモリに読みこみ,その後はMBRの指示に従ってOSの起動に必要な様々なプログラム(ブートローダ)を起動していきます。その後はブートローダの指示にしたがって自動的にOSが起動することになります。
OSが起動したら,その後は人間の指示に従って様々なアプリケーションプログラムを起動します。

投稿日時 - 2019-10-17 23:07:03

ANo.4

OSと呼ばれるソフトウェアは幾つものソフトウェアの集合体です。
PCの電源を入れた直後に起動するブートローダーや、低レベルでハードウェアのコントロールするBIOS等は、ほとんどがアセンブリ言語で書かれています。C言語でもハードウェアの制御は出来ますが、CPUの初期化等はアセンブリ言語でないと非常に難しいです。ハードウェアの準備が出来た以降から、C言語で書かれたプログラムが使われます。
大雑把に言うとそんな感じです。

投稿日時 - 2019-10-17 22:41:43

ANo.2

 Windowsさんからみれば、アプリケーションのひとつです。スーパーマリオがWindowsさんで動くのと一緒です。

投稿日時 - 2019-10-17 22:18:57

ANo.1

 
WindowsはCとC++で開発されてます。
 

投稿日時 - 2019-10-17 21:28:04