Linux

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 17:07, 24 августа 2017.
Linux
Tux the penguin
Tux the penguin, mascot of Linux[1]
Разработчик Community
Написанный на C и ассамблер
OS линейка Unix-подобные ОС
Рабочее состояние Текущее
Исходный код В основном с открытым исходным кодом, проприетарное программное обеспечение также доступно
Начальная версия 5 October 1991 года; 26 years ago (1991-10-05)
Целевой маркетинг Персональные компьютеры, мобильные устройства, встраиваемые устройства, серверы, мейнфреймы, суперкомпьютеры
Доступно в Многоязычный
Платформы DEC Alpha,
ARC,
ARM,
AVR32,
Blackfin, C6x,
ETRAX CRIS,
FR-V, H8 Family,
Hexagon,
Itanium,
M32R,
m68k, META,
MicroBlaze,
MIPS,
MN103,
Nios II, OpenRISC,
PA-RISC,
PowerPC,
IBM ESA/390, S+core, SuperH, SPARC, TILE64,
Unicore,
x86, Tensilica
Ядро (тип) Монолитное (Linux kernel)
Пользовательское
пространство
GNU и другие[lower-alpha 1]
По умолчанию
пользовательский
интерфейс
Many
Лицензия GPLv2[7] и другие бесплатные и с открытым кодом лицензии, за исключением товарного знака "Linux"[lower-alpha 2]
Официальный веб-сайт

LINUX - операционная система, созданная в октябре 1991 года студентом университета Хельсинки Линусом Торвальдсом. Linux - это общее название Unix-подобных операционных систем, основанных на одноимённом ядре. В нем реализована поддержка многозадачности, многопользовательского режима, управления устройствами, памятью и выполнением приложений. Операционная система - программное обеспечение, которое управляет всеми аппаратными ресурсами, связанными с настольным компьютером или ноутбуком. Проще говоря - операционная система управляет связью между программным обеспечением и оборудованием. Без операционной системы программное обеспечение не будет функционировать. Операционные системы на основе ядра Linux с использованием большой части userland-окружения и тулчейна проекта GNU называют «Linux» или «GNU/Linux» [9].

Что такое Linux

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

подпись

На этом рисунке показаны ключевые принципы. Внизу стека (абстрактный тип данных, представляющий собой список элементов, организованных по принципу «последним пришёл — первым вышел») Linux находится архитектурно-зависимый код, обеспечивающий работу Linux на большом количестве аппаратных платформ (ARM, PowerPC, Tilera TILE и др.). Конечно, эта функциональность поддерживается GNU – инструментарием, обеспечивающим переносимость Linux. Что касается переносимости, то здесь Linux на голову выше других систем. Подсистема драйверов, обладающая огромными возможностями, поддерживает динамически загружаемые модули без потерь в производительности, обеспечивая модульность (в дополнение к повышенной динамичности платформы). Кроме того Linux обладает защитой на уровне ядра (в ряде схем), обеспечивающей защищенность платформы. Linux поддерживает наибольшее количество файловых систем любых ОС, что дает гибкость, обеспечиваемую модульным принципом проектирования. В Linux реализованы не только стандартные возможности планирования загрузки процессора, но и диспетчеризация в реальном времени (включая гарантированные задержки обработки прерываний). Наконец, Linux – это открытая платформа, т.е. ее исходный код доступен для просмотра и изменения практически каждому. Открытость Linux минимизирует возможность внедрения вредоносного кода, повышая, таким образом, ее безопасность. Многие компании вносят свой вклад в разработку Linux, благодаря чему можно быть уверенным, что эта платформа будет продолжать использоваться в самых различных решениях, сохраняя при этом свои ключевые особенности.

Свойства ядра Linux

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

Составные части операционной системы

  • Загрузчик: Программное обеспечение , которое управляет процессом загрузки компьютера. Для большинства пользователей это будет просто заставка , которая всплывает при загрузке операционной системы.
  • Ядро: Это одна часть целого, на самом деле называется "Linux". Ядро управляет CPU (central processing unit), памятью и периферийными устройствами.
  • Демоны: Это справочные услуги (печать, звук, планирование и т.д.), либо запуск во время загрузки или после входа в рабочий стол.
  • Shell: Командная строка Linux. Это оболочка - процесс команды , которая позволяет управлять компьютером с помощью команд, введенных в текстовый интерфейс.
  • Графический сервер: Это подсистема, которая отображает графику на мониторе. Обычно называют как X - сервер или просто "X".
  • Desktop Environment: Это разновидность графических интерфейсов пользователя, основанная на метафоре рабочего стола.
  • Область применения: Среда рабочего стола не предлагают полный спектр приложений. Так же , как и Windows , Mac, Linux предлагает тысячи и тысячи наименований программного обеспечения высокого качества, которые могут быть легко найдены и установлены. Большинство современных дистрибутивов Linux включают в App Store, как инструменты, которые упрощают установку приложений. Например: Ubuntu Linux имеет Ubuntu Software Center, который позволяет быстро выполнять поиск среди тысяч приложений и установить их из одного централизованного места [10].
