LXF130:DrBrown3
|
|
|
Содержание |
Мини-Linux
- Без Minix, наверное, не было бы и Linux. Рассмотрим же его.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Линус Торвальдс писал исходное ядро Linux под впечатлением от другой Unixподобной системы, Minix, созданной Эндрю Таненбаумом [Andrew Tanenbaum]. Торвальдсу был знаком Minix, поскольку он первоначально пользовался им как платформой для разработки ядра Linux. И, несомненно, на него повлияла книга Таненбаума «Операционные системы: разработка и реализация»: Торвальдс называл ее «книгой, которая подняла меня на новые высоты». Нельзя сказать, что архитектура Minix нравилась ему на 100 % – вообщето он относился к ней довольно критически. Почитайте, например, книгу Линуса Торвальдса и Дэвида Даймонда [David Diamond] «Just for FUN. Рассказ нечаянного революционера» или споры Торвальдса и Таненбаума по адресу http://www.dina.dk/~abraham/Linus_vs_Tanenbaum.html. Minix создавался в основном как средство для обучения. Еще в 1987 году Таненбаум (профессор факультета вычислительной техники университета Врейе в Амстердаме) хотел создать операционную систему, которая бы иллюстрировала принципы его книги и которой могли бы пользоваться его студенты.
Довольно долго я имел об этом слабое понятие, пока случайный поиск в Google не привел меня на http://www.minix3.org. Я и не подозревал, что Minix все еще в активной разработке. Оказывается, в 2008 году Таненбаум получил грант в 2,5 млн евро на продолжение развития Minix, и последний релиз вышел в ноябре 2009 года. Minix 3 продолжает играть роль ОС, которую студенты могут расчленить на составляющие, но у него есть и другие цели. Цитирую сайт: «Он примерно основан на предыдущих версиях Minix, но отличается по многим ключевым вопросам. Minix 1 и Minix 2 создавались как средства для обучения, Minix 3 намерен стать полноценной системой для компьютеров с ограниченными ресурсами и встраиваемых, а также для приложений, требующих высокой надежности».
Гдето в другом месте Таненбаум написал: «Minix 3 – это не Minix вашего дедушки. Minix 1 создавался как средство для обучения и все еще широко используется в университетах как таковое. Minix 3 – то же самое плюс отправная точка построения высоконадежной самовосстанавливающейся нераздутой ОС, наверное, подходящей для таких проектов, как стодолларовый ноутбук в помощь детям стран третьего мира или встраиваемая система. Minix 1 и Minix 3 объединяет то же, что и Windows 3.1 и Windows XP – первое слово в названии».
Кто хочет сам поиграть с Minix, загрузите сжатый ISO-образ с сайта http://www.minix3.org/download. Он распространяется по BSD-подобной лицензии. CD работает в режиме Live, и вы получите определенное представление о легкости Minix, когда увидите, что командная строка загрузится менее чем за три секунды. После старта системы нетрудно установить ее на жесткий диск.
Низкие требования
Требования к аппаратной части минимальны: стандартная система работает на 16 МБ ОЗУ, а на 1 ГБ дискового пространства умещается весь дистрибутив, включая исходные коды. Поддерживается несколько сетевых карт, но на данный момент нет поддержки WiFi, USB и FireWire. Я установил ее на виртуальную машину VMWare, и она прекрасно работала.
Загрузка Minix – возвращение в более спокойные, простые и в общем более интересные времена начала эпохи Linux и Unix, когда вся схема легко укладывалась в голове. А может, моя голова тогда была больше. Пользователям Linux Minix покажется довольно знакомым, по крайней мере в командной строке: это POSIX-совместимая ОС, и в нее были портированы многие классические утилиты – ls, Cron, GCC, Perl, SSH, file, find, sort, mount, Vi, grep и прочие. В /usr/bin в общей сложности 338 команд, и многие вы узнаете (сравните с 2048 в моем Ubuntu). Архитектура файловой системы Minix тоже покажется вам весьма знакомой.
А под капотом между Minix и Linux имеются заметные отличия. Например, в Minix единственный дисковый раздел делится на «слайсы», и им даются имена по схеме, похожей на принятую в Solaris. Например, первый диск на первом контроллере будет /dev/c0d0, а первый раздел на этом диске – /dev/c0d0p0. В терминах Linux это были бы /dev/sda и /dev/sda1 соответственно. Сласы именуются как /dev/c0d0p0s1. В Linux нет концепции слайсов, применяемой в Minix.
Более существенное различие между Minix и Linux в том, что архитектура первой построена на основе микроядра. Само ядро предоставляет обработчики прерываний, способ запуска и остановки процессов, планировщик, основы межпроцессной коммуникации, но ничего более. Большая часть функционала, который в Linux находится в ядре, реализована в Minix в пространстве пользователя. Это драйверы устройств, файловая система, стек протоколов TCP/IP и даже высокоуровневое управление памятью. В пространстве пользователя вы увидите процессы для VFS (виртуальной файловой системы), TTY (драйвера терминала) и DS (сервера хранилища данных). Это фундаментальное различие в архитектуре, и здесь взгляды Торвальдса и Таненбаума определенно не сходятся (см. «Типы ядра» и «Что входит в ядро?»). Чтобы вы представили себе масштаб этого различия, скажу, что в ядре Minix 3 около 4000 строк кода, а в ядре Linux 2.6.32 – около 12 млн. Пока вы не начали возмущаться, соглашусь, что это не совсем корректное сравнение размера двух ОС. Но оно иллюстрирует компактность ядра Minix.
Упакуйте это
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
В Minix есть примитивный менеджер пакетов Packman. Это сценарий оболочки, и его пользовательский интерфейс довольно громоздок. Зависимостей у него нет, и устанавливается пакет простым копированием архива с CD (или с сайта Minix http://www.minix3.org/packages/i386) и его распаковкой. Архивы с исходным кодом также доступны по адресу http://www.minix3.org/software, и Packman спрашивает, хотите ли вы их установить.
Также есть работающий X-сервер и два оконных менеджера. Первый из них, Twm, сокращение от Tab Window Manager, появился в 1987 году и по сегодняшним меркам довольно примитивен, но в свое время был прорывом. Второй, Ede (Equinox Desktop Environment), выглядит чуть современнее, но все так же легок и быстр. Не ждите от Minix последних новшеств – если вы гонитесь за этим, вы попали не туда. Minix далеко до всеохватности и элегантности Linux, но он и не пытается таким быть.
Итак, здесь меньше утилит, система управления пакетами примитивна, рабочий стол – древний; в чем же привлекательность Minix? Ну, для разработчика он гораздо проще и доступнее Linux. Например, для повторной сборки и установки операционной системы и всех утилит достаточно двух команд:
#cd /usr/src #make world
В нашей тестовой системе это заняло минуты три. Не представляю, сколько тут ушло бы времени в Linux, но подозреваю, что займись этим Моцарт, он бы без труда написал пару симфоний, дожидаясь завершения.
Но шутки в сторону: Minix допускает анализ исходного кода реальной операционной системы без вывихивания мозгов. И если вас понастоящему вдохновили его возможности, взгляните на несколько проектов на http://wiki.minix3.org/en/StudentProjects и прикиньте, как будет смотреться ваша фамилия с приставкой «к.т.н.» или «др».
Загружая Minix, я довольно внезапно ощутил беспомощность, сообразив, что не понимаю, как сделать многие простые вещи. Я не знал, как изменить IP-адрес моего сетевого интерфейса или как назначить сервисы, стартующие во время загрузки. Это напомнило мне неуверенность, которую я испытывал в первые дни работы с Linux, и послужило уместным уроком того, что к новичкам в Linux нужно относиться с огромным терпением и уважением.
Что входит в ядро?
Коды, выполняемые «в привилегированном режиме» (ядро) и «в пространстве пользователя», серьезно различаются. Но что относится к ядру, и что – к пространству пользователя? Есть определенный минимум вещей, которые должны выполняться в привилегированном режиме: низкоуровневое управление памятью, обработка прерываний, планирование процессов и некое минимальное межпроцессное взаимодействие [IPC]. На другом конце шкалы, по общему мнению, находятся пользовательские приложения типа Bash и Firefox – они принадлежат к пространству пользователя. Однако между ними есть «серые зоны». Как насчет библиотеки математических функций, сервера NFS, стека TCP/IP, кода управления доступом, драйверов устройств или файловой системы ext3?
В истории разработки Linux вы найдете примеры, когда те или иные вещи пересекали границу между пространством пользователя и пространством ядра. NFS изначально была демоном в пространстве пользователя, а потом переместилась в ядро. С другой стороны, относительно новая технология Fuse позволяет реализовать в пространстве пользователя файловые системы, обычно принадлежащие ядру.
Архитектуре микроядра посвящен большой объем исследовательской литературы, который вы вряд ли захотите осваивать, если только не пишете главу об истории архитектуры операционной системы в своей диссертации. Тогда загляните на сайт http://en.wikipedia.org/wiki/Microkernel.
Типы ядра
Термин «монолитное ядро» означает две разные вещи, и по этому поводу у меня однажды была запальчивая дискуссия с сертифицированным архитектором Red Hat. В контексте сравнения Minix с Linux монолитное ядро означает, что вся операционная система выполняется в ядре, в отличие от микроядра. Но в последние годы в мире Linux термин «монолитное ядро» начал означать, что весь код ядра статически скомпонован в один исполняемый образ. Такая схема отличается от модульного ядра, многие возможности которого реализованы в динамических модулях, подгружаемых по требованию. В этом смысле слова ранние версии ядра Linux были монолитными, а все последние версии – модульные. Динамическая загрузка модуля, реализующего файловую систему в пространстве ядра (как в Linux), отличается от ее реализации в виде сервиса в пространстве пользователя в Minix.