Linux с открытым исходным кодом 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Linux с открытым исходным кодом



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

Развитие Linux тесно связано с появлением программного обеспечения с открытым исходным кодом. Открытый исходный код рассматривает программное обеспечение, ориентированное на исходный код. Философия открытого исходного кода заключается в том, что вы имеете право получить исходный код программного обеспечения и изменить его для собственного использования.

Linux с большим успехом перенял эту философию. Линус сделал исходный программный код (инструкции, которые использует компьютер для работы) в свободном доступе, что позволило другим присоединиться к этой молодой операционной системе и сформировать ее. Это не первая система, разработанная группой добровольцев, но, поскольку она создавалась с нуля, первые последователи могли влиять на направление проекта. Люди брали исходный код, вносили изменения и делились ими с остальной группой, значительно ускоряя темпы разработки и гарантируя, что ошибки из других операционных систем не повторяются.

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

Дистрибутивы Linux

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

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

Как и в UNIX, существуют дистрибутивы, подходящие для всех мыслимых целей. Существуют дистрибутивы, ориентированные на работу серверов, настольных компьютеров или даже отраслевых инструментов, таких как проектирование электроники или статистические вычисления. Основные игроки рынка восходят к Red Hat, Debian или Slackware. Наиболее заметное различие между Red Hat и производными Debian - это менеджер пакетов, хотя есть и другие отличия во всем, от расположения файлов до политических взглядов.

Командная строка Linux

Доступны два основных типа интерфейсов, которые позволяют вам взаимодействовать с операционной системой. Типичный пользователь компьютера сегодня больше всего знаком с графическим интерфейсом пользователя (GUI). В графическом интерфейсе приложения представлены в окнах, размер которых можно изменять и перемещать. Есть меню и инструменты, помогающие пользователям ориентироваться. Графические приложения включают в себя веб-браузеры, инструменты для редактирования графики и электронную почту, чтобы назвать некоторые из них.

Ниже приведен пример графического рабочего стола с полосой меню популярных приложений слева, документом LibreOffice, редактируемым на переднем плане, и веб-браузером в фоновом режиме.

Второй тип интерфейса - это интерфейс командной строки (CLI), текстовый интерфейс для компьютера. CLI в основном полагается на ввод с клавиатуры. Все, что пользователь хочет, чтобы компьютер делал, передается путем ввода команд, а не нажатия на значки. Можно сказать, что, когда пользователь щелкает значок, компьютер говорит пользователю, что делать, но, когда пользователь вводит команду, он сообщает компьютеру, что делать.

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

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

Более того, изучая интерфейс командной строки, пользователь может легко работать практически мгновенно с ЛЮБЫМ дистрибутивом Linux, сокращая время, необходимое для ознакомления с системой из-за вариаций графического интерфейса.

Ядро ОС Linux

Linux - монолитное (большое) ядро операционной системы. Оно включает в себя все необходимые для работы системы драйверы (графические X11 и звуковые ALSA в т.ч.) и функционирует логически целостно. Однако, Linux так же поддерживает и динамическое, "горячее", подключение внешних модулей для поддержки оборудования, в виде которых и распространяются, например, закрытые (проприетарные) драйверы для видеокарт NVidia и AMD/ATI.

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

Достоинства: Скорость работы, упрощённая разработка модулей.

Недостатки: Поскольку всё ядро работает в одном адресном пространстве, сбой в одном из компонентов может нарушить работоспособность всей системы.

Примеры: Традиционные ядра UNIX (такие как BSD), Linux; ядро MS-DOS, ядро KolibriOS.

Некоторые старые монолитные ядра, в особенности систем класса UNIX/Linux, требовали перекомпиляции при любом изменении состава оборудования. Большинство современных ядер позволяют во время работы подгружать модули, выполняющие часть функций ядра. В этом случае компоненты операционной системы являются не самостоятельными модулями, а составными частями одной большой программы, называемой монолитным ядром (monolithic kernel), которое представляет собой набор процедур, каждая из которых может вызвать каждую. Все процедуры работают в привилегированном режиме.

