Caution
お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。
UNIX(Linux)
入門編
- UNIX(Linux)とは
- ディストリビューションとは
- CentOSとMacOSとCUIについて
- 仮想化ソフトウェアを使ったCentOSのインストールとMacOSのCUI環境について
- ログインとrootユーザーとシャットダウン等について
- コマンドの構造と注意点について
- ファイルシステムとカレントディレクトリの移動と表示(cdとpwd)について
- 各主要ディレクトリの解説とディレクトリ等の内容表示(ls)について
- ちょっと高度なディレクトリの移動(cd)とパスについて
- 『ls』コマンドの応用(1)とドットファイルについて
- 『ls』コマンドの応用(2)
- タブキーを使った入力補完について
- ディレクトリの作成方法(mkdir)について
- ファイルの簡易作成(touch)とファイルについて
- 標準入出力とリダイレクション(>と>>)を使ったファイル生成とechoとcatについて
- ファイルとディレクトリの削除(rm)について
- ファイルとディレクトリのコピー(cp)について
- ファイルとディレクトリの移動と名前変更(mv)について
- viエディタとは
- viの基本的な使い方(1)
- viの基本的な使い方(2)
- ターミナル(sshとTera Term)を使ったリモート操作について
- ソフトウェアのインストール方法(yumとパッケージ管理ツール)について
- ユーザーの概要と確認と追加と切り替え(adduserとsu)について
- ユーザーのパスワードと削除と更新と管理者権限での実行(passwdとuserdelとusermodとsudo)について
- グループの概要と確認方法(groups)について
- グループの追加と削除と設定変更(groupaddとgroupdelとgroupmod)とユーザー追加方法について
- パーミッション(権限)について
- パーミッションの設定方法(chmodとchown)について
- トップページ
- UNIX(Linux)入門編 - UNIX(Linux)とは
UNIX(Linux)とは
みなさまどうも。
初めましての方は初めまして、どこかの記事でお会いした方はまたお会い出来て大変光栄でございます。こちらは『UNIX(Linux)』の入門編のコーナーでございます、ようこそおいで下さいました。
これから初心者の方向けに『UNIX(Linux)』を色々と解説していきたいと思います。ではいつも通り『UNIX』(ユニックス)くんとか『Linux』(リナックス)くんとか「この子達はなんじゃらほい?」というとこから色々と見ていきましょう。
まず『UNIX』くんについてですがこの子は『オペレーションシステム』の1つです。『オペレーションシステム』は略して『OS』と呼ばれる事が多いですね。
そんで「『OS』ってなーに?」ってお話なんですが『OS』とは簡単に説明すると「色々な部品を簡単かつ効率的に制御する為のソフトウェア」って感じになります。
皆様は今PCだったりスマホだったりで当記事を閲覧していると思うのですが、PCやスマホの内部にはCPU、メモリ、SSDとかの記憶デバイス、ディスプレイ、キーボード、マウス、タッチパッド、バッテリーなどなど沢山の部品がマザーボードと呼ばれる基盤に接続されている状態になっています。んでそれらを総合的に管理しているのが『OS』と呼ばれるものになる感じですね。
そして『OS』はどんな事をしているのか具体的に知りたい、となったならば逆に『OS』がない状態で何かの処理を作る事を考えてみると分かりやすいかもしれません。
例えば「キーボードで入力されたアルファベットをディスプレイに出力する処理」を『OS』がない状態で構築するとしましょう。
そうするとまず最初に「キーボードに入力されたキーを特定」する必要があります。キーボードはボタン(通電のオンオフが切り替えできる装置)の寄せ集めで何かのキーを押すと決められた場所に通電されるような仕組みになっていますので全てのキーがどういった通電になるのかを調べて構築します。
そしたら入力された内容をメモリに保存しておく必要があるのですがこれはCPUのアーキテクチャの構造などを把握したりメモリのアドレスとかの構造を把握したりしつつ処理を組むような感じになるのでここも色々頑張りましょう。
それが出来たらさらにディスプレイの構造を把握して処理を書いていきます。ディスプレイは細かい電球が集まっているような構造になっているので「a」を出力するならば人間が「a」と読めるように電球を光らせればOKです。
…って感じになるのですがここまでの処理を組むのも非常に面倒くさいですよね。物理レベルのプログラミングになるのでかなり敷居が高いってのもありますしこんなものを0から作るとなると寿命が足りなくなってしまうこと請け合いです。
んでこういう基本的な処理を寄せ集めて出来ているのが『OS』です。なんとなーくでも『OS』くんの凄さが分かって頂けましたでしょうか。
そして『UNIX』のお話に戻りますが『UNIX』は『OS』のさきがけであり元祖『OS』でございます。昨今の『WindowsOS』や『MacOS』も『UNIX』の概念を元に構築されていますので『UNIX』は世界中の『OS』のお父さん的な存在となるんですね。
一応『UNIX』が出る前も『OS』的な処理群や概念は存在していたのですが内容をみてみると昨今の『OS』とは程遠い感じになっていますので「『UNIX』こそ元祖『OS』である」という考えを持ってる方が多いです。著者もその一人ですね。
んで少し歴史を振り返ってみると『UNIX』は1969年頃にAT&T社のベル研究所で開発が開始され、実際に組み込みされ始めたのが1978年頃になります。
当時のベル研究所に在籍していた方で一番有名なのはやはりデニス・リッチー(Dennis MacAlistair Ritchie)さんですね。デニス・リッチーさんは大多数のプログラム言語の元になっているC言語の開発者でもございますので昨今のIT世界の創設者でありIT世界を構築した神様といっても過言では無いお方です。
そして1980年代に『UNIX』が組み込まれたPC(サーバー)が大手企業さんに導入され始めていきます。『UNIX』は出た当時から非常に使いやすく、大変素晴らしい出来栄えだったわけなのですがここで少し問題が発生します。それは「デバイスの値段が高すぎる」って事です。
元々『UNIX』は「デバイスとセットにして販売する」という形式が取られていました。
最近だとAppleさんが販売している商品と同じような感じになりますね。AppleさんのMacBookとかってPC本体に『MacOS』が組み込みされた状態で販売されていますよね。まさにこれでございますので初期の『UNIX』がどういう風に売られていたかはAppleさんの販売方式をイメージしてみると良いかもです。
それに対して『WindowsOS』を作ってるマイクロソフトさんは「本体とOSをセットにして販売している」のではなく「ある程度の規格が守られたデバイスならばインストール出来るようになっているOSのみを販売している」ので初期の『UNIX』は『WindowsOS』とはちょうど間逆な販売方式になりますね。
んでAppleさんの商品は安いやつになると数万円くらいで買えるわけなんですが当時の『UNIX』なマシンは少し頑張れば買えるような値段ではございませんでした。
著者の記憶によると1990年代初期の頃にNECさんや富士通さんで販売されていたUNIXサーバーは安くても数十万円を超えるような商品で中古車の値段よりも高かった記憶がありますね。高価格なやーつだと1億円前後になるものもあったので普通の方が買えるような感じではなかったわけです。
「じゃあ『UNIX』の勉強をする場合はどうやってたの?(´・ω・`)」
となりますがそれは
「大学とかの設備があるとこに入学して勉強する」
とか
「どこぞの企業に頑張って入社して勉強する」
みたいな方法しかなく、とっても敷居が高かったわけです。
著者はどういう風に覚えたのかと言うと後者になり、最初アルバイトとして入社した企業さんで
「この『UNIX』使ってないから好きにしていいよー」
と言われ
「わーい(*゚▽゚*)」
って感じでワクテカしつつ覚えた次第でございます。
しかしこういう風に「勉強するにしても敷居が高すぎる」っていうのはあまりイケてないですよね。ここで登場するのが『Linux』の開発者であるリーナス・トーバルズ(Linus Benedict Torvalds)さんです。
リーナスさんは大学で遊びがてら『UNIX系OS』を参考にしつつ『OS』を作ったりしていたらしいのですが1991年ごろにその作った『OS』を「ネットワークで公開」したんですね。昨今で言われる『オープンソース』ってやつになります。
この「不特定多数に公開して著作物の権利を主張しない」というのが当時非常に革命的で、公開した後どうなったかというと世界中のプログラマーさんが大喜びで開発に参加することになりリーナスさんが公開した『OS』がものすごい開発速度で進化していきます。そうして生まれたのが『Linux』くんです。
『Linux』くんは基本無料で、さらに『WindowsOS』がインストール出来るPCならばほぼインストールする事が可能ですので勉強するための敷居が非常に下がり色々な人がUNIX系OSを扱う事が出来るようになったり個人レベルでも簡単にITサービスとかを展開出来るようになりました。とっても素晴らしいですね。
ちなみにリーナスさんは現在でもIT世界における最終決定権を色々と持っている方なのですが「技術的な財産はなるべく世界中で共有しよう」という思想を持っているのでそういうところも非常に素晴らしいです。
プログラミングをしている方ならば感じてると思うのですが超強力なソフトウェアやツールが無料で手に入って自由に使える事って凄く多いですよね。これはリーナスさんの影響が非常に大きいのではと著者は考えておったりします。
さて長々と解説しましたが『UNIX』と『Linux』についてはこんな感じになりますね。そしてひとつ重要な点があり、それは「『UNIX』と『Linux』はほぼ同じ知識で操作可能である」という事になります。
『Linux』は『UNIX』を元に構築されたものになるので概念やコマンドとかがほぼ同じなんですね。なので「『UNIX』が操作できるならば『Linux』も操作出来るし、逆に『Linux』が操作出来れば『UNIX』も操作出来る」って事になるわけです。
更に最近だと『MacOS』も『UNIX』ベースで設計されているというか実は『MacOS』って『UNIX』の一種だったりしますので「『UNIX』が操作出来るならば『MacOS』のターミナルとかでの操作も可能」だったりします。とっても良い時代になりましたね。
ちなみに『WindowsOS』も『UNIX』を参考に作られていますが「参考にしたのは概念のみ」って感じですのでコマンドとかは大分違いますのでご注意です。これについては『WindowsOS』の『MS-DOS』とか『コマンドプロンプト』とかについてざざっと調べてみると分かるかなって思います。
というわけでざざざっと解説しましたが『UNIX』と『Linux』についてはこんな感じになります。続いての記事ではディストリビューションについて解説していきますね。ではこの辺で失礼致します。
この記事は桜舞が執筆致しました。
著者が愛する小型哺乳類 |
桜舞 春人 Sakurama HarutoISDN時代から様々なコンテンツを制作しているちょっと髪の毛が心配な東京在住のプログラマー。生粋のロングスリーパーで、10時間以上睡眠を取らないと基本的に体調が悪い。好きなだけ寝れる生活を送るのが夢。ゲームとスポーツと音楽が大好き。誰か髪の毛を分けて下さい。 |
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。