Автор: Пользователь скрыл имя, 23 Ноября 2015 в 14:17, реферат
Писать об ОС Unix чрезвычайно трудно. Во-первых, потому, что об этой системе написано много. Во-вторых, потому, что идеи и решения Unix оказали и оказывают огромное влияние на развитие всех современных ОС, и многие из этих идей уже описаны в этой книге. В-третьих, потому что Unix - не одна ОС, а целое семейство систем, и не всегда можно "отследить" их родство между собой, а уж описать все ОС, входящие в это семейство просто невозможно. Тем не менее, мы, ни в коей мере не претендуя на полноту, попытаемся дать беглый обзор "мира Unix" в тех его областях, которые представляются нам интересными для целей нашего учебного курса.
Революционерами не рождаются. Революции не планируются. Революциями
нельзя управлять.
Революции случаются...
Одна из самых примечательных особенностей Linux - это огромный выбор между дистрибутивами. Каждый год (если не каждый месяц) появляются новые дистрибутивы. В этом году, например, появилось несколько интересных дистрибутивов, которые уж точно заслуживают внимания. Сегодня я собрал топ 5 самых популярных дистрибутивов Linux 2014 года по версии distrowatch.
Также популярными мобильными операционными системами являются Android и iOS, только iOS имеет ядро не Linux, а XNU, но об этом расскажу поподробнее в своё время.
Ubuntu - операционная система, основанная на Debian GNU/Linux. Основным разработчиком и спонсором является компания Canonical. В настоящее время проект активно развивается и поддерживается свободным сообществом.
Её первый
выпуск состоялся 20.10.2004, последняя версия
– 23.04.2015. Имеет интерфейс Unity.
По утверждениям Canonical, Ubuntu используется
примерно 20 миллионами пользователей. Он
является 4-м в списке самых популярных
дистрибутивов Linux для веб-серверов. По
версии DistroWatch.com (на 2014 год) занимает
2-е место по популярности для десктопов.
Обычно новые версии дистрибутива выходят каждые полгода и поддерживаются обновлениями безопасности в течение 9 месяцев (начиная с версии 13.04, до этого поддержка осуществлялась в течение полутора лет).
Версии LTS, выпускаемые раз в 2 года, поддерживаются в течение 5 лет — как серверные, так и десктопные варианты. (До версии 12.04 LTS срок поддержки для десктопных LTS-версий составлял 3 года.) На другие дистрибутивы LTS семейства ubuntu действует полная поддержка в 3 года, а для основы системы (ядро, Xorg и прочие компоненты) — 5 лет.
Ubuntu поставляется
с подборкой программного обеспечения
для серверов и рабочих станций. Она устанавливается
на настольные персональные компьютеры c
помощью LiveCD (версия
Ubuntu ориентирована на удобство и простоту использования. Она включает широко распространённое использование утилиты sudo, которая позволяет пользователям выполнять администраторские задачи, не запуская потенциально опасную сессиюсуперпользователя.
Ubuntu, кроме того, имеет развитую интернационализацию, обеспечивающую максимальную доступность для представителей разных языковых групп. С версии 5.04 кодировкой по умолчанию является UTF-8.
Ubuntu для работы рекомендуется от 512 мегабайт RAM и, при установке на жёсткий диск, от пяти гигабайт свободного пространства, а предельно минимальные требования гораздо ниже.
Ubuntu (до версии 11.04) была основана на системе рабочего стола GNOME, которая разработана, чтобы обеспечить свободный, простой и интуитивный интерфейс, предлагая полный диапазон современных настольных приложений. Помимо тех приложений, которые включены в GNOME, Ubuntu выходит с дополнительным программным обеспечением, включая LibreOffice (OpenOffice.org до версии 11.04), web-браузер Mozilla Firefox.
Говорить
можно ещё много, но лично от себя хочу
добавить – если вы собираетесь переходить
с Windows на Linux – советую Ubuntu, это как бы
«Linux для чайников», позволяет поближе
познакомиться с особенностями систем
Linux.
— операционная система, состоящая из свободного ПО с открытым исходным кодом. В настоящее время Debian GNU/Linux — один из самых популярных и важных дистрибутивов GNU/Linux, в первичной форме оказавший значительное влияние на развитие этого типа ОС в целом. Также существуют проекты на основе других ядер: Debian GNU/Hurd, Debian GNU/kFreeBSD и Debian GNU/kNetBSD. Debian может использоваться в качестве операционной системы как для серверов, так и для рабочих станций. Релизы Debian проиллюстрированы на рисунке 2.
Debian имеет наибольшее среди всех дистрибутивов хранилище пакетов — готовых к использованию программ и библиотек, — и если даже не по их числу, то по числу поддерживаемых архитектур: начиная с ARM, используемой вовстраиваемых устройствах, наиболее популярных x86 и PowerPC, новых 64-разрядных AMD, и заканчивая IBM S/390, используемой в мейнфреймах. Для работы с хранилищем разработаны разные средства, самое популярное из которых — Advanced Packaging Tool (APT).
Debian стал
основой целого ряда дистрибутивов. Самые
известные из них (в алфавитном порядке) — Knoppix, Linux Mint, Maemo, MEPIS, SteamOS, U
Название «Debian» составлено из имён основателя проекта Яна Мёрдока (IanMurdock) и его подруги (впоследствии — жены, ныне — бывшей) Дебры Линн (Debra Lynn).
Первый
выпуск системы состоялся 16.08.1993, последняя
версия – 5.09.2015.
Имеет интерфейс GNOME, KDE, Xfce, LXDE, MATE, Cinnamon.
Создание Debian было начато в августе 1993 года Яном Мёрдоком. Он руководствовался желанием создать дистрибутив, процесс рождения которого будет, с одной стороны, открытым и свободным в духе GNU/Linux, и одновременно исключительно тщательным и добросовестным. Сначала над проектом работала небольшая сплочённая группа хакеров мира свободного ПО, которая постепенно разрасталась, став большим организованным сообществом разработчиков и пользователей.
Debian отличается широким спектром возможностей. В текущую стабильную версию включено свыше тридцати семи тысячпакетов программ для десяти архитектур на основе ядра Linux (от Intel/AMD 32-bit/64-bit, широко применяемых в персональных компьютерах, до ARM, обычно используемых во встраиваемых системах и мейнфреймах IBM System z) и также двух архитектур на основе ядра FreeBSD (kfreebsd-i386 and kfreebsd-amd64) .
Отличительными чертами Debian являются: система управления пакетами Advanced Packaging Tool (APT), жёсткая политика по отношению к пакетам, репозитории с огромным их количеством, а также высокое качество выпускаемых версий. Это сделало возможным простое обновление между версиями, а также автоматическую установку и удаление пакетов. Именно в Дебиане впервые был введён как единый стандарт механизм выбора предпочтительного ПО среди нескольких вариантов — Alternatives.
При стандартной
установке Debian используется среда рабочего стола GNOME, куда включён набор популярных
программ, таких как LibreOffice, Iceweasel (
На Debian основано множество дистрибутивов, в
том числе Ubuntu, MEPIS, Dreamlinu
Рисунок 2-Релизы
Приведу интересные факты:
Что хочу добавить от себя – лично мне нравится Debian. Все операции с мобильными устройствами (перепрошивки, обновления, восстановление) делаю из под Debian. Системы Android и Debian имеют одно ядро – Linux, что значительно облегчает и расширяет «круг общения» компьютера и смартфона/планшета по сравнению с «Виндой».
Ну и отдельно
я хочу рассказать про мобильные операционные
системы Android и iOS.
Android — операционная система для смартфонов, планше
В 86 % смартфонов, проданных во втором квартале 2014 года, была установлена операционная система Android. При этом за весь 2014 год было продано более 1 миллиарда Android-устройств.
Тип ядра - монолитное модифицированное ядро Linux.
Первый выпуск состоялся 23.09.2008, последняя версия – 21.03.2015 (5.1.1 Lollipop), помимо неё есть последняя тестовая версия – 17.08.2015 (6.0 Marshmallow). Обновления версий показаны на рисунке 3
Рисунок 3-Версии Android
Я не хочу ничего писать про историю и прочее, просто хочу высказать своё мнение по этой системе. Я ещё НИКОГДА НЕ ВСТРЕЧАЛ таких нестабильных систем. Когда я впервые познакомился с этой системой, я был в восторге, большой планшет с сенсорным экраном, все дела. Но когда я начал копать глубже… Я был очень огорчён и расстроен. Кривой, нестабильный Linux. Более менее стабильно работает вариант прошивки Android – MIUI. Разрабатывается компанией Xiaomi Tech. Прошивка представляет собой сильно изменённый пользовательский интерфейс, в котором отсутствует меню приложений и совмещает самые удачные решения Android и iOS. За это Apple подала в суд на Xiaomi Tech. Официальных магазинов Xiaomi нет, устройства продаются через посредников, что сильно увеличивает риск покупки подделки.
Таким образом,
хотите стабильности – от Android вы её, увы,
не получите. Но она есть (и её много) у
системы iOS, про которую я расскажу далее.
iOS (до 24 июня
2010 года — iPhone OS) — операционн
В iOS используется ядро XNU, основанное на микроядре Mach и содержащее программный код, разработанный компанией Apple, а также код из ОС NeXTSTEP и FreeBSD. Ядро iOS почти идентично ядру настольной операционной системы Apple OS X. Начиная с самой первой версии, iOS работает только на планшетных компьютерах и смартфонах с процессорами архитектуры ARM.
Первый выпуск – 29.06.2007, последняя – 2.10.2015 (iOS 9.0.2). Семейство OC – Unix. Тип ядра – XNU (X is Not Unix – Икс, это не Юникс). Сами себе противоречат что ли? Разберёмся в этом поподробнее.
Естественно, в двух больших системах
всегда найдутся общие концепции. Например,
сложно избежать использования базовых
алгоритмов и структур данных. Таких, как
списки, массивы, деревья. Но я хочу рассказать
не об этом.
iOS является объектно-ориентированной
штукой. Где-то ниже Objective-C (а скоро мы сможем
говорить уже и о Swift) залегают огромные
пласты не-объектного кода, и под ними
— Unix (а точнее BSD) система. И на том уровне
у Linux и у iOS много общего. Но я и не об этом.
Давайте сравним основные структуры
ядра Linux с объектно-ориентированной частью
iOS.
В обеих системах присутствует некоторое
количество фундаментальных структур.
Например, в iOS это будут:
Все эти типы данных реализованы как
классы. Легко заметить, что тут нет нескольких
фундаментальных структур: связных списков
(linked lists) и бинарных деревьев (binary tree). Нет
их по той простой причине, что они уже
инкапсулированы в другие типы данных.
Так, NSArray можно использовать вместо связного
списка, а NSDictionary вместо бинарного дерева,
не особенно заботясь о внутренней их
реализации.
Хорошо. А какие же основные типы мы можем
найти в ядре Linux? Тут ситуация выглядит
с точностью до наоборот. Сложно выделить
какие-либо стандартные для ядра типы
данных. Наибольшие претенденты на это
звание:
Двойной связный список, определенный
в файле include/linux/list.h;
Красно-черные деревья, определенные
в файле include/linux/rbtree.h;
Радиксные деревья (radix tree), определенные
в файле include/linux/radix-tree.h;
Битовые массивы (bit arrays), определенные
в файле include/linux/bitmap.h;
Ну а также семафоры и спинлоки, которые
не присутствуют в iOS в явном виде — то
есть, их не нужно алоцировать, они скрыты
в методах.
Нет никакого требования использовать
именно эти реализации. Если вы чем-то
недовольны, то можете написать свою реализацию
чего угодно. Ее, правда, могут не принять
модераторы, если вы попробуете загрузить
свой пэтч. Во всяком случае, его не примут
модераторы, если не будет очень веской
причины реализовывать это самому вместо
использования уже написанных структур.
Итак, на первый взгляд мы имеем два ортогональных
подхода к построению системы. iOS предлагает
достаточно чистый объектно-ориентированный
подход, и Apple старается как только может
скрыть внутренности объектов от конечного
программиста. Ядро Linux, напротив, определяет
очень базовые примитивы, оставляя программиста
разбираться с ними. Грубо говоря, iOS это
блочное строительство, а ядро Linux предоставляет
в ваше распоряжение иногда кирпичи, а
иногда просто глину и печь для обжига.
Однако и цели программирования в двух
системах совершенно различные: никто
не ожидает от разработчика ядра создания
пользовательского интерфейса, равно
как никто и не ждет от программиста в
iOS написания поддержки чипа и шины данных.
Мораль сей басни такова. Ни для кого
не новость, что ядро Linux во многих отношениях
адаптировало объектно-ориентированную
парадигму. Тем не менее, модераторы ядра
не позволяют разработчикам усложнять
его (ядро), и поддерживают инфраструктуру
на уровне простейших примитивов. Философия
тут заключается в том, чтобы “keep it simple”
— позволь разработчику самому сварить
свой суп из сырой грудинки, не предлагай
ему супный набор или куриный порошок.