Анализ операционных систем linux

Операционные системы семейства Linux

Что такое операционная система Linux

Linux — операционная система, в основе которой лежат Unix-подобные системы.

Исходные коды Linux доступны для изменений и просмотров любым пользователем. На Linux распространяется авторское право Free Software Foundation, суть которого состоит в том, что все взятое бесплатно и измененное, должно бесплатно распространяться. Пользователи имеют авторские права на отдельные компоненты, но они распространяются бесплатно.

Первую версию системы ее создатель Линус Торвальдс представил в 1991 году. Он не стал разрабатывать программное обеспечение с нуля, а использовал программы проекта GNU, находящиеся в общем доступе. Символом Linux является пингвин Такс с желтыми лапами и клювом.

Осторожно! Если преподаватель обнаружит плагиат в работе, не избежать крупных проблем (вплоть до отчисления). Если нет возможности написать самому, закажите тут.

Где используется

В первую очередь при знакомстве с операционной системой Linux важно понять, что Linux сам по себе — это ядро. То есть основа, на которую уже будут в дальнейшем нанизываться дистрибутивы для работы с программным обеспечением. Самыми популярными в данном случае являются Ubuntu, Red Hat и Debian. В общей сложности сейчас насчитывается более 9 тысяч дистрибутивов.

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

В качестве домашней операционной системы Linux выбирают реже. Около 5% пользователей предпочитают ее конкурентам — Windows и MacOS.

Преимущества и недостатки перед другими ОС

К преимуществам Linux в сравнении с другими операционными системами можно отнести следующее:

  • Особенность Linux — это практически полное отсутствие вирусов. К Linux проявляется очень мало интереса со стороны хакеров, если это касается домашних ПК, поэтому пользователям не нужно волноваться о том, как защитить свой комьютер. Существует разве что несколько рутикулов для серверов. Среди антивирусного ПО нет базы исключительно под Linux. В основном роль подобных программ заключается в определении вредоносного кода, принесенного с Windows на физических носителях.
  • Подавляющее количество компонентов Linux — бесплатные, что оценят пользователи с несколькими домашними ПК. К тому же дистрибутивы разнообразны, и их можно менять. Причем не только наполнение, но и визуальную составляющую.
  • В системе есть встроенный репозиторий, из которого можно установить необходимые программы без использования сторонних ресурсов.
  • Большинство необходимых драйверов для оборудования уже вшито в ядро Linux. Благодаря этому устройство начнет работу сразу после подключения.
  • Система по умолчанию шифрует диски, защищая информацию и файлы.
  • Благодаря тому, что Linux и его дистрибутивы созданы пользователями, новые концепции мира IT-технологий очень быстро воплощаются в операционной системе.

Недостатками Linux можно назвать такие пункты как:

  • У Linux могут быть проблемы с совместимостью с другими устройствами, например, принтерами, сканерами и роутерами, так как большинство из них созданы для работы с Windows. Это проблема решается сменой и настройкой дистрибутива, но это может вызвать сложности у неопытных пользователей.
  • Дистрибутивов на рынке очень много, что ставит пользователя перед выбором.
  • На Linux отсутствуют привычные программы вроде Photoshop, Microsoft Word и Excel.
  • Большинство пакетов в Linux связаны, из-за чего при установке программ один пакет тянет за собой обновление другого пакета, что не только замедляет установку, но и вынуждает иметь подключение к интернету в тот момент.

Основные характеристики ОС Linux

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

  1. Многозадачность. У ядра Linux есть функция разделения времени центрального процессора. Суть функции заключается в том, что ядро по очереди выделяет отрезок времени для выполнения каждой задачи. Таким образом, все процессы происходят независимо и не мешают друг другу.
  2. Многопользовательский доступ. OC Linux поддерживает одновременную работу нескольких пользователей, обеспечивая им все системные ресурсы с помощью различных удаленных терминалов. Точно так же, как и в других ОС, пользователей можно делить на группы и ограничивать их возможности чтения, записи и запуска на исполнение.
  3. Страничная организация памяти. Организация системной памяти Linux выполнена в виде страниц объемом 4K. В случае, если оперативная память закончится, система начнет поиск неиспользуемых страниц для того, чтобы переместить их на жесткий диск, откуда впоследствии их можно будет восстановить.
  4. Загрузка выполняемых модулей «по требованию». Ядро Linux работает так, что в оперативной памяти находится только нужная часть кода программа, которая используется, а остальные части остаются на диске.
  5. Динамическое кэширование диска. Память, приготовленная для кэша, уменьшается, если компьютеру или пользователю необходимо больше места.
  6. Запуск программ для других ОС. Для того, чтобы запуск программ, разработанных для других ОС, был возможен на ПК с Linux, там установлены эмуляторы DOS, Windows 3.1 и Windows 95.
  7. Сетевые возможности. Интеграция Linux возможна в любую локальную сеть. Поддерживаются все службы Unix, в том числе Networked File System (NFS), удаленный доступ (telnet, rlogin), работа в TCP/IP сетях, NFS, и dial-up-доступ по протоколам SLIP и PPP.
  8. Соответствие стандарту POSIX 1003.1. Частичная поддержка возможностей System V и BSD.
  9. Поддержка ряда популярных файловых систем (MINIX, Xenix, System V). Также у Linux есть своя файловая система объемом до 4 Терабайт и с именами файлов до 255 знаков.
  10. Прозрачный доступ к разделам DOS (или OS/2 FAT): раздел DOS выглядит как часть файловой системы Linux; поддержка VFAT.
  11. Специальная файловая система UMSDOS, которая позволяет устанавливать Linux в файловую систему DOS.
