Мир застрял в 1970-х годах.
Вы говорите, что за Linux будущее, но как может будущее быть построено на стандарте POSIX, который разросся до неприличных размеров, или на UNIX, который заставляет со своим «всё есть файл» страдать и создавать костыли?
Windows NT когда-то была неплохой попыткой сделать что-то новое. Но она провалилась, лично для меня: под капотом находится совместимость со софтом 30-летней давности, а некоторые системные настройки по интерфейсу не менялись с 1995 года.
Вместо того чтобы делать вид, будто сетевой контроллер или планировщик задач — это текстовый файл, можно использовать объекты. Как в Windows NT, это намного удобнее для разработчика.
Так вот, я предлагаю свою идею — PRONIUM OS. Мы взяли лучшее от Windows NT и натянули это на язык Rust, а также запердолили код, чтобы ядро работало очень быстро и шустро, тем самым повышая комфорт работы. Она использует Pronium Object System: иерархическое дерево объектов, где каждое устройство — от жесткого диска до консоли — регистрируется под понятным и строгим именем вроде \Device\Harddisk0\Partition1 или \Device\Console. Юзерленд общается с железом через типизированные бинарные структуры и IPC-порты, почти ничего не теряя.
А также сделали Pronium Driver Framework (PDF) — систему, которая заставляет железо работать по единым правилам. Любой драйвер — будь то сеть Intel, Realtek или диск AHCI — обязан реализовывать один жесткий интерфейс. PDF сам сканирует шину PCI, проверяет ID, включает DMA и регистрирует устройство в объектной системе ядра. А ядро… Драйвер либо заработает, либо ядро его не включит и забудет про него до того момента, пока его не обнаружит. По сути, PDF делает черную работу. Вот так.
А что по лицензии? Очень закрытая, но ядро открыто с огромными «но»: никакого реверса, никаких форков, только просмотр кода. С другой стороны, мы так делаем вид, будто нам не поебать… Вот такие дела.
Извиняюсь, если не та тема. кандейс, если что, перенеси.
в общем оценивайте идею, да.
неплохо, продолжай братишка
Отлично, брат
задумка хорошая ну кроме лицензии. только про идею все есть файл и как с ней работать понятно даже дауну, вот у тебя файл устройства и ты читаешь и пишешь туда теми же методами что и в обычный файл, команды работы с файлами я думаю даже школьнику минтоводу объяснять не надо. А вот как работать с твоими этими объектами я лично не пойму. в линуксе echo “любой текст” > /dev/lp0 и это печать или допустим команда> /dev/null 2>&1 и команда запустится без вывода а как у тебя это делать
mihailionin, долбаёбина, ты путаешь шелл и ядро: > /dev/lp0 — функция шелла, она под капотом дергает open и суёт вместо стандартного вывода нужный дескриптор, ядро тут вообще не при делах. в Pronium (и тамошней Pronium Object System) та же тема — файл на диске, последовательный порт, директория RamFS и конечная точка IPC, всё это реализует один трейт PosObject, и там просто read/write/ioctl (плюс open_node для навигации по дереву объектов). так что ядру плевать что перед ним, оно дергает одни и те же методы чтения-записи и не паришься с отдельной логикой под каждую хрень. я скоро выложу документацию, почитаешь и всё поймешь)
на пальцах: для ядра что диск, что порт, что кусок рамки — просто чёрный ящик с ручками “прочитай” и “запиши”. что там внутри происходит когда дергаешь эти ручки — на диск шота записывается, память копируется или ты виртуально дрочишь — ядру плевать.
пронин пока что не навайбкодил гуи
Чтобы ответить, войдите.