Модульное ядро — современная, усовершенствованная модификация архитектуры монолитных ядер операционных систем.

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

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

Достоинства: Устойчивость к сбоям оборудования, ошибкам в компонентах системы. Основное достоинство микроядерной архитектуры — высокая степень модульности ядра операционной системы. Это существенно упрощает добавление в него новых компонентов.

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

Микроядерная архитектура повышает надежность системы, поскольку ошибка на уровне непривилегированной программы менее опасна, чем отказ на уровне режима ядра.

Недостатки: Передача данных между процессами требует накладных расходов.

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

Сервисные процессы (в принятой в семействе UNIX терминологии — «демоны») активно используются в самых различных ОС для задач типа запуска программ по расписанию (UNIX и Windows NT), ведения журналов событий (UNIX и Windows NT), централизованной проверки паролей и хранения пароля текущего интерактивного пользователя в специально ограниченной области памяти (Windows NT). Тем не менее, не следует считать ОС микроядерными только из-за использований такой архитектуры.

Примеры: Symbian OS; Windows CE; OpenVMS; Mach, используемый в GNU/Hurd и Mac OS X; QNX; AIX; Minix; ChorusOS; AmigaOS; MorphOS.

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

Возможность доступа к устройствам на уровне контроллеров позволит эффективней решать некоторые задачи, которые плохо вписываются в рамки универсальной ОС, например, реализация СУБД будет иметь доступ к диску на уровне секторов диска, а не файлов и кластеров, что положительно скажется на быстродействии.

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

Гибридные ядра — это модифицированные микроядра, позволяющие для ускорения работы запускать «несущественные» части в пространстве ядра. Пример: ядра ОС Windows семейства NT.


 

Лекция №1.2. Виды и выбор дистрибутива для клиента/сервера. Требования к оборудованию

Цель: изучить виды дистрибутивов и научиться подпирать необходимый под заданные условия и задачи

Red Hat начиналась как простой дистрибутив, который представил Red Hat Package Manager (RPM). В конечном итоге разработчик сформировал вокруг него компанию, которая попыталась коммерциализировать рабочий стол Linux для бизнеса. Со временем Red Hat начала уделять больше внимания серверным приложениям, таким как веб- сервис и обслуживание файлов, и выпустила Red Hat Enterprise Linux (RHEL), который был платной услугой с длительным циклом выпуска. Цикл выпуска определяет, как часто обновляется программное обеспечение. Бизнес может ценить стабильность и иметь длительные циклы выпуска, в то время как любителю или стартапу может понадобиться последняя версия программного обеспечения и выбрать более короткий цикл выпуска. Чтобы удовлетворить последнюю группу, Red Hat спонсирует проект Fedora, что делает персональный рабочий стол с новейшим программным обеспечением, но по-прежнему построен на тех же принципах, что и корпоративная версия.

Поскольку все в Red Hat Enterprise Linux имеет открытый исходный код, появился проект под названием CentOS. Он перекомпилировал все пакеты RHEL (преобразовав их исходный код с языка программирования, на котором они были написаны, в язык, используемый системой) и раздал их бесплатно. CentOS и ему подобные (например, Scientific Linux) в значительной степени совместимы с RHEL и интегрируют некоторое более новое программное обеспечение, но не предлагают платную поддержку, как Red Hat.

Scientific Linux — это пример специального дистрибутива на основе Red Hat. Этот проект спонсируется Fermilab и предназначен для обеспечения научных вычислений. Помимо множества приложений, Scientific Linux используется с ускорителями частиц, включая Большой адронный коллайдер в ЦЕРНе.

