【Linux】Linuxについて
1. Linuxとは
Linuxとは、ソフトウェアとハードウェアをつなぐ役割をもつオープンソースのオペレーティングシステム(OS)の一種です。
OSは「基本ソフトウェア」のことで、コンピューターのシステムを管理・制御し、ハードウェアやアプリケーションソフト、周辺機器を動作させるための基礎となるものです。
パソコンにOSが入っていないと、マウスやキーボードの操作もできなくなるし、画面にも何も映し出せません。
●OSの機能によって実現されているもの
・キーボードに入力した文字がパソコンの画面に表示される
・メモ帳の保存ボタンを押すと、パソコン内に情報が保存される
・入力した情報をプリンタに出力する
Linuxは、システム開発、とくにOS開発やサーバー構築で役立っています。
また、開発や改良を誰でも簡単に行えるだけでなく、再配布も可能なので、国内外の有志が自由にカスタマイズを行い、新たなLinuxを再配布しています。
Linuxは大きくわけて「Linuxカーネル」と「Linuxディストリビューション」の2種類があります。
カーネルは、OSの根幹となるもので、ディストリビューションはLinux上で動く各種アプリケーションをパッケージ化したものです。
基本的にはLinuxカーネルだけではユーザー操作はできないので、Linuxディストリビューションをインストールして利用できるようにします。
1-1. UnixとLinuxの違い
Unix
UnixはOSの一種で、1969年にアメリカのベル研究所で開発されました。
現在のいろいろなOSの土台となったOSです。
構造がシンプルで、コマンド操作で動作が軽く、安定感があります。
現在も企業内や商品に使われ続けています、またカーナビにも使用されています。
Linux
Linuxはリーナス・トーバルズというフィンランドの大学生がUnixをまねて独自に開発したものでした。
見た目や機能はUnixに似ていますが、中身はオリジナルです。
さらにリーナスさんはこのコードを無料で公開しました。
高性能OSが誕生し、どんどん市場に広がっていったのです。
Linuxはオープンソースで無料であるうえ、改変や配布も自由であることがUnixと大きな違いです。
2. Linuxの主な特徴7つ
Linuxはリリースされて以降、多くの人に改変を施されています。
ここまで高性能で人々に愛されるようになったのはオープンソースで進化してきたからなのです。
その結果、種類も豊富でさまざまな場面で使われるようになりました。
2-1. ①オープンソースOSである
Linuxはオープンソースソフトウェアです。
オープンソースは誰でも「自由に使用していいソフトウェアのこと」ではありますが、オープンソースライセンスに基づき公開されるのが一般的です。
定義が10項目くらいあるので、使用の際は事前にしっかりと確認しておきましょう。
2-2. ②無料で使用可能
Linuxは基本的には無料で使用できます。
WindowsOSのインストールはだいたい1台15,000円~20,000円の金額がかかります。
しかし、Linuxであれば、OSのインストール費用はかかりません。必要なのはパソコンのハードウェア台だけです。
2-3. ③OSのカスタマイズが可能
自分が使いやすいように環境を整えてオリジナルのOSを作成することが可能です。
Linuxであればデスクトップの見た目や操作方法まで柔軟にカスタマイズできます。
2-4. ④セキュリティ面で有利
コンピューターウィルスは、Windowsをターゲットにしているのが多く、ユーザー数の少ないLinuxを狙ったウィルスはWindowsよりも比較的に少ないのが現状です。
またLinuxでは、root と呼ばれる管理者権限がないとシステムを改ざんしたり破壊したりすることは難しい仕組みになっています。
※Linux OSにおけるランサムウェア被害は近年増加しているので、今後はマルウェア攻撃に対する対策が必要になってきています。
2-5. ⑤CUIで操作する
LinuxはCUIでの操作が可能です。
CUIは「Character‐based User Interface」の略です。
キーボードからコマンドを入力することでOSを操作する仕組みのことを指します。
CUI操作の場合は、操作に必要なコマンドを知っておかなければなりません。
2-6. ⑥スペックの低いPCでも動作する
WindowsやmacOSに比べて、古いパソコンやスペックの低いパソコンでも動作が速いです。
GUIがシンプルで余計なアプリケーションが搭載されていないためです。
2-7. ⑦周辺機器と連携しやすい
Linux は高いハードウェア認識機能を持っています。
そのため、Linux に対応した周辺機器(プリンタ、マウス、イヤホンなど)であれば、自動で周辺機器を使えるように設定してくれます。
ただしLinux に対応していない周辺機器もあり、そのような場合はLinux 用のドライバを準備しなければなりません。
USBで接続する機器(例:キーボードやマウス、USBメモリーなど)はOS側が標準でドライバを備えており、つなげばそのまま使えることがほとんどです。
※ドライバとは「デバイスドライバ」の省略表現です。
デバイスドライバは「デバイスを動かすために必要なソフト」です。
3. Linux を普段使いするデメリット
いくつかデメリットの紹介もしておきます。
使い始めてから困ることがないように確認しておきましょう。
3-1. ①ネイティブアプリが少ない
Linuxのアプリケーションは英語圏で開発されたものも多く、日本語に対応していないものも多くあります。
日本語に対応したアプリケーションやディストリビューションを選ぶといいでしょう。
※ネイティブアプリ:「iPhotoのApp Store」「GoogleのPlayストア」などのアプリケーションストアを介して端末へインストールするタイプのアプリです。
3-2. ②ブラウザ機能に一部制限あり
一部のサイトの動画視聴ができなかったり、Windowsが提供するブラウザゲームが利用できなかったりします。
Windowsが提供するブラウザゲームではDirectXというAPI(アプリケーション・プログラミング・インターフェイス)が必要で、Linuxには搭載させていないためです。
ブラウザ機能が制限されている場合でもインターネット上で解決方法が載っている場合もあるので、情報を探してみてもいいかもしれません。
3-3. ③開発面で不利な面もある
Linuxでは、WindowsやmacOSのネイティブアプリは基本的に動作しないため、WindowsやmacOのネイティブアプリを開発しようとすると不都合が生じることがあります。
例えば、開発中のアプリの動作確認は、Windowsなどの別のOSで行うという手間も発生してしまうことになります。
3-4. ④外部ソフトは扱いに手間がかかる
ソフトウェアのインストール方法については、WindowsやmacOSのように簡単にはできません。
WindowsやmacOSのソフトには通常インストーラーが搭載されており、それを起動することでソフトが利用できる状態にセットアップしてくれます。
しかしLinuxでは自分でCUI画面でコマンド入力をしてコンパイルを実行する必要があり、手間がかかります。
コマンド操作に慣れていない方には難しいでしょう。
コンパイルするのが難しい場合は、必要なソフトが搭載されているディストリビューションをインストールするといいでしょう。
※コンパイル:プログラミング言語で書かれたソースコードを、コンピュータが解釈できるオブジェクトコードに変換することです。
3-5. ⑤マイクロソフトOfficeが使えない
LinuxはWindowsではないので、ビジネスでよく使われるOfficeが利用できません。
Linuxのソフトウェアの中にはOfficeと互換性を持つツールもあるため代用することは可能ですが、まったく同じものはない点は知っておくべきでしょう。
3-6. ⑥種類が多く自分に合ったものを見つけるのに時間がかかる
LinuxはLinuxディストリビューションが多すぎて目的や行いたい作業に最適なLinuxディストリビューションを探す時間がかかるというデメリットがあります。
4. Linuxの主な7つの用途
Linuxの用途について7つ紹介します。
4-1. ①サーバ構築
Linuxでサーバー構築ができます。
サーバーとは、サービスの提供を担うコンピューターのことで、利用者であるクライアントのリクエストに応じて、情報処理やコンテンツを供給するのが主な役割です。
https://www.kagoya.jp/howto/it-glossary/server/server/
4-2. ②アプリケーション開発
Linux はアプリケーション開発に利用されます。
Linux はほとんどのプログラミング言語に対応しており、多くの言語でアプリケーション開発が可能です。
例:C++・Java・Pythonなど
4-3. ③日常で使うパソコン
Linuxは、Windowsなどと同じように日常用のパソコンとしても使用できます。
最近のLinuxは、使いやすさも向上しており、初心者でも使用しやすくなっています。
自由にアレンジもできるので、自分がしようしやすいように調整もできるのも魅力的です。
また、古いパソコンとかを使用している人もOSをLinuxにすることで動作が速くなることもあります。
4-4. ④ネットワークルータ
Linuxは、異なるネットワーク同士を接続するためのネットワークルータとして使用することもできます。
もし、ネットワークルータとして使用する場合は、セキュリティ面等の対策も必要になってくるので、パケットフィルタリングやウイルス検知ソフトウェアなどを活用するといいでしょう。
4-5. ⑤ゲーム端末
ゲーム端末として使用することもできます。
Linuxの種類の一つである、SteamOSは、Linux用に開発されたゲームをプレイするためのOSです。
Steamストアからゲームを購入して遊ぶこともできます。
4-6. ⑥組み込みシステムの開発
Linuxを活用することで、組み込みシステムの開発が可能です。
組み込みシステムとは、炊飯器・冷蔵庫などの家電製品、信号機、鉄道車両など、直接機器に搭載されているコンピューターシステムのことです。
Linuxは無料で使用でき、カスタマイズも可能なので、コストを抑えながら開発できるメリットがあり、組み込みシステムでよく利用されています。
4-7. ⑦3Dモデリング
3Dモデリングとは、コンピューター上で3次元のオブジェクトを作成するプロセスのことを指します。
3Dモデリングを行う場合、Blenderを利用するケースが多いでしょう。
Blenderは設定項目も多く、使いこなせるようになるまで時間がかかりますが、本格的な3Dモデリングにも対応できます。
5. ディストリビューションについて
OSの中核部分(カーネル)のみを示す言葉が「Linux」です。
OSはカーネル以外にも、アプリケーションの部品ともいえる各種ライブラリ、ユーザーとのやり取りを取り扱うシェル、GUIを実現するソフトウェアなど、多くのソフトウェアから構成されています。
それらをひとまとめにして、PCにインストールするプログラム(インストーラー)とともに配布される形態をディストリビューションといいます。
Linuxはオープンソースなので進化の過程でさまざまな種類のLinuxがでてきました。ディストリビューションはその種類のことです。
主なディストリビューションは3系統あります。
5-1. ①RedHat系
https://eng-entrance.com/linux-distribution-compare
Fedora
CentOS
5-2. ②Debian系
https://eng-entrance.com/linux-distribution-compare
Debian
Ubuntu
Linux Mint
Zorin OS
5-3. ③Slackware系
https://eng-entrance.com/linux-distribution-compare
Slackware
openSUSE etc…
Linuxディストリビューションはたくさんありますが、安定性や情報量、使いやすさ、日本語環境が整っているかどうか、インストールしやすいかどうかなどをポイントにして選ぶようにしましょう。
6. 知っておくべきLinux用語
カーネル:
OSに組み込む機能を実現するための最も基本的な処理を行う中核となる部分で、コンピュータのハードウェアとソフトウェアをうまくつなげて、ユーザーの指示を正しく反映させる役割を担っているのが特徴です。
コマンド:
コマンドは、シェルへ入力する命令文です。
行いたい作業に対するコマンドを入力して、Linuxに作業してもらいます。
シェル:
シェルとはLinux カーネル(中核)の指示を伝えるツールのことです。
ユーザーからのコマンドをカーネルが理解できるように伝える窓口のようなものです。
カーネルはユーザーからの命令を直接理解できないため、シェルがユーザーとカー ネルの間に入って、翻訳しながら命令と返答を伝達しています。
シェルはCommand-Line Interface(コマンドライン インターフェース)、略してCLI(シーエルアイ)と呼ばれることもあります。
シェルの役割
①ユーザーが入力した命令を、カーネル(心臓部)で伝達します
https://pikawaka.com/word/shell
②カーネル(心臓部)からの返答を、ユーザーに伝えます
https://pikawaka.com/word/shell
シェルスクリプト:
カーネルに処理させるコマンドを一つにまとめたファイルのことです。
ターミナル:
端末。現在ではモニタやキーボードなどのパソコンに直結された構成が一般的です。
ターミナルがシェルを呼び出してコマンドプロンプトが表示され、そこにユーザーがコマンドを入力できるという関係性です。
パッケージ:
パッケージとは、Linux が導入しているアプリケーションの配布形態を指します。
コンパイル:
コンパイルは入力したコマンドをコンピュータが理解できる形式に変換する作業です。
7. Linuxコマンド
●主なコマンド
Ii:ファイルの一覧を表示する
cd:作業ディレクトリを移動する
cdコマンドは、ディレクトリを指定せずに実行するとホームディレクトリに移動する
cdコマンドには、記号を利用したショートカットが利用できる
/ ルートディレクトリを表す(階層の一番上にあるディレクトリ)
. 現在のディレクトリを表す
.. 親ディレクトリを表す
~/ ホームディレクトリを表す(ログインした際に、最初に移動するディレクトリ)
http://blog15.neec.ac.jp/archives/50627154.html
pwd:現在の作業ディレクトリを確認できる
Is:引数に指定されたファイルの情報を表示するコマンド
ディレクトリを指定した場合はディレクトリ内のファイルやディレクトリの情報を表示する
Isコマンドをオプションなしで実行すると現在の作業ディレクトリのファイルとディレクトリのリストを表示します
chown:指定したファイルやディレクトリのユーザー所有権(所有者)やグループ所有権(グループ)を変更。
chown[オプション]ユーザー[:グループ]ファイル
●ユーザー所有権を変更
まず、[Isコマンド]でユーザー所有権とグループ所有権を確認
例
# ls -l file
-rw-r--r-- 1 chibi haru 0 May 10 06:46 file
ユーザー所有権は「chibi」、グループ所有権は「haru」です。
グループを指定せず、ユーザー所有権を「chibi」から「root」に変更してみます。
# chown root file
ユーザー所有権の変更が完了しました。
Isコマンドで確認してみましょう。
# ls -l file
-rw-r--r-- 1 root haru 0 May 10 06:46 file
ユーザー所有権が「chibi」から「root」に変更されました。グループ所有権は「haru」のままです。
cp:ファイルやディレクトリをコピーする
cp [オプション]コピー元 コピー先
rm:ファイルやディレクトリを削除する
rm[オプション]削除するファイル名
mv:ファイルやディレクトリを移動する
mv 移動元 移動先
■cdコマンド と mvコマンドの違いについて
cdコマンド…作業を行うディレクトリを移動する
mvコマンド…ファイルを別のディレクトリに移動させる
8. まとめ
身近でもLinuxを使用して開発されているものがたくさんあるのだと知ることができました。
私たちの生活にも中でもさまざまな場面で使われていて、今後もどんどん利用される場面が増えていくのだと思うと、開発してくれた方たちの功績は本当にすごいですね。