Сами программы - обычные ELF-ы, линкуемые с системными библиотеками.
Не совсем же: afaik, обычно либы не собраны для динамической линковки (то есть еще не обкатано). Пустой бинарь будет ~1м. А если hint запихать, то все 30.
Тогда есть смысл попробовать сам Forth. Его же можно «самомодифицировать» и получится уже не-Forth, но похоже. И исходный материал имеется - в смысле: реализации и под Линукс, и под венду.
Не знаю. Хочется построить что-нибудь вроде ОС из маленьких кирпичиков. Но это - непривычно. За последнее время я очень привык к стандартной среде разработки (Windows, Linux), где всё есть, и ничего, кроме поставленной задачи, решать особо и не требуется.
Вот, например, я сейчас не готов сказать - с чего надо начинать написание ОС.
У JHC - 16K. У GHC с -dynamic -shared -fPIC - 8K. Помню, мой не пустой бинарь весил 5MB (я статически собирал с помощью GHC, JHC не пробовал), аналогичная программа на си бы весила где-то 500KB.
На osdev.ru - глухо. Там админит Сергей Гриддасов (Grindars). Самые активные были - Олег Федоров (legos) и Петр Зотов (whitequark), но они ушли из osdev.
Да. Ты прав. Пока рылся в старье, нашёл не только ассемблерные распечатки, но и листинги шедулера, подсистемы управления памятью, обработки прерываний, несколько драйверов (диски, мультиплексор, терминал). Есть ассемблерные модули, но нет ассемблерных вставок. Твоя правда.
Если ты пишешь свободную ОС, и под неё кто-то будет писать программы, в её состав разумно включить библиотеки и компилятор. Так, например, в линуксе есть GCC, в *BSD — PCC или clang. Да и мало подходит хаскель для подобных задач.
Годятся только си без плюсов и ассемблер, все остальное - от непонимания специфики. Жабопитонолиспы и прочая «остановите мир я подмету» не годится, т.к. ни один сборщик мусора не работает хорошо при недостатке памяти, и уж тем более не сможет нормально работать в реальном режиме, где никаких виртуальных памятей нету - привет, фрагментация.
Основные плюсы д - в его мусороубощике и синтаксическом сахарке, а какой может быть low-level с gc? Чтоб делать низкий уровень, надо будет писать, не полагаясь на него, поэтому преимущество теряется. Лучше си языка не было и нет пока, по-моему.
Потому что речь идет об ОС, что в первую очередь подразумевает кернел. А написание любого прикладного системного ПО мало чем отличается просто от прикладного ПО, поэтому там годится что угодно. А так конечно, некоторые и смену обоев на нескучные называют «принципиально новой ОС» :)