Ar (Unix)

ar
原作者肯·汤普逊 丹尼斯·里奇贝尔实验室
開發者各类开源和商业软件开发者。
首次发布1971年11月3日,​53年前​(1971-11-03
操作系统Unix, 类Unix系统, V, Plan 9, Inferno
平台跨平臺
类型命令
archiver
扩展名
.a, .lib, .ar[1]
互联网媒体类型
application/x-archive[1]
格式类型归档格式
作为容器一般是 目标文件 (.o, .obj)
标准未标准化,有多种形式
免费格式?[2]

ararchiver)是Unix系统上的归档工具,用于将多个文件归档为一个文件。ar目前一般仅被链接器用创建更新静态库和生成.deb包。它的归档功能现在基本被 tar所取代。[3] GNU Binutils包含ar .[2]

Linux标准规范(LSB)中,ar 已被弃用,并可能在将来的版本中移除,理由是LSB不应包含软件开发工具和指定.o和.a文件格式。[4]

文件格式

.deb文件结构示例

ar格式从未标准化过,历史上有过多种形式[5]V6, V7, AIX和Coherent等,与通用格式都有很大的差别。[6]现在的通用格式主要基于两种变体:BSDSystem V(最初称为 COFF,也被 GNUELFWindows使用。)Debian的 ".deb" 使用通用格式。

.ar文件起始是一个全局文件头,接着是各个文件的文件头和数据部分。数据部分为2字节对齐,如果数据长度为奇数,则填充一个换行符(\n,0x0A)。

特征签名

"!<arch>" 和换行符(0x0A).

文件头

归档的每个文件包含文件头存储文件信息。下表为通用格式。数值为ASCII编码,并用空格(0x20)向右填充。

偏移 长度 名称 各式
0 16 文件标识符 ASCII
16 12 文件修改时间 十进制
28 6 所有者ID 十进制
34 6 组ID 十进制
40 8 文件模式 八进制
48 10 文件大小字节数 十进制
58 2 结束字符 0x60 0x0A

标头全部为可打印的ASCII字符和换行符,所以只包含文本文件的ar归档文件仍然是文本文件。

每个文件从偶数字节开始,如果长度为奇数,则需要填充一个换行符,文件头中的文件大小存储是实际大小。[7]

由于文件名长度和格式的限制,GNU和BSD变体都设计了不同的存储长文件名的方法。尽管通用格式不会受到2038年问题的困扰,但很多系统上的ar程序存在这种问题,可能需要修改以正确处理超过2147483647的时间戳。有关这些扩展的说明,请参见libbfd。[8]

根据格式的不同,许多ar实现了用于快速链接的全局符号表(armap,目录或索引)而无需扫描整个存档中的符号。POSIX识别此功能,并且要求ar实现具有 -s选项更新符号表。大多数实现将其放在第一个文件条目中。[9]

BSD变体

BSD ar 在文件名头填充ASCII空格符,文件名如包含空格会有问题。4.4BSD ar将"#1/"和文件名长度放置在文件名字段,并将文件名放置在数据段的最前面[6]

BSD ar 自身不处理全局符号查找表,而使用单独的工具ranlib[10]。ranlib会插入一个与系统架构相关的文件 __.SYMDEF作为第一个文件[11] 一些后来的版本会在名称后面放置一个空格和"SORTED"字符表示已排序。[12] Darwin 64位系统使用__.SYMDEF_64

由于POSIX规范要求-s选项,新的BSD ar 重新实现了该要求。FreeBSD 弃用了 SYMDEF 表而采用 System V 类型的查找表。[13]

System V(或 GNU)变体

System V ar 用字符'/'(0x2F)标记文件名结束,从而文件名可以使用空格。需要扩展的文件将文件名存储在"//"文件的数据段,在标头文件名字段中写入'/'和十进制的偏移地址。 "//"文件包含的是长文件名列表,以换行符分割。通常 "//" 是第二个条目,符号表为第一个条目。

System V ar 用 "/" 文件名表示对应的数据为符号查找表,包含三部分,并存储为连续的数据。

  1. 一个32位整数大端存储:符号表的条目数。
  2. 一组32位整数,大端存储:每个表示该符号在归档中的位置。
  3. 一组字符串,0结尾:符号名称

有些 System V ar不使用上述各式,如HP-UX 11.0,上述信息存储为 SOM文件格式。

为解决4GiB文件限制,某些系统如Solaris 11.2 和 GNU使用不同的查找表。不同之处在于使用64位整数和用"/SYM64/"代替"/"[14]

Windows 变体

