Неофициальная концепция

Введение

Однажды в нашей конференции пробегало письмо, которое, видимо, многие из вас не помнят. Привожу его полностью:


  От:       Pumba ThePig <pumba103@yahoo.com>
  Кому:     3os-ru@yahoogroups.com <3os-ru@yahoogroups.com>
  Написано: 15 ноября 2002 г., 11:36:58
  Тема:     [3OS] 3OS, For what?

  Господа,
  
  На протяжении некоторого времени я внимательно читаю Вашу конференцию, но к сожалению
  не нашел ответы на ряд крайне интересующих меня вопросов.
  
  Поэтому, я поставлю эти вопросы явно и буду признателен если получу на них исчерпывающие 
  ответы.
  
  1. Для чего создается новая ОС. Сразу скажу что аргумент "за окном 21 век" не выдерживает 
  никакой критики. 
  По моему есть два побудительных мотива - есть ярко выраженная потребность пользователей, 
  и, есть большое желание что-то написать (в общем то, не важно что именно, но написание ОС 
  звучит внушительно). Конечно, имеет право на существование и третий мотив - желание
  заработать, но похоже здесь не тот случай.
  
  2. Кто будет пользователями данной ОС. Сейчас создается впечатление, что это будет 
  ОС для разработчиков, но тогда следующий вопрос - "разработчиков чего? других ОС?".
  
  3. Что позволяет называть эту разработку "ОС 21 века"? Где новые концепции - пока 
  я вижу микроядро, С++, множественное наследование и так далее. Где анализ, что именно будет
  востребованно в 21 веке, какие технологии, какой интерфейс, и так далее.
  
  Все это не наезд - я вижу активность, редкую для постсоветского пространства, и 
  искренне хочу понять имеет ли эта активность ясную цель.
  
  С уважением,
  
  Pumba The Pig
  
  (Дальше идет реклама, которую не имеет смысла цитировать в рамках данного документа)

Честно говоря, это письмо было незаслуженно позабыто и мной, однако с момента получения письма во мне что-то изменилось, я стал действительно задумываться над смыслом нашей системы. То есть идея этого документа зародилась во мне давно, однако до последнего времени не находила воплощения.

Итак, этот документ - попытка анализа того, что именно будет востребовано в 21 веке. Более того, что будет востребовано НАМИ САМИМИ. Чтобы 3OS не пользовались из-за того, что участвовали в ее разработке, не из-за моды (если таковая будет), а из-за того, что 3OS будет ЕДИНСТВЕННЫМ средством, обеспечивающим тот комфорт, которого нам не хватает в других ОС.

Все вы прекрасно знаете, что ни одна система не идеальна. Я не говорю, что 3OS будет идеальна. Единого идеала просто не существует. Для кого-то и DOS - идеальная операционная система. Однако наша цель создать систему, которая бы подходила под какой-то усредненный образ идеала. Этот документ ставит своей целью поставить реальные задачи перед проектом и тем самым обосновать необходимость разработки нашей ОС.

Я прошу вас высказываться по всем пунктам, по которым у вас есть хоть малейшие соображения. Вы вероятно понимаете, что без четкой цели нам не выжить. Так вот: цель по всем аспектам нашей ОС должна быть сформирована уже сейчас, дабы потом четко ей следовать. 3OS уже познал такие беды как анархию и полный разброд. Надеюсь вы не хотите, чтобы это когда либо повторилось. Сейчас проект на стадии осмысления, и мне бы хотелось, чтобы вы не "бросались в бой", а последовательно и серьезно думали. Работы для нас и так много. Очень много...

Ладно, давайте начнем.

Идеала не существует? О том, что такое идеальная ОС

Я уже давал ранее ответ на этот вопрос. Да, идеала не существует. Не существует не по той причине, что никто не знает каким он должен быть, а по той причине, что он для каждого свой. Для банкомата идеально подойдет OS/2 или DOS, для геймера - Windows 98, для программиста - *Nix, для того, кто занимается работой, а иногда раскладывает пасьянс - Windows XP.

Кажется, что эти ОС идеальны для конкретных пользователей. Однако это не так. Почему? Да потому что, прыщавый пацан подрос и понял, что игрушками на жизнь не заработаешь, а экзамены на носу, программисту хочется поиграть в Doom 3, трудоголик обнаружил, что его программа никак не идет под Windows XP. Таким образом я могу с уверенностью сказать, что ни одна из имеющихся ОС не позволяет работать, не перегружаясь в другую.

Что я хочу от 3OS? Прежде всего я хочу, чтобы она обеспечивала меня всем тем, что мне необходимо. Программировать - легко, найти реферат - без проблем, сыграть в игрушку - без затруднений. Нет, поддерживать ПО Microsoft мы не будем. Зачем? Мы просто создадим ОС, которая бы привлекла большинство пользователей. Хотя это не легче, чем переписать весь WinAPI :-).

Система с точки зрения пользователя. Основные критерии для сравнения

Прежде всего пользователю интересен интерфейс. Каждому свой. Программисту - API, простому пользователю - интерфейс взаимодействия с пользователем. Потом смотрят на то, чтобы "все было надежно, нигде не подтекало".

