Linuxのディストリビューションとパッケージ管理方法について

Linuxのディストリビューションをざっくりわけると、RedHat系、Debian系、Slackware系にわかれるようです。僕がSlackware系になじみがないので、ここではRedHat系とDebian系について書いてみます。

RedHat系とDebian系の代表的なOSと、パッケージ管理方法をまとめると以下の表のようになります。

系列 OS パッケージ形式 管理コマンド
RedHat系 Fedora
RHEL
CentOS
RPM形式 rpm
yum
dnf
Debian系 Debian
ubuntu
deb形式 dpkg
apt

RedHat系のOSのRHELは「RedHat Enterprise Linux」の略です。FedoraとRHELとCentOSの関係ですが以下のようになっています。

Fedora → RHEL → CentOS

まずFedoraで新機能をいち早く搭載し安定稼働が確認できたらRHELにそれを組み込みます。RHELはRedHat社が有償で商用サポートを行っています。CentOSはRHELのクローンで無償で利用できますがRHELに比べると機能の実装が遅くなります。僕の感覚ですが、企業で利用しているLinuxのOSはRHELかCentOSが多いですね。Fedoraは実験的な取り組みでもあるので個人でLinuxの新機能をいち早く勉強したい方には良いかもしれません。なお、FedoraとCentOSは有志の団体が無償で開発を行っていますがRedHat社とは提携関係にあるようです。

Debian系のOSにはDebianとubuntuがあります。日本ではubuntuのほうが人気があるように思えるのですが、世界的にはDebianのほうがメジャーみたいです(あくまで個人的な感想です)。

ちなみにFreeBSDというOSがあるのですが、こちらはLinuxではないようです。LinuxはそもそもUnixからわかれてきたOSですが、FreeBSDはUnixです。Unixの中でオープンソース化され無償で利用できるOSとしてFreeBSDがあるようです。

[広告]

ここからはパッケージ管理のコマンドについて書いてみます。

RedHat系のパッケージ管理コマンドは以前はrpmが使われていましたが最近はyumが一般的に使われています。yumはrpmより高機能ですが状況によってはyumでは対応できずrpmでしか対応できない場面もあります。Fedoraではdnfというパッケージ管理コマンドを搭載しているようですがまだそんなには使われていない感じはします。
Debian系についても同様に、以前はdpkgを使用していましたが最近はaptのパッケージ管理コマンドが一般的になっています。dpkgはRedHat系のrpmに該当する感じでしょうか。

rpm/dpkg・・・システムコールに近い(低水準)
yum/apt・・・rpmやdpkgをラップした関数みたいなもの(高水準)

次回はyumとaptのリポジトリ管理について書いてみようと思います。

NISTとNICTとNISCの違い

セキュリティの勉強をしていると、NIST、NICT、NISCという組織の名称がちらほら出てきたりします。何がなんだっけな?と思うことが度々あったので、セキュリティ分野での話題とともに簡単に書いておきます。

まずは、NISTです。

NIST(National Institute of Standards and Technology:米国国立標準技術研究所)は、暗号アルゴリズムの安全性を検討して使用期限を決めています。例えば、TLS通信は2020年1月までにTLS1.3に対応することを求めたり、共通鍵暗号で使われる3DESの使用期限の短縮(当初2030年の予定を前倒して2023年以降はAESに統一するというドラフト案)の提示をしたりしています。それらは米国の政府機関が利用する認証システムのセキュリティガイドラインとしてまとめられて、米国政府の調達基準となっています。

次に、NICTです。

NICT(National Institute of Information and Communications Technology:国立研究開発法人情報通信研究機構)のセキュリティ分野の話題としては、量子コンピュータでも解読が困難な暗号 LOTUS(ロータスと読む)を開発しました。現在、認証のために使われているRSAや楕円曲線暗号は簡単には解けない数学の問題を利用していますが、量子コンピュータが出来たらそれらはすぐに解読されてしまいます。そこでNIST(先に記載した米国国立標準技術研究所です)は量子コンピュータでも解読出来ない次世代暗号技術を公募したのですが、その審査を通ったのがNICTのLOTUSでした。LOTUSは格子暗号という暗号技術の実装の1つで、格子点探索問題を解ける量子コンピュータのアルゴリズムが存在しないことを安全性の根拠にしています。もし格子点探索問題を解くアルゴリズムが見つかればLOTUSは危険と言うことになってしまいますが。
またNICTは2020東京五輪でシステムを守る人材を育成するためのセキュリティ対策訓練「サイバーコロッセオ」を実施したりもしています。

ちなみに、セキュリティ分野ではないのですがNICTの重要な仕事の1つにJST(Japan Standard Time:日本標準時)を決めていることがあげられます。NICT本部(東京都小金井市)にはJSTを決めるための原子時計があります。NICTはJSTを決めるだけでなく日本国内へ電波や電話回線を使って配信も行っています。なお時刻の配信はNTPでも行っていますが、これはNICTの原子時計からUTC(Coordinated Universal Time:協定世界時)を算出し、NTPではUTCを配信しています。NTPで受け取った時刻情報はシステム側で必要に応じてローカルタイムに変換します。2020東京五輪の期間中にサマータイムを導入するかどうか一時期話題になりましたが、NTPで時刻を配信するということにおいてはサマータイムの影響はありません(個別のシステム側では対応が必要なためちょっとした騒ぎ?になった)。

最後に、NISCです。

2014年11月のサイバーセキュリティ基本法の成立に伴い2015年1月に内閣サイバーセキュリティ戦略本部が設置されました。それと同時に内閣官房にもNISC(National center of Incident readiness and Strategy for Cybersecurity:内閣サイバーセキュリティセンター)が設置されたのです。NISCの話題はあまり見かけないのですが、Javaの脆弱性が見つかったときに関係省庁に注意喚起を行ったりしているようです。IPAも似たようなことをしていて棲み分けがわかりづらいのですが。また、官民一体となって参加組織間で情報共有を行い高度なサイバー攻撃対策に繋げる取り組み「J-CSIP」にも参加しています。J-CSIPはIPAを中心に進められている取り組みです。