Другие языки программирования и технологии

СИ компилятор, на котором можно написать свою ОС

Подскажите пожалуйста СИ компилятор, на котором можно написать свою ОС.
Code::Blocks Подайдёт?
Юрий Аний
Юрий Аний
1 193
да
Андрей Кузьмин
Андрей Кузьмин
56 714
Лучший ответ
Тебе никакой не подойдёт без знаний
с нуля? свою? это слишком смело.
Vania Kislitsyn
Vania Kislitsyn
71 650
Юрий Аний хотя бы начать
Юрий Аний простейшую
Программы пишут на языке, я не на компиляторе.
Любой.
1) Вряд ли какой-то компилятор Си подойдет.
*.ex и линуксовские бинарники (формат ELF), создаваемые большинством компиляторов, запускаются только на винде и линуксе соответственно. Вне какой-либо ОС они не запустятся.
Нужен принципиально другой тип исполняемого файла.

2) Кодблокс - вообще не компилятор. Это IDE. Компилятор к ней прикручивают снаружи.
Стандартный компилятор в кодблоксе, насколько знаю, - MinGW. Он на винде точно только виндовые бинарники умеет компилировать. Так что уж точно не подойдет.

3) О Си пока советую забыть, и взять лучше ассемблер. Вот разные компиляторы ассемблера - точно умеют создавать разные исполняемые файлы. Компилятор FASM умеет на винде создавать линуксовский ELF-бинарник. А YASM (и може не только он) создает бинарники, запускаемые вне ОС, если упаковать их в загрузочный образ - то, что вам и надо. Минимальная "ОС" весит 6 байт до упаковки в iso :)
Вот несколько видеоуроков по созданию "ОС" с помощью ясма:
http://www.youtube.com/watch?v=Zz_pvOjR6Lc

4) Впрочем, и на Си, видимо, кое-что можно. Вот здесь еще больше уроков по созданию "ОС", хотя и на английском:
http://skelix.net/skelixos/index_en.html
и в некоторых мелькают кусочки кода на Си...
Но это уже потом, когда напишете "основу" ОС. А основу все равно надо писать на ассемблере. Без нее сишный код, как я понимаю, вообще не будет работать.

5) Но особого успеха не ждите.
Все уроки по этой теме обычно ограничиваются примитивными ОСьками, максимум умеющими работать с файлами, памятью, ну и писать на черном экране текст (в лучшем случае - разными цветами).
Чтобы создать что-то большее, надо очень хорошо уметь гуглить и разбираться в самом разному чужом коде и статьях. Это приходит с опытом.
В общем, поиграться с вышеупомянутыми ссылками, можете уже сейчас, но если хотите серьезно заняться этим - лучше пока в совершенстве изучите имеющиеся ОС и их стандартные библиотеки. На винде научитесь писать приложения под WinAPI, драйвера под NT...
Ибо, если человек не понимает разницы между IDE и компилятором, то о каких уж ОС тут говорить.