プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • linux
  • 【Linux】「カーネル」と「ディストリビューション」、「シェル」について
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【Linux】「カーネル」と「ディストリビューション」、「シェル」について

05.26

  • miyabisan2
  • 3件のコメント

この記事は3分で読めます

カーネルとは?

LinuxにおいてOSの核になるプログラムで、「Linux」というのも、カーネルに付けられた名前になります。

いわば、OSそのものと言えます。

カーネルの主な機能

  • ファイルシステム管理
  • メモリ管理
  • 仮想記憶
  • プロセス管理
  • ネットワーク管理
  • デバイス管理

バージョン表記について

「2.5.11」のように表記します。

様々なバージョンが出ており、異なるバージョンのOSが世界に存在します。

「安定しているもの」、「安定していないもの」の差が大きいです。

ユーザーとの橋渡しについて

「カーネル」は直接はユーザーが操作することはできません。

その橋渡しをするのが、下記になります。

  • シェル(CUI)
  • X Window System(GUI)

昔のLinuxは、「シェル(CUI)」しかなかったのですが、最近だと「GUI」で操作することも当たり前になりつつありますね。

コンテナ

ホストOSとカーネルを共有するので起動が速くなります。

仮想マシン

ホストOSとゲストOSでカーネルを共有しないので起動が遅くなります。

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

Linuxは、「カーネル」がコア部分で非常に重要なプログラムにはなるのですが、それだけではLinuxを利用することができません。

他にも、アプリが利用するソフトウェアだったり、ユーザーインターフェイス部分だったりが必要です。

Linuxに、それらライブラリや、インターフェイスをセットにした製品を「Linux ディストリビューション」と呼びます。

Linux ディストリビューションの全体像

ディストリビューションの特徴

ディストリビューションの構成要素はほとんどがオープンソースソフトウェアになります。

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

Red Hat系

RedHatにより開発されたRedHat Linuxをベースに開発されたLinuxです。

代表的名ものとして、「Fedora」や、「CentOS」等があります。

Fedora(フェドーラ)

レッドハット社の支援を受けたFedoraプロジェクトによって、半年に一回ペースで開発が続けられています。

CentOS(セントオーエス)

Red Hat Enterprise LinuxのクローンOSで最も人気のあるOSです。

RHELとはほぼ100%の互換性があり、ほぼ100%のセキュリティアップデートを追従しているので、かなり人気が高いです。

Red Hat Enterprise Linux(RHEL)

Fedoraの成果を取り入れて、企業システムでも使えるように安定性を求めたLinuxです。

サポートがあるため有償になりますが、サポートの手厚さから様々な企業が導入しています。

Debian系

Debianプロジェクトというコミュニティで開発されています。

Ubuntu

初心者に使いやすいように、GUI機能が充実しており、かなりDebian系の中では人気のディストリビューションです。

半年に1回アップデートされています。

シェルとは?

ユーザーとカーネルの橋渡しをしてくれる、LInuxのCLIを提供してくれるソフトウェアであり、ユーザーがLinuxを利用する上で必要なプログラムになります。ユーザーが普通にコマンドを実行できるのも、「シェル」があるためです。

イメージとしては

イメージとしては下記のような感じです。

シェルの種類

シェルには、下記のようにディストリビューションによって色々種類があります。

シェル 説明
sh 最も古いシェルでほぼ全てのUnixで利用できる標準シェルです。機能自体は少ないです。
bash コマンド履歴、ディレクトリスタック、コマンド置換機能、コマンドファイル名の補完機能等の様々な機能をサポートする高度なシェルです。LinuxもMacも標準搭載です。
csh C言語によく似ているシェルで、BSD系OSでよく利用されています。
tcsh cshの改良版で、コマンドやファイル名の自動補完機能があります。
zsh bashと互換性があるシェルで、高速に動作します。独自の拡張も追加しています。

Linuxの標準シェルとしては「bash」になります。

OSをインストールした際に、デフォルトでbashはインストールされます。

「echo $SHELL」と実行することで、「/bin/bash」と出力されています。これでbashを利用していることがわかります。

ログインシェル

なお、ユーザーがログインした際に実行されるシェルである「ログインシェル」もデフォルトでは「/bin/bash」が動いています。

/etc/passwd」を見れば、ユーザーがどのシェルをログイン時に実行しているかわかります。

シェル変数とは?

シェルの動作設定をする変数のことです。

シェル変数を確認する。

setコマンドで確認することができます。

シェル変数の種類

シェル変数 説明
PS1 プロンプトに表示させる文字を設定する。
HISTSIZE ヒストリとして保存するコマンドの最大件数を指定する。
SHELL ログインシェルを格納する。

 

スポンサーリンク
  • 2018 05.26
  • miyabisan2
  • 3件のコメント
  • linux
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2018 05.27

    【Linux】「ファイル名」についての基本

  2. 2018 05.26

    【Linux】ユーザーを作成、削除する。

  3. 2020 05.29

    【Linux】「標準入出力」や「/dev/null」について

  4. 2022 09.03

    【Linux】「Alpine Linux」とは?

  5. 2018 05.26

    【Linux】基本的なディレクトリ構成

  6. 2018 05.26

    【Linux】「ジョブ」と「プロセス」の違いとは?

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【Linux】「iノード」、「シンボリックリンク」と「…

【Linux】「オンラインマニュアル」を読むには?

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー