Linux (i/ˈlɪnəks/ [ˈlɪnəks][2][3] или [ˈlɪnʊks][4][5][6]Ли́нуксв части случаев GNU/Linux) — семейство Unix-подобных операционных систем на базе ядра Linux, включающих тот или иной набор утилит и программ проекта GNU, и, возможно, другие компоненты. Как и ядро Linux, системы на его основе как правило создаются и распространяются в соответствии с моделью разработки свободного и открытого программного обеспечения. Linux-системы распространяются в основном бесплатно в виде различных дистрибутивов — в форме, готовой для установки и удобной для сопровождения и обновлений, — и имеющих свой набор системных и прикладных компонентов, как свободных, так, возможно, и собственнических.

Появившись как решения вокруг созданного в начале 1990-х годов ядра, уже с начала 2000-х годов системы Linux являются основными для суперкомпьютеров и серверов, расширяется применение их для встраиваемых систем и мобильных устройств, некоторое распространение системы получили и для персональных компьютеров[7][8][8][9][10][11][12][13][14][15].

За счёт использования свободного программного обеспечения и привлечения волонтёров каждая из систем Linux обладает значительными программными возможностями, трудно реализуемыми в прочих моделях разработки: например, в 2008 году расчёты показывали, что для того, чтобы «с нуля» разработать систему, аналогичную Fedora 9, потребовалось бы затратить $10,8 млрд[16], а совокупная себестоимость только ядра Linux оценивалась в сумму более $1,4 млрд, притом только за 2008 год она увеличилась на $315 млн, совокупный труд оценён в размере 73 тыс. человеко-лет[17].

Семейство систем, включающих в качестве компонентов основные программы проекта GNU, такие как bashgccglibccoreutilsGNOME и ряд других, иногда идентифицируется как GNU/Linux. Так как традиционно большинство систем было именно таким, под «Linux» обычно подразумеваются именно они; притом существует спор об именовании GNU/Linux. Существует проект стандартизации внутренней структуры Linux-систем — Linux Standard Base, часть документов которого зарегистрирована в качестве стандартов ISO; но далеко не все системы сертифицируются по нему, и в целом для Linux-систем не существует какой-либо общепризнанной стандартной комплектации или формальных условий включения в семейство. Однако есть ряд систем на базе ядра Linux, но не имеющих в основе зависимости от программ GNU, которые поэтому GNU/Linux не называют, в частности, таковы мобильные системы Android и FirefoxOS.Пингвин Tux

Официальным логотипом и талисманом Linux является пингвин Tux, созданный в 1996 году Ларри Юингом[18]. Торговая марка «Linux» принадлежит создателю и основному разработчику ядра Линусу Торвальдсу. При этом проект Linux в широком смысле не принадлежит какой-либо организации или частному лицу, вклад в его развитие и распространение осуществляют тысячи независимых разработчиков и компаний, одним из инструментов взаимодействия которых являются группы пользователей Linux. Существует ряд некоммерческих объединений, ставящих основной целью развитие и продвижение Linux, наиболее крупное и влиятельное из них — основанный в 2007 году The Linux Foundation. Существует значительный рынок коммерческой технической поддержки Linux-систем, на котором с долей свыше 70 % (2017) доминирует корпорация Red Hat (поглощена IBM в 2019 году).Линус Торвальдс — создатель и основной координатор проекта по разработке ядра LinuxРичард Столлман — основатель проекта GNU

Ранняя история

В 1991 году во время обучения в Хельсинкском университете Линус Торвальдс заинтересовался операционными системами[19] и был разочарован лицензией MINIX, которая ограничивала её использование только образовательными целями (что исключало любое коммерческое использование), вследствие чего начал работать над своей собственной операционной системой, которая в итоге стала Linux.

Торвальдс начал разработку ядра Linux на MINIX, и перенёс на него ряд приложений. Позже, когда Linux достиг определённой зрелости, появилась возможность продолжать разработку уже на базе самого Linux[20]. Приложения GNU вскоре заменили приложения MINIX, так как код GNU, находящийся в свободном доступе, был более удобен для применения в молодой операционной системе (исходный код под лицензией GNU GPL может быть использован в других проектах, если они также выпускаются под той же или совместимой лицензией, для того чтобы сделать Linux доступным для коммерческого использования, Торвальдс начал переходить от своей первоначальной лицензии на GNU GPL)[21]. Разработчики работали над полной интеграцией компонентов GNU с Linux с целью создания полнофункциональной и свободной операционной системы (Linux).

Модель

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

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

Графический интерфейс пользователя (или GUI) в большинстве систем Linux построен на основе X Window System.

