CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
22.11.2019

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Desktop
Internet
Internet-серверы
Безопасность
Бизнес/Офис
Игры
Мультимедиа
Наука
Операционные системы
Программирование
СУБД
Создание веб-сайтов
Утилиты

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Заметки

Заметка не про Linux

CITKIT.ru
Цикл "Операционные системы:
Ностальгия по будущему
"

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

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

Работа молодости нашей

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

Однако поверьте, я сожалел не о молодости, а о той работе, в которой мне довелось участвовать, и о том коллективе, в котором мне посчастливилось работать. Как говорилось в первой заметке, я начал свою профессиональную карьеру в знаменитом Институте точной механики и вычислительной техники (ИТМиВТ), институте, где под руководством академика Сергея Алексеевича Лебедева были созданы лучшие советские универсальные компьютеры БЭСМ-1, М-20, БЭСМ-6 и многие другие машины специального назначения.

Вместе с несколькими своими однокурсниками с мехмата МГУ я попал в пятую лабораторию ИТМиВТ, которой тогда руководил Лев Николаевич Королев (напомню, что речь идет о 1971 г.). Пятая лаборатория работала совместно с первой лабораторий, которая была главной в институте по проектированию универсальных ЭВМ. Руководил лабораторией Владимир Андреевич Мельников, а работали в ней совершенно замечательные, уникальные инженеры Андрей Андреевич Соколов, Владимир Иванович Смирнов, Леонид Александрович Зак и многие другие.

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

Как говорилось в первой заметке, в начале 1970-х гг. первая и пятая лаборатории ИТМиВТ начали проект AC-6, и все вновь поступившие в институт молодые сотрудники были к этой работе привлечены. После выполнения первых производственных заданий по написанию интерпретаторов новых процессоров мы досконально знали особенности этих машин, поскольку это происходило параллельно с разработкой архитектуры и системы команд при нашем посильном участии. Интерпретаторы поначалу делались для того, чтобы можно было делать ассемблеры и компиляторы для новых машин, не дожидаясь появления аппаратуры.

После начала работ по проектированию и написанию операционной системы для центрального процессора (ЦП) АС-6 мы решили попытаться довести интерпретатор ЦП АС-6 до такого уровня, чтобы можно было прямо-таки на нем полностью отлаживать операционную систему. Для этого были реализованы все привилегированные команды, а затем вне интерпретатора писались эмуляторы разных частей новой ОС, в окружении которых разрабатывались и отлаживались другие компоненты операционной системы. Постепенно эмуляторы заменялись на код ЦП АС-6, и, в конце концов, мы получили полное ядро операционной системы, с использованием которого на интерпретаторе можно было пропускать реальные задачи (например, запускать компиляторы). Конечно, в этом режиме система работала страшно медленно (с замедлением от 400 до 1000 раз), но все-таки можно было отлаживать и тестировать ее целиком. И здесь нас, безусловно, выручила только БЭСМ-6, лучшая ЭВМ всех времен и народов.

Интересно, что после этого этапа переход на реальную аппаратуру ЦП АС-6 прошел на редкость легко (не считая того, что поначалу сама аппаратура работала с ошибками и крайне ненадежно, из-за чего временами нам приходилось возвращаться в среду интерпретатора).

В одном из комментариев что-то бормоталось про «никому не известную АС-6». Да, эта система не слишком известна в широких массах, но на ней многие годы работал Советский центр управления полетами. При ее использовании был выполнен исторический советско-американский проект ЭПАС (экспериментальный полет «Апполон-Союз») и ряд более поздних космических полетов.

В работе над АС-6 инженеры и программисты совместно увлеченно трудились, потому что, во-первых, это было очень интересно, во-вторых, мы чувствовали, что во многих вещах являемся первопроходцами (не только в СССР, а во всем мире; например, в АС-6 на много лет раньше, чем в других системах была реализована идея NUMA: в системе имелась единая адресация основной памяти всех входивших в нее компьютеров), в-третьих, система была действительно нужна для развития области управления космическими полетами, и мы чувствовали ответственность перед своими будущими пользователями.

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

