Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Ескі Unix орындалатын файл форматы
Old Unix executable file format
a. out – Unix-тің ескі нұсқаларында, мысалы, компьютерлік операциялық жүйелерде орындалатын файлдар, объектілік код және кейінгі жүйелерде бөлісілген кітапханалар үшін қолданылатын файл форматы. Бұл "assembler output" ("құрастырушы шығысы") деген сөздің қысқартылған түрі, Кен Томпсонның PDP 7 құрастырушысының шығыс файл атауы. Бұл термин кейіннен объектілік кодтың басқа форматтарынан ерекшелендіру үшін алынған файлдың форматына қолданылды. "a. out" кейбір компиляторлар мен линкерлер жасаған орындалатын файлдар үшін, егер шығыс атауы көрсетілмесе, әдепкі файл атауы болып қала береді, тіпті жасалған файлдар нақтыда a. out форматында болмаса да. a. out форматына қолдау Linux ядросының 5.18 нұсқасында жойылды.
a. out is a file format used in older versions of Unix like computer operating systems for executables, object code, and, in later systems, shared libraries. This is an abbreviated form of "assembler output", the filename of the output of Ken Thompson's PDP 7 assembler. The term was subsequently applied to the format of the resulting file to contrast with other formats for object code. "a. out" remains the default output file name for executables created by certain compilers and linkers when no output name is specified, even though the created files actually are not in the a. out format. Support for the a. out format was removed in Linux kernel version 5.18.
Тарих
PDP 7-ге арналған a.out форматы, PDP 11-де қолданылатын a.out форматына ұқсас, UNIX-тің бірінші басылымында пайда болды. Ол AT&T Unix System V-де COFF форматымен алмастырылды, ал ол өз кезегінде System V Release 4-де ELF форматымен алмастырылды. a.out файлдары 0407, 0410 немесе 0413 октал кодтары бар сиқырлы сандармен сәйкестендіріледі. Беркли Unix біраз уақыт бойы a.out форматын пайдалануды жалғастырғанмен, қазіргі заманғы BSD жүйелері ELF форматына көшті. NetBSD/i386 ресми түрде a.out-тан ELF-ке 1.5 нұсқасында (желтоқсан 2000) ауысты. FreeBSD/i386 1998 жылы 2.2-ден 3.0-ға өту кезінде стандартты формат ретінде ELF-ке ауысты, бірақ a.out қолдауы жүйеде сақталды. MINIX 3 3.2.0 нұсқасында (ақпан 2012) ELF форматына көшті. Linux та 1.2 ядросына дейін (наурыз 1995) a.out-ты ғана қолданды, содан кейін ол осы платформа үшін ELF форматымен алмастырылды. ELF қолдауы 1.1.52 эксперименталды ядросында қосылды. Linux-тың ELF-ке ауысуы, осы платформада a.out ортақ кітапханаларын құрудың қиындығына байланысты болды, бұл кітапхана орналасқан виртуалды мекенжай кеңістігін орталық органға тіркеуді қажет етті, себебі Linux-тағы a.out ld.so ортақ кітапханаларды қайта орналастыра алмады. BSD-нің әртүрлі нұсқалары Linux ELF-ке ауысуға мәжбүр болғаннан кейін ұзақ уақыт бойы a.out бинарларын қолдана алды, себебі BSD a.out форматы Linux-қа қарағанда икемдірек болды. Linux-тағы a.out файл форматы 5.1 Linux ядросының шығарылуымен қолданудан тоқтатылды және оны өңдеуге қатысты бастапқы кодтың соңғы бөліктері 5.18 нұсқасында алынып тасталды.
An a. out format for the PDP 7, similar to the a. out format used on the PDP 11, appeared in the first edition of UNIX. It was superseded by the COFF format in AT&T Unix System V, which was in turn superseded by the ELF format in System V Release 4. a. out files are identified by the magic numbers with octal codes 0407, 0410 or 0413. Though Berkeley Unix continued using the a. out format for some time, modern BSD systems have since switched to ELF. NetBSD/i386 switched formally from a. out to ELF in its 1.5 release (Dec. 2000). FreeBSD/i386 switched to ELF as a standard format during the 2.2 to 3.0 transition in 1998, however support for a. out remained in the system. MINIX 3 switched to ELF in the 3.2.0 release (Feb. 2012). Linux also used a. out only until kernel 1.2 (Mar. 1995), when it was superseded by ELF for that platform as well. ELF support was added in the experimental 1.1.52 kernel. Linux's transition to ELF was more or less forced due to the complex nature of building a. out shared libraries on that platform, which included the need to register the virtual address space at which the library was located with a central authority, as the a. out ld. so in Linux was unable to relocate shared libraries. The various BSD flavors were able to continue using a. out binaries long after Linux was forced to switch to ELF, due to the somewhat more flexible nature of the BSD a. out format compared to that of Linux. The a. out file format on Linux was deprecated with the release of the 5.1 Linux kernel and the last parts of source code handling it were removed in 5.18.
Қателерді жою
Дебюг ақпараттарын a.out форматы символдар кестесіндегі арнайы жазбалар (stabs) арқылы қолдайды. Stabs форматы көптеген COFF және ELF түрлерінде де қолданылған.
The a. out support for debug information is done through the use of special entries in the symbol table called stabs. The stabs format has also been used in many COFF and ELF variations.