これからLinuxを学習するとき、 最初に知っておきたいのが 「そもそもLinuxとは何なのか?」 という部分です。
Linuxという名前は聞いたことがあっても、
と疑問に思う方も多いでしょう。
Linuxは、 Web ServerやCloud、Network機器など、 IT Infrastructureを支えるさまざまな場所で利用されています。
Linuxを単に 「黒い画面でCommandを打つもの」 と覚えるのではなく、 OSがどのような役割を持ち、 LinuxがComputerの中で何をしているのか を説明できる状態を目指します。
まずOSとは何かを理解しよう
Linuxを理解する前に、 まず OS(Operating System) について理解しておきましょう。
Computerには、 CPU・Memory・Storage・Network Interfaceなどの Hardwareがあります。
しかしApplicationが、 これらのHardwareを毎回直接操作するのは非常に大変です。
そこでApplicationとHardwareの間に入り、 Computer全体を管理するのが OSです。
CPUをどのProcessへ割り当てるか、 Memoryをどう使うか、 FileをStorageへどう保存するかなどを OSが管理しています。
OSは何を管理している?
どのProcessを実行するか管理
Programが利用するMemoryを管理
Storage上のFileやDirectoryを管理
DiskやNetwork Interfaceなどを管理
つまり、 WindowsでもLinuxでも、 OSとしての基本的な役割は共通しています。
Linuxとは?
Linuxは、 Unix系の考え方を受け継いだOS環境として広く利用されているSoftware です。
厳密には Linuxという名前はKernelを指します。
しかし一般的な会話では、 Linux Kernelを中心としてCommandやUtilityなどを組み合わせた OS環境全体を 「Linux」 と呼ぶことが多くあります。
Kernelとは?
Kernelは、 OSの中核部分 です。
Applicationからの要求を受け取り、 Hardwareを制御します。
LinuxとWindowsは何が違う?
WindowsもLinuxもOSですが、 利用される場所や操作方法などに違いがあります。
- GUI操作が中心になりやすい
- Windows Applicationが豊富
- 企業PCでも広く利用
- Windows Serverも存在
- CLIでの管理が多い
- Server用途で非常に多い
- 柔軟に構成できる
- 多くのDistributionが存在
| 項目 | Windows | Linux |
|---|---|---|
| 代表的な用途 | PC / Server | Server / Cloud / Embeddedなど |
| 操作 | GUI中心になりやすい | CLIを多用 |
| 種類 | Windows 11 / Serverなど | Ubuntu / Debian / Rocky Linuxなど |
| Source Code | 基本的に非公開 | Linux KernelはOSS |
なぜLinuxはServerでよく使われる?
Linuxは、 Web ServerやDatabase Server、 Cloud環境などで広く利用されています。
GUIを使わず、 必要な機能だけでServerを構成できます。
SSHを利用して 離れた場所からCLIで管理できます。
Shell Scriptなどによって 処理を自動化できます。
Web・DNS・Databaseなど 多くのSoftwareを利用できます。
Linuxはどこで使われている?
Linuxは黒い画面しかない?GUIとCLIの違い
Linuxというと、 黒いTerminal画面を思い浮かべる方も多いでしょう。
しかしLinuxでも GUI(Graphical User Interface) を利用できます。
Window・Icon・Menuなどを利用する 視覚的な操作方法。
TerminalへCommandを入力して Computerを操作する方法。
Serverでは、 GUIを入れず CLI中心で管理する構成 も多く利用されています。
LinuxではCommandを使って操作する
たとえば、 現在いるDirectoryを確認する場合は pwdを利用します。
$ pwd
/home/user
現在のDirectoryにあるFileを確認したい場合は lsを利用します。
$ ls
Documents Downloads sample.txt
OSやKernelの情報を確認するCommandとして uname もあります。
$ uname
Linux
Commandは読むだけでは覚えにくいため、 この講座では実際に操作しながら学習していきます。
ここで実際に試してみよう:Linux疑似ターミナル
次のTerminalへLinux Commandを入力してみましょう。
今回は、 pwd・ls・uname の3つを利用できます。
Linux Terminal
まずpwdを実行してみましょう
pwdは現在いるDirectoryを表示するCommandです。
今実行したCommandを理解しよう
pwd
現在位置を確認
現在作業しているDirectoryのPathを表示します。
ls
File一覧を確認
Directory内にあるFileやDirectoryを表示します。
uname
System情報を確認
OS Kernelに関する情報を確認できます。
今後のLinux初級講座では、 こうしたCommandを少しずつ増やしていきます。
LinuxではFileとDirectoryを操作する機会が多い
LinuxをCLIで利用すると、 FileやDirectoryをCommandから操作する機会が多くあります。
Windowsでは
C:\
などから始まるPathを見ることが多いですが、
Linuxでは
/(Root Directory)
を起点としたDirectory構造を利用します。
今回は 「Linuxには/を起点とするFile Systemがある」 くらいの理解で問題ありません。
Linuxは複数Userで利用できる
Linuxは、 複数のUserが利用することを前提とした Multi-user OS としての仕組みを持っています。
FileごとにOwnerやPermissionを設定し、 「誰が読めるか」 「誰が編集できるか」 などを制御できます。
この仕組みも、 今後のLinux学習で非常に重要になります。
LinuxとOSSの関係
Linux Kernelは Open Source Software(OSS) として公開されています。
Open Sourceでは、 Source Codeを確認したり、 Licenseの条件に従って変更・再配布したりできます。
ここから、 さまざまな企業やCommunityが Linuxを組み合わせて提供するようになりました。
Ubuntu・Debian・Rocky Linuxは何が違う?
Linuxについて調べると、 次のような名前が出てきます。
ここで初学者が疑問に思いやすいのが、
なぜUbuntuやRocky Linuxなど たくさんの名前が存在するのでしょうか?
これらは Linux Distribution(Linuxディストリビューション) と呼ばれるものです。
次の記事では、 Linux KernelとDistributionの関係や、 Ubuntu・Debian・Rocky Linuxなどの違いを学習します。
確認問題:Linuxの基本を理解できたか確認しよう
OSの代表的な役割として正しいものはどれですか?
OSはCPU・Memory・File・Deviceなどを管理し、 ApplicationとHardwareの間を取り持ちます。
Linux Kernelとは何ですか?
KernelはOSの中核で、 CPU・Memory・DeviceなどHardwareの管理を担います。
LinuxでCLIを利用するメリットとして適切なものはどれですか?
CLIはSSHによるRemote管理や Shell ScriptによるAutomationとの相性がよく、 Server管理で広く利用されています。
3問に挑戦してみましょう。
まとめ
OSは ApplicationとHardwareの間に入りComputer全体を管理するSoftware
LinuxはServer・Cloudなど IT Infrastructureで広く利用されている
Linux Kernelは CPU・Memory・Deviceなどを管理するOSの中核
LinuxではGUIだけでなく CLIによるCommand操作 が重要
LinuxにはUbuntuやRocky Linuxなど 複数のDistribution が存在する
次は「Linuxディストリビューションとは?違いを理解する」を学びましょう
LinuxがOSとしてどのような役割を持ち、 KernelがComputerの中核を担っていることを学びました。
しかし実際にLinuxを利用しようとすると、 Ubuntu・Debian・Rocky Linux・AlmaLinuxなど さまざまな名前が登場します。
次は、 「Linuxは1種類ではないのか?」 「Distributionによって何が違うのか?」 を整理していきましょう。
Linuxディストリビューションとは?違いを理解する →
