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

С идеями UNIX я (и мои друзья-коллеги) впервые познакомился по статье Дениса Ритчи и Кена Томпсона «The Unix Time-Sharing System», которая была опубликована в Communications of the ACM в 1974 г. Как ни странно, в СССР этот журнал перепечатывался, мы на него подписывались, и больше всего информации о новшествах в области программирования получали именно из CACM, благо, что тогда журнал был очень хорошим.

В 1974 г. мне было 25 лет. К этому времени мы с моим одногруппником и тогдашним другом Сашей Бяковым закончили свою первую работу в ИТМиВТ по разработке интерпретатора периферийной машины нового вычислительного комплекса АС-6, занимались разработкой гораздо более сложного интерпретатора центрального процессора и одновременно были привлечены к проектированию новой операционной системы ЦП АС-6. Руководителем этой работы был Виктор Иванников, который до этого занимался проектированием и разработкой операционной системы НД-70 для БЭСМ-6 и в 1971 г. защитил на эту тему кандидатскую диссертацию.

В то время мы находились под глубоким воздействием идей ОС Multics. В Новосибирске тогда переводилась на русский язык и публиковалась в виде препринтов масса статей, посвященных этому проекту, а мы по этим переводам учились. Кроме того, тогда только появилось направление языков с абстрактными типами данных, и нам очень хотелось применить эти идеи в области операционных систем. Это тема отдельного длинного разговора, но факт, что поначалу ОС UNIX воспринималась нами, как полное пренебрежение достигнутым уровнем технологии операционных систем, как популистская ОС, которая не принесет в область операционных систем ничего нового.

После достаточно успешного завершения проекта АС-6 в 1980-е гг. мы занимались проектом новой операционной системы КЛОС (кластерная операционная система) и продолжали относиться к UNIX вполне свысока, хотя уже использовали эту систему на практике и даже эмулировали ее в среде КЛОС (это снова отдельная история). Но к концу 1980-х гг., когда появилась Советская ассоциация пользователей ОС UNIX, ставшая частью европейской ассоциации EurOpen, мне постепенно стало понятно, что ОС UNIX значит гораздо больше, что простая операционная система – это важный компонент подхода Открытых систем.

Да, для меня 1990-е гг. были временем Открытых систем, систем, основанных на открытых стандартах, обеспечивающих возможность создания мобильных и интероперабельных системных и прикладных программ. И ОС UNIX стала первой (и до сих пор единственной) открытой операционной системой, поскольку уже в 1980-е гг. для нее появились открытые и общедоступные стандарты (наличие которых, в частности, и позволило Линусу Торвальдсу заняться созданием собственного варианта этой ОС).

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

Так вот, мне кажется, что в Linux все-таки главное не то, что это операционная система с открытыми кодами, а то, что Linux – это операционная система, сделанная по стандартам UNIX. Для широкого класса пользователей Linux открытые коды ядра не значат ровным счетом ничего, а важно то, что разные варианты этой ОС, работающие на разных архитектурах, позволяют использовать одни и те же приложения. Равным образом, важно и то, что приложения, разработанные в среде Linux, почти наверняка можно будет использовать и в среде различных вариантов BSD, и в среде коммерческих вариантов UNIX. Другими словами, если ты не входишь в достаточно узкое сообщество разработчиков ядра Linux, то открытость кодов этой ОС для тебя не означает ровным счетом ничего. Я в это сообщество не вхожу и поэтому для меня Linux – это всего лишь один из нескольких существующих вариантов UNIX.

Если уж на то пошло, то для меня существенно ближе клоны UNIX, базирующиеся на ядре System V (AIX, HP-UX, Solaris и т.д.), и системы-наследницы UNIX BSD. Все-таки они первичны, они зарождались и развивались у меня на глазах. Известно и понятно происхождение их недостатков и достоинств. Это старые добрые операционные системы, отлаживавшиеся десятилетиями. На их фоне Linux (вместе с Линусом) – это дерзкий молокосос, завоевавший всемирную популярность благодаря не столько своим особым достоинствам, сколько эксцентричности способа разработки. Тем не менее, теперь уже абсолютно ясно, что Linux полноправно входит в когорту UNIX-подобных операционных систем, хотя злокозненные законники и не дают этой системе права называться UNIX.

Может показаться, что в связи со все более полным засильем на рынке аппаратных средств компании Intel идеи открытых систем и UNIX в том числе становятся менее существенными. Однако посмотрите, какие операционные системы в первую очередь появляются на любых экспериментальных вычислительных системах, основанных на новых процессорах? Все та же ОС UNIX (теперь все чаще Linux), поскольку ее проще всего перенести на новую аппаратную платформу. А после переноса UNIX уже и на этой новой платформе можно использовать разнообразные приложения, для которых важно всего лишь наличие среды UNIX.

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

