В архиве c (PDP-11) Unix заголовок исполняемого файла начинался с инструкции ветвления, которая перепрыгивала бы через заголовок к фактическому началу кода. Когда Unix был перенесен на другие процессоры, эта начальная инструкция ветвления PDP-11 стала окаменелой как «число magi c» для формата файла a.out (5). Когда был введен «чистый текст», первоначально для того, чтобы процессы могли совместно использовать свои сегменты кода, было введено новое число magi c, чтобы ядро могло отличить его (были некоторые важные Unix программы, которые полагались на самоизменение код и, следовательно, должны быть загружены с сегментами кода для записи). Старое число волхвов c (0407) получило название «ОМАГИ C» - «старые волхвы c» - а новому числу волхвов c (0410) было дано имя «НМАГИ * 1016». * "," новые волхвы c ". Сегмент данных следует непосредственно за сегментом кода в памяти, поэтому, когда сегмент кода становится доступным только для чтения, он должен быть дополнен до границы страницы.
Различные операционные системы и форматы файлов с тех пор представили другие маги c цифры; в последних выпусках FreeBSD для использования формата a.out обычными форматами были ZMAGI C и QMAGI C, которые были введены для того, чтобы позволить нулевой странице в адресном пространстве быть отображенной для безопасности (чтобы разыменование нулевого указателя) будет ошибкой), в то же время позволяя выполнять вызовы исполняемых файлов по требованию (т. е. mmap () вписывается в адресное пространство процесса).
Поэтому, чтобы ответить на ваш вопрос более прямо: NMAGI C и OMAGI C различны форматы исполняемых файлов, а не отдельных разделов. Они указывают желаемое соответствие между расположениями в памяти и на диске исполняемого файла. (Причина, по которой эти числа традиционно записываются в восьмеричном, а не шестнадцатеричном или десятичном виде, заключается в том, что восьмеричное является естественным представлением формата инструкций на PDP-11.) GNU ld использует эти имена (только) в качестве ссылок на исполняемые форматы, имеющие аналогичные функции даже если вы не генерируете традиционный формат a.out - что, конечно, сегодня встречается довольно редко. Одно особое преимущество использования формата OMAGI C заключается в том, что он более компактен, чем любой другой формат, что может иметь значение в таких случаях, как загрузчики, когда пространство ограничено, нет разбиения на страницы по требованию, а также нет места для любого вида обивка.