Таким образом, мы имеем два направления работы - тщательная разработка и планирование интерфейсов и работа над "подземельем" ОС.

Интерфейс

Здесь практически все ясно - интерфейс должен быть прост и интуитивно понятен. Точнее - незаметен. Это значит, что он не должен ставить барьеры пользователю, не просто не ставить, но и помогать их преодолеть.

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

Пожалуй, самым сложным в данной системе будет именно реализация графических оболочек других систем, однако при тщательном планировании это не должно вызвать особых затруднений.

Также, на мой взгляд, нужно обеспечить пользователя удобным ему средством взаимодействия с системой. Сущность этого средства состоит в том, чтобы вывести такое средство как поиск ОС на уровень интерфейса. Т.е. обеспечить доступ к файлу не по его имени, а по содержанию, ключевым словам, либо дате изменения файла. Это средство туго переплетено с ФС (ФС представляет собой СУБД).

Кроме того - в системе предусмотрены помощники: либо в виде анимированного персонажа, либо в виде обычного запроса на ввод, которые представляют собой интеллектуальное средство поиска по справке и в Интернете. Если технология ИИ получит достаточное распространение, то, возможно, они смогут стать единственным интерфейсом взаимодействия с пользователем, однако эта идея на данной ступени развития данной технологии утопична.

3D-интерфейс

Данный вид интерфейса будет включен в систему как экспериментальный, и на первых порах будет выполнять функцию обычной забавы. Однако я считаю своим долгом сформулировать в данном документе основные требования к 3D-интерфейсу.

Прежде всего давайте разберемся с основной целью графического интерфейса. Эта цель состоит в обеспечении пользователя средством взаимодействия с системой, более привычным, чем обычный графический интерфейс. Почему "более привычным"? Потому что он должен обеспечить работу в среде, подобной окружающему нас миру. Из этого следует, что такой интерфейс должен быть избавлен от такой проблемы современных игр, которые, в сущности, такую среду и пытаются создать, как некомфортность передвижения. Представьте, что вам нужно срочно отправить факс, а вы застреваете в дверном проеме или не намертво запутываетесь в какой-нибудь траве. Это кажется забавным, однако я не думаю, что такая ситуация вызовет адекватную реакцию у того, кто в нее попал.

Решением этой проблемы является технология VR , но она пока не слишком хорошо развит как в мире, так и в нашей стране (я имею в виду бывший СССР и ближнее зарубежье), а также весьма дорогостояща (полноценный комплект должен состоять из программной части, внешней системы захвата движений, программной системы обработки сигналов, а также систем вывода (VR-очки, пр.)). Исследование данной проблемы не оставит без дела группу 3OS-Research.

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

Ядро

Я, признаться, не большой специалист в этой области - все мои знания заключаются в понимании исходников и программированию, при предоставлении мне соответствующей документации :-) Однако я попробую высказаться на эту тему.

Итак, ядро. Ядро прежде всего должно выполнять только самые основные свои функции. Все, что можно вынести в отдельные настраиваемые модули - стоит вынести в отдельные модули.

Ядро должно быть реализовано так, чтобы эта реализация на пользователя не влияла, т. е. по возможности процессоро- и платформо-независимо. Я понимаю, что это очень сложно, либо вообще невозможно, но все же.

Рекомендуемая реализация - микроядро - хорошо удовлетворяет этим условиям. В целом ядро 3OS вряд ли будет нести что-то суперновое -основной упор делается на средства взаимодействия с пользователем.

ФС

Итак, ФС. Давайте сперва выдвинем основные требования в плане ФС для 3OS:

Давайте поговорим насчет последнего требования. Почему я так упорно отстаиваю мысль о своей ФС? Не потому, что у нас своя ОС, и все должно быть свое, а потому, что ФС будет тесно переплетена с другими компонентами ОС. Кроме того, саму структуру файла я планирую пересмотреть. Однако, давайте выдвинем требования к ФС 3OS:

Приведенные выше требования, на мой взгляд, очевидны и не требуют отдельных пояснений.

Структура файла. Что день грядущий нам готовит?

Итак, структура файла. Насчет структуры файла есть идеи. Файл, на мой взгляд:

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

Таким образом, чтобы получить доступ к объекту нам достаточно запросить один файл из такого контейнера. И никакой потери дискового пространства из-за дублирующийся информации, вернее эта потеря значительно снизится. Таким образом, все документы будут взаимосвязаны между собой. При удалении файла драйвер ФС просто будет копировать объекты, используемые в других документах.

Однако, можно воспользоваться и чуть измененной идеей Microsoft - хранить объекты в библиотеках. Однако при таком подходе мы имеем несколько серьезных недостатков:

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

Все же, при кажущейся красоте и идеальности, эта система далека от этого. Из-за надежности, вернее отсутствия оной. Система может давать сбои, в результате которых какие-то данные сохранены не будут, и в самый ответственный момент нужная программа откажется запускаться, текст окажется нечитаемым, а многомегабайтный архив откажется распаковываться. Это возможно исправить, но думаю, что здесь требуется и обсуждение.