Легко видеть, что подобные условия выполнения программно-аппаратных проектов теперь просто невозможны. Во-первых, наступило время специализации, и процессоры все больше изготавливаются не теми компаниями, которые делают операционные системы. Во-вторых, жизнь все более убыстряется, и уже давно нет времени на сравнительно неторопливое совместное проектирование «железа» и системного «софта». Конечно, гораздо быстрее портировать на новую аппаратуру какой-либо вариант UNIX, что теперь, как правило, и делается (безусловно, при таком подходе невозможно использовать в ОС все возможности аппаратуры). В результате, как говорилось в первой заметке, исчез спрос на новые идеи в области операционных систем, и в этой области образовался застой.

Туманные, но все же перспективы

Засилье UNIX в мире операционных систем (с вашего разрешения я абстрагируюсь в этой заметке от ОС семейства Windows, поскольку это одноплатформенные системы, и вообще здесь речь идет не о противостоянии UNIX и Windows) напоминает мне засилье SQL-ориентированных СУБД в мире баз данных. Словами одного из комментаторов предыдущей заметки, и то, и другое – это старая добрая «кухонная плита», которая является вполне функциональным устройством, и если в чем и нуждается, так это в профилактическом обслуживании.

Тем не менее, в области баз данных исследовательская работа просто кипит. Ежегодно печатаются сотни исследовательских статей с описанием новых методов, алгоритмов и реализованных прототипов систем. Конечно, частично результаты этих работ рано или поздно используются компаниями-производителями основных SQL-ориентированных СУБД – IBM, Oracle, Microsoft и некоторыми другими. Но многие результаты, как казалось еще несколько лет тому назад, просто пропадали, не находя применения в реальных производственных системах (неважно, проприетарных или с открытыми кодами).

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

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

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

Так вот, я думаю, что и в области операционных систем можно попытаться заняться разработкой специализированных систем. На первый взгляд, полная функциональность универсальных ОС не требуется не только во встраиваемых системах, но и в операционных системах, которые используются в узлах вычислительных кластеров и вычислительных облаков. Здравой идеей, как мне кажется, является разработка специализированных ОС для поддержки новых систем управления данными (конечно, никто не решится трогать платформы традиционных серверов баз данных).

Конечно, это только сырые идеи, не проработанные ни технически, ни экономически. И более того, вряд ли я их сам проработаю. Но может быть, они кому-нибудь пригодятся. Мне бы очень хотелось, чтобы исследовательская жизнь в области операционных систем возродилась, хотелось бы видеть разработку новых ОС. И конечно, здесь могут работать различные модели проектирования и разработки, как проприетарные, так и с открытыми кодами, лишь бы они обеспечивали возможность быстрого создания качественного программного обеспечения.

Более того, ориентация на быструю разработку специализированных систем несколько выравнивает шансы российских и зарубежных разработчиков. Понятно, что в России вряд ли удастся найти инвесторов для основания компании-стартапа, которая будет вести такую разработку. Значит, нужно использовать подход open-source с формированием международных команд разработчиков. А желающие найдутся – в мире есть много грамотных молодых людей, которым очень хочется попробовать сделать свою систему.

На всякий случай хочу еще раз уточнить. Я говорю о небольших специализированных системах. Любая попытка затеять разработку с нуля новой универсальной ОС (даже опирающейся на совершенно замечательные идеи) практически обречена на провал. Linux здесь является исключением, а не правилом. Одаренный и работоспособный Линус Торвальдс начал свою работу в нужное время (начало эпохи Internet) в нужном месте (Хельсинки – одной и центральных точек европейского Internet) на правильной основе (стандартной архитектуре UNIX). И даже при этом потребовалось пятнадцать лет, чтобы довести ядро системы до приемлемого уровня зрелости. А правило подтверждает достаточно бесславный (?) конец многих интересных проектов 1980-х гг., таких как упоминавшийся в предыдущей заметке проект КЛОС и французский проект Chorus, о которых, тем не менее, следовало бы поговорить подробнее.




