Relocatable Object Module Format (OMF) — формат об'єктного модуля, що використовується при створенні програмного забезпечення для мікропроцесорів сімейства . Формат було розроблено компанією Intel[] під назвою Object Module Format; користувачам операційної системи MS-DOS він відомий як .OBJ-файл. Формат було стандартизовано організацією Tool Interface Standards Committee.
Розширення файлу: | ..obj |
---|---|
Розробник: | Tool Interface Standards Committee |
Тип формату: | Об'єктний модуль |
Опис формату
Багато об'єктних форматів складаються з набору таблиць (таких, наприклад, як таблиці релокації), що зберігаються або у фіксованій позиції всередині файлу — прикладом може бути , або за адресами, вказаними у заголовку — як у форматі ELF. Секції, або сегменти, такі як «код», «дані» і інші, зберігаються у файлі у вигляді contiguous послідовності байтів.
Однак, коли створювався Relocatable Object Module Format, однією з головних цілей була мінімізація об'єму пам'яті, потрібного для компонування програми. Через цю вимогу OMF було спроектовано як послідовність , формат деяких них наступний:
Розмір | Вміст |
---|---|
1 байт | Тип запису (див. нижче) |
2 байти | Довжина даних (N+1) |
N байт | Дані (довжина залежить від типу запису) |
1 байт | Контрольна сума або 0 |
Через те, що формат використовувався багатьма вендорами, типів записів існує досить багато. Нововведення на зразок 32-розрядного коду або динамічних бібліотек (які, природно, не були передбачені Intel під час створення формату) також додають різноманітності. Нижче наведено деякі важливі типи записів:
- COMENT — (88h) Коментар, що також може містити деяку інформацію для керування
- EXTDEF — (8Ch) Визначення зовнішніх посилань
- PUBDEF — (90h/91h) Визначення публічних імен у цьому модулі
- SEGDEF — (98h/99h) Визначення сегментів
- GRPDEF — (9Ah) Визначення груп сегментів, наприклад
DGROUP
для MS-DOS - FIXUPP — (9Ch/9Dh) Записи, що описують «fixup» (переміщувальна інформація)
- LEDATA — (A0h/A1h) Тіло секції коду або даних
- COMDEF — (B0h) Неініціалізовані спільні дані
- COMDAT — (C2h/C3h) Ініціалізовані спільні дані
- MODEND — (8Ah/8Bh) Вказує на кінець модуля
У OMF відсутній заголовок, що містив би, наприклад, адресу символьної таблиці чи секцій. Для отримання всієї інформації компонувальник має здійснити повний розбір файлу. Секції програми також необов'язково представлені contiguous послідовністю байтів — натомість секція може бути «розкидана» по багатьох записах. Одна з початкових версій формату, а саме 1.1, говорить, що таке розбиття повинно застосовуватися для секцій, розмір яких перевищує 1 кілобайт.
Записи, що мають [en] (англ. fixups) повинні завжди слідувати прямо за секціями з кодом/даними, до яких ця інформація стосується. Таким чином секції і переміщувальна інформація завжди «перемішані» всередині файла.
OMF має також спеціальні записи (LIDATA), що дозволяють стиснення послідовностей даних, що повторюються у об'єктному файлі. Також є можливість зберегти у .obj-файлі ім'я «точки входу» (англ. entry point), що буде використана лінкером при компонуванні фінальної двійкової програми.
Використання
Даний об'єктний формат є основним для компіляторів і інших інструментів розробника для операційних систем MS-DOS, 16-розрядних Windows, а також для (OS/2) (як 16, так і 32-розрядних).
Деякі компілятори використовують 32-розрядний варіант OMF. Наприклад, дозволяє генерацію для 32-розрядних систем з сегментацією; компілятор Iron Spring (PL/I) може генерувати код для 32-розрядної OS/2 з «пласкою» моделлю пам'яті.
Середовище розробника Embarcadero RAD Studio також генерує об'єктні файли даного формату при компіляції програм для 32-розрядного варіанту Windows.
Див. також
- (COFF)
- Executable and Linkable Format (ELF)
Джерела
- Relocatable Object Module Format (OMF) Specification - Version 1.1 (PDF) (англ.). TIS. 1995 (87 pages)
- 8086 Relocatable Object Module Formats — Version 4.0. Intel. 1981 (124 pages, Intel Product Number 121748-001)
- . Архів оригіналу за 30 червня 2019. Процитовано 14 червня 2019.
Посилання
- John R. Levine. . Архів оригіналу за 16 лютого 2007. Процитовано 2 січня 2007.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Relocatable Object Module Format OMF format ob yektnogo modulya sho vikoristovuyetsya pri stvorenni programnogo zabezpechennya dlya mikroprocesoriv simejstva Format bulo rozrobleno kompaniyeyu Intel koli pid nazvoyu Object Module Format koristuvacham operacijnoyi sistemi MS DOS vin vidomij yak OBJ fajl Format bulo standartizovano organizaciyeyu Tool Interface Standards Committee Relocatable Object Module FormatRozshirennya fajlu tt obj tt Rozrobnik Tool Interface Standards CommitteeTip formatu Ob yektnij modulOpis formatuBagato ob yektnih formativ skladayutsya z naboru tablic takih napriklad yak tablici relokaciyi sho zberigayutsya abo u fiksovanij poziciyi vseredini fajlu prikladom mozhe buti abo za adresami vkazanimi u zagolovku yak u formati ELF Sekciyi abo segmenti taki yak kod dani i inshi zberigayutsya u fajli u viglyadi contiguous poslidovnosti bajtiv Odnak koli stvoryuvavsya Relocatable Object Module Format odniyeyu z golovnih cilej bula minimizaciya ob yemu pam yati potribnogo dlya komponuvannya programi Cherez cyu vimogu OMF bulo sproektovano yak poslidovnist format deyakih nih nastupnij Rozmir Vmist 1 bajt Tip zapisu div nizhche 2 bajti Dovzhina danih N 1 N bajt Dani dovzhina zalezhit vid tipu zapisu 1 bajt Kontrolna suma abo 0 Cherez te sho format vikoristovuvavsya bagatma vendorami tipiv zapisiv isnuye dosit bagato Novovvedennya na zrazok 32 rozryadnogo kodu abo dinamichnih bibliotek yaki prirodno ne buli peredbacheni Intel pid chas stvorennya formatu takozh dodayut riznomanitnosti Nizhche navedeno deyaki vazhlivi tipi zapisiv COMENT 88h Komentar sho takozh mozhe mistiti deyaku informaciyu dlya keruvannya EXTDEF 8Ch Viznachennya zovnishnih posilan PUBDEF 90h 91h Viznachennya publichnih imen u comu moduli SEGDEF 98h 99h Viznachennya segmentiv GRPDEF 9Ah Viznachennya grup segmentiv napriklad DGROUP dlya MS DOS FIXUPP 9Ch 9Dh Zapisi sho opisuyut fixup peremishuvalna informaciya LEDATA A0h A1h Tilo sekciyi kodu abo danih COMDEF B0h Neinicializovani spilni dani COMDAT C2h C3h Inicializovani spilni dani MODEND 8Ah 8Bh Vkazuye na kinec modulya U OMF vidsutnij zagolovok sho mistiv bi napriklad adresu simvolnoyi tablici chi sekcij Dlya otrimannya vsiyeyi informaciyi komponuvalnik maye zdijsniti povnij rozbir fajlu Sekciyi programi takozh neobov yazkovo predstavleni contiguous poslidovnistyu bajtiv natomist sekciya mozhe buti rozkidana po bagatoh zapisah Odna z pochatkovih versij formatu a same 1 1 govorit sho take rozbittya povinno zastosovuvatisya dlya sekcij rozmir yakih perevishuye 1 kilobajt Zapisi sho mayut en angl fixups povinni zavzhdi sliduvati pryamo za sekciyami z kodom danimi do yakih cya informaciya stosuyetsya Takim chinom sekciyi i peremishuvalna informaciya zavzhdi peremishani vseredini fajla OMF maye takozh specialni zapisi LIDATA sho dozvolyayut stisnennya poslidovnostej danih sho povtoryuyutsya u ob yektnomu fajli Takozh ye mozhlivist zberegti u obj fajli im ya tochki vhodu angl entry point sho bude vikoristana linkerom pri komponuvanni finalnoyi dvijkovoyi programi VikoristannyaDanij ob yektnij format ye osnovnim dlya kompilyatoriv i inshih instrumentiv rozrobnika dlya operacijnih sistem MS DOS 16 rozryadnih Windows a takozh dlya OS 2 yak 16 tak i 32 rozryadnih Deyaki kompilyatori vikoristovuyut 32 rozryadnij variant OMF Napriklad dozvolyaye generaciyu dlya 32 rozryadnih sistem z segmentaciyeyu kompilyator Iron Spring PL I mozhe generuvati kod dlya 32 rozryadnoyi OS 2 z plaskoyu modellyu pam yati Seredovishe rozrobnika Embarcadero RAD Studio takozh generuye ob yektni fajli danogo formatu pri kompilyaciyi program dlya 32 rozryadnogo variantu Windows Div takozh COFF Executable and Linkable Format ELF DzherelaRelocatable Object Module Format OMF Specification Version 1 1 PDF angl TIS 1995 87 pages 8086 Relocatable Object Module Formats Version 4 0 Intel 1981 124 pages Intel Product Number 121748 001 Arhiv originalu za 30 chervnya 2019 Procitovano 14 chervnya 2019 PosilannyaJohn R Levine Arhiv originalu za 16 lyutogo 2007 Procitovano 2 sichnya 2007