シェルと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.
この記事が気に入ったらサポートをしてみませんか?