LINUX.ORG.RU
ФорумTalks

Товарищ пишет свою ОС с блекджеком и без GRUB'а

 ,


0

2

Пардон за хабру, но доставляет:

План

1. Система рассчитана на современную архитектуру Intel64 (автор берёт за базу Ivy Bridge, CPU Core i5 третьего поколения с интегрированным GPU Intel HD 4000 и чипсетом B75 Express).

2. Избегать проблем с обратной совместимостью, выдать код как можно быстрее. Можно обойтись без защищённого режима, а сразу делать long mode.

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 – директория для доступа к устройствам и так далее.

Другие технические подробности о плане Густа и ссылки на документацию по написанию ОС, которую он смог найти, см. в его блоге.

Блог: http://gusc.lv/2012/11/im-writing-my-own-os/
Хабра: http://habrahabr.ru/post/160427/

P.S. Ему 29 и он бородат.
P.P.S. Комменты на хабре доставляют вдвойне.

★★★

Последнее исправление: CYB3R (всего исправлений: 1)

Придумать принципиально новую ОС не проблема для программиста. Наверное их постоянно придумывает кто-нибудь и пытается реализовать. Большинство не осиливает доделать. А кто если и доделает, то она всё равно остаётся никому не нужна, т.к. уже есть работающие проверенные временем системы.

firestarter ★★★☆
()

Так тупо, аж грустно.

Solace ★★
()

Густ планирует использовать C для написания ядра и базовых процедур, C++ — для графического интерфейса и прочих вещей, которые удобнее сделать с помощью объектно-ориентированных абстракций

Ретроград!

olibjerd ★★★★★
()

Пойду снизу вверх.

например, непонятно, чем отличается /usr/bin от /usr/local/bin и почему конфиги нужно хранить в /etc

А нафига юзеру вообще лезть в эти папки? Если не вкурил - пусть юзает убунту с нормальным гуевым конфигом и в хомяке сидит. В венде кстати если глянуть в системные папки - там вообще треш и угар. Туда юзера пускать - как макаке гранату.

Избегать использования GRUB или другого мультизагрузчика ... отказаться даже от поддержки стандартного BIOS в пользу UEFI

Бред. И еще «SecureBoot к нам приходит», ага.

Можно забыть о старых интерфейсах вроде PCI, IDE, PS/2,

*тут было много мата от верного юзера PS/2*. А вообще - пусть сам ищет USB-консольный кабель чтоб свич HPшный настраивать.

автор говорит, что боится работать с ассемблером

без комментариев

upcFrost ★★★★★
()
Последнее исправление: upcFrost (всего исправлений: 1)

С сайта нео-Попова:

No POSIX - as I have some ideas of my own on how to create APIs.

эх, видать он фея, а все, кто придумал POSIX...

upcFrost ★★★★★
()

Не труЪ, нужно было начать с написания своего ЯП, что-то вроде Go, на котором писать и ядро, и GUI. Кстати, а не собирается ли он запихать графическую систему в ядро?

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

В венде кстати если глянуть в системные папки - там вообще треш и угар. Туда юзера пускать - как макаке гранату.

Хрен ты угадал, возьмем самую опасную папку system32, хоть все либы там выдели и удали, они тут же появятся обратно, так что макаки с гранатой там не получится.

raycast
()

Intel64

SO FAT, аж с монитора капает

cvs-255 ★★★★★
()

Для файловой системы и драйверов планируется использовать схему URI: file://localhost/my_documents/, но ни в коем случае не UNIX-подобное дерево папок, которое Густ считает слишком запутанным для простого пользователя (например, непонятно, чем отличается /usr/bin от /usr/local/bin и почему конфиги нужно хранить в /etc). Здесь всё будет проще:

/applications – пользовательские приложения /configuration – конфигурационные файлы /documents – документы пользователя /system – системная директория, доступная только для драйверов и ядра /system/configuration – конфигурационные системные файлы /system/devices – директория для доступа к устройствам и так далее.

