シェルとOSカーネルについての備忘録

[編集途中] [サイトアップ候補]

私は、macOS上でbash、Linuxディストロ上でbashというのに慣れていて、

WindowsOS上で、オーバーヘッドの大きいハイパーバイザー型仮想化(Virtualboxなど)を使わずに開発しなくてはいけない環境に身をおき、PowershellのコマンドレットがなぜmacOSやLinuxのシェルスクリプト(sh, bash, zsh)と大きく異なるのか疑問に思うことになった。

そこでその違いが生まれた経緯を調べてまとめておきたい。

1.OSの歴史を調査

クライアントOSとサーバーOSの両方において2つにカテゴライズする
A. UNIX系
B. Windows系

A) Unix

[初リリース] 1969年
[開発元] AT&T (アメリカの携帯会社、電話会社)
[特徴1] リリース当初、現在のLinuxカーネルとは異なり、マルチタスクではなかった。
[特徴2] 

UNIX (1969)
-- GNU/Linux
------ GNU (1983)
------ Linux [カーネル部分] (1991)
---------- Android (2008)
---------- Red Hat
-------------- Red Hat Enterprise Linux (2002)
-------------- CentOS (2004)
---------- Debian 
-------------- Debian GNU/Linux (1993)
-------------- Ubuntu (2004)
-- BSD 
------ FreeBSD (1993)
------ macOS (2001)
------ iOS (2007)

B) Windows系

Windows (1985)
------ Microsoft Windows 1.0 (1985)
------ Microsoft Windows 95 (1995)
------ Microsoft Windows XP (2001)
------ Microsoft Windows Vista (2007)
------ Microsoft Windows 7 (2009)
------ Microsoft Windows 8 (2012)
------ Microsoft Windows 10 (2015)

* 基本的に、UNIX系Windows系ともにC言語を中心に
構成されているようだ。

2.シェルの歴史を調査

A) Unixシェル

-- sh (Bourne Shell)
------ ash
------ bash (Bourne-Again Shell)
------ ksh (korn shell)
---------- zsh
-- csh
------ Hamilton C shell
-- eshell (Emacs Shell)
-- rsh

B) Unix以外のシェル

-- cmd.exe 
-- Windows Powershell

どちらも下記両方を備えている。

・対話モード (手打ちする方)
・バッチモード (シェルスクリプトでバッチ処理する方)


3.ファイルシステムの2分類

・Unix系ファイルシステム

・Windows系ファイルシステム


4.

5.

1.

この記事が気に入ったらサポートをしてみませんか?