подпись

Особенности Linux

Linux, как широко используемая на практике операционная система с открытым исходным кодом, является отличной испытательной площадкой для новых протоколов и их усовершенствований. Linux поддерживает большое количество сетевых протоколов, включая традиционный TCP/IP и его высокоскоростные расширения (для сетей быстрее Gigabit Ethernet [GbE] и 10 GbE). Linux также поддерживает такие протоколы, как SCTP (Stream Control Transmission Protocol), реализующий множество дополнительных функций, отсутствующих в TCP (применяется в качестве альтернативного протокола транспортного уровня). Ядро Linux является динамическим (поддерживает добавление и удаление программных компонентов без остановки системы). Эти компоненты называются динамически загружаемыми модулями ядра. Их можно вводить в систему при необходимости, как во время загрузки (если найдено конкретное устройство, для которого требуется такой модуль), так и в любое время по желанию пользователя. Еще одно недавнее усовершенствование Linux - возможность ее использования в качестве операционной системы для других операционных систем (т.н. гипервизора). Недавно в ядро было внесено усовершенствование, получившее название Kernel-based Virtual Machine (KVM, виртуальная машина на базе ядра). В результате этой модификации в пространстве пользователя был реализован новый интерфейс, позволяющий исполнять поверх ядра с поддержкой KVM другие операционные системы. Единственное ограничение состоит в том, что используемый процессор должен поддерживать новые инструкции виртуализации.

Необходимо знать, что нечетные номера версий (2.3, 2.5, 2.7 и т.д.) присваиваются экспериментальным ядрам, находящимся в разработке. Стабильные выпущенные ядра всегда имеют четные номера версий (2.4, 2.6, 2.8 и т.д.).

Также, характерными особенностями Linux как ОС являются следующие параметры:

  • многозадачность: много программ выполняются одновременно;
  • многопользовательский режим: много пользователей одновременно работают на одной и той же машине;
  • защищенный режим процессора (386 protected mode);
  • защита памяти процесса;
  • сбой программы не может вызвать зависания системы;
  • экономная загрузка: Linux считывает с диска только те части программы, которые действительно используются для выполнения;
  • разделение страниц по записи между экземплярами выполняемой программы. Это значит, что процессы-экземпляры программы могут использовать при выполнении одну и ту же память. Когда такой процесс пытается произвести запись в память, то 4-x килобайтная страница, в которую идет запись, копируется на свободное место. Это свойство увеличивает быстродействие и экономит память;
  • виртуальная память со страничной организацией (т.е. на диск из памяти вытесняется не весь неактивный процесс, а только требуемая страница); виртуальная память в самостоятельных разделах диска и/или файлах файловой системы; объем виртуальной памяти до 2 Гбайт; изменение размера виртуальной памяти во время выполнения программ; - общая память программ и дискового кэша: вся свободная память используется для буферизации обмена с диском;
  • динамические загружаемые разделяемые библиотеки;
  • дамп программы для пост-мортем анализа: позволяет анализировать отладчиком не только выполняющуюся, но и завершившуюся аварийно программу;
  • сертификация по стандарту POSIX.1, совместимость со стандартами System V и BSD на уровне исходных текстов;
  • через iBCS2-согласованный эмулятор совместимость с SCO, SVR3, SVR4 по загружаемым программам;
  • наличие исходного текста всех программ, включая тексты ядра, драйверов, средств разработки и приложений. Эти тексты свободно распространяются. В настоящее время некоторыми фирмами для Linux поставляется ряд коммерческих программ без исходных текстов, но все, что было свободным так и остается свободным;
  • управление заданиями в стандарте POSIX (Portable Operating System Interface for Unix);
  • эмуляция сопроцессора в ядре, поэтому приложение может не заботиться об эмуляции сопроцессора. Конечно, если сопроцессор в наличии, то он и используется;
  • поддержка национальных алфавитов и соглашений, в т.ч. для русского языка; возможность добавлять новые;
  • множественные виртуальные консоли: на одном дисплее несколько одновременных независимых сеансов работы, переключаемых с клавиатуры;
  • поддержка ряда распространенных файловых систем (MINIX, Xenix, файловые системы System V); наличие собственной передовой файловой системы объемом до 4 Терабайт и с именами файлов до 255 знаков;
  • прозрачный доступ к разделам DOS (или OS/2 FAT): раздел DOS выглядит как часть файловой системы Linux; поддержка VFAT (WNT, Windows 95);
  • специальная файловая система UMSDOS, которая позволяет устанавливать Linux в файловую систему DOS;
  • доступ (только чтение) к файловой системе HPFS-2 OS/2 2.1;
  • поддержка всех стандартных форматов CD ROM;
  • поддержка сети TCP/IP, включая ftp, telnet, NFS и т.д [11].