Читайте также:  Программирование под ios для windows

Ключевые концепции, как выглядит

Пользовательская концепция — как было указано выше в списке преимуществ и характеристик Linux, эта система была разработана как многопользовательская. Linux позволяет работать одновременно любому количеству пользователей на одной машине.

Концепция «всё — файл» — концепция, позволяющая пользователю применять один интерфейс для работы с любым системным ресурсом.

Особые файлы и USB-устройства обрабатываются как файлы. Эта концепция облегчает разработку программ для ОС, потому что есть только исследованный набор операций для абстракции — «файла».

Если говорить об интерфейсах, то в этом случае есть три основные концепции:

Клоны Microsoft и MacOS

Интерфейсы, напоминающие по своей логике другие операционные системы.

Интуитивно понятный интерфейс UNIX-систем

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

Кроссплатформенные рабочие столы

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

Перечень операционных систем на базе ядра Linux

Чтобы начать использовать Linux, необходимо в первую очередь выбрать подходящий вашим запросам дистрибутив, установить его и настроить. В сети представлены разнообразные варианты, каждый из которых создан с определенным набором доминирующих функций для решения определенных задач пользователя.

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

В целом, все дистрибутивы делятся на две категории по тому, как они организуют управление программным обеспечением:

  1. DEB используется в Debian и дистрибутивах, основанных на нем.
  2. RPM используется в дистрибутиве Red Hat и других популярных дистрибутивах.

Перечень операционных систем:

  1. Для начала знакомства с Linux рекомендуется использовать дистрибутив Ubuntu. Это один из самых широко используемых дистрибутивов. Для загрузки доступна только 64-битная редакция новейшей версии весом 1,4 Гб.
  2. Debian — дистрибутив с богатой историей, проверенный временем. Debian работает почти на любом железе, в том числе на старом.
  3. Kubuntu — это бесплатная альтернатива Windows и Mac OS X, в которую входит все необходимое для стандартных задач. Приятный бонус этого дистрибутива KDE Telepathy (мессенджер Kubuntu), который дает возможность получать и отправлять сообщения через Facebook, ICQ, Skype и другие. В Kubuntu будет и видеопроигрыватель, а также совместимые с Microsoft Office приложения.
  4. Linux Mint — надежный и простой дистрибутив, один из лидеров среди пользователей, перешедших на Linux с других операционных систем.
  5. Deepin — вариант дистрибутива для широкого круга пользователей, сменивших Windows, как в офисе, так и на работе. Поддерживает 30 языков.
  6. Fedora позволяет менять графические оболочки. Дистрибутив подойдет для тех, кто любит работать с новыми версиями программ.
  7. CentOS — если большинство составляющих Linux бесплатные, то за этот дистрибутив необходимо заплатить. Цена объясняется повышенной стабильностью и бесплатным распространением корпоративного дистрибутива. CentOS не рассчитан для новичков и является отличным инструментом для работы с серверами.
  8. openSUSE — весьма популярная вариация. Им приятно пользоваться и новичкам, и разработчикам, потому что во всех продуктах openSUSE возможно получить исходный код для каждого бинарного пакета.

Дистрибутивы Linux можно разделить по направлениям использования. Например, для творчества стоит обратить внимание на Fedora Design Suite, Ubuntu Studio, KXStudio и Iro. А если компьютер используется для обучения, то хорошим выбором станут дистрибутивы Edubuntu и Uberstudent.

Источник

Насколько современные Линуксы отличаются друг от друга

