Хм
15 лет назад за компьютером однажды просидел не вставая все 15 часов в среде TurboPascal 5.
А пока писал пробный код с загрузкой дампов памяти и дескрипторов - поднялось давление! И это за пару часов
Неужели возраст своё берёт? Или просто отвык кодить...
P.S.: Скачал сорс KolibriInWindows... Интересный код. Эмулить всю операционку механизмами Windows. Правда многие куски ставят меня в тупик. Надо бы перевести всё ви Си-- синтаксис.
Вот что сильно не нравится в ассемблере - одна инструкция на строку. Дофига скроллить приходится и стыковать куски в мозгах... Пф-ффф...
Кстати, хотел заметить.
Следуя особенности одной черты своей характера, я изначально не имел желания реализовывать plutOS как операционку: писать загрузчик, ядро, драйверы и т.д.
Эта особенность и в этот раз не подвела. Так-как я не имею полной уверенности в возможности реализации такой концепции.
А на днях, когда за какой-то час управился и набросал кривоватый код вступления симулятора, результат его работы довёл моё состояние до повышения давления! А мне здоровье очень дорого. Я с ужасом тогда подумал, что было бы, рискнув я всё писать прямо с нуля, а не в готовой Windows.
В принципе, я уже говорил, от идеи не откажусь. Впрочим, если появятся доказательства, что в среде Windows, а также и со своим ядром, такая концепция не реализуема. Придётся либо концепцию подправить, которая ещё, благо, не сформирована и на 99% туманна. Либо отказаться от неё под IA-32 вообще!
Вы говорите, заняться разработкой собственного CPU заточенного под plutOS. Но зачем мне тогда вообще plutOS, если сам процессор аппаратно будет поддерживать концепцию? Тогда plutOS замениться обычным BIOS с поддержкой особенностей процессора.
К тому же возраст своё берёт и спустя 17 лет я не знаю, хватит ли сил и терпения браться за сам процессор.
Кратко опишу его архитектуру:
1. Шина адреса 64-разрядная;
2. Каждая задача работает в нулевом пространстве:
2.1. Нету рабочих ячеек OS, тем самым, нечего и защищать;
2.2. Большинство инструкций высокоуровневые. Т.е. выполняются через OS:
2.2.1. Создание локального файла (VirtualAlloc);
2.2.2. Создание глобального файла (CreateFileMapping).
2.3. Нижние 4Гб памяти полностью в распоряжении задачи;
2.4. Остальные - доступ к файловой системе, сетевым ресурсам, графике и т.д.;
В общем, как уже понятно, полное отражение концепции plutOS: Никаких API с тысячями функций. Только окна памяти на такой-то ресурс.
P.P.S.: Идея родилась под впечатлением от последней сцены фильма "Газонокосильщик", где он пытается найти открытый порт и выбраться в глобал.
Тогда я подумал, нафиг все эти хэндлы на файлы и прочие ресурсы?
Традиционные системы словно пришёл в архив, сделал запрос и тебя послали в такой-то корпус к материалам с таким-то индексом. И начал бегать по коридорам, кабинетам.
Нет уж вам! Это я сам с потолка возьму индекс (номер телефона девушки) и назначу ему такой-то ресурс.
Т.е. наоборот всё. Имею хэндлы, какие мне легко запомнить, а не те, которые выдаёт бюрократическая номенклатурная система!
И никакой моей суеты! Не я бегаю по функциям с хэндлами (по инстанциям с кучей документов), а система.
Типо
Взял чистый лист и ручку, тысяча чиновников сами ко мне подошли. Стал писать шапку, отсеялись чиновники до сотен. Стал писать вступление, отсеялись до десятков! Я на них не смотрю, а они за мной следят. Как только ставлю подпись в конце, нужный оставшийся чиновник уже сразу либо ставит печать, либо просит сделать поправку. Поняли?
Я (приложение) сижу на месте (eip/esp в ожидании) пока чиновники (драйверы) суетятся (интерпретируют исключения доступа к чистому листу).
На листе написал "обои красные" и комната перекрасилась. Добавил "в синий горошек" и рабочие перекрасили. Не надо кричать "Repaint/Redraw"! Они сами затаив дыхание следят за тем, что я пишу. И сразу делают ещё до того, как ставлю точку.
А пока я жду результат (обрабатывается исключение) - пью чай. А не как, скажем, в Windows: Сделал ошибку и тебя прихлопнуло!!!
Пусть из-за моей ошибки прихлопнет какого-то чиновника. Всё равно система тут же его восстановит, пока я жду результата за чашечкой чая.
Понимаете?
P.P.P.S.iz56 писал(а):
Насчёт обсуждаемой ос - я понимаю примерно какую задачу ставит автор. А решений всегда много - путей много.
Чем-то похоже на мою H2O.
Если Вы примерно понимаете, могли бы помочь в одном пустяке?
Например, описать (во вступлении) концепцию одной строкой (фразой). Типо, операционка имеет исключительный (на базе механизмов исключений) API с доступом к ресурсам через сегментные регистры (хэндлы).
Ну, короче Вы поняли. Как максимально кратко и исчерпывающе описать интерфейс, низкоуровневое переназначения смысла lock/int/cli/sti и т.д?