【Linux】カーネルの基本とディストリビューションまとめ

2023年04月18日
 
2023年04月18日
サムネイル

こんにちは、ゆーろんです。
このページではLinuxカーネルの定義とLinuxのディストリビューションの種類をまとめます。

ディストリビューションは今後、必要になれば追記します。

カーネルとは

カーネルはプロセス管理 メモリ管理 入出力管理などといったOSの根幹の処理を行うシステムを指します。また、ハードウェアとソフトウェア間を仲介する役割をしています。

Linuxにおいてのカーネルはアプリケーションが動作するための基本環境を提供します。

具体的には「メモリ管理」「CPUリソースの配分」「ハードウェアにおける処理順序の割り振り」など、ユーザが意識しないバックグラウンドで動く基本機能を行います。

Linuxシステム

カーネルの基本機能

Linuxカーネルが提供する基本的なカーネルの機能の一部を記載します。

プロセス管理

Linuxカーネルでは、プログラムの実行状態をプロセスという単位で管理しています。また、カーネルはプロセス一つ一つに対しtask_struct構造体というデータ構造を準備しています。

task_struct構造体には、そのプロセスが動作するための様々な情報(PIDやプロセスが動作しているメモリアドレス 等)が記憶されており、Linuxカーネルがプロセスを操作する際は、このtask_struct構造体に対して操作を行います。

プロセス・スケジュール

実行可能状態で待機しているプロセスをどの順番で実行させるのが最適かを判断するものです。

プロセススケジューラは、プロセススケジューリング方針に従って実行優先度とタイムスライスを割り振り、スケジュールに従ってプロセスを実行します。また、実際にプロセスの切り替えを行う機能はプロセスディスパッチと呼ばれます。

割り込み管理

コンピュータに接続されているさまざまな周辺機器の入出力処理の割り込みを管理するものです。

割り込み処理はプロセッサが処理を行っている最中でも,特定の信号があると処理を中断して別の処理を行わせる処理のことを指します。Linuxカーネルでは割り込みをうまく利用してさまざまな処理を効率的に処理することが可能です。

メモリ管理

Linuxカーネルでは、物理メモリと仮想メモリを用いてデータを管理しています。プロセス一つ一つに対して、実際に物理メモリのアドレスをそのまま割り当てるのではなく、物理メモリに対応した仮想アドレスを割り当てることで、実際の物理メモリの容量よりもはるかに大きな容量のメモリを利用可能にしています。

また、各プロセスに対して固有の仮想アドレスを割り振ることで、それぞれのプロセスのメモリ空間は独立させています。そのためプロセスのメモリを犯さないようになっています。

ファイルシステム

保存されているデータに対してファイルという形でアクセスできるように提供しているものです。
全てのデータをファイルと言う形で管理しています。/(root)(ルートディレクトリ)を頂点としたツリー状の構造をしており、カーネル自体もファイル、ディレクトリの集合体として存在します。

ディストリビューションとは

Linuxカーネルに各種のライブラリやアプリケーションなどの周辺的機能を組み合わせて、
1つのパッケージとして配布されているオペレーティングシステム(OS)です。

ディストリビューションの種類

ReadHat系

「RedHat系」は、RedHat社が開発したディストリビューション「RedHat Linux」およびその互換OSのことです。
パッケージ管理に「rpm形式」を採用している点が特徴があります。

またクライアントPC用途ではなく大規模システムのサーバーに利用されることが多いです。

Debian系

Debian Linuxから派生したディストリビューションを「Debian系」と呼びます。

Linuxディストリビューションの中でも非常に大きなシェアを持っており、また
パッケージ管理に「deb形式」を採用しており、パッケージ管理が非常に優秀なディストリビューションと言われています。

Slackware系

Linuxの中でも最も歴史のあるSlackware Linuxから派生したディストリビューションを「Slackware系」と呼びます。

非常にシンプルな構成であるため、OSとしての安定性やセキュリティも高いことが特徴です。柔軟なカスタマイズができますが、それを扱えるスキルも求められるため玄人向けと言われています。

RedHat系のディストリビューション

RedHat

Linuxシステム

Red Hat(RHEL)はアメリカのRedHat社が開発した商用向けのLinuxディストリビューションです。
最もビジネス的に成功しているディストリビューションがRedHat社が出している「RedHatEnterpriseLinux」(通称:RHEL)であり、Linuxの商用利用としては、業界の標準基準であると言えます。

CentOS

Linuxシステム

CentOSはRedHatをベースに作られたRedHatの商用部分を取り除いたディストリビューションです。
サーバ用に商用で無料で使いたいときに選ばれる場合が多いです。
パッケージ管理は「yum」で行います。

AlmaLinux

Linuxシステム