А вот это здраво весьма. Если честно, то неподготовленному человеку неочевидна эта юниксовая свистопляска с директориями.

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

Ещё как получится. Приходится периодически наблюдать последствия ручной чистки диска С доморощенными специалистами, которые мнят себя кулхацкерами после установки чистилки реестра и начинают лезть куда не просят.

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

Неподготовленному человеку давать вылазить из ~ вообще не стоит. А там всё просто. ~/Документы, ~/Видео, ~/Видео/Порно и так далее.

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

неподготовленному пользователю нефиг лезть в эту иерархию, ему и /home хватит.

daemonpnz ★★★★★
()

Можно забыть о старых интерфейсах вроде PCI, IDE, PS/2, последовательных и параллельных портах.

последовательных и параллельных портах.

а вот за такое он должен мучаться.

И учитывая, что почти вся встроенная в материнку периферия идет по PCI, отказаться ему не удастся.

сделать собственный загрузчик

велосипеды спасут окружающую среду от выхлопов автомобилей

непонятно, чем отличается /usr/bin от /usr/local/bin

разве непонятно? Названием!

cvs-255 ★★★★★
()
Ответ на: комментарий от Akamanah

Если честно, то неподготовленному человеку неочевидна эта юниксовая свистопляска с директориями.

чем может быть непонятно дерево?

cvs-255 ★★★★★
()
Ответ на: комментарий от daemonpnz

но почему бы и нет?

потому что PCI-e - нифига не шина, а звезда.

И с учетом количества встроенной мелочевки накладно выйдет

cvs-255 ★★★★★
()
Ответ на: комментарий от cvs-255

чем может быть непонятно дерево?

Ну вот представь, что ты первый раз за GNU/Linux. Сможешь собразить что в себе содержить /etc или /dev? Выучиться конечно можно, но это все равно, что кататься на велосипеде с квадратными колесами. В идеале сделать директории понятными всем людям, а не кучке красноглазиков.

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

Ну вот представь, что ты первый раз за GNU/Linux. Сможешь собразить что в себе содержить /etc или /dev?

если, как белый человек, прочту сперва руководство пользователя, то да.

cvs-255 ★★★★★
()
Ответ на: комментарий от PolarFox

Рано или похдно любознательность выведет. А там уже лучше вменяемые названия директорий, чтобы можно было без курения манов понять что и где лежит.

Akamanah ★★★★★
()
Ответ на: комментарий от cvs-255

если, как белый человек, прочту сперва руководство пользователя, то да.

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

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

Или гуёвый файловый менеджер, не пускающий выше ~ и /media. А в консоли можно уже любые ужасы показывать. Вон на маке все эти /bin вполне в наличии, но Finder их не показывает.

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

Это подразумевает уже некий опыт работы с компьютером. В этом случае человеку будет удобно не так, как логичнее, а так как он привык в предыдущей системе, которая бывает разной

cvs-255 ★★★★★
()
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от Akamanah

В идеале сделать директории понятными всем людям, а не кучке красноглазиков.

Всем людям они всё равно не нужны, а вот набирать постоянно /preferences вместо /etc задолбаешься.

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

С точки зрения программиста pci-e вообще максимально приближена к pci. Но управляющие схемы в чипсете могут быть разными

cvs-255 ★★★★★
()
Ответ на: комментарий от cvs-255

Ну тогда кретинизм иерархии только будет накапливаться и далее, если кто-то не реформирует.

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

Сокращения сделать не проблема вообще.

Да, но зачем? Подготовленных людей позиксом не испугаешь, а неподготовленным нечего и лезть.

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

Да. Я быстро понял, что к чему не читая документацию (не было на тот момент такой привычки). Хватило базовых знаний английского. Конечно, тонокости типа различия между /usr/bin и /usr/local/bin я так с налету не понял, но мне оно и не нужно было.

Извини, что без цитаты - с телефона неудобно.

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