OSDev
http://osdev.su/

Смутная мыслишка
http://osdev.su/viewtopic.php?f=4&t=786
Страница 1 из 1

Автор:  lamer19 [ 28 авг 2013, 11:06 ]
Заголовок сообщения:  Смутная мыслишка

Я к сожалению не очень образован и не очень эрудирован в части различных ОС. Читал в свое время Бека "Введение в системное программирование" и Питрека, Рихтера, Нортона (который разработка драйверов). Кое-что читаю и сейчас. Писал небольшой код на ASM i8080, ASM x86, java. ОС не писал. Представляется мне ОС с неким механизмом резервирования. Типа антитранзакция или расширенная журналируемая файловая система. :)
Сохраняется протокол событий/намерений как в журналируемоей файловой системе. Сохранение производится вместе с сохранением контекста. Любое изменение производится через назначаемый обработчик. Итак мы внесли изменения. История этих изменений с контекстами хранится некое время. По факту некоего регламента система может забыть о трассе изменений. А вот если она не забыла, то у нас есть возможность откатиться и проиграть те же события, но уже скажем с другим обработчиком.

Скорее всего я изобретаю очередной велосипед, как уже бывало в моей практике. Сама идея у меня родилась на базе внесения изменений в систему с метаданными которые структурируют хранения данных в некоей БД. Потом была проблема с закрытыми по запарке окошками и тп. Бывает когда ты или кто-то вольно или невольно допускаешь ошибку. Ошибка может быть более или менее критична. Даже как-то хотел сделать сайт имя которого оказалось занято badclick.com на котором вывесить кнопку с предложением её кликнуть и на клик навесить обработчик с сообщением типа "Вы только что совершили ошибку в один клик"
В принципе ближайшая родственная тема которую я вижу это бэктрейс буфер у покойного софтайса с возможностью откатить состояние. При этом не все в данной системе может регистрироваться как контекст и обработчик, дабы не смущать систему своим разумением и не забивать ОС голову. НО. Теоретически хочется что бы были
режиме разработки отладки в котором разработчик сам может указывать что фиксируется. (эмуляция бэктрейс буфера)
Ну и режим в котором разработчик приложение указывает что фиксируется и на какое время.

С уважением Андрей Бертыш
P.S. С удовольствием бы почитал что-нибудь по файловым системам.

Автор:  iz56 [ 28 авг 2013, 14:11 ]
Заголовок сообщения:  Re: Смутная мыслишка

Правильная мысль - загрузим все ядра сипию по максимуму! А то зря такая мощь простаивает, однозначно :) .

Автор:  Yoda [ 29 авг 2013, 11:02 ]
Заголовок сообщения:  Re: Смутная мыслишка

Добро пожаловать на наш форум.
Похоже, идея слишком сложна для анализа и реализации. В системе может происходить миллион разных действий, синхронные, асинхронные, связанные с другими событиями или несвязанные, сетевые транзакции, распределённые базы данных или ещё более сложные действия. Какие именно события отслеживать, как их откручивать обратно, кто назначает обработчики (а не вирус ли?) и как тестировать обработчики. Не окажется ли так, что последствия некорректного отката гораздо более разрушительны, чем сами действия?

Автор:  lamer19 [ 29 авг 2013, 11:41 ]
Заголовок сообщения:  Re: Смутная мыслишка

Я предполагаю что данный механизм надо применять не ко всем событиям системы. Ценность данного механизма более чем достаточна на уровне приложений. То есть механизм естественно обеспечивается ядром, но пользуются им модифицируемые приложения (на стадии разработки и/или доработки) и не модифицируемые приложения, но работающие с модифицируемыми пользовательскими данными дабы иметь возможность проигрывать операции проводимые пользователями с измененными обработчиками. Изменяем метаданные, пользователь по измененным метаданным меняет данные. Метаданные должны быть модульны. Выявили ошибку в модуле. Откатили последовательность действий. Поменяли модуль. Восстановили последовательность действий и отработали её новым модулем.

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

Автор:  Yoda [ 29 авг 2013, 13:44 ]
Заголовок сообщения:  Re: Смутная мыслишка

lamer19 писал(а):
Хм. Вот сейчас пишу и думаю сам себе, что реализация данного механизма будет затруднена в многопользовательских системах.

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

Автор:  D-S [ 29 авг 2013, 14:52 ]
Заголовок сообщения:  Re: Смутная мыслишка

Про файловые системы можно начать отсюда:

http://www.filesystems.nm.ru/

Дальше, как получится...

Автор:  Himik [ 03 сен 2013, 22:29 ]
Заголовок сообщения:  Re: Смутная мыслишка

lamer19 писал(а):
Сохраняется протокол событий/намерений как в журналируемоей файловой системе. Сохранение производится вместе с сохранением контекста. Любое изменение производится через назначаемый обработчик. Итак мы внесли изменения. История этих изменений с контекстами хранится некое время. По факту некоего регламента система может забыть о трассе изменений. А вот если она не забыла, то у нас есть возможность откатиться и проиграть те же события, но уже скажем с другим обработчиком.

Сохранение потока данных означает двойное копирование. Может быть для некого "режима отладки" это нормально, но не для нормальной работы. Поток данных будет иметь значительный объём, значит под его сохранение нужно потратить большое количество оперативной памяти. Ещё возникнет вопрос о сохранении состояния внешних устройств, файловой системы. Таким образом параметры компьютер ухудшатся по всем параметрам в 2 раза.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/