Более 15 лет я работаю в компании Fast Reports и по роду своей деятельности мне часто приходится иметь дело с Linux, ведя поддержку одного из продуктов. С Linux я знаком несколько дольше — впервые установил Slackware в 1997 году. Соответственно, обладая некоторым опытом, хочу поделиться с вами мнением, чем, на мой взгляд, современные дистрибутивы Linux отличаются друг от друга. Всё описанное в статье является субъективным мнением и не претендует на абсолютную истину.

Операционная система Линукс ведёт свою историю с 1991 года, когда финский студент Линус Торвальдс, начал разработку новой операционной системы, вдохновлённый идеями Unix и Minix. Удачный выбор свободной лицензии предопределил успех его начинания — к разработке подключились десятки и сотни энтузиастов, каждый из которых привнёс что-то новое. Впоследствии к разработке подключились крупные компании — Intel, IBM и другие. Точные причины, побудившие лидеров отрасли к поддержке свободной ОС мне не известны, но «злые языки» поговаривают что многие компании решили подвинуть Microsoft, занимающую в то время абсолютную монополию в операционных системах для настольных компьютеров.

Эволюция ядра Линукс, выраженная в количестве строк

Смог бы Линукс без поддержки мэтров индустрии стать тем, чем он есть сейчас? Далеко не факт – старожилы помнят патентые войны между Santa Cruz Operation и компаниями, поддерживающими Linux. Компания SCO проиграла эту войну и больше её не существует.

Количество коммитов в ядро в разрезе компаний

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

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

Читайте также:  Windows starter облегченная версия

Линуксы с точки зрения системного администратора

На заре своего развития Линукс был уделом техногиков и техножрецов, обладающих специфическими знаниями программирования и администрирования. Предтечей Линукса была операционная система Unix и специалист, имевший опыт администрирования Unix, мог без труда установить и сконфигировать систему. Обычному среднестатистическому пользователю это было недоступно и процесс администрирования для него был чем-то сродни магии. Современные Линуксы стали дружественны пользователю — процесс установки сводится к ответу на несколько вопросов, а зачастую достаточно просто согласиться с предлагаемым установщиком вариантом конфигурации, просто положительно ответив на все вопросы — установщик сам проанализирует конфигурацию оборудования и подберёт необходимые драйвера и параметры конфигурации. Обычно дистрибутив содержит готовые к работе пакеты программ, поставляемые в виде DEB или RPM архивов, содержащих помимо самих программ скрипты конфигурации и информацию о зависимостях от сторонних библиотек. Однако, бывают и исключения, например, дистрибутив Gentoo поставляется в виде исходного когда всех программ и правил сборки, а сама операционная система буквально собирается на компьютере пользователя под его конфигурацию процессора. Вопрос эффективности такого метода спорный, мы не будем углубляться в него, замечу лишь что это лишь одна из степеней декларируемой сообществом свободы — пользователь волен сам выбирать «стоит ли овчинка выделки». В целом же форматы пакетов RPM и DEB похожи и при выборе дистрибутива можно не рассматривать этот момент. За редким исключением — иногда бывает так, что автор программы по какой-то причине не предусмотрел второй вариант инсталлятора и она существует только в RPM (RedHat Linux и производные от него дистрибутивы) или DEB (Debian Linux и его производные) формате. В этом случае вам могут потребоваться усилия по установке такой программы — даже вручную распаковав установочный пакет, можно наткнуться на неудовлетворённые зависимости. Установка такой программы потребует больших усилий, а в случае ошибки, пытаясь подменить требуемые библиотеки, можно привести к краху системы. К счастью, такая ситуация исключительно редка и 99,9% пользователей Линукс никогда не столкнуться с этой проблемой. Более того — все известные производители дистрибутивов держат свои репозитории с богатым набором программ, где каждая программа собрана и протестирована под конкретную версию дистрибутива.

