Определился с объектами, у меня объекты должны уметь себя нарисовать, выводить информацию, хранить в себе курсор по наведению мыши, иметь ссылку на верхний объект и функции для работы с объектами и свои данные.
Например объект диск имеет ссылку на свой контроллер и функци чтения\записи и весь набор стандартного объекта, контроллер сам создаёт диски при инициализации. Объект логиического диска с файловой системой создаёт диск и ссылку на себя, а дальше создаются объекты файлы и тоже имеют весь набор, функции удаления\переименования\... и ссылку на файловую систему, для того чтобы с той иметь возможность пользоваться функциями диска чтения\записи.
Сами диски у меня уже 4 типов, это хард, флешки, сетевые диски и фтп. Все диски в одном массиве и обзору дисков не важно какого типа эти диски, т.к у них функции в одном и том же месте и выдают один и тотже результат, копирование данных принадлежащих файлу в указанное место.
Самой системе не важно какой это объект, чтобы узнать какой курсор по наведению или вывести инфу о объекте, или вызвать его меню с функционалом объекта.
Вызов функций идёт так, после записи в ebp адрес объекта всегда можно вызвать его стандартные функции по стандартным смещениям например call dword[ebp+10], у нас ebp сохраняется и функция читает сама из своего объекта нужные данные, флаги и адреса например mov eax,[ebp+7].
Но самое главное, что система всегда может послать объекту сообщение, и ещё много хитрых моментов с ними.
Сама ОС у меня полностью уже продумана и осталось только набивать её код, причём система по скромным предположениям сможет делать больше и лучше чем существующие и имеет безграничный потенциал в доработках, легко её дорабатывать и делать с объектами можно всё, что захочеш.
Можно будет подменять функции создания объекта изменяя его, например видео драйвер всегда может поставить свою функцию быстрой отрисовки или добавлять новые виды объектов, дисков или значков 3д из подгружаемых модулей.
Все объекты от главного объекта будут находиться в цепочке и по удалении диска у его файлов изменится флаг доступности, а при его появлении соответствующее значение. Даже диски на контроллере AHCI могут быть добавлены\удалены в горящем режиме.
Подгружаемые модули так же будут в виде объектов и система всегда сможет вывести список функций этого объекта, а для программ её описание в специальном списке загруженных программ\модулей.
Даже само ядро будет объектом, в котором будует и описание и все функции и переменные и флаги, вызавая функцию через call dword[ebp+10] она точно так же через ebp будет пользоваться переменными и флагами и адресами, дополнительные пораметры всегда можно забить в регистра, которые всегда свободны.
Подгружаемый модуль может подменить само ядро
, воротить можно всё что угодно в такой системе. А вы говорите 'Винда, винда, юних', эти системы вообще не продуманны и просто кучка забитых функций без малейшей возможности поддержки и если не прав то поправте.