OSDev

для всех
Текущее время: 28 мар 2024, 13:48

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Смутная мыслишка
СообщениеДобавлено: 28 авг 2013, 11:06 

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

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Смутная мыслишка
СообщениеДобавлено: 28 авг 2013, 14:11 
Аватара пользователя

Зарегистрирован: 16 апр 2010, 10:10
Сообщения: 320
Откуда: Псковская обл.
Правильная мысль - загрузим все ядра сипию по максимуму! А то зря такая мощь простаивает, однозначно :) .


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Смутная мыслишка
СообщениеДобавлено: 29 авг 2013, 11:02 
Аватара пользователя

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

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Смутная мыслишка
СообщениеДобавлено: 29 авг 2013, 11:41 

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Смутная мыслишка
СообщениеДобавлено: 29 авг 2013, 13:44 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
lamer19 писал(а):
Хм. Вот сейчас пишу и думаю сам себе, что реализация данного механизма будет затруднена в многопользовательских системах.

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

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Смутная мыслишка
СообщениеДобавлено: 29 авг 2013, 14:52 
Аватара пользователя

Зарегистрирован: 14 май 2012, 22:17
Сообщения: 101
Про файловые системы можно начать отсюда:

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Смутная мыслишка
СообщениеДобавлено: 03 сен 2013, 22:29 

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

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB