2016-09-03 7 views
-3

Я пишу операционную систему, и мне нужен адрес, где значение NULL. Я думал о действительно большом адресе, но использует ли BIOS первый байт в памяти? Мое ядро ​​не будет использовать его ни для чего, кроме константы char NULL, поэтому я думал, что первый байт не может быть использован, где может быть действительно большой адрес, если вам нужно выделить много памяти.Что такое первый байт в памяти?

+0

Так выделить память и хранить NULL. Или посмотрите руководства для любой архитектуры, на которую вы пытаетесь написать ОС, и посмотрите, существует ли существующее место, где ваша ОС захочет хранить нулевые байты. IDK, почему вы думаете, что хотите этого, но я боюсь даже спросить об этом. –

ответ

1

В режиме реального времени x86 для нижнего 0x400 байтов используется для таблицы векторов прерываний. Вы можете прочитать о IVT по телефону wiki.

Вы можете объявить константу, значение которого находится в вашем образе ядра NULL:

const char *null_var = NULL;