SNS初心者講座

"ネットサーフィンって最近聞かない? それはインターネットが日常になった証拠です。 あなたの日常にインターネットの新たな可能性をお届けします!"

PCについて学んでみよう! Part?
PCにはさまざまな部品が付いています。
まずは基本ソフトウェアとも言われている、データとデータを繋ぐ架け橋(要)
OSについて学んでみます。
・OSとは?
OSとは「オペレーティングシステム」の略称でOSと言われています。
オペレーティングシステム (Operating System, OS) は、コンピュータにおいて、ハードウェアを抽象化したインターフェースをアプリケーションソフトウェアに提供するソフトウェアであり、基本ソフトウェアの一種である。なお、OSのGUIフロントエンドであるオペレーティング環境についてもここで扱う。

広義のOSには、ウィンドウシステムやデータベース管理システム (DBMS) などのミドルウェア、ファイル管理ソフトウェアやエディタや各種設定ツールなどのユーティリティ(これらはいずれも基本ソフトウェア)、基本的なアプリケーションソフトウェア(ウェブブラウザや時計などのアクセサリ)を含むことがある。一般的に「オペレーティングシステム」という場合はこちらを指すことが多い。

現在に至る統合環境と平易なユーザインタフェースを意識する傾向は、Mac OSやMicrosoft Windowsの登場で鮮明となった。このため、Mac OS以降の近年のOSとMS-DOSなどの初期のOSは分けて扱われることが多い。

OSの中で、ハードウェアを直接管理操作するなどの最も中心的な機能の部分を、特にカーネルと呼んで分けることもある。この場合、カーネル以外の部分(シェルなど)はユーザーランドと呼ばれる。また、カーネルとユーザーランドではCPUモードやアドレス空間が異なっている。

ちなみにオペレーティングシステムは完全な一般名詞だが、“OS”は本来IBMの商標である。

・OSの目的
OSの主な目的は3つある。すなわち、ハードウェアの抽象化、リソースの管理、そしてコンピュータ利用効率の向上である。

ハードウェアの抽象化
コンピュータごとに目的は同じでも製造元が異なるなどで、動作に微妙に差異があるハードウェアが搭載されていることが多い。そのようなハードウェアの統一的で単純化された利用方法を提供することで、アプリケーションソフトウェアの開発を容易にする。
リソースの管理
複数のアプリケーションソフトウェアを同時に利用する際に、互いに独立して動作できるように資源を管理する。プログラムからの資源要求に競合が起きた場合には、待たせる、エラーを返すなど、適切に対処する。
コンピュータの利用効率の向上
複数のタスクを同時に実行する際に、資源割り当ての順番や処理の割り当て時間を工夫することで、全体のスループットを向上させる。これはデスクトップ環境ではあまり恩恵を感じることはないが、ウェブサーバやデータベースなど大量のアクセスをこなす用途などでは重要になる。

・OSの機能
OSはアプリケーションソフトウェアを動作させるのが第一の目的である。このためのインターフェースがAPI(アプリケーションプログラミング・インタフェース)とABI(アプリケーションバイナリ・インタフェース)である。カーネルはシステムコールによってアプリケーションにサービスを提供する。さらに基本ライブラリも含めた形でアプリケーションに対してAPI/ABIを提供する。アプリケーションによってはOS上のミドルウェアやアプリケーションフレームワークなどをAPIとして使用する場合もある。

APIはプログラミングのためのインターフェースであり、プログラムを作成する際の規則を構成する。例えば、C言語での関数やFORTRAN/Pascalなどのライブラリ呼び出しといったものがそれにあたる。