Интерфейс пользователя

В Linux-системах пользователи работают через интерфейс командной строки (CLI), графический интерфейс пользователя (GUI), или, в случае встраиваемых систем, через элементы управления соответствующих аппаратных средств. Настольные системы, как правило, имеют графический пользовательский интерфейс, в котором командная строка доступна через окно эмулятора терминала или в отдельной виртуальной консоли. Большинство низкоуровневых компонентов Линукс, включая пользовательские компоненты GNU, используют исключительно командную строку. Командная строка особенно хорошо подходит для автоматизации повторяющихся или отложенных задач, а также предоставляет очень простой механизм межпроцессного взаимодействия. Программа графического эмулятора терминала часто используется для доступа к командной строке с рабочего стола Linux.

Дистрибутивы, специально разработанные для серверов, могут использовать командную строку в качестве единственного интерфейса. На настольных системах наибольшей популярностью пользуются пользовательские интерфейсы, основанные на таких средах рабочего стола как KDE Plasma DesktopGNOME и Xfce[22], хотя также существует целый ряд других пользовательских интерфейсов. Самые популярные пользовательские интерфейсы основаны на X Window System, которая предоставляет прозрачность сети и позволяет графическим приложениям, работающим на одном компьютере, отображаться на другом компьютере, на котором пользователь может взаимодействовать с ними[23].

FVWMEnlightenment и Window Maker — простые менеджеры окон X Window System, которые предоставляют окружение рабочего стола с минимальной функциональностью. Оконный менеджер предоставляет средства для управления размещением и внешним видом отдельных окон приложений, а также взаимодействует с X Window System. Окружение рабочего стола включает в себя оконные менеджеры, как часть стандартной установки: Mutter для GNOME[24] c 2011 года[25]KWin для KDE c 2000 года[26]Xfwm для Xfce с 1998 года[27], хотя пользователь при желании может выбрать другой менеджер окон[23].

Реализация

Linux работает на множестве процессоров различных архитектур, таких как x86x86-64PowerPCARMAlpha AXPSPARCMotorola 680×0SuperHIBM System/390MIPSPA-RISC, AXIS CRIS, Renesas M32R, Atmel AVR32, Renesas H8/300, NEC V850, Tensilica Xtensa, «Эльбрус» и многих других.

В отличие от коммерческих систем, таких как Windows или macOS, Linux не имеет географического центра разработки. Нет и организации, которая владела бы этой системой. Linux — результат работы тысяч проектов. Некоторые из этих проектов централизованы[28][29], некоторые сосредоточены в фирмах. Многие проекты объединяют хакеров[30] со всего света, которые знакомы только по переписке. Создать свой проект или присоединиться к уже существующему может любой и, в случае успеха, результаты работы станут известны миллионам пользователей. Пользователи принимают участие в тестировании свободных программ, общаются с разработчиками напрямую, что позволяет быстро находить и исправлять ошибки и реализовывать новые возможности.История развития UNIX-систем. Linux является UNIX-совместимой, однако основывается на собственном исходном коде

С другой стороны, открытый код значительно снижает себестоимость разработки закрытых систем для Linux и позволяет снизить цену решения для пользователя, в результате Linux стала платформой, часто рекомендуемой для таких продуктов, как Oracle DatabaseDB2InformixAdaptive Server EnterpriseSAP R/3Domino.

Программирование в Linux

GNU Compiler Collection (GCC) является стандартным семейством компиляторов для большинства Linux-систем. Кроме того, GCC обеспечивает front-end для CC++Java. Большинство дистрибутивов включают в себя установленные интерпретаторы BashPerlPython и других сценарных языков.

Существует ряд сред для разработки (IDE): KDevelopEclipseNetBeansLazarusIntelliJ IDEACode::Blocks и другие; также доступны и традиционные текстовые редакторы, как Emacs и Vim.

Двумя распространёнными библиотеками визуальных элементов для создания графических интерфейсов пользователя являются Qt и GTK+.

Применение

В апреле 2011 года семейство операционных систем на базе ядра Linux — четвёртое по популярности в мире среди клиентов Всемирной паутины (включая мобильные телефоны). По разным данным, их популярность составляет от 1,5 до 5 %[31][32]. На рынке веб-серверов доля Linux порядка 32 % (64,1 % указаны как доля Unix)[33]. Linux используется во всех входящих в список Top500 суперкомпьютерах планеты[34].