Windows的PE/COFF格式基于 System V/GNU。 第一个条目为 "/" 与System V/GNU符号表相同。第二个条目也是"/",使用小端整数,表示ECOFF扩展,用于存储经过排序的符号交叉引用表。 [5][15] 第三个条目为 "//" 长文件名数据。[16]

Thin archive

GNU binutils和elfutils中的 ar 有一个 "thin archive" 格式,特征签名为 !<thin>,仅包含符号表和对该文件的引用。[17]

参见

参考

  1. ^ 1.0 1.1 application/x-archive. [2019-03-11]. (原始内容存档于2019-12-08). 
  2. ^ 2.0 2.1 ar(1) - Linux man page. [3 October 2013]. (原始内容存档于2019-02-12). 
  3. ^ Static Libraries. TLDP. [3 October 2013]. (原始内容存档于2013-07-03). 
  4. ^ Linux Standard Base Core Specification, version 4.1, Chapter 15. Commands and Utilities > ar页面存档备份,存于互联网档案馆
  5. ^ 5.0 5.1 Levine, John R. Chapter 6: Libraries. Linkers and Loaders. The Morgan Kaufmann Series in Software Engineering and Programming 1. San Francisco, USA: Morgan Kaufmann. 2000 [October 1999] [2020-01-12]. ISBN 1-55860-496-0. OCLC 42413382. ISBN 978-1-55860-496-4. (原始内容存档于2012-12-05).  Code: [1][2] Errata: [3]页面存档备份,存于互联网档案馆
  6. ^ 6.0 6.1 Manual page for NET/2 ar file format. [2020-09-22]. (原始内容存档于2017-08-22). 
  7. ^ ar.h. www.unix.com. The UNIX and Linux Forums. 
  8. ^ bminor/binutils-gdb: archive.c. GitHub. [2020-09-22]. (原始内容存档于2021-03-05) (英语). 
  9. ^ ar – 参考,单一UNIX®规范第7期,由國際開放標準組織发布
  10. ^ Manual page for NET/2 ranlib utility. [2020-09-22]. (原始内容存档于2021-02-26). 
  11. ^ Manual page for NET/2 ranlib file format. [2020-09-22]. (原始内容存档于2021-02-25). 
  12. ^ ranlib.h. opensource.apple.com. [2020-09-22]. (原始内容存档于2021-02-27). 
  13. ^ ar(5) – FreeBSD文件格式(File Formats)手册页
  14. ^ ar.h(3HEAD). docs.oracle.com. Oracle Corporation. 11 November 2014 [2018-11-14]. (原始内容存档于2021-03-03). 
  15. ^ Pietrek, Matt, Under The Hood, Microsoft Systems Journal, April 1998 [2014-08-23], (原始内容存档于2007-06-24) 
  16. ^ llvm-mirror/llvm: archive.cpp (format detection). GitHub. [10 February 2020]. (原始内容存档于2021-02-28) (英语). 
  17. ^ ar. GNU Binary Utilities. [2020-09-22]. (原始内容存档于2021-04-18). 

外部链接

Read other articles:

Djoko Nugroho Bupati Blora Ke-27Masa jabatan2010–2021PresidenSusilo Bambang Yudhoyono Joko WidodoGubernurBibit WaluyoGanjar PranowoWakilAbu Nafi (2010-2015) Arief Rohman (2016-2021) PendahuluR.M. Yudhi SancoyoIr. Ihwan Sudrajat (Pj.)PenggantiArief Rohman Informasi pribadiLahir25 Mei 1963 (umur 60)Blora, Jawa TengahKebangsaanIndonesiaPartai politikDemokrat (2010-2016) NasDem (2016-2021)Gerindra (2021-Sekarang)Alma materAkmil 1988Karier militerDinas/cabang Tentara Nasional Indonesia ...

 

Raja Milinda menanyakan pertanyaan-pertanyaan. Milinda Pañha (Pertanyaan-Pertanyaan Milinda) adalah sebuah teks Buddha yang berasal dari antara 100 SM dan 200 SM. Karya tersebut mencatat dialog antara murid Buddha Nāgasena, dan raja Indo-Yunani Menander I (Pali: Milinda) dari Bactria, yang berkuasa di Sagala (sekarang Sialkot, Pakistan). Milinda Pañha dianggap sebagai kanonik oleh umat Buddha Burma, masuk sebagai bagian dari kitab Khuddaka Nikaya.[1] Referensi ^ Kelly 2005. Sumber ...

 

Roman Catholic archbishop His EminenceStephen Ameyu Martin MullaCardinal, Archbishop of JubaAmeyu in September 2022ChurchRoman Catholic ChurchArchdioceseJubaSeeJubaAppointed12 December 2019Installed22 March 2020PredecessorPaulino Lukudu LoroOther post(s)Vice-President of the Episcopal Conference of Sudan and South Sudan (2020-)Cardinal-Priest of Santa Gemma Galgani (2023–)OrdersOrdination21 April 1991Consecration3 March 2019by Paulino Lukudu LoroCreated cardinal30 September 2023by Pope...