Итак, мы знаем что одно из отличий Линуксов это формат пакетов. Однако, с точки зрения администратора системы существует ещё одно различие — формат стартовых скриптов. Из семейства операционных систем Unix в Linux пришли два конкурирующих формата — System V style и BSD style. Чтобы понять о чём речь, посмотрим как это работает. Стартовый загрузчик загружает ядро ОС и передаёт ему управление, ядро стартует и запускает первый процесс — init. Строго говоря, вместо init можно подсунуть любой процесс, например, bash. В этом случае мы получим нечто вроде однопользовательской однозадачной консольной системы без сети и графического интерфейса и с корневой файловой системой, доступной только для чтения. Более того, часть оборудования в этом случае может не работать, если драйвера для него не присутствуют в ядре, а загружаются в виде модулей. В классическом же режиме работы процесс init читает файл /etc/inittab и в соответствии с ним начинает процесс старта системы — монтирует разделы, подгружает драйвера, инициализирует сетевые интерфейсы, стартует сервисные программы (которые ранее называли демонами), загружает графическую подсистему. Делает это init не напрямую, а используя понятие runlevel и специальные скрипты. Обычно существует до шести runlevel — режимов исполнения, которые описывают режимы работы системы — стартовый, однопользовательский, многопользовательский с сетевой подсистемой, многопользовательский с графическим интерфейсом. В зависимости от условий применения администратор может задать стандартный runlevel, в который перейдёт система после загрузки, обычно это многопользовательский режим с сетью и графическим интерфейсом для десктопа и многопользовательский режим с сетью для серверов. Именно в этих скриптах и заключено отличие между SystemV и BSD стилями. Однако, обладая знаниями о формате inittab, можно посмотреть содержимое скриптов и понять как работают процедуры старта, останова и перехода между runlevels системы.

В 2010 году инженеры из RedHat разработали замену init — сервис systemd. Этот сервис привнёс новые возможности в систему:

  • сокет-активация служб (заменяет дополняет inetd);
  • запуск сервисов по расписанию (заменяет дополняет cron);
  • работа с аппаратным сторожевым таймером (заменяет watchdog);
  • смена корня (заменяет chroot);
  • автомонтирование томов и сетевых ресурсов (заменяет дополняет mount и fstab);
  • journalctl — сервис логирования;
  • systemd-analyze — анализ запуска сервисов(включает в себя скорость загрузки(как системы, так и отдельных сервисов), отрисовку старта сервисов и др.);
  • systemd-boot — UEFI загрузчик (замена grub и lilo).

В настоящее время подавляющие большинство дистрибутивов Linux перешли на systemd, из некогда популярных дистрибутивов только Slackware сопротивляется переходу на новую подсистему.

Таким образом переход на systemd как бы стирает одно из различий Линукс — систему стартовых скриптов и приводит к унификации. При этом сохраняется поддержка классических стартовых скриптов — например, часть томов для монтирования может быть указана классически через /etc/fstab, а другие тома могут быть монтированы средствами systemd.

В прошлом системные администраторы любили спорить какая же система лучше SystemV или BSD, однако сейчас споры поутихли. Опытный сисадмин сможет сконфигурировать любую систему, для новичков же в Сети достаточно информации, раскрывающей любой аспект конфигурации Linux.

Линуксы c точки зрения пользователя

С точки зрения конечного пользователя линуксы различаются несколько сильнее. Заглянем вглубь вопроса. Изначально графическая подсистема в Unix была необязательна. Зачастую Unix работал на мощных компьютерах, а пользователи подключались к нему посредством Икс-терминалов. Взаимодействие происходило по сети – программа выполнялась на хост-компьютере, принимала информацию о нажатии на клавиатуру и событиях мыши, а в ответ посылал терминалу команды для отрисовки графических примитивов и текста. Графические терминалы были дорогими и редкими устройствами, поэтому в качестве терминалов стали популярны персональные компьютеры. Здесь, кстати, интересный момент, который зачастую вызывает недопонимание — Икс-сервер выполняется на терминале, а не на хосте. На хосте выполняется сама программа, которая использует библиотеку xlib, предоставляющую базовый низкоуровневый интерфейс для работы с графическим сервером. Этот интерфейс достаточно низкоуровневый, он вводит понятие окна, т.е. прямоугольной области экрана, умеет выводить векторный текст различными шрифтами, а так же обеспечивает отрисовку различных графических примитивов – точки, линии, прямоугольники, окружности и картинки.

Читайте также:  Как изменить оценку windows

Поскольку базовые графические примитивы довольно просты, это привело к появлению библиотек виджетов – эти библиотеки предоставляют более высокий уровень абстракции и значительно упрощают написание программ с графическим интерфейсом. Например, библиотека X Athena Widgets стала частью графической системы X Window System. Эта библиотека вводит понятие кнопок, радиокнопок, меню, полей ввода и подобных примитивов. Однако по современным меркам выглядит это довольно «вырвиглазно».

И вот собственно тут начинаются отличия для пользователей. Внешний вид того, что пользователь видит на экране, зависит от нескольких подсистем – это среда рабочего стола (Desktop Environment) обеспечивающая пространство, называемое рабочим столом, это оконный менеджер, определяющий внешний вид окон программы (декорации окна) и зачастую, но не обязательно, интегрированный в среду рабочего стола, и наконец, это библиотека элементов интерфейса. Что и как видит пользователь на экране определяется сочетаниями вышеназванных компонентов.