SUSE, изначально производный от Slackware, был одним из первых всеобъемлющих дистрибутивов Linux, он во многом похож на Red Hat Enterprise Linux. Первоначальная компания была куплена Novell в 2003 году, а затем в 2011 году была приобретена группой Attachmate Group. Затем группа Attachmate объединилась с Micro Focus International в 2014 году, а в 2018 году SUSE объявила о планах развития в качестве независимого бизнеса. Благодаря всем слияниям и поглощениям SUSE удалось продолжить и расти.

В то время как SUSE Linux Enterprise содержит проприетарный код и продается как серверный продукт, openSUSE — это полностью открытая бесплатная версия с несколькими пакетами для настольных ПК, аналогичными CentOS и Linux Mint.

Debian — это скорее работа сообщества, и поэтому он также способствует использованию программного обеспечения с открытым исходным кодом и соблюдению стандартов. Debian разработал свою собственную систему управления пакетами, основанную на.debформате файла. В то время как Red Hat оставляет поддержку платформ, отличных от Intel и AMD, производным проектам, Debian поддерживает многие из этих платформ напрямую.

Ubuntu - самый популярный дистрибутив на основе Debian. Это продукт Canonical, компании, которая была создана для дальнейшего роста Ubuntu и зарабатывает деньги, оказывая поддержку. Ubuntu имеет несколько различных вариантов для настольных компьютеров, серверов и различных специализированных приложений. Они также предлагают версию LTS, которая обновляется в течение 3 лет на настольных компьютерах и 5 лет на серверах, что дает разработчикам и компаниям, с которыми они работают, уверенность в создании решений на основе стабильного дистрибутива.

‌⁠⁠Linux Mint был начат как ответвление Ubuntu Linux, но все еще полагался на репозитории Ubuntu. Существуют различные версии, все бесплатные, но некоторые содержат проприетарные кодеки, которые не могут распространяться без лицензионных ограничений в определенных странах.

Linux — это ядро, и многие команды, описанные в этом курсе, на самом деле являются частью пакета GNU. Вот почему некоторые люди настаивают на использовании термина GNU / Linux вместо одного только Linux.

Android, спонсируемый Google, - самый популярный в мире дистрибутив Linux. Он принципиально отличается от аналогов. Android использует виртуальную машину Dalvik с Linux, обеспечивая надежную платформу для мобильных устройств, таких как телефоны и планшеты. Однако из-за отсутствия традиционных пакетов, которые часто распространяются вместе с Linux (таких как GNU и Xorg), Android обычно несовместим с настольными дистрибутивами Linux.

Эта несовместимость означает, что пользователь Red Hat или Ubuntu не может загружать программное обеспечение из магазина Google Play. Точно так же в эмуляторе терминала в Android отсутствуют многие команды его аналогов в Linux. Однако можно использовать BusyBox с Android, чтобы большинство команд работало.

Raspbian — это специализированный дистрибутив Linux, оптимизированный для работы на оборудовании Raspberry Pi. Эта комбинация широко используется в обучении программистов и разработчиков оборудования на всех уровнях. Его низкая стоимость и простота использования сделали его фаворитом преподавателей во всем мире, и доступно множество дополнительных устройств, расширяющих его возможности в физическом мире. Доступно множество лабораторий и проектов, в которых обучают всему: от мониторинга окружающей среды до проектирования схем, машинного обучения и робототехники.

Linux From Scratch (LFS) — это больше средство обучения, чем рабочий дистрибутив. Этот проект состоит из онлайн-книги и исходного кода с «пошаговыми инструкциями» по созданию собственного дистрибутива Linux, начиная с исходного кода. Этот «дистрибутив» воплощает истинный дух Linux, благодаря которому пользователи могут изменять любой аспект операционной системы и узнавать, как все части работают вместе. Это также хорошая отправная точка для всех, кому нужны специализированные функции или сверхкомпактная сборка для проекта встраиваемой системы.

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

Выбор дистрибутива



Поделиться:


Последнее изменение этой страницы: 2021-03-09; просмотров: 366; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.58.112.1 (0.022 с.)