А отрицательный эффект этой ОС тоже понятен – развитие технологии операционных систем в университетах и лабораториях компаний практически прекратилось. Печально и странно наблюдать ситуации, когда путем переноса Linux на абсолютно новую платформу пытаются избежать потребности в разработке новой операционной системы, хотя архитектура UNIX для этой платформы абсолютно не годится (я знаю конкретные примеры, но не хочу подробно распространяться по этому поводу).

Что не говори, но как UNIX не переделывай, все равно из него высовывается архитектура PDP-11, для которой эта ОС изначально делалась. А ведь мы ушли от PDP-11 очень далеко.

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

Компания Digital Equipment Corporation (DEC) после сверхудачной серии 16-разрядных PDP-11 стала выпускать также удачную серию 32-разрядных VAX-11, в которых на уровне микропрограмм эмулировалась система команд PDP-11, а в ОС VMS для VAX воспроизводилась среда RSX-11 для PDP. В результате на VAX можно было выполнять все приложения, написанные для PDP. Но когда DEC решила перейти от микропрограммной архитектуры своих компьютеров к RISC-архитектуре и выпустила процессор Alpha, ее попытки обеспечить полноценное выполнение VMS на новой платформе за счет бинарной (!) компиляции привели, в конечном счете, к краху компании (хотя, возможно, я и ошибаюсь в истинных причинах этого краха).

Так и UNIX. Живет себе, плодит новых сторонников и закрывает дорогу новым операционным системам. Одна радость, что все-таки не дает существовать только операционным системам от Microsoft (о которых здесь я говорить вообще не хочу). Как бы в результате человечество вообще не разучилось делать операционные системы. Типун мне на язык…




Комментарии

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

аноним, Wed Sep 30 17:02:26 2009:
Статья из цикла в наше время бабы были красивше а трава зеленее.
аноним, Wed Sep 30 16:54:07 2009:
p.s. Не могу сказать уважаемый аноним - аноним он в африке аноним.
Ты сам не программер иначе бы знал 90% времени уходит на отладку проги, а не на ее написание.

------------------------

Ну у Вас может быть. А при нормальном процессе более половины это проектирование.
аноним, Wed Sep 30 16:49:35 2009:
>аноним, среда, 30 сентября 2009 г. 16:36:48:
>Пиздеж, им уже не доволен Торвальд Линус, и ядром и gcc.

Ну ядром-то он всегда недоволен, иначе бы не разрабатывал бы его. Как и gcc. Но говорит, что другое (например, pcc), что другое ещё хуже.

>аноним, среда, 30 сентября 2009 г. 16:36:48:
>Для СПО лучший вариант было бы появления ОС на новом ядре (которые вообще говоря разрабатываются), иначе будет гниение линукса.

Что-то мне подсказывает, что на смену 2 ветки ядра Линукса придёт ... 3 ветка ядра Линукса. Как в случае с Ethernet.

>аноним, среда, 30 сентября 2009 г. 16:36:48:
>Время линукса, именно линукса , подходит к концу.

Ну-ну... Это уже давно говорят, но воз и ныне там.

ЗЫ. Не поймите меня не правильно, я считаю очень важным и полезным, что идут разработки новых ядер с новой архитектурой. Но говорить, что что-нибудь из них заменит или даже повлияет на Линукс ещё очень и очень рано.
Александр С., Wed Sep 30 16:40:32 2009:
>им уже не доволен Торвальд Линус

А! Ну так он возмёт его и исправит как захочет. Причём легко. Он просто вынес этот вопрос на обсуждение, посмотреть на реакцию и предложения.
аноним, Wed Sep 30 16:36:48 2009:
>он такой, каким его хотели видеть, он прекрасно всех устраивает,

Пиздеж, им уже не доволен Торвальд Линус, и ядром и gcc. И сам Линус признает что не знает что делать с этим дальше. Для СПО лучший вариант было бы появления ОС на новом ядре (которые вообще говоря разрабатываются), иначе будет гниение линукса. Время линукса, именно линукса , подходит к концу.
аноним, Wed Sep 30 16:31:37 2009:
А что автар не указан?
Александр С., Wed Sep 30 16:28:39 2009:
Сергей! Не согласен что Linux тормозит прогресс операционных систем. Сейчас он такой, каким его хотели видеть, он прекрасно всех устраивает, если поменяются приоритеты - то и Linux поменяется тоже! Это замечательное ядро, очень гибкое; очень хорошо что не клон BSD (грубо говоря). Взять SunOS - так там проблем гораздо больше (в архитектурном плане), а из Linux'а можно при желании сделать что угодно - хоть микроядро, хоть кластерное, хоть какое. Если и есть недостатки у Linux, то не в архитектуре - и как раз её можно будет "легко" (при условии что в этом будут заинтересованы разработчики ядра, корпорации) изменить.
аноним, Thu Aug 6 02:35:05 2009:
Отличная статья, респект автору!!!
аноним, Mon Feb 9 12:24:31 2009:
> 2 аноним, суббота, 7 февраля 2009 г. 20:41:31:
Я открою тебе истину /b/рат: истина не в деньгах^W^W^W^WООП несёт пользу только в графических системах, GUI и некоторых видах моделирования. В остальных случаях ООП несёт только усложнение конструкции. Характерный пример -- абстрактные классы, т.е. класс сделанный только для связки двух других классов. Другими словами, лишняя сложность в чистом дистиллированном виде.