На практике это приводит к тому, что одна и та же программа запущенная в различных оконных менеджерах может иметь разные декорации окон – разные заголовки, размеры границ окон, разные кнопки сворачивания, раскрытия в полный экран и закрытия. Всё это определяет оконный менеджер. Вместе тем, в пределах одного оконного менеджера, различные программы могут иметь различный вид элементов интерфейса, в зависимости от используемой библиотеки. Справедливости ради нужно заметить, что подобное разнообразие вы могли наблюдать и в Windows, но значительно значительно реже, поскольку подавляющее большинство Windows программ используют стандартный GDI+ или обвзяку вокруг него.

С чем же столкнётся пользователь Linux на рабочем столе? Прежде всего это GNOME или KDE, большая часть дистрибутивов основана именно на этих средах рабочего стола. Однако ими не ограничиваются и различные вендоры Linux предлагают около десятка различных сред. Что касается библиотек элементов интерфейса, то здесь лидируют две библиотеки – GTK и Qt. Обе библиотеки кроссплатформенные и если какая-либо программа существует и под Linux, и под Windows, то с большой вероятностью она написана с использование GTK или Qt. Однако есть и исключения, например, компания Xamarin создала версию библиотеки Windows Forms для Linux и macOS. Так же иногда разработчики оконных менеджеров распространяют свои библиотеки виджетов. Таким образом становится понятно откуда такое разнообразие графических пользовательских интерфейсов под Linux.

Линуксы с точки зрения прикладных программистов

Всё вышесказанное относится так же и к программированию. Если вы пишете сервер или консольную утилиту, то в подавляющем большинстве случаев вам не придётся использовать директивы условной компиляции – современный Линукс достаточно хорошо стандартизирован и полностью совместим со стандартом POSIX. Более того, использование autoconf позволяет писать программы не только для Linux, но и для любой POSIX совместимой системы, начиная от BSD и заканчивая всяческой экзотикой.

Вам, скорее всего, не придётся выбирать формат пакетов – используйте оба DEB и RPM, и вы покроете практически все случаи использования. Для сервисных программ наверняка придётся обратить внимание на формат стартовых скриптов, чтобы инсталлятор правильно прописал автозапуск вашего сервиса. В моём случае пришлось обратить внимание на расположение шрифтов, поскольку различные вендоры используют различные пути для хранения шрифтов, однако, тут вам поможет рекурсивный поиск начиная с /usr/share/fonts – все шрифты, за исключением пользовательских, будут находиться по этому пути. Что касается пользовательских шрифтов, которые устанавливаются в /home/user, то здесь замечен некоторый «разброд и шатание» и разные вендоры предлагают как минимум две иерархии —

Для графических программ сложностей несколько больше. В виду зоопарка различных сред рабочего стола, необходимо учитывать их особенности. Например, так называемые desktop notifications будут поддерживаться большинством сред рабочего стола, но могут не работать с какими-то экзотическими оконными менеджерами.

Наконец, ещё несколько важных моментов, которые вносят существенные различия между дистрибутивами. Несмотря на похожесть всех современных линуксов вы можете столкнуться с проблемами на дистрибутивах с повышенной защитой, т.е. теми, где используется мандатная система доступа. Например, какой-либо ресурс по умолчанию доступен во всех классических дистрибутивах, но вызовет ошибку доступа в защищённой версии Линукс. Заранее предугадать, где и как откажет программа в данном случае невозможно, поэтому единственным решением является тестирование на защищённых дистрибутивах. Или оперативное исправление проблемы после обращения пользователя в техподдержку.

Второй момент — это популярность дистрибутива. Если в составе продукта вы используете какую-то не очень распространённую библиотеку или фреймворк, то возможна ситуация что в таком дистрибутиве будет старая или неполная версия этой библиотеки. В моей практике такая ситуация случалась в одном из дистрибутивов с поддержкой кодовой страницы 1251 в библиотеке System.Text.Encoding для C#. Бороться с такими проблемами можно только одним способом — поскольку проблема в других дистрибутивах Linux не наблюдается, то следует написать в техподдержку разработчику этого дистрибутива, подробно описав проблему и сказать что в других дистрибутивах проблемы нет.

Вывод. Если не рассматривать защищённые версии Linux, то с точки зрения системных администраторов и программистов современные дистрибутивы очень похожи. Зачастую различия между различными поколениями дистрибутива у одного вендора более весомые, чем различия между современными дистрибутивами. С точки зрения пользователей основное различие в выборе и настройке среды рабочего стола и поставляемого в дистрибутиве программного обеспечения.

Источник

Оцените статью