Мир застрял в 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 для навигации по дереву объектов). так что ядру плевать что перед ним, оно дергает одни и те же методы чтения-записи и не паришься с отдельной логикой под каждую хрень. я скоро выложу документацию, почитаешь и всё поймешь)
на пальцах: для ядра что диск, что порт, что кусок рамки — просто чёрный ящик с ручками “прочитай” и “запиши”. что там внутри происходит когда дергаешь эти ручки — на диск шота записывается, память копируется или ты виртуально дрочишь — ядру плевать.
Чтобы ответить, войдите.