今回からLinuxを覚えてみようという記事を書いていきます。
エンジニアでも知らないLinux
とある有名なエンジニアがTwitterで「Linux覚えないと…」みたいなことをつぶやいていて私は驚いた。マジか。
世の中のWebサービスのほとんどはLinuxで運用されている。だからソフトウェアエンジニアがLinuxを知っていることは当然と思っていた。冷静に考えれば、今の職場に居る私の周りの人もLinuxのことをよく知らない人が多い。
想像だけど、分業が進んでいるちゃんとした職場ではアプリケーションのデプロイなんて担当のひとがやるので、そうじゃない人は扱いなんて全然知らないのかもしれない。わたしはそういうちゃんとした会社で働いたことが無いので知らないけど。あと、弊社はそんなに分業が進んでないので、少数のLinuxできる人が書いたシェルスクリプトを後生大事に秘伝のタレみたいに受け継いでいる。
でもでも、Linuxを使いこなせれば普段の仕事でも役立つことは沢山あるし、もっと言えば家でデスクトップ用途として使うにもLinuxは大変いいOS(環境)なので、紹介しようと思った。
Linuxの良いところ
- フリーである。お金がかからない
- コンピュータウィルス感染のリスクが小さい(パッケージ管理システムが整っている、少数派なので攻撃ターゲットとして不適、他)
- 動作が軽快(どのシステムを選ぶかによっても異なるが)
- 見た目をとことんカスタマイズできる
- WindowsUpdateのようにアップデートに何分も待たされたり勝手に再起動されたりしない
- ほとんどのデバイスはドライバのインストールをせずとも大体ちゃんと動く
- 強力なパッケージ管理システム
- アプリ開発環境を整えるのが楽
- 高解像度ディスプレイに対応できている
- 設定が簡単
- 慣れれば色々な作業を自動化・効率化できる
Linuxの画面
とりあえず画面を見たいですよね。以下にアクセスしてみてください。Linux(Unix)の美しいデスクトップ画面が多数掲載されています。
UIの美しさではelementary OSも特筆すべきものがあります。
どうです?使ってみたくなってきませんか?なりませんか?興味を湧かせてください。良いですね?湧きましたね?
興味が湧いたところで、インストールに至る前にもうちょっとLinuxの基礎を説明しましょう。
Linuxとディストリビューションの関係
さて、ここまで「Linux」という言葉を使ってきましたが、狭義のLinuxとはLinuxカーネルの事を示します。カーネルとはOSのコアとなる部分で、プロセスの生成と終了、メモリ管理、デバイスの入出力、CPU資源の管理などをつかさどります。カーネル単体でLinuxを利用することはできず、必ずユーザーインタフェースやその他さまざまなアプリと一緒に使用することになります。
アプリケーションサーバなりデスクトップ用途なり、一通りの機能を提供するためのアプリケーションとカーネルをセットで配布したのが「ディストリビューション」です。ディストリビューションで採用されているソフトウェアはそれぞれ違うため、ディストリビューションが違えば同じLinuxでも見た目は全く違うOSのように見えます。
また、フリーで配布されているディストリビューションのほぼ全ての部分はOSS(オープンソースソフトウェア)と呼ばれる、いわゆるフリーウェアで成り立っています。大ざっぱに言えば、ディストリビューションの違いとは世の中にあるたくさんのOSSからどういう組み合わせでソフトウェアパッケージを構成したか、という違いです。
ディストリビューション同士の関係と主要なディストリビューション
ディストリビューションにはいくつか流派があります。大きく分けてDebian, Slackware, Redhatという3つの系統があります。それらを元に、多数のディストリビューションが派生しています。以下がその系統図です。
GNU/Linux Distribution Timeline
数えきれないほどのディストリビューションがありますね。しかし、よく使われるのはほんの一部です。
まずデスクトップ用途として人気を博しているのが、Debian系のUbuntuです。「ウブントゥ」と発音しますが、「うぶんつ」「うぶんちゅ」と言う人もいます。私はうぶんつ派です。Ubuntuとはもともと南アフリカの言葉で「他者への思いやり」を表す言葉で、先進国で使われていた中古PCにインストールしてアフリカの教育機関などで使おうという目的の元作ったそうですが、低スペックなPCでも動作したり使いやすいUIが評価され、今や世界中で使用されています。最近はサーバー用途でも使われています(ちなみに皆さんが今見ているこのブログもUbuntuで提供しています)。
Ubuntuはさらに派生したディストリビューションがあり、有名なのはChrome OSですね。Linux MintもUbuntuから派生したもので、最近よく話題になるディストリビューションです。
RedHat系ではFedoraやCentOSが人気ですね。特にCentOSはサーバ用途で使用される機会が多いので、仕事で使ったことがあるというエンジニアも多いのではないでしょうか。
今回以降の記事ではUbuntuを使用して解説を行います。なぜUbuntuかというと、使っている人が沢山いて、情報が多いからです。使っている人が多いことはOSSの世界では非常に重要なことです。
次はUbuntuのインストールについて説明していきます。