Linuxのアーカイブと圧縮ついてまとめ
Linux Essentials資格を勉強中のうぷ主です。
資格試験の問題に興味がない科目で
ファイル圧縮ついての問題が出てきます。
ファイル圧縮形式でzip、bzip2、xz、gzip?
どれも同じじゃない、なんで沢山あるの?と混乱したので、
時間が許す限りまとめてみました。
初級の内容ばかりですが、それでもついていけないので
整理的な意味で記します。
なるべく、有益な情報になるように
参考情報も下にリンクを張りました。
内容に正確性がない表現もありますが、
自分の言葉にすることも学習なので修正しないで残して置きます。
◆改めて、そもそもコンピュータファイルとは何か:
・簡単にいうと、 デジタルデータで表現したものと考えられる。
内容は現実にあるファイルと同じく何でも良い。
◆ファイルの特徴は形式と属性がある:
・形式ファイルの内容によって形式が決まっている。
・属性 属性によって操作できることが決まっている。
◆ファイルは保存や整理の方法が予め決まっている:
・ファイルシステム:
簡単にいうと保存と整理の方法をファイルシステムという。
ファイルシステムの仕組み 樹の様な構造をしていて
ルートディレクトリ(上部階層)から始まり、
サブディレクトリ(低い階層)からできている。
簡単に言うと現実のファイル整理の考え方を
デジタルデータに置き換えたもの。
・ファイル形式ついて:
ファイル形式・簡単にいうとファイルの構造のこと
・一般的なファイル形式:
文章(.txt)、画像(.jpg)、音(.mp3)、ビデオ(mp4)、
プログラム(.exe)、圧縮(.zip)、ウェブページ(.html) 等がある。
◆アーカイブファイルとは:
・アーカイブ :
ファイルを長い期間、保存するために一つに
まとめたり、別の場所に移動する事。
・アーカイブファイル:
簡単にいうとファイルを長い期間、
保存するためひとまとめにしたり、別の場所に移動した
ファイル ・アーカイバ ・アーカイブするソフトのこと
Linuxにはtar、zipがある。
・アーカイバの種類:
・tar{テープアーカイバ}:
ファイルとディレクトリをひとまとめにして
アーカイブファイルを作成する。
・zip{ファイルパッケージ化ユーティリティ}:
・ファイルとディレクトリをひとまとめにして、
1つのコマンドでzipアーカイブファイルに
まとめることができる。
・アーカイブの具体的例:
・Wordpress(https://wordpress.org/download/releases/)
ソフトウェアの世代をtar形式でアーカイブされ管理している。
ソフトを使う人はいつどのような変更があったかを確認し
情報がわかる。ファイルをアーカイブする具体的な事例で
アーカイブする意味を知る上で参考になると思いました。
ここでアーカイブの歴史ついて疑問が湧きました。
◆アーカイブの歴史について:
※アーカイブの考えや仕組みはどのようにできたのか
厳密な考証などをしていませんので、ご容赦ください。
・電子コンピュータの誕生期:
慣例や標準的なルールがなかった。
・コンピュータファイルシステムの成功例:
・ERMAの成功:
1955年にバンク・オブ・アメリカが小切手を
管理するために導入したシステム ・コンピュータファイル
システムERMAの成功でIBM、AT&T、政府機関が追随して
ファイルシステムを導入した。
様々なルール(命名、整理、記述)方法が登場し
データの保存、やり取りの必要が高くなった。
・ファイルシステムの普及により問題が発生:
・大量のデータ発生して、そのデータを保存したり、
やりとりする必要が高くなった。
・ファイルシステムの普及で発生した問題の解決策:
・ファイルのアーカイブ:
・アーカイブの方法:
ファイルの内容とメタデータ
(ファイルシステム内での名前と場所、作成日時、
アクセス日時を1つのファイルにまとめたもの)を
関係づけして保存してた。これで、
素早く整理や必要なファイルを見つけることが
できるようになった。
サイズは元のファイルとアーカイブファイルは
等しいままだったので記憶装置サイズが小さい時代、
保存場所が足りないという問題が残る。
・ファイルのサイズ圧縮して問題を解決:
データ圧縮基本原理を簡単に言うと
圧縮したい内容を同じ意味の少ない文字や数字に
置き換えること。
What's in a ZIP File? A History of One of the World's Most Essential File Typesで分かりやすい
具体例があったので引用します。
プログラマは多くデータの圧縮と早く圧縮と解凍ができる
方法を競い、様々な圧縮形式が誕生しました。
そこでZIP形式が誕生します。
・ZIPファイルの誕生:
・データ圧縮競争にプログラマのフィル・カッツ氏が現れます。
フィル・カッツ氏はPKWAREを起業
・圧縮プログラム、 PKPAKを公開
・PKPAKを改良した圧縮プログラム、ZIPを開発。
・数年後にZIPが競合他社を抑えてトップとなります。
※余談ですが、ZIPがトップになった理由は
シェアウェアとして条件付きで無料だった、
説明書付きで配布されていたことがあるようです。
今のスマホアプリに通じるところがあり、ZIPの登場は
当時では先進的だったのではと感じられます。
アーカイブと圧縮についての歴史を調べていたら、
アーカイブファイルに似ている、ファイルがいくつかあることに
気づきました。その違いについて疑問になったのでまとめてみます。
◆バックアップとアーカイブの違い:
・運用の違い:
・バックアップファイル:
上書き、破損したファイルを回復に使用する
・アーカイブファイル:
変更されなくなった、変更されるべきではない
ファイルのバージョンを保存に使用する。
◆アーカイバ、tarとzipの違い:
・圧縮:
・tar:
圧縮されない
・zip:
圧縮される。
・アーカイブ:
・tar:
アーカイブされる。
・zipアーカイブされる。
◆アーカイブと圧縮の違い:
100KBのファイルを10個があった場合で例えると。
・アーカイブ:
10個のファイルを1つのファイルにまとめること。
元のファイルとアーカイブされたファイルサイズに
違いはない。
・圧縮:
ファイルサイズが約100KBバイトまでの範囲になる。
◆圧縮の形式の違い:
・Linuxの主な圧縮形式の一覧:
・gzip(GNU zip)
・bzip2
・xz
・比較:
・圧縮比:
・gzip:
一般的な用途に適している。
・bzip2:
特に大きなファイルの場合、gzip よりも優れている。
・xz:
特に非常に大きなファイルに最適な圧縮方法
・スピード:
・gzip:
圧縮と解凍の両方において最も高速。
・bzip2:
gzip より遅く、xz より速い。
・xz:
圧縮効率が高いため、最も低速です。
・リソースの使用:
・gzip:
リソース消費が最も少ない。
・bzip2:
CPU とメモリの使用量は中程度である。
・xz:
最もリソースを消費する。
・ファイルの互換性:
これら 3 つの形式は、さまざまなLinux
ディストリビューションで広く利用することができる。
・活用例と使い分け:
・gzip:
速度が重要で、中程度の圧縮で問題ない場合に使用する。
ログファイルやスクリプトに最適な手段。
・bzip2:
大きなテキスト ファイルを圧縮する場合や、
速度と圧縮のバランスが必要な場合に適している。
・xz:
圧縮率が最も重要な大規模なデータセットや
ソフトウェア配布のアーカイブに最適である。
◆コマンドと使用法:
・アーカイブ:
tar {option} {filename}
・圧縮:
・zip:
zip {option} {filename}
・gzip:
gzip {option} {filename}
・xz:
xz {option} {filename}
・bzip2:
bzip2 {option} {filename}
※圧縮コマンドは単一のファイルのみ圧縮、
複数のファイル、全体のディレクトリを圧縮する場合は
tarコマンドでアーカイブして、オプションを
使用して圧縮する。
・オプション
・アーカイブ:
・新しいアーカイブを作成する:
-c
・gzip圧縮を使用する:
-z
・bzip2圧縮を使用する:
-j
・抽出プロセス中に詳細な出力を表示
-v
・作成、アーカイブのファイル名を指定
-f
・zip:
・解凍
-unzip
・gzip:
・解凍
-d
・xz:
・解凍
-d
・bzip2:
・解凍
-d
◆感想
・何気なく使っているコンピュータのファイルやフォルダは
現実の世界にあるファイルやフォルダという構造が
モデルになっている。
・ソフトや形式が沢山あるのはコンピュータができてから
の歴史に関係があった。2024年の現在ではファイルのサイズを
気にしないで、パソコンやスマホが使えるが当時は
小さい外部記憶装置に大量のデータを整理して保存したり、
やり取りする必要があった。
・その為、ファイルシステムをアーカイブする為に、
アーカイバとtar、ZIPというソフトウェアが登場した。
更にデータを圧縮する方法も考えられ、
より多くのデータを保存したり、やり取りができるようになる。
・プログラマはデータの高い圧縮率と早く圧縮と解凍する方法を
競った。その競争で様々な圧縮形式が登場した、
主なLinuxのファイル圧縮形式としてgzip、xz、bzip2形式が
利用できるようになる。
他にもtar、zip以外のアーカイバ、gzip、xz、bzip2以外の
圧縮形式があるのか調べてみたいと思いました。
◆参考文献
コンピュータファイルとは:
https://www.lifewire.com/what-is-a-file-2625878
ファイル形式とは:
https://www.computerhope.com/jargon/f/file-format.htm
アーカイブファイルとは:
ファイルアーカイブとアーカイブファイルの違い:https://www.lifewire.com/what-is-an-archive-file-2625792
アーカイブと圧縮の歴史:
https://www.logikcull.com/blog/whats-in-a-zip-file-a-history-of-one-of-the-worlds-most-essential-file-types
バックアップとアーカイブの違い:https://www.techtarget.com/searchdatabackup/tip/What-is-the-difference-between-archives-and-backups
圧縮の方法:
https://www.logikcull.com/blog/whats-in-a-zip-file-a-history-of-one-of-the-worlds-most-essential-file-types
圧縮の形式の違い:
https://www.linuxjournal.com/content/linux-file-compression-gzip-bzip2-and-xz-unveiled tar
コマンドとgzipコマンドの違い:
https://www.baeldung.com/linux/gzip-and-gunzip#:~:text=gzip is a Linux tool,compresses only a single file.
tar:
https://geek-university.com/tar-tape-archive-program/
zip:
https://www.geeksforgeeks.org/zip-command-in-linux-with-examples/
パッケージファイル:
https://wa3.i-3-i.info/word15837.html