1984 film by Charles Shyer This article is about the film. For the legal term, see Irreconcilable differences. Irreconcilable DifferencesTheatrical release posterDirected byCharles ShyerWritten byNancy MeyersCharles ShyerProduced byRichard HashimotoNancy MeyersArlene SellersAlex WinitskyStarring Ryan O'Neal Shelley Long Drew Barrymore Sam Wanamaker Allen Garfield Sharon Stone CinematographyWilliam A. FrakerEdited byJohn F. BurnettMusic byPaul de SennevilleOlivier ToussaintDistributed byWarner...

 

Artikel ini perlu diwikifikasi agar memenuhi standar kualitas Wikipedia. Anda dapat memberikan bantuan berupa penambahan pranala dalam, atau dengan merapikan tata letak dari artikel ini. Untuk keterangan lebih lanjut, klik [tampil] di bagian kanan. Mengganti markah HTML dengan markah wiki bila dimungkinkan. Tambahkan pranala wiki. Bila dirasa perlu, buatlah pautan ke artikel wiki lainnya dengan cara menambahkan [[ dan ]] pada kata yang bersangkutan (lihat WP:LINK untuk keterangan lebih lanjut...

 

Trait change of an organism in response to environmental variation Phenotypic plasticity refers to some of the changes in an organism's behavior, morphology and physiology in response to a unique environment.[1][2] Fundamental to the way in which organisms cope with environmental variation, phenotypic plasticity encompasses all types of environmentally induced changes (e.g. morphological, physiological, behavioural, phenological) that may or may not be permanent throughout an ...

Wedel. Wedel adalah kota yang terletak di distrik Pinneberg, Schleswig-Holstein, Jerman. Kota Wedel memiliki luas sebesar 33.82 km². Wedel pada tahun 2006, memiliki penduduk sebanyak 32.487 jiwa. lbsKota dan kotamadya di Pinneberg (distrik) Appen Barmstedt Bevern Bilsen Bokel Bokholt-Hanredder Bönningstedt Borstel-Hohenraden Brande-Hörnerkirchen Bullenkuhlen Ellerbek Ellerhoop Elmshorn Groß Nordende Groß Offenseth-Aspern Halstenbek Haselau Haseldorf Hasloh Heede Heidgraben Heist Hel...

 

Verbum DominiLatin: Sabda TuhanSurat ensiklik dari Paus Benediktus XVI Tanggal30 September 2010Nomor ensiklik2 dari 4 dari kepausanNaskahDalam bahasa Inggris←Sacramentum caritatis Africae munus → Verbum Domini (Bahasa Latin untuk Sabda Tuhan) adalah sebuah Nasihat Apostolik pasca-Sinode yang diterbitkan oleh Paus Benediktus XVI yang membahas bagaimana Gereja Katolik Roma seharusnya mempekajari Alkitab.[1] Ia menerbitkannya setelah diadakannya Sidang Umum Biasa Sinode Uskup XII yan...

 

Football stadium in Wolfsburg, Germany For the indoor arena in Istanbul, Turkey, see Volkswagen Arena Istanbul. Volkswagen ArenaFull nameVolkswagen ArenaLocationWolfsburg, GermanyCoordinates52°25′58″N 10°48′14″E / 52.43278°N 10.80389°E / 52.43278; 10.80389OwnerWolfsburg AGOperatorVfL Wolfsburg-Fußball GmbH[2]Executive suites31[3]Capacity30,000 (League matches)[3]26,000 (International matches)[3]Field size105×68 mSurfacehybr...

この項目には、一部のコンピュータや閲覧ソフトで表示できない文字が含まれています(詳細)。 数字の大字(だいじ)は、漢数字の一種。通常用いる単純な字形の漢数字(小字)の代わりに同じ音の別の漢字を用いるものである。 概要 壱万円日本銀行券(「壱」が大字) 弐千円日本銀行券(「弐」が大字) 漢数字には「一」「二」「三」と続く小字と、「壱」「�...

 

هذه المقالة عن المجموعة العرقية الأتراك وليس عن من يحملون جنسية الجمهورية التركية أتراكTürkler (بالتركية) التعداد الكليالتعداد 70~83 مليون نسمةمناطق الوجود المميزةالبلد  القائمة ... تركياألمانياسورياالعراقبلغارياالولايات المتحدةفرنساالمملكة المتحدةهولنداالنمساأسترالي�...

 

Albert William TruemanA. W. TruemanBornJanuary 17, 1902 (1902-01-17)Waverly, Pennsylvania[1]DiedJune 29, 1988 (1988-06-30) (aged 86)Toronto, Ontario, CanadaAlma materMount Allison University, Oxford UniversityOccupation(s)teacher, professor, cultural and university administratorKnown forNational Film Board of Canada, Canada Council, University of Manitoba, University of New Brunswick, University of Western Ontario, Carleton University Albert William Trueman, OC, FR...

Observatory in Bristol, England The ObservatoryAerial photo of the observatory showing the relationship to the Clifton Suspension BridgeLocation within BristolGeneral informationTown or cityBristolCountryEnglandCoordinates51°27′24″N 2°37′35″W / 51.45663°N 2.62640°W / 51.45663; -2.62640Completed1766Websitewww.cliftonobservatory.com Clifton Observatory (grid reference ST564733) is a former mill, now used as an observatory, located on Clifton Down, close to th...

 

Indonesian traditional fried chicken Ayam Goreng KalasanCourseMain coursePlace of originIndonesiaRegion or stateSleman, YogyakartaAssociated cuisineIndonesian cuisineCreated byMbok BerekServing temperatureHotMain ingredientsAyam goreng with kremesan  Media: Ayam Goreng Kalasan Ayam goreng Kalasan (Javanese: ꦄꦪꦩ꧀ꦒꦺꦴꦫꦺꦁꦏꦭꦱꦤ꧀, romanized: Ayam Gorèng Kalasan) is an Indonesian dish consisting of fried chicken topped with kremesan, crisp bits of fried ba...

 

منتخب كوريا الجنوبية لكرة الطائرة للسيدات كونفدرالية الاتحاد الآسيوي لكرة الطائرة مراتب تصنيف فيفب قالب:تصنيف فيفب للسيدات قالب:تصنيف فيفب للسيدات الألعاب الأولمبية الصيفية المشاركات 11 (أولها في سنة 1964) بطولة العالم المشاركات 12 (أولها في سنة 1967) كأس العالم المشاركات 12 (أو...

1992 studio album by KyussBlues for the Red SunStudio album by KyussReleasedJune 30, 1992 (1992-06-30)Recorded1992StudioSound City Studios, Van Nuys, CaliforniaGenreStoner rockLength50:39LabelDaliProducerChris Goss, KyussKyuss chronology Wretch(1991) Blues for the Red Sun(1992) Welcome to Sky Valley(1994) Singles from Blues for the Red Sun Green MachineReleased: 1993 Blues for the Red Sun is the second studio album by American rock band Kyuss, released in 1992.[1&#...

 

De Verenigde Naties te New York is de bekendste internationale organisatie ter wereld, met 193 lidstaten. Een internationale organisatie is een organisatie die zich over minstens drie landen uitstrekt. Een internationale organisatie wordt altijd opgericht op basis van een verdrag of een akkoord dat door de leden aanvaard en ondertekend wordt. Een internationale organisatie bezit rechtspersoonlijkheid, valt onder de regels van het internationaal recht en kan akkoorden afsluiten met staten of a...

 

Steam freighter that sank in Lake Superior Mataafa wrecked outside Duluth harbor after the storm of November 28, 1905 History NameSS Mataafa BuilderCleveland Shipbuilding Company Completed1899 Out of service1965 FateWrecked 1905, raised and repaired; scrapped 1965 General characteristics Tonnage4,840 GRT Length430 ft (130 m) Beam50 ft (15 m) Depth25 ft (7.6 m) Installed power1,800 hp (1,300 kW) Crew24 in 1905 SS Mataafa was an American steamship th...

1994 Andhra Pradesh Legislative Assembly election ← 1989 1 December 1994 (1994-12-01) 1999 → All 294 seats in the Andhra Pradesh Legislative Assembly148 seats needed for a majorityRegistered44,725,091Turnout31,763,466 (71.02%) 0.58%   Majority party Minority party   Leader N. T. Rama Rao Kotla Vijaya Bhaskara Reddy Party TDP INC(I) Alliance TDP+ - Leader since 1982 1982 Leader's seat Hindupur (won; retained),Tekkali (won; vacated) Dhon...

 

Comune in Veneto, ItalyConselveComuneComune di ConselveLocation of Conselve ConselveLocation of Conselve in ItalyShow map of ItalyConselveConselve (Veneto)Show map of VenetoCoordinates: 45°14′N 11°52′E / 45.233°N 11.867°E / 45.233; 11.867CountryItalyRegionVenetoProvinceProvince of Padua (PD)FrazioniPalù, BeoloArea[1] • Total24.2 km2 (9.3 sq mi)Elevation7 m (23 ft)Population (Dec. 2004)[2] • ...