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で分かりやすい
        具体例があったので引用します。        

「60 京」という単語を書くのに必要な文字数は、60,000,000,000,000,000 という数字を書くのに必要な文字数よりも少ないため、この数字が文書に 1,000 回登場する場合、22 桁の数字とカンマではなく、2 つの単語を書くこと

What's in a ZIP File? A History of One of the World's Most Essential File Types
https://www.logikcull.com/blog/whats-in-a-zip-file-a-history-of-one-of-the-worlds-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

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