Lから始まるLinux

7章10話
UASP無効化
8章1話 これから
もくじ
これから
若木 みどり(笑顔)
お兄ちゃん! また Linux で ゲームサーバを動かすね!
若木 しげる(笑顔)
もう普通の OS のように Linux を使えるようになったね
若木 みどり(笑顔)
最初はゲームを遊びたかっただけだけど 使っているうちに面白い OS だとわかったし サーバやネットワークの仕組みを学ぶのにも 良い題材だということがわかったよ!
若木 みどり
でも Linux って これだけじゃないよね? これまで紹介されていなかった 使い方とか分野があれば 教えてほしいなぁ
GUI
若木 しげる
まずは GUI だね!
若木 みどり
GUI はアイコンなどで 何をするプログラムかわかるし マウス操作は詳しく知らなくても 直感的にすぐ操作できるよね!
若木 しげる
ゲーム用途以外なら Windows や macOS などの商用 OS と ほぼ変わりないことができるんだ 最後の壁だったゲーム用途も 最近では Linux でも同様に遊べるよう 色々な企業や開発者が尽力しているよ
若木 しげる
以下のような代表的な ソフトウェアが利用可能なんだ!
若木 しげる
GUI は多くのリソースを使うよ サーバなどの用途によっては CUI だけで使う場合も多いんだ
ツール
若木 しげる
代表的なツールやコマンドを紹介したけど 紹介できていないものもたくさんあるんだ 以下にここで扱うには複雑過ぎたり 特定のディストリビューション専門の ツールやコマンドを挙げるね
名称 役割
nftables, iptables パケットフィルタリング
ufw パケットフィルタリング(Debian 系)
firewalld,firewall-cmd パケットフィルタリング(Red Hat 系)
tcpdump パケットキャプチャ
dig ドメイン情報取得
nmap ネットワーク分析
wireshark ネットワーク分析
tripwire ファイル改ざん検知
grub ブートローダ
mdadm ソフトウェアRAID
lvm LVM(logical volume management)
若木 みどり
お兄ちゃんから 基本的な扱い方は 学んだんだもの! 学ぶ必要が出てきたら 時間は掛かるけど 調べながら習得するよ!
コンピュータ言語
若木 しげる
「コンピュータ言語 (computer language)」 触れてこなかったものの ひとつだよ!
若木 みどり
それはどういう ものなの?
若木 しげる
コンピュータは曖昧なものを 処理するのが苦手なんだ 人間の言葉には曖昧な表現が 多く含まれているよ それが微妙な表現の違いを 表すのに便利なんだけど コンピュータには 解釈が難しいんだ
若木 しげる
一方、コンピュータの言葉は 01 の二進数なんだ 例えば 0001 が加算 0010 が減算のような感じだよ 数値が少しでも違うと 全く別の処理になるので 連想が働きづらく 人間はコンピュータの 言葉を扱いづらいんだ
若木 しげる
そこで人間からも コンピュータからも まあまあ理解しやすい 共通の言葉として 作られたのが 「コンピュータ言語」なんだ
若木 しげる
多くのコンピュータ言語は 人間が使う英単語を 曖昧な表現が無い構造で 表現しているよ
若木 みどり
つまりコンピュータ言語を学べば コンピュータにやってほしいことを 直接伝えられるようになるんだね!
若木 しげる
広く知られている コンピュータ言語には 以下のようなものがあるよ
言語 方式 特徴
Python インタプリタ 標準的に導入されている場合が多い、機械学習や深層学習に強い
Java コンパイラ ほとんどの OS やアーキテクチャで実行ファイルを作り直さず実行できる
Ruby インタプリタ 書きやすい
PHP インタプリタ Webアプリケーションに強い
Perl インタプリタ ほとんどの Linux に標準的に導入されている、正規表現に強い
C, C++ コンパイラ この言語で作成されたパッケージが多くを占める
若木 みどり
「インタプリタ」 「コンパイラ」 違いってなにかな?
若木 しげる
コンピュータ言語で書かれた文章を 「ソースコード(source code)」と呼ぶよ
若木 しげる
「インタプリタ(interpreter)」 ソースコードの解釈を コンピュータに伝えるのに対して 「コンパイラ(compiler)」 ソースコードから コンピュータがそのまま実行できる バイナリ実行ファイルを作るんだ
若木 しげる
コンパイラ方式の方が プログラム実行速度が速いけど ソースコードを修正したら 実行ファイルを作り直す 手間があるんだ
若木 みどり
新しい言語を覚えるって 大変な感じがするよ シェルスクリプトで やりたい処理は大体書けるので それでいいんじゃないかな?
若木 しげる
シェルスクリプトではスクリプト内で コマンドが実行された数だけ プロセスが立ち上がっては消えていくよ プロセス生成は高コストな処理で シェルスクリプトは実行速度が遅いんだ
若木 しげる
シェルスクリプトの 規模が大きくなったり 実行速度が気になり始めたら 言語を学ぶ良い機会かも しれないね
バージョン管理システム
若木 しげる
何かを編集しているときに 変更で動かなくなるのが怖くて 過去のバージョンを コピーして残していないかな? 「バージョン管理システム (version control system, VCS)」 このような問題を解決するツールなんだ
若木 みどり
「新しいフォルダ(2)」 「新しいフォルダ(2)(最新)」 「新しいフォルダ(現時点最新)」 …とか身に覚えがあるよ こういった状態を 解決してくれるのね!
若木 しげる
最近は Git が主流だよ 主にソースコード管理に使われているけど バージョン管理をする目的なら どんなものにも適用できるよ
若木 しげる
また Git のホスティングサービス GitHub 公開リポジトリであれば無料で使えるんだ ここでソースコードなどを 公開している開発者も多くいるよ
デーモン
若木 しげる
代表的な各デーモンを軽く紹介したけど どれも最も基本的な使い方ばかりなんだ 本格的に使うなら ちゃんと勉強する必要があるよ
若木 みどり
特にセキュリティ周りとかは しっかりしておかないと 「生兵法は大怪我のもと」 になりそうだね
若木 しげる
ここで紹介していない デーモンもたくさんあるんだ 代表的なのは「RDBMS (relational database management system)」 だよ
若木 しげる
RDBMS は データを保存するシステムで コンピュータ言語と一緒に 使われることが多いんだ
若木 みどり
データの保存って ファイルに保存じゃ ダメなのかな?
若木 しげる
簡単な用途ならファイル保存で十分な場合もあるよ RDBMS は同時にデータ操作された場合の対処や 何万何億件の中から必要なデータを素早く探すなど データ管理に特化した機能を提供してくれるんだ 業務システムなどでは RDBMS などが使われるよ
若木 みどり(驚き)
へぇ… そんなにすごい 仕組みがあったんだ…… しかもオープンソースのものは 無料で使えちゃうんだね!
若木 しげる
代表的な RDBMS には 以下のようなものがあるよ
若木 しげる
他にも紹介しきれていない 代表的なデーモンやシステム サービスなどを挙げておくね
名称 役割
MongoDB ドキュメント指向データベースシステム
Neo4j グラフ指向データベースシステム
Elasticsearch 全文検索
Fluentd ログ収集・解析
Grafana ログ可視化
WordPress サイト作成
Redmine プロジェクト管理
MediaWiki Wiki サーバ
OpenLDAP LDAP サーバ
BIND DNS サーバ
ProFTPD FTP サーバ
vsftpd FTP サーバ
Exim SMTP サーバ(MTA)
Dovecot IMAP/POP3 サーバ
CUPS プリンタサーバ
Tomcat アプリケーションサーバ(Java)
rsync ファイル同期
NFS ネットワーク越しのマウント
仮想化
若木 しげる
「仮想化(virtualization)」 ハードウェアを ソフトウェアで 再現することだよ
若木 みどり
仮想化をすると どうなるのかな?
若木 しげる
コンピュータやリソースを 簡単に作成したり破棄できるんだ 「もっと性能が良いコンピュータを作り直そう」とか 「負荷が高いからもう一台コンピュータを追加」 といったことが 簡単にできるんだ
若木 みどり
ハードウェアで同じことをやろうとすると 買い替えとかしないといけなくなるものね
若木 しげる
そのような仮想化を行う仮想化ツールには VirtualBox などがあるよ
若木 しげる
最近では1つのプログラムを専用に動かす仮想環境 「コンテナ(container)」が良く使われるよ これは Docker で一気に広まったね
若木 しげる
また複数のコンテナを協調させて動かす 「コンテナオーケストレーションツール (container orchestration tool)」 が使われるよ Kubernetes が有名なんだ
若木 しげる
Linux 環境も簡単に作って壊してを繰り返せるとなると 手作業でセットアップはしたくないよね そういった作業を自動化する 「構成管理ツール (configuration management tool)」 があるんだ Ansible, Chef, Puppet などがあるよ
若木 みどり(驚き)
仮想化だけで すごい大きな 分野なんだね!
若木 しげる
仮想化はリソース 特にメモリを たくさん消費するよ 仮想化で色々したいなら 性能の良いマシンを用意しよう!
クラウド
若木 しげる
「クラウド(cloud)」 仮想化されたリソースを 貸してくれるサービスだよ
若木 みどり
「仮想のコンピュータ1台貸して下さい」 と申し込めば借りれる ということなの?
若木 しげる
そうだよ ほんの数分で使える状態になるし 通常はリソースを使った分だけの 利用料を支払えばいいんだ コンピュータ以外にも ネットワークやストレージなども 借りられるよ
若木 みどり(驚き)
それは便利だね!
若木 しげる
有名なクラウドサービスに 以下があるよ
まとめ
若木 みどり
今回は今まで教えてもらったことの さらに先には何があるかを 教えてもらったよ! まだまだ色々なことが たくさんあるんだ!
若木 しげる
このあたりから だんだん専門的になっていくよ ちゃんとした書籍を買って 勉強するのをおすすめするよ!
若木 みどり
それから…
若木 みどり(笑顔)
お兄ちゃん! 色々教えてくれて ありがとう!
若木 しげる(笑顔)
いえいえ! どういたしまして!