LINUX.ORG.RU

да, и вот простой наглядный пример: http://www.dim13.org/cgi-bin/cvsweb/src/boot/ (бутлоадер первичных партиций с автораспознованием и запоминием предидущего выбора)

beastie ★★★★★
()

> Может ли GCC компилировать программы для исполнения без операционной систем, например при загрузки компьютера?

частично. гцц поддерживает freestanding, но не полностью. например, даже в этом режиме он генерирует вызовы к таким стандартным сишным функциям, как memset и memcpy, хотя в стандарте ясно написано, что в режиме freestanding предполагается, что никаких стандартных библиотек/функций не существует, как и большинства заголовочных файлов. по этому поводу bsd-шники одно время сильно ругались, когда пытались собрать ядро с помощью гцц.

arsi ★★★★★
()

см. как и чем собирается GRUB, например.

Deleted
()

Решено!

Всем огромное спасибо! Первый раз на этом форуме, не ожидал такой отдачи! Всем еще раз спасибо. Переходя по ссылкам нашел решение вот The Real «Hello World!» (на русском кстати :))

MrLinch
() автор топика

Если вам это нужно не в образовательных целях, а для дела, то рекомендую изучить multiboot specification и грузить свой модуль из grub. Сэкономите кучу времени.

Relan ★★★★★
()
Ответ на: комментарий от MrLinch

gcc -o kernel.o -c kernel.c -Wall -Wextra -Werror \ -nostdlib -fno-builtin -nostartfiles -nodefaultlibs

(см. http://wiki.osdev.org/Barebones )

-nostdlib : не линковать стд. библиотеку (libc) — для ядра и для биос будет своя заглушка. Хотя статически можно.

-nostartfiles: не линковать crt0 — для ядра и для биос будет своя заглушка.

-nodefaultlibs: не линковать libgcc, libc и т.п.

ещё поиграться с выходным форматом, чтобы был bin, а не ELF/a.out

вообще посмотри исходники того же CoreBIOS/coreboot

anonymous
()
Ответ на: комментарий от anonymous

Они бы лучше hello world hypervisor опуликовали.

gag ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.