Латвийский разработчик Густ Каксис начал писать новую операционную систему. Нужно сказать, что Каксис не шутит. Ему 29 лет, то есть о юношеском максимализме речи не идёт. Программист серьёзный, он опубликовал план проекта, свои исследования в области операционных систем и упомянул, что у него есть некие коммерческие идеи, как можно использовать новую ОС.
Густ Каксис планирует освещать ход проекта в своём блоге.
План
1. Система рассчитана на современную архитектуру Intel64 (автор берёт за базу Ivy Bridge, CPU Core i5 третьего поколения с интегрированным GPU Intel HD 4000 и чипсетом B75 Express).
2. Избегать проблем с обратной совместимостью, выдать код как можно быстрее. Можно обойтись без защищённого режима, а сразу делать длительный релиз.
3. Перейти на C как можно быстрее — автор говорит, что боится работать с ассемблером.
4. Можно забыть о старых интерфейсах вроде PCI, IDE, PS/2, последовательных и параллельных портах. Почему до сих пор в каждом справочнике упоминается такое архаичное устройство как флоппи-диск? План Каксиса идёт даже дальше — он планирует отказаться даже от поддержки стандартного BIOS в пользу UEFI. Итак, в данный момент он планирует поддерживать только современные интерфейсы: PCIe, SATA, USB.
5. Избегать использования GRUB или другого мультизагрузчика — сделать собственный загрузчик и разрешить только свою ОС в системе. Автор признаёт, что это эгоцентричный подход, но настаивает на своём.
Густ планирует использовать C для написания ядра и базовых процедур, C++ — для графического интерфейса и прочих вещей, которые удобнее сделать с помощью объектно-ориентированных абстракций. Скриптовые языки подходят для пользовательского раздела, так что можно будет писать программные приложения, которые будут глубоко интегрированы в ОС и выполняться без компиляции.
Для файловой системы и драйверов планируется использовать схему URI: file://localhost/my_documents/, но ни в коем случае не UNIX-подобное дерево папок, которое Густ считает слишком запутанным для простого пользователя (например, непонятно, чем отличается /usr/bin от /usr/local/bin и почему конфиги нужно хранить в /etc). Здесь всё будет проще:
- /applications – пользовательские приложения
- /configuration – конфигурационные файлы
- /documents – документы пользователя
- /system – системная директория, доступная только для драйверов и ядра
- /system/configuration – конфигурационные системные файлы
- /system/devices – директория для доступа к устройствам
- и так далее.
Другие технические подробности о плане Густа и ссылки на документацию по написанию ОС, которую он смог найти, см. в его блоге.
Автор: alizar