Co to jest format pliku AR?
Format archiwum .ar sięga korzeniami do Unix Version 1 (1971), stworzonego w Bell Labs jako oryginalny archiwizator systemu Unix. Plik .ar łączy wiele plików składowych, z których każdy jest poprzedzony stałym, 60-bajtowym nagłówkiem ASCII, zawierającym nazwę elementu, czas modyfikacji, uprawnienia i rozmiar w bajtach. Każde archiwum zaczyna się od 8-bajtowej sygnatury magicznej !<arch>, po której następuje pojedynczy znak nowej linii (0x0A).
Format domyślnie przechowuje elementy bez kompresji. Istnieją dwa główne warianty:
- Wariant BSD (używany w macOS) rozszerza długie nazwy plików bezpośrednio po każdym nagłówku elementu.
- Wariant System V/GNU (używany w Linux) przechowuje długie nazwy w specjalnym elemencie
//i dodaje wpis indeksu symboli/dla wydajnego wyszukiwania podczas linkowania.
Dziś format .ar jest najczęściej spotykany jako biblioteki statyczne .a w systemach Linux i macOS, gdzie standardową implementacją jest narzędzie ar z pakietu GNU binutils. Pakiety Debian .deb to również archiwa ar - zmiana rozszerzenia .deb i jego wypakowanie ujawnia wewnętrzne elementy control.tar i data.tar. Typowe polecenia ar: ar rcs libfoo.a *.o tworzy archiwum, ar t archive.ar listuje zawartość, a ar x archive.ar wypakowuje pliki.
Bezpieczeństwo
RYZYKO: LOWArchiwa AR same w sobie są kontenerami bez semantyki wykonywalnej - nie mogą automatycznie uruchamiać kodu. Jednak elementy wewnątrz mogą być skompilowanymi plikami obiektowymi lub plikami wykonywalnymi, które mogą być złośliwe. Podczas wypakowywania archiwum ar z niezaufanego źródła należy sprawdzić wypakowane pliki przed ich uruchomieniem. Biblioteki statyczne zlinkowane z Twoimi plikami binarnymi stają się ich częścią; sfałszowana biblioteka statyczna jest wektorem ataku na łańcuch dostaw (np. naruszone archiwa zestawu narzędzi). Zawsze weryfikuj sumy kontrolne przy pobieraniu paczek narzędziowych zawierających biblioteki .a/.ar.
Szczegóły formatu
w pigułce- Pakiet Debian (.deb) - Plik .deb to archiwum ar zawierające elementy control.tar.* i data.tar.*; kontener ar jest przezroczysty dla użytkowników końcowych (obsługuje go dpkg).
- Biblioteka statyczna .a (ten sam format, inne rozszerzenie) - W systemach Linux/macOS .a jest konwencjonalnym rozszerzeniem dla bibliotek statycznych w formacie ar; .ar jest rzadziej spotykane, ale identyczne.
Programy otwierające pliki AR
Szczegóły techniczne
specyfikacja| Magiczne bajty | 21 3C 61 72 63 68 3E 0A - ciąg ASCII !<arch> plus nowa linia (0x0A) na offsetcie 0 |
| Typ MIME | application/x-archive |
| Rozmiar nagłówka elementu | 60 bajtów (pola o stałej szerokości, kodowane w ASCII) |
| Układ pól nagłówka | Nazwa pliku 16 B, czas modyfikacji 12 B, UID 6 B, GID 6 B, tryb 8 B, rozmiar 10 B, magic 2 B |
| Wyrównanie elementów | Granica 2-bajtowa; elementy o nieparzystej długości uzupełniane pojedynczym znakiem nowej linii (0x0A) |
| Kompresja | Brak domyślnie - pliki składowe przechowywane dosłownie i bez kompresji |
| Sprawdzanie integralności | Brak sum kontrolnych dla elementów lub całego archiwum w formacie ar |
| Limit nazwy pliku | 16 znaków w stałym nagłówku; nieograniczony przez rozszerzenie BSD inline lub tabelę elementów // w System V |
| Warianty formatu | BSD (macOS): rozszerzone nazwy inline; System V/GNU (Linux): tabela elementów // dla długich nazw |
| Indeks symboli GNU | GNU ar dodaje element tabeli symboli / na początku archiwów .a dla wydajnego wyszukiwania symboli podczas linkowania |
| Obsługa cienkich archiwów | Cienkie archiwa GNU (thin archives) używają sygnatury 21 3C 74 68 69 6E 3E 0A (!<thin>) i przechowują ścieżki do plików zamiast danych |
| Główne zastosowania | Biblioteki statyczne .a (Linux, macOS), pakiety .deb Debian, pakiety .ipk OpenWrt |
| Platformy | Linux, macOS, FreeBSD, Solaris, AIX, Windows (MinGW/Cygwin/WSL) |
| Wydano | 1971 (Unix v1, as the original Unix archiver) |
| Najnowsza wersja | POSIX.1-2017 specifies the format; GNU ar (binutils) is current implementation |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | pubs.opengroup.org |
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki AR.