・プロセス管理
コンピュータ上の各動作はバックグラウンドであっても一般のアプリケーションであっても、内部的にはプロセスとして動作する。DOSのような古いOSは一度に1つのプロセスしか実行できない。最近のOSは一度に複数のプロセスを動作させることができる(マルチタスク)。プロセス管理は複数のプロセスを実行するためにOSが行う処理である。プロセッサを1つだけ持つ一般的なコンピュータでは、マルチタスクは高速にプロセスからプロセスへ切り替えを行うことで実現される。ユーザーがより多くのプロセスを実行すれば、個々のプロセスに割り当てられる時間は少なくなっていく。多くのシステムでは、これが音声の途切れやマウスカーソルの奇妙な動作などを引き起こす。一般的なプロセス管理は、プロセスごとに優先度を与え、それによって配分される時間を決めている。


・メモリ管理

パーキンソンの法則によると、「メモリを拡張するとプログラムはそれに伴って拡大する」という。プログラマーは無限の容量と無限の速度のメモリを理想としている。コンピュータのメモリは階層構造になっていて、最も高速なレジスタから、キャッシュメモリ、RAM、最も低速なディスク装置がある。OS内のメモリ管理部はこのようなメモリを管理するもので、利用可能な部分、割り当てと解放、主記憶と二次記憶との間でのスワップなどを制御する。


・ファイルシステム

OSはその歴史や用途に応じて様々のファイルシステムを備えている。

現在主流のOSにおいては、ほとんど全てのファイルシステムはディレクトリによる階層構造を持つ。これは、Multicsを起源とするものであり、メインフレームのOSではディレクトリを持たないものもある。また、ディレクトリ名とファイル名の区切り記号、ファイルの命名規則などはシステムによって異なる。

Windowsが標準で扱えるファイルシステムは、FAT、FAT32、NTFS[2]である。現在Windows上ではNTFSが最も信頼性と効率が高いものとして一般的に利用される。FATはMS-DOSから採用される古いファイルシステムであるが、パーティションやファイルサイズに制限があり、大容量化したハードディスクではあまり用いられない。


ネットワーク

多くのOSはTCP/IPプロトコルをサポートしている。歴史的に見れば、初期のコンピュータネットワークはモデムを使って電話回線で行われていた(BSC手順など)。その後、パケット通信が使われるようになり、IBMのSNAなどの各社独自のネットワークアーキテクチャが登場した。現在では、TCP/IPを中心とした通信が主流となっている。

通信プロトコルは、トランスポート層まではカーネル内モジュールとして実装し、プレゼンテーション層より上はシステムプロセスとして実装されるのが一般的である。セッション層の実装はシステムによって異なる。


グラフィカルユーザインタフェース (GUI)

最近のOSは一般にGUIを持っている。多くのプロプライエタリなシステム(Windows やMac OS)はカーネルとGUIが密接に関係している。他のOSではユーザーインターフェースはモジュール化されていて、任意のGUIをインストールしたり、新たなGUIを作成したりできる(Linux、FreeBSD、OpenSolaris)。

Windowsでは新たなバージョンが登場するたびにGUIを変更してきた。初期のWindowsからWindows Vistaまでを比べてみると、その変化は大きい。

Macでは初期からSystem 6.0.xまでが白黒のGUIであったが、System 7以降はカラー化されたのみで、Mac OS 8でプラチナアピアランスが採用されても、Mac OS 9.2.2までは基本要素はほぼ変わらなかった。しかしMac OS Xになって完全に刷新され、AquaベースのGUIになった。Mac OS X v10.3以降ではメタルアピアランスが導入され、その後もバージョンアップのたびに少しずつ手が加えられている。また、Aquaとは別にX11も用意されている。

Mac OS Xの前身のNEXTSTEPは様々な独創的なGUI要素で知られ、他のOSやデスクトップ環境に大きな影響を与えた。グレースケールのシステムであったころよりアルファチャンネルを備えていたのは特筆すべき点である。

Linuxでは、GUIを提供するデスクトップ環境がいくつか存在する。Linuxで使えるGUIとして有名なものは、GNOMEとKDEがある。


デバイスドライバ