Достоинства

  • Бесплатность: При установке Linux открываются возможности получения набора из тысяч бесплатных программ, которые абсолютно функциональны.
  • Надежность: Корректная работа аппаратной части ПК, позволит Linux’у работать годы без перезагрузки и зависаний. А кнопка Reset вообще никогда не понадобится.
  • Безопасность: В Linux практически нет вирусов. Само построение операционной системы исключает работу вредоносных программ. И поэтому можно обойтись без антивирусных программ, замедляющих работу компьютера. Нет необходимости постоянно обновлять антивирусные базы и проверять жесткий диск на вирусы.
  • Открытый исходный код: Это дает возможность использовать и модифицировать код по своему желанию. Можно в любой момент исправить какие-нибудь ошибки или недочёты системы, а также расширить её функциональность, путём написания дополнений или программ, работающих под ее управлением.

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

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

Linux имеет несколько различных версий, чтобы удовлетворить почти любой тип пользователя. В Linux каждый пользователь может удовлетворить свои потребности, выбирая необходимое распределение ("дистрибутивы"). Почти каждое распределение Linux можно скачать бесплатно, записать на диск и установить. Дистрибутив — это не просто набор программ, а ряд решений для разных задач пользователей, объединённых едиными системами установки, управления и обновления пакетов, настройки и поддержки.

Самые популярные дистрибутивы:

  • Ubuntu - ориентирован на лёгкость в освоении и использовании.
  • openSUSE - бесплатно распространяемая версия дистрибутива SuSE, принадлежащая компании Novell. Отличается удобством в настройке и обслуживании благодаря использованию утилиты YaST.
  • Fedora - поддерживается сообществом и корпорацией RedHat, предшествует выпускам коммерческой версии RHEL.
  • Debian - международный дистрибутив, разрабатываемый обширным сообществом разработчиков в некоммерческих целях. Послужил основой для создания множества других дистрибутивов. Отличается строгим подходом к включению несвободного ПО.
  • Mandriva - французско-бразильский дистрибутив, объединение бывших Mandrake и Conectiva.
  • Mageia — дистрибутив Linux, основанный на Mandriva Linux бывшими сотрудниками компании Mandriva, разрабатываемый в цикле, составляющем 9 месяцев.
  • Slackware - один из старейших дистрибутивов, отличается консервативным подходом в разработке и использовании.
  • Gentoo - дистрибутив, собираемый из исходных кодов. Позволяет очень гибко настраивать конечную систему и оптимизировать производительность, поэтому часто называет себя мета-дистрибутивом. Ориентирован на экспертов и опытных пользователей.
  • Arch Linux - ориентирован на применение самых последних версий программ, постоянно обновляется, поддерживает одинаково как бинарную, так и установку из исходных кодов и «KISS» («Keep it simple, stupid» / «Не усложняй»).
  • Linux Mint — дистрибутивы, основанные как на Ubuntu, так и на Debian (LMDE) и полностью с ними совместимые, включающие в себя по умолчанию Java, Adobe Flash и многое другое.
  • CentOS (Community ENTerprise Operating System)|CentOS — дистрибутив, основанный на свободных исходных текстах коммерческого дистрибутива Red Hat Enterprise Linux компании Red Hat, и совместимый с ним. Срок поддержки каждой версии CentOS составляет 7 лет (с помощью выпуска обновлений безопасности). Новая версия CentOS выходит раз в 2 года и каждая версия регулярно обновляется (каждые 6 месяцев) для поддержки новых аппаратных средств. В результате это приводит к безопасной, легко обслуживаемой, надёжной, предсказуемой и масштабируемой Linux среде.
  • PCLinuxOS — LiveCD дистрибутив с возможностью установки операционной системы на жёсткий диск. Основанный изначально на Mandrake 9.2, PCLinuxOS придерживается собственного пути развития.

Помимо перечисленных, существует множество других дистрибутивов, как базирующихся на перечисленных, так и созданных с нуля и зачастую предназначенных для выполнения ограниченного количества задач [12].

