質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
OS

OS(オペレーティングシステム)は、システムソフトウェアの一種であり、一般的に、ハードウェアを直接的に管理・操作する最も中心的な機能を有するソフトウェアがオペレーティングシステムとして呼ばれます。

Q&A

解決済

2回答

1273閲覧

パソコンのソフトの基本的な動き

violineer

総合スコア72

OS

OS(オペレーティングシステム)は、システムソフトウェアの一種であり、一般的に、ハードウェアを直接的に管理・操作する最も中心的な機能を有するソフトウェアがオペレーティングシステムとして呼ばれます。

0グッド

0クリップ

投稿2017/06/06 10:56

編集2017/06/06 11:05

パソコンの基本的な仕組みについて

自分の理解があっているか確認してほしいです。

①どのパソコン(まだOSが入っていない状態)にもどのOSを入れることは可能
はあっていますか??
=あるCPUに対してはあるOSしか入れられない、ということはありますか??


パソコン上で 自分でプログラムを組んでソフトウェアを動かす、という行為は

設定:Cで書いたプログラムを実行したいとき

1.自分のパソコンのOSにあったCのコンパイラを探し、ダウンロードする
2.ソースコードをCで書く
3.コンパイルを行う

であっていますか??
これは、
・OS関係なく言語は共通で使える
という前提ですが、あっていますかね……??

基本的に、どのようなプログラムであっても、
①その言語に対応した
②使用中のOSに対応する
コンパイラをダウンロードすれば実行可能である、という点の確認をしたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

色々あるのですが、CPUに絞って言います。

今現在、「パソコン」という商品として売られているパソコンのほとんどはx86_64というアーキテクチャを採用したCPUが搭載されています。CPUのアーキテクチャというのはどういう命令ができるかという規格のようなものです。x86_64はx86というアーキテクチャを64bitに拡張した物でx86であり、一昔前のパソコンではx86のCPUを搭載していました。また、古いMacではPowerPCというx86やx86_64とは全く別系統で互換性のないCPUを搭載していました。もし、古いパソコン(Mac含む)があれば、x86_64ではないものが搭載されている可能性はあります。

x86_64向けに作られたOSはx86_64を採用したCPUのマシンで動作することは可能ですが、x86_64と互換性のないCPUのマシンで動作させることはできません。ですので、先ほどの古いパソコンでは動作しない場合があります。しかし、x86向けに作られたOSはx86でもx86_64でも動作させることが可能です。なぜなら、x86_64はx86を拡張した物で、動作に互換性を持たせているからです。

どのOSがどのCPU向けかは異なります。かつてのWindowsは32bit版と64bit版がそれぞれ別に売られていることがありました(現在のWindows 10は両方が入っていて、インストール時に選択できる形でしか売ってないようです)。この32bit版はx86、64bit版はx86_64のことです。64bit版を買ってきても、x86のパソコンにはいられません。ましてやPowerPCのMacには絶対に入れることはできません。このようにCPUによっては入れられない場合があると言うことがありました。

Windows以外も同様で、OSによってどのアーキテクチャ向けを用意しているかが異なります。たとえばRed Hat Linux 7はx86版がありません。どうやっても、x86な古いパソコンには入れられません。その他、もっと専用のCPU向けしか無い物があります。パソコン以外に目を向けると、CPUのアーキテクチャはもっとあります。組み込みやスマホ・タブレットなどに向いているARM、サーバーやワークステーション向けのSPARC、x86_64との競争に敗れたIA-64、Macに見捨てられたがゲーム機等で採用されているPowerPC等です。これらはさらに32bit版と64bit版があったり、さらに細かくわかれます。それら全てをサポートするのは大変です。ですので、全てのOSがどのCPUでも動作させることができるとは言えません。Windows 10もx86とx86_64とARM(一部のエディションのみ、Homeとかは用意されていない)でしか動作させることはできません。

質問が二つあるようですが、コンパイラを必ずしもダウンロードする必要はありません。例えば、CentOSのDVDインストーラでインストールするときに、開発パッケージも含めて初めからインストールしておけば、OSのインストールが終わった時点でコンパイラはインストールされています。

全てのOSに全ての言語のコンパイラや環境が揃っているわけではありません。Cは多くのOSで利用可能ですが、比較的新しい言語の場合は、OSが限られている場合や、コンパイラのインストールが大変な場合もあります。たとえば、Crystalという言語ではLinuxやMacでは動作しますが、Windowsのネイティブ環境での動作はサポートしていません(Bash on Ubuntu on Windowsでは可能ですが)。DelphiはMac向けのアプリも作成可能ですが、開発環境はWindowsでしか動作しません。

また、そのOSで動くアプリをそのOSで開発できない物があります。一番の例はスマホ・タブレットのiOSやAndroidでしょう。iPhoneで動くアプリだからといってiPhone上でコンパイルしているのではありません。WindowsやMacなどでコンパイルして、それをスマホ・タブレットにもってきて実行する形になります。

結局何が言いたいかというと、全ての○○があてはまる、という事象はわりと少ないと言うことです。探せば、どこかしら例外が出てくるのはよくあることであり、一般化するのは危険です。事実Cであっても、組み込み製品向けの場合は、組み込み製品の基板上でコンパイルするなんて事はしていません。パソコン等でその組み込み製品向けにコンパイルできるコンパイラを使ってコンパイルし、製品の中にコピーして実行しています。より具体的に、ある言語、あるOS、という話をしないと、YESかNOかの回答はできず、だいたいそうかな、程度しか答えることはできません。

投稿2017/06/06 12:37

編集2017/06/06 12:39
raccy

総合スコア21735

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

もう少し具体的な内容でしたら回答もつきやすいかと。

基本的に、どのようなプログラムであっても、

おおむね YES ですが、こまかいこといったら NO かな。

OSはハードウェアと密接に関係してきますが、
ポピュラーなものだったらそんなに心配しなくても
いいんじゃないでしょうか。

投稿2017/06/06 11:36

takasima20

総合スコア7458

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問