デバイスドライバはハードウェアとのやり取りをするためのソフトウェアである。一般にハードウェアとの通信を行うインタフェースを持ち、ハードウェアの接続される何らかの通信サブシステムやバスを経由して通信を行う。コマンドをハードウェアに送り、データの送受信を行う。また、一方でOSやアプリケーションに対するインタフェースも提供する。ハードウェアに強く依存するプログラムであり、OSにも依存している。これによって、OSやアプリケーションがハードウェアを使って動作することが容易になっている。ハードウェアの非同期的な割り込みの処理もデバイスドライバの役割である。

ここで世界中の皆にも大人気のWindowsの種類について調べてみました。
Windows のタイムライン 発売年 バージョン 製品名
1985年 1.01 Windows 1.01
1986年 1.03 Windows 1.03
1987年 2.03 Windows 2.03
1988年 2.1 Windows 2.1
1988年 2.0 Windows/286 2.0
1988年 2.1 Windows/386 2.1
1990年 3.0 Windows 3.0
1992年 3.1 Windows 3.1
1992年 3.1 Windows For Workgroups 3.1
1994年 NT 3.1 Windows NT 3.1
1994年 3.2 Windows 3.2
1994年 NT 3.5 Windows NT 3.5
1995年 NT 3.51 Windows NT 3.51
1995年 4.0 Windows 95
1996年 NT 4.0 Windows NT 4.0
1996年 1.01 Windows CE 1.01
1997年 2.0 Windows CE 2.0
1997年 2.01 Windows CE 2.01
1998年 2.10 Windows CE 2.10
1998年 2.11 Windows CE 2.11
1998年 4.1 Windows 98
1999年 2.12 Windows CE 2.12
1999年 4.1 Windows 98 Second Edition
2000年 NT 5.0 Windows 2000
2000年 4.9 Windows Millennium Edition
2000年 3.0 Windows CE 3.0
2001年 NT 5.1 Windows XP
2002年 4.1 Windows CE 4.1
2002年 NT 5.1 Windows XP TabletPC, Media Center Edition
2003年 NT 5.2 Windows Server 2003
2003年 NT 5.2 Windows XP 64-bit Edition
2004年 5.0 Windows CE 5.0
2005年 NT 5.2 Windows XP Professional x64 Edition
2005年 NT 5.2 Windows Server 2003 x64 Editions
2006年 NT 5.1 Windows Fundamentals for Legacy PCs
2006年 6.0 Windows Embedded CE 6.0
2007年 NT 6.0 Windows Vista
2007年 NT 5.2 Windows Home Server
2008年 NT 6.0 Windows Server 2008
2009年 NT 6.1 Windows 7
2009年(予定) NT 6.1 Windows Server 2008 R2

詳細は「Windows 1.0」、「Windows 2.0」をそれぞれ参照

Windows は1981年9月に開始した「Interface Manager」というプロジェクトから始まる。1983年11月に Windows が発表されたが、それから2年後の 1985年11月までリリースされなかった。

Windows 1.0 は MS-DOS 上で動くアプリケーションの一種でシェルに過ぎなかった。MS-DOSの扱える640KBのコンベンショナルメモリをさらにWindowsのシステムに占有されたため、実際にアプリケーションを動かすためのフリーメモリがほとんど残らず実用には程遠い物だった。Windows 1.0 は、複数のウィンドウを画面にウィンドウ自体を重ねて表示せずに、タイル状に表示した。ダイアログ ボックスだけは、ウィンドウに重ねて表示できた。

1987年にリリースされた Windows 2.0 はウィンドウの重ね合わせが可能となった。MS-DOSから利用出来るメモリ容量を拡張するEMSメモリを利用する事によって、一応は640KB以上のメインメモリが利用できるようになり、1.0より大幅に実用性は高まった。


Windows 3.0 と 3.1

1990年に発売された Windows 3.0 は、操作感の改良やタスク管理、メモリ管理など、各種機能が網羅的に強化された。日本では、当時の DOS/V の流行とともに後継である Windows 3.1 が爆発的に売れるようになった。各社から発売される非純正のソフトウェアも徐々に増え、不足していたネットワーク機能などが供給されるようになってきた。1990年から1995年にかけて、Windows 3.0 と Windows 3.1 は全世界で1億台、日本国内でも400万台が出荷され、Windows は事実上の標準の地位を確立した[4] 。