Область применения

Linux прекрасно работает на обычных домашних и рабочих компьютерах и серверах, также существуют адаптации Linux к большинству современных процессоров, что позволяет использовать системы с ядром Linux в сетевом оборудовании, домашней «умной» технике, роботах, мобильных телефонах, различных портативных устройствах и другом оборудовании, поддерживающем программируемые операции. В конечном счёте столь широкий круг поддерживаемых устройств означает превосходную переносимость программ. Например, одно и то же приложение зачастую можно запустить с минимальными усилиями и на обычном компьютере, и на мобильном телефоне на базе Linux. Для примера: Windows и её младший брат Windows Mobile являются полностью несовместимыми платформами.

Установка Linux в VirtualBox

Установка операционной системы Linux не представляет собой сложную задачу. Linux предлагает одну из самых простых установок.
Иллюстрировать установку я буду на примере Ubuntu, пожалуй, самом известном дистрибутиве Linux. При старте пользователю дается выбор "Запустить" или "Установить" операционную систему. Если выбрать "Запустить Ubuntu", то система будет загружена в Live-режиме, т.е. без внесения изменений на жесткий диск компьютера и можно будет "пощупать" Ubuntu и решить есть ли желание использовать его в дальнейшем. В случае с выбором "Установить Ubuntu", происходит непосредственная установка.

На сайте http://ubuntu.ru/get мною был скачан образ оптического диска "Ubuntu Desktop 16.04 (32 bit)". Далее, открываю VirtualBox, и при первом запуске VirtualBox отображается основное окно программы с приветствием и активированной кнопкой "Создать" для создания новой виртуальной машины:

подпись

При создании новой виртуальной машины определяются следующие параметры:

  • имя виртуальной машины. В соответствии с ним будет создан каталог с файлами виртуальной машины.
  • тип операционной системы, которая будет установлена на виртуальной машине. В данном случае - Linux
  • версия ОС. В данном случае, Ubuntu.
подпись

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

подпись

Тип файла, определяющий формат, желаемый использовать при создании нового жесткого диска, я оставлю без изменений VDI.

подпись

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

подпись

Затем указываются имя и размер файла. Имя я задам "Ubuntu", а размер оставлю по умолчанию 8,00 Гб.

подпись

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

подпись

В настройках в пункте "Носители" выбираю образ оптического диска "ubuntu-16.04-desktop-i386", нажимаю "Ок" и запускаю виртуальную машину.

подпись

Далее на экране появляется окно приветствия, где нужно выбрать язык. Почти все дальнейший действия будут переведены на него. Кроме того, на этом этапе предоставляется выбор "Запустить" или "Установить" Ubuntu.

подпись

Для начала выберем "Запустить Ubuntu". Открывается рабочий стол Ubuntu 16.04. После знакомства с Ubuntu, можно перейти к непосредственной установке. На рабочем столе расположен значок с наименованием "установить Ubuntu 16.04 LTS".

подпись

В шаге "Подготовка к установке Ubuntu", активирую оба пункта: Загрузить обновления при установке и Установить стороннее программное обеспечение, и жму на кнопку "Продолжить".

подпись

Следующий шаг это разметка диска. Можно просто отформатировать весь винчестер и установить на него Ubuntu, но мной будет рассмотрен ручной вариант, поэтому я устанавливаю переключатель в положение "Другой вариант" и жму кнопку "Продолжить"

подпись

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

подпись

Далее на экран будет выведено сообщение с вопросом "Записать изменения на диск?". Проверив всё ли правильно, жму кнопку "Продолжить". Затем выбираю часовой пояс, место нахождения, ввожу имя пользователя, имя компьютера и пароль

подпись

После этого происходит установка Ubuntu. Дожидаюсь её завершения. Следующий шаг - перезагрузка компьютера и вход в систему путем ввода пароля, указанного во время установки

подпись

Готово. Система установлена и готова к использованию.

подпись

Теперь можно начать пользоваться операционной системой, к примеру, загрузить браузер, установить дополнительное программное обеспечение, поиграть с настройками оформления или просто пользоваться рабочим столом.

Примечания

Ссылки

  1. GNU is the primary userland used in nearly all Linux distros.[2][3][4] The GNU userland contains system daemons, user applications, the GUI, and various libraries. GNU Core utilities are an essential part of most distros. Most Linux distributions use the X Window system.[5] Other components of the userland, such as the widget toolkit, vary with the specific distribution, desktop environment, and user configuration.[6]
  2. "Linux" trademark is owned by Linus Torvalds[8] and administered by the Linux Mark Institute.