По состоянию на середину 2010-х годов системы Linux лидируют на рынках серверов (60 %), являются превалирующими в дата-центрах предприятий и организаций (согласно Linux Foundation), занимают половину рынка встраиваемых систем[35], имеют значительную долю рынка нетбуков (32 % на 2009 год[36]). На рынке персональных компьютеров Linux стабильно занимает 3-е место (по разным данным, от 1 до 5 %). Согласно исследованию Goldman Sachs, в целом, рыночная доля Linux среди электронных устройств составляет около 42 %[37].

Облачные сервисы наподобие DigitalOcean предоставляют выделенные сервера разных видов Linux: UbuntuDebianFreeBSDcentOS.

Серверы, рабочие станции и суперкомпьютеры

Дистрибутивы Linux уже давно используются в качестве серверных операционных систем[38] и заняли значительную долю этого рынка; по данным компании Netcraft на февраль 2014 года, семь из десяти самых надёжных интернет-компаний, предоставляющих хостинг, используют Linux на своих веб-серверах[39].

Linux является ключевым компонентом комплекса серверного комплекта программного обеспечения LAMP (Linux, ApacheMariaDB/MySQLPerl/PHP/Python), который приобрёл популярность среди веб-разработчиков и стал одной из наиболее распространённых платформ для хостинга веб-сайтов[40].

Linux становится всё более популярными на мейнфреймах, как благодаря удобству переноса программного обеспечения, так отчасти из-за цены[41], с конца 2009 года IBM (основной производитель мейнфреймов) добавила к линейке мейнфреймов ряд систем, поддерживающих только z/Linux[en][42].

Также дистрибутивы Linux широко используются в качестве операционной системы суперкомпьютеров: по данным на ноябрь 2015, 98,8 % компьютеров из списка 500 самых мощных работали под управлением различных вариантов Linux[34]. Операционной системой самого мощного современного суперкомпьютера — Summit — является Red Hat Enterprise Linux.[43][44]

Игровые приставки

9 января 2013 года компания Valve объявила, что разрабатываемая студией ПК-консоль Steam Machine будет работать под управлением SteamOS, базирующейся на Linux[45]. Также существует возможность установки дистрибутивов Linux на некоторые игровые приставки (например, Sony PlayStation 2Sony PlayStation 3[46]Sony PlayStation 4[47]XBOX 360).[48][49][50]

Встраиваемые системы

Благодаря открытому исходному коду Linux портируется на многие аппаратные архитектуры непосредственно разработчиками оборудования или разработчиками программного обеспечения для такого оборудования, что превращает Linux Embedded в мощную платформу для встраиваемых приложений на бездисковых микропроцессорных платформах с ограниченными ресурсами памяти, которые находят применение в системах автоматики, модулях сетевого оборудования, оснащённых процессорами бытовых приборах, в том числе устройств, интегрируемых в рамках концепции «интернет вещей» и «умный дом».[51]

Из-за ограниченных ресурсов целевой платформы встроенного Linux установка средств разработки приложений на конечной платформы как правило исключена. Поэтому применяется кросс-разработка приложений Linux, при которой средства разработки встроенного приложения Linux устанавливаются на десктопном компьютере, обычно с операционной системой Ubuntu или Debian. С помощью инструментов кросс-разработки производится кросс-компиляция кода приложения и удалённая отладка приложения, при которой скомпилированное приложение запускается на целевой платформе, а анализ кода производится с помощью программы разработки, установленной на десктопном компьютере.[52]

Применение в госструктурах

Linux пользуются популярностью у различных государственных и муниципальных структур: Федеральное правительство Бразилии хорошо известно своей поддержкой Linux[53][54]. Правительство индийского штата Керала выпустило предписание о переходе всех школ штата на использование Linux[55][56]. Для обеспечения технологической независимости Китай использует только Linux на своих процессорах Loongson[57]. Некоторые регионы Испании разработали свои собственные дистрибутивы Linux, которые используются в образовании и госуправлении, например, такие как gnuLinEx в Эстремадуре и Guadalinex в АндалусииПортугалия также пользуется своим собственным дистрибутивом Caixa Mágica, разработанным для нетбука Magalhães[58] и государственной программы электронного образования[59]Франция и Германия предпринимают ряд шагов по увеличению использования Linux[60].

По заказу Минобороны России были разработаны дистрибутивы Линукс МСВС и Astra Linux. Также есть массовое использование дистрибутива Goslinux в системе АИС ФССП.

На базе операционной системы Astra Linux Special Edition в Республике Крым создан крупнейший в России региональный сегмент проекта ФИС ФРДО (Федеральный реестр сведений документов об образовании и (или) о квалификации, документах об обучении), к которому подключены 353 учебных заведения республики[61].