Windows 95 と 98、Me

1995年秋、Windows 95 が発売された。このとき、膨大な数のパソコンがアップデートされたことと、世界規模で発売イベントが行われたことによって、全世界でパソコン ユーザーのみならず一般消費者にまで Windows 95 は強烈な印象を与えることになった[4]。 Windows 95 は、長いファイル名の対応や、自動的にデバイスを認識する機能の対応、ほとんどの作業がマウス操作で行える新しいユーザー インターフェイスなど、本格的な改良が施された。32 ビット アプリケーションが実行できるようになり、Windows 3.x に比べて安定性が増えた。特に 80386 の保護仮想モードを利用することによって、限定的ながらもメモリ保護技術とプリエンプティブ マルチタスク機能を実現した。Macintosh が Mac OS X の登場までこれらの技術を導入出来なかった事もあり、Macintosh に対して大きなアドバンテージとなった。

Windows 95 の発売された1995年は、パソコンの普及の元年と言われるようになった。その後の Windows シリーズでは、GUI も特に変更されることなく、多くの操作において Windows 95 の操作性が基盤となっている。

1998年に Windows 98 がリリースされた。翌年に Windows 98 Second Edition がリリースされた。

2000年に Windows Me がリリースされた。一番最後の Windows 9x である。この頃には Windows 9x の開発がされなくなることは計画されており、Me 以降は実際にリリースされていない。

Windows 9x系の OS は内部的に MS-DOS を大幅に拡張した物に過ぎず、OS コアの部分には 16 ビットによる処理も多く残されていた。これは過去のソフトウェアとの互換性や処理負荷の軽減といったメリットをもたらしたが、同時に動作の不安定性を増し、多くのユーザーに理不尽なブルースクリーンを体験させる事となった。


Windows NT 系

NT は高可用性が要求されるビジネス向けの市場のためにリリースされた。Windows 9x の開発の終了により、9x の役割も要求されるようになった。一番最初にリリースされた Windows NT 3.1 から、NT 3.5 (1994年)、NT 3.51 (1995年)、NT 4.0 (1996年)と、ほぼ 1 年ごとにリリースされた。 2000年に Windows 2000 がリリースされ、NT が消費者用としても以前に比べて採用されるようになった。 2001年に Windows XP がリリースされ、消費者向けのエディションが用意された初めての NT である。2003年に Windows Server 2003 がリリースされた。 2006年に Windows Vista はリリースされた。2008年に、Windows Server 2008 がリリースされた。Windows Vista と Windows Server 2008 の開発では、以前に比べても長い開発期間を要した。Windows NT 3.1 と Windows 2000 の開発期間を含めると、大きな変更があった場合極端に長かったわけではない。 NT の GUI は、同時期にリリースされた消費者向けの Windows と似たインターフェイスを採用した。NT は用途や要求に対応するエディションが複数あり、Windows XP では以前に比べて一気に増えた。

セキュリティに関して
Windowsについては、他のOSに比べセキュリティホールが悪用されることが多い。理由として、シェアが大きく初心者からビジネスユーザーまで様々なユーザーがいることから、クラッカーの標的にされやすいこと、OS自体にセキュリティホールが出現しやすい構造上の問題があるなどの原因が指摘されている。Windowsパソコンに侵入するコンピュータウイルスを駆除するために作られたアンチウイルスソフトウェアの種類も多く、多くの場合メーカー製パソコンに対してプレインストールされている。

2001年の \"Nimda\" 騒ぎ以降、2003年の\"MSBlast\"など、コンピュータウイルスやワームの被害は連続して発生しており、最近ではスパイウェアが問題になっている。Windows内の要素では、標準で搭載されているInternet Explorer(ウェブブラウザ)やOutlook Express(電子メールクライアント)にセキュリティホールが発見されることが多い。また、マイクロソフト内の体質を原因と挙げる経済学者もいる。

