Оригинал доступен по ссылке world.std.com
Упражнения в неверном направлении
В 1998 году федеральное правительство США обвинило Microsoft в нарушении антимонопольного законодательства. Одна из претензий заключалась в том, что Microsoft «привязала» свой браузер Internet Explorer (IE) к операционной системе Windows (ОС). С точки зрения клиента, IE поставляется бесплатно с ОС. Поскольку на тот момент сегмент рынка Windows превышал 95%, это означало, что практически каждый, кто купил компьютер, получил также и IE. Это исключительное использование единственного конкурирующего коммерческого браузера в последствии привело к упадку Netscape и Netscape Communications Corporation.
В свою защиту Microsoft утверждала, что веб-браузер фактически является частью операционной системы. Поэтому говорить о бандлинге браузера бессмысленно; это было естественно, что поставщик ОС включит браузер в свой продукт.
На первый взгляд, данный аргумент верен. Все продукты состоят из частей, и мы не обвиняем производителей за то, что те включают в продукты части собственного производства. Когда вы покупаете автомобиль, то он поставляется с двигателем. Для независимых производителей двигателей это очень затрудняет продажу автомобильных двигателей широкой публике. Но мы не обвиняем автомобильные компании в приделывании двигателей к своим автомобилями, с целью вытеснения производителей двигателей: мы принимаем тот факт, что двигатель является частью автомобиля.
Таким образом, обвинение против Microsoft сводится к фактическому вопросу: является ли веб-браузер частью операционной системы? Излишне говорить, что в ходе судебного разбирательства было много свидетельств и споров по этому поводу. Я следил за судом мимоходом; мне вопрос казался смутным, и я мог услышать среди аргументов не намного больше, чем «это так» — «нет».
В конце концов, Microsoft оказалась монополистом, но получила лишь минимальные санкции. Microsoft по-прежнему поставляет IE с Windows, но автономные браузеры, такие как FireFox, теперь возвращают себе сектор рынка. Возможно, вопрос все еще стоит: является ли браузер частью ОС?
Ну, так он является???
Тут поднимается (по крайней мере) четыре разных вопроса и Microsoft упорно трудилась в течение многих лет, чтобы запутать и смешает их. Она не хочет, чтобы у людей было четкое понимание этого вопроса, потому что ясное его понимание абсолютно им не на руку. Давайте рассмотрим вопросы по одному и посмотрим, сможем ли мы разобраться в них. Вот эти вопросы:
- Ожидает ли клиент, что на компьютере будет установлен веб-браузер?
- Кто должен выбрать браузер и обеспечить его интеграцию с компьютером?
- Является ли браузер частью обширного набора программного обеспечения, называемого «операционная система»?
- Должен ли код, реализующий браузер, быть интегрирован с ядром операционной системы?
Ожидает ли клиент, что на компьютере будет установлен веб-браузер?
Это вопрос о поведении и ожиданиях потребителей. Когда Джо Потребитель — или Джо Бизнесмен — покупает компьютер, достает его из коробки и включает его, ожидают ли они найти уже установленный веб-браузер? Чтобы узнать ответ, мы просто общаемся с потребителями и наблюдаем за их поведением. Ответом оказывается “да”.
В предварительных переговорах с правительством юрист Microsoft сказал об операционной системе Windows
Мы могли бы запихнуть туда бутерброд с ветчиной, но никто бы его не купил.
Часть о сэндвиче с ветчиной была вырвана из контекста и стала примером высокомерия Microsoft; Тем не менее, юрист обратил внимание на то, что Microsoft реагирует на ожидания потребителей, а потребители ожидают, что их компьютеры будут содержать веб-браузеры.
Ответ на этот вопрос поддерживает позицию Microsoft.
Кто должен выбрать браузер и интегрировать его с компьютером?
Это вопрос промышленной организации: как организовать производство и распространение компьютеров? В Соединенных Штатах мы позволяем рынкам решать большинство подобных вопросов.
Индустрии персональных компьютеров (ПК) около 25 лет. За это время произошли некоторые изменения, но основные принципы ясны и стабильны. Компьютеры изготавливаются производителями оригинального оборудования (ПОО) — такими компаниями, как Dell, Gateway и Hewlett-Packard. ПОО
- приобретает компоненты (системный блок, блок питания, материнскую плату, жесткий диск и т. д.)
- собирает их в ПК
- устанавливает программное обеспечение
- пишет инструкцию и условия гарантии
- кладет все это в коробку
- ставит на ней свое название
- продает его розничным продавцам или потребителям
ПОО-производитель несет ответственность за выбор и интеграцию всего программного обеспечения, которое поставляется вместе с компьютером, за одним исключением. Microsoft диктует, чтобы ПОО-производители, которые устанавливают Windows, также устанавливали IE на всех компьютерах. Microsoft осуществляет это посредством условий в лицензии Windows.
В отсутствие монопольного влияния Microsoft есть все основания полагать, что ПОО-производители будут выбирать веб-браузер так же, как они выбирают все другие компоненты для своих продуктов.
Ответ на этот вопрос не поддерживает позицию Microsoft.
Является ли браузер частью обширного набора программного обеспечения, называемого «операционная система»?
Данный вопрос либо вопрос вкуса, либо же просто не имеет ответа. Причина заключается в том, что понятие «операционная система», используемый здесь, не имеет конкретного технического значения. Это больше похоже на понятие «город».
Города большие и разросшиеся — их границы могут быть размытыми. Правда, у города имеется географическая граница, определяемая законом и записанная в реестре дел, но сколько людей точно знает — или кого заботит — где он находится?
Спрашивать, является ли браузер частью операционной системы, все равно, что спрашивать, является ли автобусная линия частью города. В конце концов, это зависит от того, что вы подразумеваете под «городом».
Ответ на этот вопрос не имеет отношения к делу Microsoft.
Должен ли код, реализующий браузер, быть интегрирован с ядром операционной системы?
Это вопрос инженерного толка. В отличие от широкого понятия «операционная система», у понятия «ядро операционной системы» есть конкретное техническое значение, и на указанный вопрос есть определенный ответ. И, основываясь на очень крепкой инженерной базе, этот ответ — «нет».
Операционные системы организованы, фактически или условно, в виде слоев — как лук. Самый внутренний слой обычно называется ядром.
Ядро — это первая часть ОС, которая запускается после включения компьютера, и первое, что делает ядро, — контролирует все железо на компьютере:
- ЦПУ
- объем памяти
- диски
- монитор
- клавиатура/мышь
- сетевые соединения
Все остальные программы работают под управлением ядра. Ядро
- планирует программы для выполнения
- выделяет ресурсы на программы
- восстанавливает ресурсы из программ, когда они им больше не нужны
- удаляет программы из системы после завершения работы
Важно — жизненно важно — что компьютерное оборудование гарантирует восстановление контроля ядром в случае, если программа зависнет, выйдет из строя или будет вести себя иначе. Когда такое происходит, ядро останавливает программу, убирает беспорядок и продолжает работу.
Пока ядро функционирует нормально, ОС может восстанавливаться после любой ошибки в любой другой программе. И наоборот, если ядро подвергается опасности из-за
- ошибок
- вредоносных программ
- злоумышленников
тогда программы, содержащие ошибку, могут
- мешать другим программам
- приводить к зависанию или поломке компьютера
- повреждать данные
Обычно единственный способ исправить проблему с ядром — перезагрузить компьютер. Если повреждение данных распространяется на жесткий диск, может потребоваться переустановка ОС.
Ввиду всего этого, хорошее инженерное решение заключается в том, чтобы ядро было как можно меньше и проще. Со временем ядра становятся большими и сложными, потому что они делают много сложных вещей. Тем не менее, принцип остается: ничего не должно быть помещено в ядро без веской причины.
Веские причины
К веским причинам запихнуть что-то в ядро относятся:
- необходимость
- производительность
- безопасность
Необходимость
Некоторые программы просто нельзя заставить работать, если они не находятся внутри ядра. Веб-браузер не является одной из них. Существуют веб-браузеры — широко используемые, полнофункциональные веб-браузеры — которые работают в Microsoft Windows и не являются частью ядра. Они включают
Существование этих браузеров демонстрирует, что браузеру не обязательно быть частью ядра.
Производительность
Существуют некоторые программы, которые работают быстрее — намного быстрее — если являются частью ядра. Браузер не принадлежит к одной из них. Microsoft Internet Explorer работает внутри ядра не быстрее, чем другие браузеры вне ядра. Кроме того, при современных технологиях и типичных шаблонах использования веб-браузеры тратят больше времени на ожидание сетевого ввода-вывода, чем на загрузку процессора.
Безопасность
Некоторые программы работают внутри ядра, потому что они должны находиться внутри его границ безопасности. Файловая система является этому хорошим примером. Веб-браузер нет. Приведенные выше браузеры, которые работают вне ядра, защищены многими учетными записями и более безопасны, чем Internet Explorer, который работает внутри ядра. Безопасность не является веской причиной для установки веб-браузера внутри ядра.
Интеграция
Еще одна причина, по которой браузер иногда делается частью ядра, — это интеграция. «Интегрированный» — это просто причудливое слово, обозначающее «часть», поэтому этот аргумент в конечном итоге является окольным. При проверке преимуществами для интеграции обычно оказываются требования по повышению производительности, безопасности или удобству. Мы уже видели, что условия производительности и безопасности не оправдывают превращение браузера в часть ядра. Мы обсудим удобство ниже.
Держа снаружи
Поскольку нет никаких веских причин для того, чтобы поместить браузер в ядро, хорошее инженерное решение — держать его снаружи. Но это не просто вопрос хорошего решения: существуют реальные причины, по которым браузер должен храниться вне ядра. Две наиболее важных:
- стабильность
- безопасность
Стабильность
Люди создают ядра операционной системы в течение полувека. Мы знаем как
- спроектировать их
- написать их
- сделать их стабильными и безопасными
Люди создают веб-браузеры уже более десяти лет. Разработка, реализация и основные требования все еще находятся в процессе. Перетаскивание веб-браузера в ядро дестабилизирует его.
Безопасность
Ядро устанавливает границы безопасности на своих интерфейсах. Каждый элемент данных, который пересекает эти интерфейсы, должен быть проверен, чтобы убедиться, что он не нарушает требования безопасности ядра. Ядро может быть сложным, но его интерфейсы
- четко определенными
- хорошо понятными
- относительно простыми
Эти свойства имеют решающее значение для обеспечения безопасности ядра. Если интерфейсы ядра неточно указаны, плохо поняты или просто слишком сложны, то обеспечение безопасности ядра становится невыполнимой задачей.
Если ядро включает в себя веб-браузер, то его граница безопасности должна распространяться на интерфейс между браузером и Всемирной паутиной. Этот интерфейс включает в себя
- веб-страницы (текст, HTML, XML, …)
- таблицы стилей
- встроенные программы (Java, JavaScript, ActiveX, …)
- изображения (GIF, JPEG, PNG, …)
- ссылки
- плагины (Flash, …)
Фраза «Всемирная паутина» удачно описывает размер, сложность и нечеткость данных, которые браузер должен обрабатывать. Проверка этих данных невозможна, а перетаскивание браузера в ядро обреченно ставит под угрозу его безопасность.
Повторение вкратце
Для справки, вот ответы, которые мы получили на наши четыре вопроса
1.Ожидает ли клиент, что на компьютере будет установлен веб-браузер?
Да.
2.Кто должен выбрать и интегрировать браузер с компьютером?
ПОО.
3.Является ли браузер частью обширного набора программного обеспечения, называемого операционной системой?
Зависит от того, что вы подразумеваете под «операционной системой»
4.Должен ли код, реализующий браузер, быть интегрирован с ядром операционной системы?
Совсем нет.
Теперь давайте посмотрим, что Microsoft на самом деле делает с Internet Explorer
1. Microsoft поставляет Internet Explorer с операционной системой Windows
Справедливо; клиенты ожидают получить веб-браузер со своим компьютером
2. Microsoft принуждает ПОО-производителей к выпуску IE, а не другого браузера на компьютерах с Windows
Грязная игра, нелегальная к тому же. К сожалению, ПОО-производители слишком зависимы от Microsoft, чтобы жаловаться, и правительство США отказывается вводить значимые санкции против Microsoft, по-видимому, по политическим причинам.
3. Microsoft говорит, что браузер является частью операционной системы
Они имеют право на свое мнение.
4. Microsoft интегрирует код, который реализует Internet Explorer, в ядро Windows
ПППППррррррооооооккккккклллллляяяяяяттттттььььььееее !!!!!!!
Все действительно настолько плохо?
Все действительно настолько плохо.
Рассуждения приведенные выше являются техническим и несколько абстрактным, но проблемы, которые они описывают, таковыми не являются. Установка браузера в ядро создает реальные проблемы для обычных пользователей.
Все браузеры содержат ошибки; все браузеры вылетают. Когда происходит сбой такого браузера, как Firefox, вы теряете веб-страницу, которую просматривали. Если вы хотите увидеть ее снова, вы должны снова открыть браузер и повторно ввести URL. Когда Internet Explorer дает сбой, он тянет за собой ядро, ОС и компьютер. Восстановление обычно требует перезагрузки, и потеря данных в других программах — это не редкость.
У всех браузеров имеются дыры в системе безопасности; Все браузеры подвергаются атакам со стороны враждебных веб-сайтов. Когда такой браузер, как FireFox, подвергается опасности, злоумышленник получает контроль над браузером. Когда Internet Explorer подвергается опасности, злоумышленник получает контроль над ядром, а через него и над всем компьютером.
Зачем они это делают?
Если интеграция браузера с ядром — плохая идея, то нам необходимо спросить, зачем Microsoft так делает. Ответ состоит из двух частей
- почему они говорят, что так делают
- почему на самом деле они это делают
Почему они говорят, что так делают
Первый ответ Microsoft, конечно, просто потому, что браузер является частью операционной системы. Однако этот ответ основан на путанице с более подробными вопросами, обсуждавшимися выше. Никто не оспаривает утверждение о том, что общий термин «операционная система» может быть истолкован достаточно широко, чтобы включать в себя веб-браузер. Вопрос в том, что побудило Microsoft перетащить браузер в ядро.
Microsoft не любит много говорить на эту тему; однако, если вы прочитаете их маркетинговую литературу и рекламную копию, вы увидите, что некоторые претензии выходят за рамки.
Microsoft рекламирует удобства и возможности, которые они могут предложить за счет интеграции IE с ядром. Это всегда там; это всегда включено. Контент из любого источника в сети может быть легко передан в любое приложение на компьютере. Данные из любого приложения могут отображаться в виде веб-страницы. Назойливое различие между вашим компьютером и интернетом отходит на второй план: Windows позаботится обо всем за вас.
По иронии судьбы, именно такая интеграция делает Internet Explorer таким эффективным переносчиком вредоносных программ. «Удобство», которое предлагает Microsoft, сопряжено с огромными расходами на безопасность и стабильность.
Почему они на самом деле это делают
На заре своего существования Microsoft продавала продукты согласно их функциям, производительности и удобству, и она все еще предоставляет эти преимущества клиентам. Однако сегодня основной стратегией Microsoft по продаже своих продуктов является отказ клиента от любой прочей альтернативы.
Один из способов сделать это — вытеснить конкурентов, например, путем объединения. Но одной лишь поставки IE в одной коробке с Windows недостаточно: если бы все, что сделала Microsoft, положить в ее коробку, то кто-то другой смог бы так же легко достать это из коробки.
- Если судья, заслушивающий дело по нарушению антимонопольного законодательства, сможет удалить IE из Windows, тогда Microsoft будет сложнее подтвердить, что IE является частью Windows.
- Если пользователи смогут удалить IE из Windows, они с большей вероятностью будут использовать другие веб-браузеры.
Существует также историческая причина интеграции IE с Windows. Вплоть до начала 1990-х годов Интернет был, по сути, исследовательским проектом, финансируемым правительством и предназначенным только для университетов и крупных корпораций. Затем, слияние проектов сделало использование Интернета для потребителей осуществимым. Эти включает
- падение цены на оборудование
- увеличение вторжения в сеть
- графический пользовательский интерфейс
- решению по принятию мер для коммерциализации интернета и расширения доступа к нему
Когда это произошло, Интернет и, особенно, Web внезапно оказались вовлечено в сознание общественности. В течение короткого периода времени существовало серьезное предположение, что веб-браузер вытеснит операционную систему в качестве основного пользовательского интерфейса компьютера.
Перспектива этого, несомненно, испугала Microsoft. Если пользователи проводят все свое время в веб-браузере, им все равно, какая используется операционная система. Тогда ПОО-производители смогут свободно продавать компьютеры с конкурирующими операционными системами, а монополия Microsoft испарится.
Microsoft была совершенно не готова к коммерциализации интернета. Их первым ответом было создать собственный веб-браузер и они также удостоверились, что данный браузер подключен прямо к ОС. Таким образом, даже если браузер каким-то образом станет ОС, пользователь все равно будет использовать Windows, а Microsoft все равно будет контролировать рабочий стол.
Но так не получилось. Потребители находятся в Интернете уже 10 лет, они не проводят все свое время в веб-браузере, и им все равно, какая у них ОС. Но Microsoft никогда не отступала от своего первоначального решения относительно интеграции браузера с ОС — в случае чего они работали над тем, чтобы сделать их неразделимыми, разбрасывая код для браузера по всей системе в различных файлах и стирая различие между Интернетом и рабочим столом пользовательского интерфейса.
Заметки
Netscape Communications Corporation
Википедия дает краткую справку о Netscape Communications Corporation. Название Netscape сохранилось как торговая марка AOL.
ядро операционной системы
Это обсуждение наиболее конкретно относится к операционным системам с монолитным ядром, таким как GNU/Linux и Windows 95/98/ME. Для операционных систем с архитектурой микроядра, таких как GNU/Hurd и Windows NT/2000/XP, терминология и детали несколько отличаются; Тем не менее, основные проблемы остаются теми же.
особенности, производительность и удобство
Я использовал превосходный компилятор C на протяжении большей части 1980-х годов.
отступил
Джоэл Спольски утверждает, что Microsoft сознательно пренебрегла разработкой IE, опасаясь, что более способный браузер — даже их собственный — все еще может угрожать их монополии на настольные ПК.
Steven W. McDougall / resume / [email protected] / 26 февраля 2005 года
Добавить комментарий