パソコンに初めから入ってるものですね!
システムソフトウェア(英: System Software)ないし基本ソフトウェアとは、コンピュータのハードウェアを管理・制御するなど、コンピュータを使う事そのものをサポートするためのソフトウェア全般を指す用語。対義語はアプリケーションソフトウェア。コンピュータシステムの基本的な部分である。最も明らかな例としてオペレーティングシステムがあるが、他にもコンパイラやインタプリタなどの言語処理系、DBMSやWebサーバなどのミドルウェア、OpenGLやデータベースなどのライブラリ類も含まれる。システム、システム工学、システムエンジニアなどといった用語とは直接の関係はない。
一方、アプリケーションソフトウェアは、一般にエンドユーザーが特定のタスクを実行するのを補助するソフトウェアであり、ワードプロセッサや画像処理など多岐にわたる。
ROMなどの集積回路に格納されたシステムソフトウェアは、ファームウェアと呼ばれる。
システムプログラミング(英: System programming)とは、システムソフトウェアのプログラミングを指す。アプリケーションソフトウェアのプログラミングとの主な違いは、ハードウェアとの関わりが大きい点である。他にも以下のような特徴がある。
プログラマはハードウェアやその他のシステムの特徴を前提として、それらを利用してコードを作成する。例えば、そのハードウェアで効率がよいとわかっているアルゴリズムを採用したりする。
以下のような低レベルなプログラミング言語が使われることが多い。
リソースに制限のある環境で動作可能な言語を使う。
効率がよく、実行時オーバーヘッドの小さい言語を使う。
ランタイムライブラリが非常に小さいか、全くライブラリを持たない言語を使う。
メモリアクセスや制御フローを直接制御できる。
プログラムの一部を直接アセンブリ言語で書くことが出来る。
リソースが制限されているためデバッガが使えない場合もあり、そうするとデバッグが困難になる。このため、エミュレータ上でデバッグを行ったりする。
システムプログラミングはアプリケーションプログラミングとかなり異なるため、プログラマはそれぞれの領域に特化する傾向がある。
システムプログラミングでは、プログラミングに利用できる道具が制限されることが多い。ガベージコレクションは一般的ではないし、デバッグが困難な場合もある。ランタイムライブラリはあったとしても貧弱で、あまりエラーチェックをしない。このような制限があるため、モニタリングやデータロギングといった技法が使われることが多い。オペレーティングシステム(特にカーネル)はそのようなロギングを多用している。
古くは、システムプログラマは例外なくアセンブリ言語を使っていた。1960年代後半に高級言語によるハードウェアサポートの試みにより、BLISS、BCPL、C言語などが使われるようになり、UNIXの普及もあって1980年代にはそれが一般化した。Mac OS X の I/O Kit ドライバなどでは、Embedded C++ が使われることもある。
オペレーティングシステムやネットワーク関連の実装ではシステムプログラミングが必要となる(例えば、仮想記憶を実装する場合やデバイスドライバを実装する場合など)。
(以上、ウィキペディアより引用)
色々面倒なんですねー。
3377 森上 氏の毎日の憂さ晴らしの日記
3678 私設私書箱 清宮 君のいつもまじめな日記
3978 私設私書箱 浅羽 君のいつもまじめな日記
4277 国分寺 デリヘル 大空 的思考能力
八王子 デリヘル嬢 竹上 ですよ?
3978 私設私書箱 浅羽 君のいつもまじめな日記
2778 宗政 のブログ的独り言
3078 小比賀 のブログ的独り言
3378 森尻 のブログ的独り言
3679 エステ 清見 氏の今日のまとめ的ブログ日記