CentOS 8の終了に伴い代替として注目されているディストリビューションの1つです。
CloudLinux社が主導で開発が行われている無償利用可能なRHELのクローンとも言えます。

Rocky Linux

Linuxシステム

AlmaLinuxと同じく、CentOS 8の終了に伴い代替として注目されているディストリビューションの1つです。
コミュニティ主導で開発が行われ、CIQ社などがそのサポートを行っています。

Fedora

Linuxシステム

RedHat社が支援するコミュニティーベースのディストリビューションです。
現在パッケージ管理は「dnf」なっており「yum」から切り替わっている。

Amazon Linux

Linuxシステム

AWSのEC2などで導入可能なディストリビューションである。
ベースはRedHat / CentOS 7系のディストリビューションであると言われています。 つまりCent OSと同じように使えます。

Debian系のディストリビューション

Debian

Linuxシステム

Debianは世界中のOSS参加開発者が集結して作り上げた、完全フリーで使うことができるLinuxディストリビューションです。
さまざまなCPU上での動作サポートと数万にもおよぶ膨大なアプリケーション数が特徴でもあります。

Debian -- The Universal Operating System

Ubuntu

Linuxシステム

UbuntuはDebianをベースに作られた世界的な人気を持つディストリビューションです。
通常版とロングサポート版、デスクトップ用途とサーバ用途など用途をわけて開発しているのが特徴です。
またパッケージ管理は「apt」で行います。

Ubuntu

Ubuntuは、デスクトップPCやクラウド、インターネットに接続されたあらゆる機器まで、すべての環境において動作可能なオープンソースのソフトウェアオペレーティングシステムです。

Linux Mint

Linuxシステム

Linux Mintは普通のユーザーが、日常の作業をより便利で効率的に行える環境を作ることを目標に開発が進められているディストリビューションです。

Home - Linux Mint

Linux Mint is an elegant, easy to use, up to date and comfortable desktop operating system.

Kali Linux

Linuxシステム

Kali Linuxは様々なハッキングツールが含まれているディストリビューションです。
ペネトレーションテストやセキュリティ脆弱性診断・学習などのため利用されています。

OGPサムネイル

Get Kali | Kali Linux

Home of Kali Linux, an Advanced Penetration Testing Linux distribution used for Penetration Testing, Ethical Hacking and

Tails

Linuxシステム

Tailsはユーザーのプライバシーと匿名性の保護に特化したディストリビューションです。
元CIAのエドワード・スノーデン氏も使っていたことで一時期話題になりました。プライバシーと匿名性を保護するため、すべてのトラフィックにTorを経由させたり、DVDやUSBフラッシュドライブから起動させることが可能な特徴があります。

Tails - Home

Parrot OS

ペネトレーションテストの利用に特化したLinuxディストリビューションです。
Tailsと同じく、セキュリティ、プライバシーに特化した特徴も兼ね備えています。

Parrot Security

Parrot Security website

Whonix

Linuxシステム

セキュリティに特化したDebian系のディストリビューションです。
OS全体の通信をTorを経由して行うため匿名化に優れています。また他のゲストOSを匿名化することができるためにVirtualBoxなどの仮想化ソフトウェアと並行で使われることが多いです。

OGPサムネイル

Whonix - Superior Internet Privacy

Whonix can anonymize everything you do online! It runs like an App, is a Free, Open Source and Kicksecure™ hardened Linu

Qubes OS

Linuxシステム

セキュリティ重視のOSで、Xenというハイパーバイザ型の仮想化技術を用いて、アプリケーションを並列して仮想環境上で実行できる特徴があります。
XenのおかげでOSが悪意のあるプログラムやユーザに侵入されてもプライバシーの侵害やマルウェアの被害を最低限に抑えるような作りになっています。

OGPサムネイル

Qubes OS: A reasonably secure operating system

Qubes is a security-oriented, free and open-source operating system for personal computers that allows you to securely c

Raspbian

RaspbianはRaspberry Piハードウェア用に最適化されたディストリビューションです。
Raspberry Piを実行するための基本的なOS機能の他に、各種「プログラム」「ユーティリティ」「35000以上のパッケージ」なども利用できる特徴があります。

Slackware系のディストリビューション

Slackware

Linux史上最古のディストリビューションです。
シンプルであり、起動スクリプトもモノリシックで、パッケージもバイナリをtarでアーカイブしただけでありため、パッケージ依存関係などはユーザの操作にゆだねられています。
Slackwareを触れると必然的にスクリプトを読んだり、パッケージを1から自分で作成したり、カーネルを自力でコンパイルするなど、Linuxを操作管理するための基礎が身につくほどらしいです。

よろしければシェアしてくださいね!
タグ: LinuxLinux基礎

関連記事