Если тебе приходится использовать низкоуровневую работу с битами памяти где-то кроме ядра твоей системы - значит, эта система спроектирована из рук вон плохо. Потому что вся низкоуровневость должна быть как можно скорее сокрыта за слоем абстрактных понятий языка. Только так можно гарантировать надежность, расширяемость и независимость от окружения. И Оберон дает еще при всем и прекрасную скорость.
Хотя в этих нескольких модулях ядра код на Обероне может выглядеть действительно грязновато - за счет префикса SYSTEM и прочего... Именно поэтому Excelsior в своем XDS позволила свободно стыковать Модулу-2 и Оберон-2 (Обероновский модуль может использовать модуль Модулы) - это очень удобно в системных проектах.
Позволю себе привести отрывок из недавней переписки с директором Excelsiora А. Хапугиным:
Хочу добавить, что по моему мнению двуязыковость нашей среды
(Модула-2/Оберон-2) для программирования полной операционной системы
дает серьезные преимущества, которые почему-то пока никто не заметил.
Поделюсь с Вами, возможно получу в ответ мнение серьезного практика
. Есть части ОС, которые попросту неудобно делать на Обероне из-за
отсутствия реальной адресной арифметики, работы с железом, работы с
памятью "традиционным" способом и т.п. На Обероне такие места выглядят
"грязью", которую разработчики старательно "прячут", потом говоря в
документации о "2-3 системно-зависимых модулях" (в которые нормальному
человеку не надо заглядывать
). Но Модула-2 для этого подходит
практически идеально, во всех смыслах - от объема требуемого текста до
сохранения надежности и контроля. Она для этого и разрабатывалась,
собственон первая операционая система Вирта была на Модуле. А
Модуловские модули в XDS можно непосредственно импортировать в Оберон,
как если бы это был просто Оберон, но без единого класса - только
функции (и без метасредств). Ядро можно сделать на Модуле, и безо
всяких специальных усилий использовать из Оберона. Получается, что
ядро становится "чище" и значит надежнее.