CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
21.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 :: следующая

аноним, Thu Oct 30 21:30:49 2008:
с пеной у рта обычно доказывают линуксоиды.
линукс разговаривает не более понятным языком.
количество специалистов определяется не осями. орды юних линуксоидов тоже мнят себя мегаспецами.
и, кстати, на 90% тормоза явы - это миф из-за тормознутости гуя.
аноним, Thu Oct 30 19:19:54 2008:
2 alex:
<Возможно, окажется востребованной ОС для PC, специализированная под геймеров.>

Читать следует как "windows"? +wii/PS-PSP
allex, Thu Oct 30 14:02:01 2008:
Возможно, окажется востребованной ОС для PC, специализированная под геймеров.
аноним, Thu Oct 30 11:11:30 2008:
2 Заинтересованный, четверг, 30 октября 2008 г. 11:02:31:
Но Вам с пеной у рта будут доказывать какая она - удобная, простая и надежная;)
Заинтересованный, Thu Oct 30 11:02:31 2008:
[quote]Засилье некой, всем известной ОС, породило отсутствие специалистов.[/quote]
Именно из-за глубого ее нами понимания, данная ОС разговаривает с нами все чаще языком :)
*** STOP: 0x0000001E (0xC0000005) KMODE_EXCEPTION_NOT_HANDLED *** Address 80101 has base at 80100000 ntoskexe
Понятной, эту закрытую систему назвать трудно.
аноним, Thu Oct 30 10:42:58 2008:
2 Заинтересованный, четверг, 30 октября 2008 г. 10:28:32:
>С другой стороны настораживает видеть небезызвестный blue death screen, приветливо подмигивающий с экранов банкоматов. Можно же было что-то более специализированное и надежное поставить, тем более когда речь идет о деньгах.<

Не могут, не умеют.
Засилье некой, всем известной ОС, породило отсутствие специалистов.
Кто будет обслуживать специализированную операционку на банкоматах и терминалах?
Заинтересованный, Thu Oct 30 10:28:32 2008:
[quote]Сила unix систем в их универсальности, в переносимости и стандартном интерфейсе в не зависимости от платформы.[/quote]
Вот именно. Все разумное человечество двигается по пути увеличения универсальности и переносимости. А как иначе получила бы такое распространение как сейчас JVM с ее идеей абсолютной переносимости в ущерб производительности. Да, применительно к системам основанным на 8-ми разрядных однокристалках не может быть и речи об использовании Java, потому как неоправданно медленно, но кто сказал, что специализированные ОС для таких систем сейчас не разрабатываются - все это есть и сейчас.

С другой стороны настораживает видеть небезызвестный blue death screen, приветливо подмигивающий с экранов банкоматов. Можно же было что-то более специализированное и надежное поставить, тем более когда речь идет о деньгах. Но и здесь согласен с тем, что свои условия диктует рынок и затраты необходимые на разработку.
аноним, Wed Oct 29 17:35:37 2008:
Специализированые оси, говорите, никто не делает?
А прошивки? это что?
Все те прошивки MP3 плееров и прочих легковесных гаджетов?
Прозаик, Wed Oct 29 17:06:25 2008:
Статья включает в себя хороший обзор и анализ вопросов становления разных ОС разной направленности применения.
Любая ОС - это как традиции (национальные, религиозные, бытовые). Даже компоновка оборудования выполняется порой с учетом сложившего стиля оформления и правил сборки/разборки. Сколько надо времени и усилий, чтобы сломать традиции? Еще Екатерина Великая по поводу книги Радищева "Путешествие из Петербурга в Москву" говорила, что традиции не меняются призывами и критикой - они меняются в головах людей.
Я работаю в Linux - меня задолбали вирусы под Windows (задолбали - не то слово; особенно когда знакомые заходят на музыкальные сайты и ломают ОС на корню - типа, форматируют диск С). Но переход на Linux был похож на переход на новую одежду (то программа не работает как надо, то проблемы с установкой). Я терпеливо ждал новых версий Linux. И новые версии оправдывают надежды - улучшаются.
А вот когда я попытался работать в MacOS - не понравилось. Хотя люди хвалили.
Так вот. Это мои впечатления как пользователя о смене ОС. А каковы будут впечатления людей, которые потратили кучу сил и времени, а их детище - "на полке"? Ну, это как Буран - делали с 1979 года толпы людей, а потом поставили в музей. Охренеть! До сих пор вспоминать противно.
А "сотка" (одно из изделий ракетной техники)? Один из ведущих конструкторов умер от хронического переутомления.
Впечатление - что последние 40-50 лет - время перемен: старые ОС уже "спотыкаются", а новые ОС если и рождаются, то в таких муках, что прямо хоть два пальца в рот каждому!
Вот почему уныние в вопросах создания новых ОС - это итог китайской мудрости-пожелания "Чтоб тебе жить в эпоху перемен".
аноним, Wed Oct 29 17:01:16 2008:
2 жабабыдлокодер

Возможно, но так и правда никогда ничего нового не появится:)

Страницы комментариев: предыдущая :: 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