また、Windowsにセキュリティホールが多発する理由に、Windows APIの設計の問題がある。Windows APIはオブジェクト指向を取り入れて、カーネル側オブジェクトを保持している構造体やクラスのアドレスをハンドル値とし、ユーザープロセスに渡す。このため、ユーザーAPIから渡されたハンドル値が不正だったり、別のハンドルが指すオブジェクトにすりかえてしまうと、保護されたカーネル空間というセキュリティを突破して、不正なアクセスをカーネル側で実行させることができてしまう。この問題はWindows NT 4.0の時代にあらゆるAPIで存在し得ることが発覚し、カーネル空間以外の場所に存在するオブジェクトを参照しないようセキュリティ修正が加えられた。

しかし、その修正でもオブジェクトのすり替えは可能で、似たオブジェクトを作るAPIを利用してセキュリティを突破できると証明された。Windows XPまでのNT系でセキュリティ上重要なAPIではオブジェクト自身のアドレスではなく、そのオブジェクトを識別する値をユーザープロセスに渡し、不正なオブジェクトへのすり替えが出来ないように修正されていった。しかし、この修正はパフォーマンスに影響を与える事から普段頻繁に使われるAPIでは行われていない。例えばディスプレイコンテキストにはセキュリティ修飾子が無く、ウィンドウステーションによって一括管理する簡易セキュリティで代用されている。このため、特権の昇格やカーネル内での任意コード実行といったセキュリティホールの報告が散見される。

Windows Vistaでは、当初Windows APIに替わる新API、WinFXを中心に据えようという目論見がなされていた[5]。これはWindows APIが持つ欠点を解消する最も確実な手段と言える。しかし、この大胆な計画はまったく賛同を得られずマイクロソフトは撤回した。その代わり、Security Development Lifecycle プロセスでWindows APIの弱点を洗い出して手当たり次第修正し、さらにWin32kやNTカーネルに組み込まれていたモジュールを切り離し、ユーザ空間で動作するWindowsサービスモジュールにする事でWindows APIの根本的な弱点を封じ込める修正を行った。この改修の成果は、Windows Vista発売以後、Windows Updateで提供された修正モジュールがWindows XPよりも少ないという形で現れている[6]。なお、Windows APIに替わるという計画はなくなったものの、WinFXは.NET Framework 3.0 としてWindows Vistaに搭載されている。


サービス パック
Windowsに発見されたセキュリティホールなどの不具合に対して、頻繁に修正モジュールがリリースされている。これらの修正モジュールの集成して動作検証したパッケージをService Pack(サービス パック 略称:SP)という形で発行している。似たようなものにService Releaseと呼ばれるパッケージも発行している。

SPを適用することによってセキュリティの強化、新機能の追加などのメリットを得られる。ただし、システムに若干の改変を加えるために、一部のアプリケーションの動作に支障をきたすなど問題を引き起こすこともある。また、特定のサービスパックのバージョンに依存するソフトウェアも存在する。現にWindows XPにSPを導入したのが原因で、ヤマハ製のサウンドカードが搭載されたパソコンでサウンドがならなくなるトラブルもあった[7]。これらの問題から特に企業においては適用されないこともあるが、マイクロソフトは強く適用を推奨している。

また、Windows XP SP2には「Microsoft Windows XP Service Pack 2 セキュリティ 強化機能搭載」という正式名称が付けられている。これには、マイクロソフトはセキュリティに力を入れていなかったという従来の方針を転換し、今後はセキュリティを最重要課題として、ユーザーの印象を変えていくという意味合いがある。

マイクロソフトは、Service Packが適用されていないバージョンのみを指す場合に『RTM』や『Gold』と表記する。

OSについてだいぶ学べたと思います。
次回は何について学ぼうかな〜?
続きが気になる場合は暫く待てィ!
乞うご期待!
http://blog.goo.ne.jp/tive_tales_take-3t-and_tsukka/e/488b6c16b1f3674f0471eb11636ef5c8

ページの先頭へ戻る