>Владимир, суббота, 7 февраля 2009 г. 23:18:16:
Присоединяюсь к аноним, пятница, 6 февраля 2009 г. 16:57:32: и высылаю тебе лучи поноса: ПЫЩ! ПЫЩ! ПЫЩ!
>История постоянно подтверждает правоту Н.Вирта.
Вспомнилась теорема-шутка: куда бы не повернул фондовый рынок по меньшей мере 1 аналитик и 50% гадалок предсказывали это.
Как ты думаешь, почему? ^_-

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

>Кстати говоря, классическим и самым распространенным методом атаки в Интернете является т. наз. "переполнение буфера"...
IRL, классическим и самым распространенным методом атаки в Интернете можно назвать или SQL-инжекции, или XSS(из-за последних, кстати, здесь и отключены HTML-теги), но никак не переполнение буфера.
Однако вынужден заметить, что основная проблема С здесь озвучена. Нет, это не оператор безусловного перехода (правильный и хороший оператор, аллергия на который появилась из-за ещё более ущербной, чем Паскаль, архитектуры Бейсика конца 80-х -- он состоял из операторов goto <метка> чуть менее чем полностью) и не "неконтролируемое" преобразование типов (правильно оно называется "неявное" и призвано облегчить жизнь программиста).
Кто сказал "ручное управление памятью"? Возьми с полки йаду! (Нам такие умные не нужны^_^) Это не только пресловутое "переполнение буфера". Можно назвать ещё с десяток подобных уязвимостей. Но суть одна. Однако этот недостаток С вышел из его достоинства: максимально быстро исполняемого кода. Это конечно важно, но далеко не всегда.
Пусть нам не нужно это быстродействие, а нужно быстро накатать код. Как в этом случае поступит UNIX-программист? Он возьмёт Perl, Python, PHP или что-то другое заточенное чётко под его нужды. А вот когда он обнаружит, что какое-то место его проги тормозит он её перепишет на С.
Теперь, надеюсь, разница между UNIX-программистом и Владимир, суббота, 7 февраля 2009 г. 23:18:16: ясна?
> Ему (т.е Оберону) недостает только поддержки и написанных компонентов.
Ему недостаёт автора, который бы написал бы язык для реального программирования, а не для университетских исследований.
>Ты сам не программер иначе бы знал 90% времени уходит на отладку проги, а не на ее написание.
Я, конечно, не знаю, может на Обероне и 90% времени занимает отладка, но у меня на отладку моего кода уходит где-то 50% времени (из которого процентов 10% на отладку С-кода) и то, это в основном логические ошибки (обычно какой-то граничный случай объявляется).
>Понятно, что тот язык который был первым - тот и главный, но не факт что лучший.
4.2! Первым был Ассемблер. Да и АЛГОЛ, FORTRAN, BASIC, COBOL примерно одного возраста с С (большинство старше).


Однако, мы отвлеклись от темы: выяснения диагноза СерГЕЯ Кузнецова. Настаиваю на ФГМ.
Владимир, Sat Feb 7 23:18:16 2009:
История постоянно подтверждает правоту Н.Вирта. Например, взрыв в 1996 г. ракеты-носителя Ариан-5 стоимостью около 500 миллионов долларов через 40 секунд после старта произошел, как выяснилось, из-за сбоя программного обеспечения: одна из вспомогательных подпрограмм пыталась преобразовать длинное целое значение в короткое без проверки величины значения. Компиляторы Оберона по умолчанию отказываются компилировать такие программы, считая их ошибочными, тем самым "тыкая носом" проектировщика в точки потенциальных сбоев.

Кстати говоря, классическим и самым распространенным методом атаки в Интернете является т. наз. "переполнение буфера" — ситуация невозможная для программ, написанных на Обероне/Компонентном Паскале, где нельзя ни случайно, ни по небрежности отключить проверки выхода за границы массивов.


p.s. Не могу сказать уважаемый аноним - аноним он в африке аноним.
Ты сам не программер иначе бы знал 90% времени уходит на отладку проги, а не на ее написание.
А когда в самом языке заложена бомба (типа оператора безусловного перехода и некотролируемого преобразования типов)- то нужно собаку съесть, чтобы научиться методом проб и ошибок более менее сносному стилю программирования.
Зачем это делать если сразу взять самое лучшее - тот-же Оберон. Ему недостает только поддержки и написанных компонентов.

И тормозят такие как ты, которым вдуплили что С круто.
Понятно, что тот язык который был первым - тот и главный, но не факт что лучший.

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

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

Новости:

Все новости на 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