bzip2 – тегін, ашық бастау кодты файлды қысу бағдарламасы. Burrows–Wheeler алгоритмін қолданады, LZW және Deflate-тен жақсы, бірақ баяу. Файлдарды қысу үшін пайдалы.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Файлдарды сығыстыру бағдарламалық жасақтамасы
File compression software
bzip2 – бұл Burrows–Wheeler алгоритмін қолданатын тегін және ашық кодты файлдарды сығыстыру бағдарламасы. Ол тек жеке файлдарды ғана сығымдайды және файлдық архивтеуші емес. Бірнеше файлды өңдеу, шифрлау және архивті бөлу сияқты міндеттер үшін ол бөлек сыртқы құралдарға тәуелді. bzip2 алғаш рет 1996 жылы Джулиан Сьюард жасаған. Ол көптеген файлдарды ескі LZW және Deflate сығыстыру алгоритмдерінен тиімдірек сығымдайды, бірақ өте баяу. bzip2 мәтіндік деректер үшін ерекше тиімді, ал сығылған деректерді ашу салыстырмалы түрде жылдам. Алгоритм бірнеше қабатты сығыстыру әдістерін қолданады, мысалы, жүгіру ұзындығын кодтау (RLE), Burrows–Wheeler түрлендіруі (BWT), алға жылжыту түрлендіруі (MTF) және Хаффман кодтау. bzip2 деректерді 100 және 900 кБ арасындағы блоктарда сығымдайды және жиі қайталанатын символдар тізбегін бірдей әріптер қатарына айналдыру үшін Burrows–Wheeler түрлендіруін пайдаланады. Содан кейін алға жылжыту түрлендіруі және Хаффман кодтау қолданылады. Сығылу өнімділігі асимметриялық, сығылған деректерді ашу сығылудан жылдам. Алгоритм алғашқы шығарылымынан бері бірнеше жасаушыны алмастырды, ал 2021 жылдың маусымынан бастап Миха Снайдер оны күтіп бағдарлайды. Алгоритмге бірнеше өзгерістер енгізілді, мысалы, pbzip2, ол көп процессорлы және көп ядролы компьютерлерде сығылу жылдамдығын арттыру үшін көп жіптерді пайдаланады. bzip2 Hadoop және Apache Spark сияқты кластерлік есептеу жүйелерімен үлкен деректер қолданбаларында пайдалануға қолайлы, себебі сығылған блок бұрынғы блоктарды өңдеуді қажет етпей-ақ ашылуы мүмкін.
bzip2 is a free and open source file compression program that uses the Burrows–Wheeler algorithm. It only compresses single files and is not a file archiver. It relies on separate external utilities for tasks such as handling multiple files, encryption, and archive splitting. bzip2 was initially released in 1996 by Julian Seward. It compresses most files more effectively than older LZW and Deflate compression algorithms but is slower. bzip2 is particularly efficient for text data, and decompression is relatively fast. The algorithm uses several layers of compression techniques, such as run length encoding (RLE), Burrows–Wheeler transform (BWT), move to front transform (MTF), and Huffman coding. bzip2 compresses data in blocks between 100 and 900 kB and uses the Burrows–Wheeler transform to convert frequently recurring character sequences into strings of identical letters. The move to front transform and Huffman coding are then applied. The compression performance is asymmetric, with decompression being faster than compression. The algorithm has gone through multiple maintainers since its initial release, with Micah Snyder being the maintainer since June 2021. There have been some modifications to the algorithm, such as pbzip2, which uses multi threading to improve compression speed on multi CPU and multi core computers. bzip2 is suitable for use in big data applications with cluster computing frameworks like Hadoop and Apache Spark, as a compressed block can be decompressed without having to process earlier blocks.
Тарих
Сьюард bzip2 бағдарламасының 0.15 нұсқасын алғаш рет 1996 жылдың шілде айында жариялады. Компрессордың тұрақтылығы мен танымалдылығы келесі бірнеше жылда артты, ал Сьюард 2000 жылдың соңында 1.0 нұсқасын шығарды. 2010 жылдан бері жобаға тоғыз жыл бойы жаңартулар енгізілмегеннен кейін, 2019 жылдың 4 маусымында Федерико Мена bzip2 жобасын күтуге міндеттенді. 2021 жылдың маусым айынан бастап Мика Снайдер жобаны күтуші болып тағайындалды.
Seward made the first public release of bzip2, version 0.15, in July 1996. The compressor's stability and popularity grew over the next several years, and Seward released version 1.0 in late 2000. Following a nine year hiatus of updates for the project since 2010, on 4 June 2019 Federico Mena accepted maintainership of the bzip2 project. Since June 2021, the maintainer is Micah Snyder.
Тиімділік
bzip2 ескі LZW (.Z) және Deflate (.zip және gz) қысу алгоритмдерінен көптеген файлдарды тиімдірек қысады, бірақ айтарлықтай баяу. LZMA әдетте bzip2-ге қарағанда жадты тиімдірек пайдаланады, бірақ қысу жылдамдығы одан да баяулайды, ал декомпрессиясы әлдеқайда жылдам. bzip2 деректерді 100 кБ мен 900 кБ арасындағы блоктарға қысып, жиі қайталанатын символдар тізбегін бірдей әріптер тізбегіне айналдыру үшін Burrows–Wheeler түрлендіруін қолданады. Содан кейін ол move-to-front түрлендіруі мен Хаффман кодтауын қолданады. bzip2-нің алдағысы bzip Хаффманның орнына арифметикалық кодтауды қолданған. Бұл өзгеріс бағдарламалық қамтамасыз ету патентіне байланысты шектеулер болғандықтан жасалды. bzip3, bzip2-мен ортақ ата-тегі мен алгоритмдер жиынтығын бөлісетін заманауи компрессор, керісінше арифметикалық кодтауға қайта көшті. bzip2 өнімділігі асимметриялық, себебі декомпрессия салыстырмалы түрде жылдам. Қысуға кететін ұзақ уақытқа байланысты 2003 жылы pbzip2 деп аталатын модификацияланған нұсқасы құрылды, ол файлды бірнеше бөліктерге кодтау үшін көп жіпті қолданды, бұл көп процессорлы және көп ядролы компьютерлерде шамамен сызықтық жылдамдыққа қол жеткізді. 2010 жылға дейін бұл мүмкіндік негізгі жобаға енгізілген жоқ. gzip сияқты, bzip2 – тек деректерді қысатын құрал. Бұл tar немесе ZIP сияқты архивтеуші емес; bzip2 файл форматы бірнеше файлдың мазмұнын бір қысылған файлда сақтауды қолдамайды, сондай-ақ бағдарламаның өзінде бірнеше файлдарды, шифрлауды немесе архивті бөлуге арналған мүмкіндіктер жоқ. UNIX дәстүрінде архивтеуді жеке бағдарлама жасауы мүмкін, ол bzip2 арқылы қысылған архивті шығарады, ал архивті ашу үшін bzip2 қысылған архивті ашып, содан кейін жеке бағдарламамен декомпрессиялау қажет. Кейбір архивтерде қысу және декомпрессия үшін кіріктірілген қолдау бар, сондықтан архивті қысу немесе декомпрессиялау үшін bzip2 бағдарламасын пайдаланудың қажеті жоқ. GnuPG сонымен қатар bzip2 қысу және декомпрессиясын қолдайды. grep негізіндегі bzgrep құралы мазмұнды алдымен ашып шығармай-ақ, қысылған мәтін ішінде тікелей іздеуге мүмкіндік береді.
bzip2 compresses most files more effectively than the older LZW (. Z) and Deflate (. zip and gz) compression algorithms, but is considerably slower. LZMA is generally more space efficient than bzip2 at the expense of even slower compression speed, while having much faster decompression. bzip2 compresses data in blocks of size between 100 and 900 kB and uses the Burrows–Wheeler transform to convert frequently recurring character sequences into strings of identical letters. It then applies move to front transform and Huffman coding. bzip2's ancestor bzip used arithmetic coding instead of Huffman. The change was made because of a software patent restriction. bzip3, a modern compressor that shares common ancestry and set of algorithms with bzip2, switched back to arithmetic coding. bzip2 performance is asymmetric, as decompression is relatively fast. Motivated by the long time required for compression, a modified version was created in 2003 called pbzip2 that used multi threading to encode the file in multiple chunks, giving almost linear speedup on multi CPU and multi core computers. as of 2010, this functionality has not been incorporated into the main project. Like gzip, bzip2 is only a data compressor. It is not an archiver like tar or ZIP; the bzip2 file format does not support storing the contents of multiple files in a single compressed file, and the program itself has no facilities for multiple files, encryption or archive splitting. In the UNIX tradition, archiving could be done by a separate program producing an archive which is then compressed with bzip2, and un archiving could be done by bzip2 uncompressing the compressed archive file and a separate program decompressing it. Some archivers have built in support for compression and decompression, so that it is not necessary to use the bzip2 program to compress or decompress the archive. GnuPG also has built in support for bzip2 compression and decompression. The grep based bzgrep tool allows directly searching through compressed text without needing to uncompress the contents first.