Комментарии

Страницы комментариев: предыдущая :: 1 :: 2 :: 3 :: 4 :: следующая

аноним, Mon Nov 17 11:51:51 2008:
Sorry "при обращении" = "при обращении к файлам"
аноним, Mon Nov 17 11:45:46 2008:
"Почему-то не выжило." Не совсем так. Тот старый проект предлагал устроить файловую систему по образцу СУБД - это сейчас имеет место в файловых системах ОС, т.н. журналируемых (etx3, reiser и др.), а в еще большей степени реализовано в zfs от Sun. Было также предложено вводить триггеры - программы. которые срабатывали бы при обращении или изменении файлов, как это делается в БД для записей. Вот этого пока нету.
аноним, Mon Nov 17 11:24:21 2008:
"Следующий большой прорыв будет как раз на слиянии ОС и СУБД" - это лет 20 назад предлагалось. Почему-то не выжило.
аноним, Mon Nov 17 11:21:29 2008:
Позвольте, а QNX? Кстати, ее только что объявили открытой. Это система реального времени, то есть. с очень быстрой реакцией. В частности. там свой графический движок - компактный и быстрый, а теперь его можно будет прикручивать ко всем открытым системам.
Urshack, Tue Nov 11 12:37:00 2008:
Статья по сути, в универсальности беда современных IT.
Urshack, Tue Nov 11 12:35:42 2008:
<<Откуда возьмутся люди способные написать свои ОС/БД, если их с ясель не учат а прививают рефлексы? ... От вопроса написания своих ОС мягко переходим к вопросу образования и использования в его процессе открытых систем...>>

+1
аноним, Wed Nov 5 12:27:55 2008:
Следующий большой прорыв будет как раз на слиянии ОС и СУБД, ага. Там не будет ресурсов "ОЗУ" и "Файлы" (разве что для обратной совместимости).
Аку-Аку, Fri Oct 31 16:24:28 2008:
//размышляющий, среда, 29 октября 2008 г. 11:18:14:
+1
Это заслуживает того чтобы быть как минимум продублированно.
А еще лучше, выбито где-то в камне большими буквами.
Причем руками тех, кто собирается предлагать народу очередную "супернужную" на основе "самых новейших" принцыпов ОСь, процессор или неважно что другое...


Еще один интересный момент - ни unix, ни linux не писались изначально как операционные системы. В первом случае создавали систему обработки текстов, во втором эмулятор терминала. Может в этом все и дело? Изначальная установка на написание принципиально новой оси, без определения задач ею решаемых обречена? ИХМО естественно.
Аку-Аку, Fri Oct 31 16:17:11 2008:
//Легко видеть, что подобные условия выполнения программно-аппаратных проектов теперь просто невозможны.

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



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

Тут есть форменное формальное противоречие.
Операционная система -- это прежде всего среда, максимально универсальная и общая для поддержания разработки исполнения приложений. Которые уже и являются специализированными (вплоть до того что перенимают некоторые черты ОСей)
Возьмите тот же Оракл, или более модерную разработку -- гугловский Хром, о котором жружно заговорили как о новой Веб-ОСи.

Так что, думается мне, вы просто не туда и не на то смотрите.
аноним, Fri Oct 31 08:31:47 2008:
Линукс с вендой, на пару, вчерашний день. Правда венда по-логичней будет. Все-ж не на коленке собирают. Венда - для работы. Линукс - для изобретения "нового" велосипеда.

Страницы комментариев: предыдущая :: 1 :: 2 :: 3 :: 4 :: следующая

Комментарии заморожены.

Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds