Minix Inside!


Какая операционная система используется чаще всего? Вы могли бы сказать Windows, и тогда вы могли бы вспомнить все эти серверы и выбрать Linux, но в любом случае вы ошибетесь. И нет, это не OSX или Android. Это операционная система под названием Minix, созданная в образовательных целях Эндрю Таненбаумом в 1980-х годах, которая в настоящее время работает на всех машинах Intel, о которых вы только можете подумать.

Это странная история, растянувшаяся на несколько лет. На заре микрокомпьютеров поиск операционной системы был настоящей проблемой. Конечно, был MSDOS, но он был коммерческим и плохо спроектированным. Многие люди хотели использовать Unix, но он тоже был коммерческим, имел ограничительную лицензию и подлежал всевозможным судебным искам. Затем Эндрю Таненбаум, ученый-компьютерщик, работающий в Университете Врие в Амстердаме, создал небольшую образовательную операционную систему под названием Minix. Это было всего 12 000 строк кода C, и он был включен в его книгу 1987 года «Операционные системы: проектирование и реализация».

Эндрю С. Таненбаум Фото: Джантангринг

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

Одним из них был молодой программист по имени Линус Торвальдс, о котором вы, возможно, слышали. Он внимательно изучил Minix и решил, что можно создать собственную ОС на базе Unix. Как говорится, остальное уже история, но вы должны задать вопрос — почему Linux, а почему не Minix?

Ответ многое говорит о развитии открытого исходного кода и менталитете открытого исходного кода. Вы должны помнить, что тогда открытый исходный код еще не был создан, и было мало инструментов и были только неэффективные способы общения. Не было ни Git, во второй раз спасибо Линусу, ни GitHub, ни Интернета, и … ну, было бы быстрее перечислить, что там было.

Дело в том, что я, вместе с некоторыми другими, внес изменения и дополнения в Minix, но лицензирование, которое в то время было разрешительным, оттолкнуло нас от реализации этого проекта, который мог бы стать большим проектом с открытым исходным кодом. Проблема заключалась в том, что издатель книги не был готов разрешить свободное копирование и использование исходного кода. Лицензия была ограничена и просили 69 долларов за привилегию ее использования. Мне было непонятно, что произойдет, если вы осмелитесь разработать его и сделать доступным. Только в 2000 году Minix стал бесплатным и открытым в современном понимании.

Вы не можете не думать, что, если бы не традиционный взгляд издателей на авторское право, Таненбаум и Minix, вероятно, были бы Линусом и Linux — если вы понимаете, что я имею в виду.

На протяжении многих лет напряженность между Linux и Minix, а также между Линусом и Таненбаумом была в значительной степени скрытой от поверхности (см. Дискуссию Таненбаума – Торвальдса), но, должно быть, источником раздражения было то, что в центре внимания оказался Linux, а не Minix.

А теперь мы подходим к странному повороту.

В процессорах Intel в течение нескольких лет был отдельный чип управления рядом с основным процессором. Возможно, вы встречали AMT — технологию активного управления — в некоторых программах для управления серверами. Он обеспечивает удаленный доступ, даже когда машина выключена, но подключена к электросети. Вы можете использовать приложение KVM для подключения к машине, когда она выключена, настроить ее, включить, загрузить и в целом работать с ней. Это функции, которые системные администраторы считают необходимыми, но большинство пользователей просто игнорируют их и оборудование для управления.

Все было найдено, но в мае была обнаружена серьезная уязвимость безопасности, и для исправления потребовалось обновление данных для кода AMT. Обновление, которое вряд ли получат многие машины. С тех пор различные исследователи безопасности, в основном работающие в Google, изучали оборудование и программное обеспечение и обнаружили, что в оборудовании есть дополнительный уровень, о котором Intel не говорит. Ring 3 — это область пользователя, Ring 0 — это область ОС, а Ring -1 — для гипервизоров. Мы знаем о них, но, кроме того, существует кольцо-2, используемое для защищенного ядра UEFI, и кольцо-3, в котором работает ОС управления. Угадайте, что это за управляющая ОС Minix 3 — а точнее закрытая коммерческая версия Minix 3.

Это имеет смысл, поскольку Minux — это ОС на основе микроядра, в отличие от Linux, и поэтому больше подходит для такого рода низкоуровневых аппаратных задач. Однако это означает, что каждый чипсет Intel с 2015 года работает под управлением Minix 3, даже если он также работает под управлением Windows, Linux или OSX. Это может означать, что корона переходит к Minix.

Таненбаум наконец узнал, что Intel использует Minix, и написал им открытое письмо:

«Уважаемый господин Кржанич,

Спасибо за установку версии MINIX в микросхему механизма управления ME-11, которая используется почти во всех современных настольных и портативных компьютерах в мире. Думаю, это делает MINIX самой широко используемой компьютерной операционной системой в мире, даже больше, чем Windows, Linux или MacOS.

Я знал, что у Intel был потенциальный интерес к MINIX несколько лет назад, когда одна из ваших инженерных групп связалась со мной по поводу какого-то секретного внутреннего проекта и задала большое количество технических вопросов о MINIX, на которые я был рад ответить. Я получил еще одну подсказку, когда ваши инженеры начали просить меня внести ряд изменений в MINIX, например, уменьшить объем памяти.

Также намёком было обсуждение лицензии. Я (неявно) понял, что тот факт, что MINIX использует лицензию Беркли, был очень важен. Я уже сталкивался с этим раньше, когда компании говорили мне, что они ненавидят GPL, потому что они не хотят тратить много времени, энергии и денег на изменение какого-то фрагмента кода, а только для того, чтобы от них требовалось передать его своим конкурентам за бесплатно. Эти обсуждения были причиной того, почему мы выпустили MINIX по лицензии Беркли в 2000 году (после того, как вырвали его у моего издателя).

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

Единственное, что было бы хорошо, так это то, что после того, как проект был завершен и чип был развернут, кто-то из Intel сказал бы мне, просто из вежливости, что MINIX теперь, вероятно, является самой широко используемой операционной системой в мире. компьютеры x86. Это, конечно, не требовалось, но я думаю, было бы вежливо предупредить меня, вот и все.

… »

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

Обнаружение ряда уязвимостей в программном обеспечении привело к комментариям, что Minix небезопасен. Это побудило Google и другие компании работать над поиском способов отключения оборудования управления — это понятно, учитывая количество серверов, которые у них должны быть, уязвимые для любых недостатков в ОС.

Это серьезная угроза безопасности?

Кто знает, но есть руткиты Ring -3, и все зависит от того, проявит ли кто-то творческий подход.

Что интересно, так это то, где мы сейчас находимся по сравнению с тем, где мы были тогда угол. У нас есть полноценный ЦП, 32-битное ядро Quark x86, работающее под управлением полной операционной системы в качестве системы управления для основного процессора — немыслимо во времена Minix 1. Также удивительно, насколько прогрессивно и разработано программное обеспечение с открытым исходным кодом, в основном благодаря для улучшения коммуникации и сотрудничества, которое стало возможным.

Minix внутри ….. Да, действительно.


Добавить комментарий