Линукс -Linux

линукс
Такс пингвин
Пингвин Такс , талисман Linux
Разработчик Участники сообщества,
Линус Торвальдс
Написано в C , языки ассемблера и другие
Семейство ОС Unix-подобный
Рабочее состояние Текущий
Исходная модель Открытый источник
Начальная версия 17 сентября 1991 г .; 31 год назад ( 1991-09-17 )
Репозиторий git .kernel .org /pub /scm /linux /kernel /git /torvalds /linux .git /
Маркетинговая цель Облачные вычисления , встроенные устройства , мейнфреймы , мобильные устройства , персональные компьютеры , серверы , суперкомпьютеры
Доступно в Многоязычный
Платформы Alpha , ARC , ARM , C-Sky , Hexagon , IA-64 , LoongArch , m68k , Microblaze , MIPS , Nios II , OpenRISC , PA-RISC , PowerPC , RISC-V , s390 , SuperH , SPARC , x86 , Xtensa
Тип ядра Монолитный
Пользовательская земля GNU , БизиБокс

Пользовательский интерфейс по умолчанию
Лицензия GPLv2
Статьи в серии
Ядро Linux
Дистрибутив Linux

Linux ( / ˈl iːnʊks / ( слушаем ) LEE - nuuks или / ˈlɪnʊks / LIN - uuks ) семейство Unix - подобных операционных систем с открытым исходным кодом , основанных на ядре Linux , ядро операционной системы, впервые выпущенное 17 сентября 1991 года Линусом Торвальдсом . Linux обычно упаковывается в виде дистрибутива Linux , который включает ядро ​​и вспомогательное системное программное обеспечение и библиотеки , многие из которых предоставляются проектом GNU . Многие дистрибутивы Linux используют слово «Linux» в своем названии, но Free Software Foundation использует название « GNU/Linux », чтобы подчеркнуть важность программного обеспечения GNU , что вызывает некоторые разногласия .

Популярные дистрибутивы Linux включают Debian , Fedora Linux и Ubuntu , последний из которых сам состоит из множества различных дистрибутивов и модификаций, включая Lubuntu и Xubuntu . Коммерческие дистрибутивы включают Red Hat Enterprise Linux и SUSE Linux Enterprise . Настольные дистрибутивы Linux включают оконную систему , такую ​​как X11 или Wayland , и среду рабочего стола , такую ​​как GNOME или KDE Plasma . В дистрибутивах, предназначенных для серверов , может вообще отсутствовать графика или включаться стек решений, такой как LAMP . Поскольку Linux распространяется свободно, любой может создать дистрибутив для любых целей.

Первоначально Linux был разработан для персональных компьютеров на базе архитектуры Intel x86 , но с тех пор был перенесен на большее количество платформ , чем любая другая операционная система. Из-за преобладания Android на базе Linux на смартфонах Linux , включая Android, имеет самую большую установленную базу среди всех операционных систем общего назначения по состоянию на май 2022 года. Хотя Linux по состоянию на ноябрь 2022 года используется только около 2,6 процентов настольных компьютеров , Chromebook , работающий под управлением ChromeOS на основе ядра Linux, доминирует на рынке образования США до 12 лет и составляет почти 20 процентов продаж ноутбуков стоимостью менее 300 долларов в США. Linux — ведущая операционная система для серверов (более 96,4% из 1 млн. самых популярных операционных систем веб-серверов — Linux), лидирует в других крупных железных системах, таких как мейнфреймы , и используется на всех 500 самых быстрых суперкомпьютерах мира (с ноября 2017 г., постепенно вытеснив всех конкурентов).

Linux также работает на встроенных системах , т. е. на устройствах, операционная система которых обычно встроена в прошивку и тщательно адаптирована к системе. Сюда входят маршрутизаторы , средства автоматизации , устройства для умного дома , игровые приставки , телевизоры (Samsung и LG Smart TV ), автомобили (Tesla, Audi, Mercedes-Benz, Hyundai и Toyota) и космические корабли ( ракета Falcon 9 , капсула экипажа Dragon и марсоход «Настойчивость »).

Linux — один из наиболее ярких примеров совместной работы над бесплатным программным обеспечением с открытым исходным кодом . Исходный код может использоваться, модифицироваться и распространяться в коммерческих или некоммерческих целях кем угодно на условиях соответствующих лицензий, таких как Стандартная общественная лицензия GNU (GPL). Ядро Linux, например, лицензируется по GPLv2, за исключением системных вызовов , позволяющих коду, вызывающему ядро ​​через системные вызовы, не лицензироваться по GPL.

История

Прекурсоры

Линус Торвальдс , главный автор ядра Linux

Операционная система Unix была задумана и внедрена в 1969 году в Bell Labs компании AT&T в США Кеном Томпсоном , Деннисом Ритчи , Дугласом Макилроем и Джо Оссанной . Впервые выпущенная в 1971 году, Unix была полностью написана на ассемблере , что было принято в то время. В 1973 году в качестве ключевого новаторского подхода он был переписан на языке программирования C Деннисом Ритчи (за исключением некоторых аппаратных средств и процедур ввода-вывода). Доступность реализации Unix на языке высокого уровня упростила ее перенос на другие компьютерные платформы.

Из-за более раннего антимонопольного дела , запрещающего ей заниматься компьютерным бизнесом, AT&T предоставила лицензию на исходный код операционной системы как коммерческую тайну всем, кто об этом просил. В результате Unix быстро рос и получил широкое распространение в академических учреждениях и на предприятиях. В 1984 году AT&T отказалась от своих региональных операционных компаний и была освобождена от обязательства не заниматься компьютерным бизнесом; освободившись от этого обязательства, Bell Labs начала продавать Unix как проприетарный продукт, в котором пользователям не разрешалось изменять его по закону.

Onyx Systems начала продавать первые рабочие станции Unix на базе микрокомпьютеров в 1980 году. Позже Sun Microsystems , основанная как ответвление студенческого проекта в Стэнфордском университете , также начала продавать настольные рабочие станции на базе Unix в 1982 году. массовое оборудование для ПК, такое как Linux, было позже разработано для него, оно представляло собой первую успешную коммерческую попытку распространения преимущественно однопользовательского микрокомпьютера, работающего под управлением операционной системы Unix.

Поскольку Unix все больше «запирался» как проприетарный продукт, проект GNU , начатый в 1983 году Ричардом Столлманом , преследовал цель создать «полную Unix-совместимую программную систему», полностью состоящую из свободного программного обеспечения . Работа началась в 1984 г. Позже, в 1985 г., Столлман основал Фонд свободного программного обеспечения и в 1989 г. написал Стандартную общественную лицензию GNU (GNU GPL). К началу 1990-х гг. , текстовые редакторы , оболочка командной строки и оконная система ) были завершены, хотя низкоуровневые элементы, такие как драйверы устройств , демоны и ядро , называемое GNU Hurd , застопорились и были незавершенными.

MINIX была создана Эндрю С. Таненбаумом , профессором компьютерных наук , и выпущена в 1987 году как минимальная Unix-подобная операционная система, предназначенная для студентов и всех, кто хотел изучить принципы работы операционной системы. Хотя полный исходный код MINIX был в свободном доступе, условия лицензирования не позволяли ему быть свободным программным обеспечением до тех пор, пока в апреле 2000 года условия лицензирования не изменились.

Хотя она не была выпущена до 1992 года, из-за юридических сложностей разработка 386BSD , от которой произошли NetBSD , OpenBSD и FreeBSD , предшествовала разработке Linux.

Линус Торвальдс неоднократно заявлял, что если бы ядро ​​GNU или 386BSD были доступны в то время (1991 г.), он, вероятно, не создал бы Linux.

Создание

Во время учебы в Хельсинкском университете осенью 1990 года Торвальдс записался на курс Unix. В курсе использовался миникомпьютер MicroVAX под управлением Ultrix , и одним из обязательных текстов был «Операционные системы: проектирование и внедрение» Эндрю С. Таненбаума . Этот учебник включал копию операционной системы Таненбаума MINIX . Именно на этом курсе Торвальдс впервые познакомился с Unix. В 1991 году он заинтересовался операционными системами. Разочарованный лицензированием MINIX, которое в то время ограничивало его использование только в образовательных целях, он начал работать над ядром своей собственной операционной системы, которое в конечном итоге стало ядром Linux .

3 июля 1991 года, стремясь реализовать системные вызовы Unix , Линус Торвальдс попытался получить цифровую копию документации по стандартам POSIX с запросом в группу новостей comp.os.minix . Безуспешно найдя документацию POSIX, Торвальдс сначала прибегнул к определению системных вызовов из документации SunOS , принадлежащей университету, для использования в работе своего сервера Sun Microsystems . Он также изучил некоторые системные вызовы из текста MINIX Тененбаума.

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

Именование

5,25-дюймовые дискеты с самой ранней версией Linux.

Линус Торвальдс хотел назвать свое изобретение « Freax », сочетание слов «free», «freak» и «x» (как намек на Unix). В начале его работы над системой некоторые make-файлы проекта около полугода содержали имя «Freax». Первоначально Торвальдс рассматривал название «Linux», но отверг его как слишком эгоистичное.

Для облегчения разработки файлы были загружены на FTP-сервер ( ftp.funet.fi) FUNET в сентябре 1991 года. Ари Леммке, коллега Торвальдса по Хельсинкскому технологическому университету (HUT), который в то время был одним из добровольных администраторов FTP-сервера, не думал, что «Freax» было хорошим именем, поэтому он назвал проект «Linux» на сервере, не посоветовавшись с Торвальдсом. Однако позже Торвальдс согласился на «Linux».

Согласно сообщению Торвальдса в группе новостей , слово «Linux» следует произносить ( / ˈ l ɪ n ʊ k s / ( listen ) LIN -uuks ) с коротким «i», как в «print», и «u», как в «print». 'помещать'. Чтобы еще больше продемонстрировать, как должно произноситься слово «Linux», он включил аудиогид в исходный код ядра. Однако в этой записи он произносит Linux как /ˈlinʊks/ ( LEEN -uuks ) с короткой, но близкой неокругленной гласной переднего ряда вместо почти закрытой неокругленной гласной переднего ряда, как в его сообщении в группе новостей.

Коммерческое и популярное понимание

Ubuntu , популярный дистрибутив Linux
Nexus 5X под управлением Android

Внедрение Linux в производственной среде вместо того, чтобы использоваться только любителями, началось сначала в середине 1990-х годов в суперкомпьютерном сообществе, где такие организации, как НАСА, начали заменять свои все более дорогие машины кластерами недорогих обычных компьютеров под управлением Linux . . Коммерческое использование началось, когда Dell и IBM , а затем Hewlett-Packard начали предлагать поддержку Linux, чтобы избежать монополии Microsoft на рынке операционных систем для настольных компьютеров.

Сегодня системы Linux используются во всех вычислительных процессах, от встроенных систем до практически всех суперкомпьютеров , и заняли место в серверных установках, таких как популярный стек приложений LAMP . Использование дистрибутивов Linux на домашних и корпоративных рабочих столах растет. Дистрибутивы Linux также стали популярными на рынке нетбуков : многие устройства поставляются с установленными настроенными дистрибутивами Linux, а Google выпускает собственную ChromeOS , предназначенную для нетбуков.

Самый большой успех Linux на потребительском рынке, возможно, связан с рынком мобильных устройств, где Android является доминирующей операционной системой для смартфонов и очень популярен на планшетах , а в последнее время и на носимых устройствах . Игры для Linux также находятся на подъеме: Valve демонстрирует свою поддержку Linux и выпускает SteamOS , собственный дистрибутив Linux, ориентированный на игры, а затем и платформу Steam Deck . Дистрибутивы Linux также завоевали популярность у различных местных и национальных правительств, таких как федеральное правительство Бразилии .

Текущее развитие

Грег Кроа-Хартман — ведущий специалист по поддержке ядра Linux и руководит его разработкой. Уильям Джон Салливан — исполнительный директор Фонда свободного программного обеспечения, который, в свою очередь, поддерживает компоненты GNU. Наконец, отдельные лица и корпорации разрабатывают сторонние компоненты, не относящиеся к GNU. Эти сторонние компоненты включают в себя обширный объем работы и могут включать в себя как модули ядра, так и пользовательские приложения и библиотеки.

Поставщики и сообщества Linux объединяют и распространяют ядро, компоненты GNU и компоненты, не относящиеся к GNU, с дополнительным программным обеспечением для управления пакетами в виде дистрибутивов Linux .

Дизайн

Многие разработчики ПО с открытым кодом согласны с тем, что ядро ​​Linux не проектировалось, а эволюционировало путем естественного отбора . Торвальдс считает, что, хотя конструкция Unix служила лесами, «Linux выросла из-за множества мутаций — и поскольку мутации были менее чем случайными, они были быстрее и более целенаправленными, чем альфа-частицы в ДНК » . Эрик С. Рэймонд считает революционные аспекты Linux социальными, а не техническими: до Linux сложное программное обеспечение тщательно разрабатывалось небольшими группами, но «Linux развивался совершенно по-другому. количество добровольцев координировалось только через Интернет. Качество поддерживалось не жесткими стандартами или автократией, а наивно простой стратегией выпуска каждую неделю и получения отзывов от сотен пользователей в течение нескольких дней, создавая своего рода быстрый дарвиновский отбор мутаций, внесенных Разработчики." Брайан Кантрилл , инженер конкурирующей ОС, соглашается с тем, что «Linux не проектировался, он эволюционировал», но считает это ограничением, предлагая, чтобы некоторые функции, особенно связанные с безопасностью, не могли быть развиты, «это в конце концов, это не биологическая система, а программная система». Система на основе Linux представляет собой модульную Unix-подобную операционную систему, базовая структура которой во многом основана на принципах, установленных в Unix в 1970-х и 1980-х годах. Такая система использует монолитное ядро , ядро ​​Linux , которое управляет процессами, сетью, доступом к периферийным устройствам и файловым системам . Драйверы устройств либо интегрируются непосредственно в ядро, либо добавляются в виде модулей, которые загружаются во время работы системы.

Пользовательское пространство GNU является ключевой частью большинства систем, основанных на ядре Linux, за исключением Android. Библиотека GNU C , реализация стандартной библиотеки C , работает как оболочка для системных вызовов ядра Linux, необходимых для интерфейса ядро- пользовательское пространство . используется для сборки самого ядра Linux), а coreutils реализуют многие базовые инструменты Unix . Проект GNU также разрабатывает Bash , популярную оболочку CLI . Графический пользовательский интерфейс (или GUI), используемый в большинстве систем Linux, построен на основе реализации системы X Window . Совсем недавно сообщество Linux стремится перейти к Wayland в качестве нового протокола сервера отображения вместо X11 . Многие другие проекты программного обеспечения с открытым исходным кодом вносят свой вклад в системы Linux.

Различные уровни в Linux, также демонстрирующие разделение между пространством пользователя и пространством ядра.
Пользовательский режим Пользовательские приложения bash , LibreOffice , GIMP , Blender , 0 AD , Mozilla Firefox , ...
Системные компоненты Демон инициализации :
OpenRC , runit , systemd ...
Системные демоны :
polkitd , smbd , sshd , udevd ...
Оконный менеджер :
X11 , Wayland , SurfaceFlinger (Android)
Графика :
Mesa , AMD Catalyst , ...
Другие библиотеки:
GTK , Qt , EFL , SDL , SFML , FLTK , GNUstep ,...
Стандартная библиотека C fopen, execv, malloc, memcpy, localtime, pthread_create... (до 2000 подпрограмм )
glibc стремится быть быстрым, musl стремится быть легким, uClibc нацелен на встроенные системы, bionic был написан для Android и т. д. Все стремятся быть POSIX / SUS -совместимыми.
Режим ядра ядро Linux stat, splice, dup, read, open, ioctl, write, mmap, close, exitи т. д. (около 380 системных вызовов) Интерфейс системных вызовов
(SCI) ядра Linux должен быть совместим с POSIX / SUS

Подсистема планирования процессов

Подсистема IPC

Подсистема управления памятью

Подсистема виртуальных файлов
Сетевая
подсистема
Другие компоненты: ALSA , DRI , evdev , klibc , LVM , устройство отображения , Linux Network Scheduler , Netfilter
Модули безопасности Linux : SELinux , TOMOYO , AppArmor , Smack
Аппаратное обеспечение ( процессор , оперативная память , устройства хранения данных и т. д.)

Установленные компоненты системы Linux включают следующее:

  • Загрузчик , например GNU GRUB , LILO , SYSLINUX или systemd-boot . Это программа, которая загружает ядро ​​Linux в основную память компьютера , запускается компьютером при его включении и после выполнения инициализации прошивки .
  • Программа инициализации , такая как традиционный sysvinit и более новый systemd , OpenRC и Upstart . Это первый процесс, запускаемый ядром Linux, и он находится в корне дерева процессов: другими словами, все процессы запускаются через init. Он запускает такие процессы, как системные службы и запросы на вход (в графическом или терминальном режиме).
  • Программные библиотеки , которые содержат код, который может использоваться запущенными процессами. В системах Linux, использующих исполняемые файлы формата ELF , динамический компоновщик , управляющий использованием динамических библиотек, называется ld-linux.so . Если система настроена для самостоятельной компиляции программного обеспечения пользователем, файлы заголовков также будут включены для описания программного интерфейса установленных библиотек. Помимо наиболее часто используемой библиотеки программного обеспечения в системах Linux, библиотеки GNU C (glibc), существует множество других библиотек, таких как SDL и Mesa .
    • Стандартная библиотека C — это библиотека, необходимая для запуска программ C в компьютерной системе, при этом GNU C Library является стандартом. Для встроенных систем были разработаны альтернативы, такие как musl , EGLIBC (форк glibc, когда-то использовавшийся Debian) и uClibc (который был разработан для uClinux ), хотя последние два больше не поддерживаются. Android использует собственную библиотеку C, Bionic .
  • Основные команды Unix со стандартной реализацией GNU coreutils. Существуют альтернативы для встраиваемых систем, такие как BusyBox с авторским левом и Toybox под лицензией BSD .
  • Наборы инструментов для виджетов — это библиотеки, используемые для создания графических пользовательских интерфейсов (GUI) для программных приложений. Доступны многочисленные наборы инструментов для виджетов, в том числе GTK и Clutter , разработанные в рамках проекта GNOME , Qt , разработанный в рамках проекта Qt под руководством The Qt Company , и библиотеки Enlightenment Foundation Libraries (EFL), разработанные в первую очередь командой Enlightenment .
  • Система управления пакетами , такая как dpkg и RPM . В качестве альтернативы пакеты могут быть скомпилированы из бинарных или исходных архивов .
  • Программы пользовательского интерфейса, такие как командные оболочки или оконные среды.

Пользовательский интерфейс

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

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

В настольных системах наиболее популярными пользовательскими интерфейсами являются оболочки GUI , упакованные вместе с обширными средами рабочего стола , такими как KDE Plasma , GNOME , MATE , Cinnamon , LXDE , Pantheon и Xfce , хотя существует множество дополнительных пользовательских интерфейсов. Наиболее популярные пользовательские интерфейсы основаны на системе X Window , часто называемой просто «X». Он обеспечивает прозрачность сети и позволяет отображать графическое приложение, работающее в одной системе, в другой, где пользователь может взаимодействовать с приложением; однако некоторые расширения системы X Window не могут работать по сети. Существует несколько серверов отображения X, причем эталонная реализация X.Org Server является наиболее популярной.

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

Для X11 существует несколько типов оконных менеджеров , в том числе мозаичные , динамические , штабелируемые и компоновочные . Менеджеры окон предоставляют средства для управления размещением и внешним видом отдельных окон приложений и взаимодействия с системой X Window. Более простые оконные менеджеры X , такие как dwm , ratpoison , i3wm или herbstluftwm, обеспечивают минималистскую функциональность, в то время как более сложные оконные менеджеры, такие как FVWM , Enlightenment или Window Maker , предоставляют больше функций, таких как встроенная панель задач и темы , но все еще легковесны, когда по сравнению со средами рабочего стола. Среды рабочего стола включают в себя оконные менеджеры как часть их стандартных установок, такие как Mutter (GNOME), KWin (KDE) или Xfwm (xfce), хотя пользователи могут выбрать другой оконный менеджер, если это необходимо.

Wayland — это протокол сервера отображения, предназначенный для замены протокола X11; по состоянию на 2022 год он получил относительно широкое распространение. В отличие от X11, Wayland не нуждается во внешнем оконном менеджере и менеджере композитинга. Поэтому композитор Wayland берет на себя роль сервера отображения, оконного менеджера и менеджера композитинга. Weston является эталонной реализацией Wayland, в то время как Mutter из GNOME и KWin из KDE переносятся на Wayland в качестве автономных серверов отображения. Enlightenment уже успешно портирован с версии 19.

Инфраструктура видеовхода

В настоящее время Linux имеет два современных API-интерфейса пользовательского пространства ядра для обработки устройств видеоввода: API V4L2 для видеопотоков и радио и DVB API для приема цифрового телевидения.

Из-за сложности и разнообразия различных устройств, а также из-за большого количества форматов и стандартов, обрабатываемых этими API, эта инфраструктура должна развиваться, чтобы лучше соответствовать другим устройствам. Кроме того, хорошая библиотека устройств пользовательского пространства является ключом к успеху в том, что приложения пользовательского пространства могут работать со всеми форматами, поддерживаемыми этими устройствами.

Разработка

Упрощенная история Unix-подобных операционных систем. Linux имеет схожую архитектуру и концепции (как часть стандарта POSIX ), но не имеет общего несвободного исходного кода с оригинальными Unix или MINIX .

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

Дистрибутивы на основе Linux предназначены разработчиками для взаимодействия с другими операционными системами и установленными вычислительными стандартами. Системы Linux соответствуют стандартам POSIX , SUS , LSB , ISO и ANSI , где это возможно, хотя на сегодняшний день только один дистрибутив Linux был сертифицирован POSIX.1, Linux-FT.

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

Многие дистрибутивы Linux управляют удаленной коллекцией системного программного обеспечения и пакетов прикладного программного обеспечения, доступных для загрузки и установки через сетевое соединение. Это позволяет пользователям адаптировать операционную систему к своим конкретным потребностям. Распределения поддерживаются отдельными лицами, разрозненными командами, волонтерскими организациями и коммерческими организациями. Дистрибутив отвечает за стандартную конфигурацию установленного ядра Linux, общую безопасность системы и, в более общем плане, интеграцию различных программных пакетов в единое целое. Дистрибутивы обычно используют менеджер пакетов , такой как apt , yum , zypper , pacman или portage , для установки, удаления и обновления всего программного обеспечения системы из одного центрального места.

Сообщество

Дистрибутив в значительной степени управляется сообществами разработчиков и пользователей. Некоторые поставщики разрабатывают и финансируют свои дистрибутивы на добровольной основе, широко известным примером является Debian . Другие поддерживают версии своих коммерческих дистрибутивов для сообщества, как это делает Red Hat с Fedora , а SUSE с openSUSE .

Во многих городах и регионах местные ассоциации, известные как группы пользователей Linux (LUG), стремятся продвигать свой предпочтительный дистрибутив и, соответственно, бесплатное программное обеспечение. Они проводят встречи и предоставляют бесплатные демонстрации, обучение, техническую поддержку и установку операционной системы для новых пользователей. Многие интернет-сообщества также предоставляют поддержку пользователям и разработчикам Linux. В большинстве дистрибутивов и бесплатного программного обеспечения/проектов с открытым исходным кодом есть чаты IRC или группы новостей . Еще одним средством поддержки являются онлайн-форумы , яркими примерами которых являются LinuxQuestions.org и различные форумы поддержки и сообщества для конкретных дистрибутивов, такие как Ubuntu , Fedora и Gentoo . списки рассылки дистрибутивов Linux ; обычно для данного списка будет определенная тема, такая как использование или разработка.

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

Хотя дистрибутивы Linux, как правило, доступны бесплатно, несколько крупных корпораций продают, поддерживают и вносят свой вклад в разработку компонентов системы и бесплатного программного обеспечения . Анализ ядра Linux в 2017 году показал, что более 85% кода, разработанного программистами, получают оплату за свою работу, около 8,2% остаются неоплачиваемыми разработчиками и 4,1% несекретными. В число крупных корпораций, вносящих вклад, входят Intel , Samsung , Google , AMD , Oracle и Facebook . Ряд корпораций, особенно Red Hat, Canonical и SUSE , построили значительный бизнес на дистрибутивах Linux.

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

Другая бизнес-модель — раздавать программное обеспечение для продажи оборудования. Раньше это было нормой в компьютерной индустрии, когда операционные системы, такие как CP/M , Apple DOS и версии классической Mac OS до 7.6, можно было свободно копировать (но нельзя было модифицировать). По мере того как компьютерное оборудование стандартизировалось на протяжении 1980-х годов, производителям оборудования стало труднее извлекать выгоду из этой тактики, поскольку ОС могла работать на компьютере любого производителя с той же архитектурой.

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

Большинство языков программирования поддерживают Linux либо напрямую, либо через порты сторонних сообществ . Оригинальные инструменты разработки, используемые для создания как приложений Linux, так и программ операционной системы, находятся в цепочке инструментов GNU , которая включает коллекцию компиляторов GNU (GCC) и систему сборки GNU . Среди прочего, GCC предоставляет компиляторы для Ada , C , C++ , Go и Fortran . Многие языки программирования имеют кроссплатформенную эталонную реализацию, поддерживающую Linux, например PHP , Perl , Ruby , Python , Java , Go , Rust и Haskell . Проект LLVM , впервые выпущенный в 2003 году, предоставляет альтернативный кроссплатформенный компилятор с открытым исходным кодом для многих языков. Проприетарные компиляторы для Linux включают компилятор Intel C++ , Sun Studio и компилятор IBM XL C/C++ . BASIC в форме Visual Basic поддерживается в таких формах, как Gambas , FreeBASIC и XBasic , а также с точки зрения терминального программирования или программирования QuickBASIC или Turbo BASIC в форме QB64 .

Общей чертой Unix-подобных систем является то, что Linux включает в себя традиционные специализированные языки программирования, ориентированные на создание сценариев , обработку текста, настройку и управление системой в целом. Дистрибутивы Linux поддерживают сценарии оболочки , awk , sed и make . Многие программы также имеют встроенный язык программирования для поддержки настройки или программирования. Например, регулярные выражения поддерживаются в таких программах, как grep и locate , традиционная Unix MTA Sendmail содержит собственную полную систему сценариев Тьюринга, а расширенный текстовый редактор GNU Emacs построен на основе интерпретатора Lisp общего назначения .

Большинство дистрибутивов также включают поддержку PHP , Perl , Ruby , Python и других динамических языков . Хотя Linux не так распространен, он также поддерживает C# (через Mono ), Vala и Scheme . Guile Scheme действует как язык расширения, нацеленный на системные утилиты GNU , стремящийся сделать обычно небольшие, статические , скомпилированные программы Unix на C быстро и динамически расширяемыми с помощью элегантной, функциональной системы сценариев высокого уровня; с этой целью многие программы GNU могут быть скомпилированы с необязательными привязками Guile. Ряд виртуальных машин Java и наборов для разработки работают на Linux, включая оригинальную JVM Sun Microsystems ( HotSpot ) и J2SE RE от IBM, а также многие проекты с открытым исходным кодом, такие как Kaffe и Jikes RVM .

GNOME и KDE являются популярными средами рабочего стола и обеспечивают основу для разработки приложений. Эти проекты основаны на наборах инструментов виджетов GTK и Qt соответственно, которые также можно использовать независимо от более крупного фреймворка. Оба поддерживают широкий спектр языков. Доступен ряд интегрированных сред разработки, включая Anjuta , Code::Blocks , CodeLite , Eclipse , Geany , ActiveState Komodo , KDevelop , Lazarus , MonoDevelop , NetBeans и Qt Creator , в то время как давно зарекомендовавшие себя редакторы Vim , nano и Emacs остаются . популярный.

Аппаратная поддержка

Linux повсеместно встречается на различных типах оборудования.

Ядро Linux — это широко портируемое ядро ​​операционной системы, доступное для различных устройств, от мобильных телефонов до суперкомпьютеров; он работает на самых разных компьютерных архитектурах , включая Android -смартфоны на базе ARM и мейнфреймы IBM Z. Существуют специализированные дистрибутивы и ответвления ядра для менее популярных архитектур; например, вилка ядра ELKS может работать на 16-разрядных микропроцессорах Intel 8086 или Intel 80286 , а вилка ядра µClinux может работать в системах без блока управления памятью . Ядро также работает на архитектурах, которые когда-либо предназначались для использования только операционной системы, созданной производителем, таких как компьютеры Macintosh (с процессорами PowerPC , Intel и Apple ), КПК , игровые приставки , портативные музыкальные плееры и мобильные телефоны.

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

В 2014 году была запущена новая инициатива по автоматическому сбору базы данных всех протестированных конфигураций оборудования.

Использование

Доля рынка и освоение

Многие количественные исследования бесплатного программного обеспечения / программного обеспечения с открытым исходным кодом сосредоточены на таких темах, как доля рынка и надежность, а многочисленные исследования специально посвящены Linux. Рынок Linux растет, и ожидается, что объем рынка операционных систем Linux вырастет на 19,2% к 2027 году и достигнет 15,64 млрд долларов по сравнению с 3,89 млрд долларов в 2019 году. Аналитики и сторонники связывают относительный успех Linux с его безопасностью и надежностью. , низкая стоимость и свобода от привязки к поставщику .

Настольные компьютеры и ноутбуки
Согласно статистике веб-серверов (то есть основанной на количестве зарегистрированных посещений веб-сайтов клиентскими устройствами), по состоянию на май 2022 года предполагаемая рыночная доля Linux на настольных компьютерах составляет около 2,5%. Для сравнения, доля рынка Microsoft Windows составляет около 75,5%, а доля macOS — около 14,9%.
Веб-серверы
W3Cook публикует статистику, в которой используется 1 000 000 лучших доменов Alexa, согласно которым по состоянию на май 2015 года 96,55% веб-серверов работают под управлением Linux, 1,73% — под управлением Windows и 1,72% — под управлением FreeBSD.
W3Techs публикует статистику, в которой используются 10 000 000 самых популярных доменов Alexa и 1 000 000 самых популярных доменов Tranco, обновляется ежемесячно, и по оценкам на ноябрь 2020 года Linux используется 39% веб-серверов по сравнению с 21,9%, используемыми Microsoft Windows . 40,1% использовали другие типы Unix .
В отчете IDC за первый квартал 2007 г. указано, что в то время на долю Linux приходилось 12,7% всего рынка серверов; эта оценка была основана на количестве серверов Linux, проданных различными компаниями, и не включала серверное оборудование, приобретенное отдельно, на котором позже была установлена ​​​​Linux.
Мобильные устройства
Android, основанный на ядре Linux, стал доминирующей операционной системой для смартфонов . В июле 2022 года 71,9% смартфонов во всем мире, имеющих доступ к Интернету, использовали Android. Android также является популярной операционной системой для планшетов, на долю которой приходится более 60% продаж планшетов по состоянию на 2013 год. Согласно статистике веб-серверов, по состоянию на октябрь 2021 года доля Android на рынке составляет около 71%, а iOS - 28 % . а оставшийся 1% приходится на различные нишевые платформы.
Кинопроизводство
В течение многих лет Linux был предпочтительной платформой в киноиндустрии. Первым крупным фильмом, снятым на серверах Linux, стал «Титаник» 1997 года . С тех пор крупные студии, включая DreamWorks Animation , Pixar , Weta Digital и Industrial Light & Magic, перешли на Linux. По данным Linux Movies Group, более 95% серверов и рабочих столов в крупных компаниях, занимающихся анимацией и визуальными эффектами, используют Linux.
Использование в правительстве
Дистрибутивы Linux также завоевали популярность у различных местных и национальных правительств. Появились также новости о том, что российские военные создают собственный дистрибутив Linux, который получил свое воплощение в виде проекта GHost. Индийский штат Керала дошел до того, что обязал все средние школы штата использовать Linux на своих компьютерах. Китай использует Linux исключительно в качестве операционной системы для своего семейства процессоров Loongson , чтобы добиться технологической независимости. В некоторых регионах Испании разработаны собственные дистрибутивы Linux, которые широко используются в образовательных и официальных учреждениях, например, gnuLinEx в Эстремадуре и Guadalinex в Андалусии. Франция и Германия также предприняли шаги по внедрению Linux. Северокорейская Red Star OS , разрабатываемая с 2002 года, основана на версии Fedora Linux .

Авторское право, товарный знак и наименование

Ядро Linux находится под лицензией GNU General Public License (GPL), версия 2. GPL требует, чтобы любой, кто распространяет программное обеспечение, основанное на исходном коде, под этой лицензией, сделал исходный исходный код (и любые модификации) доступным для получателя в соответствии с условиями лицензии. одинаковые условия. Другие ключевые компоненты типичного дистрибутива Linux также в основном распространяются под лицензией GPL, но могут использовать и другие лицензии; многие библиотеки используют GNU Lesser General Public License (LGPL), более разрешительный вариант GPL, а реализация X.Org системы X Window использует лицензию MIT .

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

Исследование Red Hat Linux 7.1, проведенное в 2001 году, показало, что этот дистрибутив содержит 30 миллионов строк исходного кода . Используя модель конструктивной стоимости , исследование подсчитало, что для этого распределения потребовалось около восьми тысяч человеко-лет времени разработки. Согласно исследованию, если бы все это программное обеспечение было разработано с помощью обычных проприетарных средств, его разработка в 2021 году в США стоила бы около 1,64 миллиарда долларов США . Большая часть исходного кода (71%) была написана на языке программирования C , но использовались многие другие языки, включая C++ , Lisp , язык ассемблера , Perl , Python , Fortran и различные языки сценариев оболочки . Чуть более половины всех строк кода были лицензированы под лицензией GPL. Само ядро ​​Linux состояло из 2,4 миллиона строк кода, или 8% от общего числа.

В более позднем исследовании тот же анализ был выполнен для Debian версии 4.0 (etch, выпущенной в 2007 году). Этот дистрибутив содержал около 283 миллионов строк исходного кода, и, по оценкам исследования , для его разработки обычными средствами потребовалось бы около семидесяти трех тысяч человеко-лет и стоимость 9,16 миллиарда долларов США (в долларах 2021 года).

Название «Linux» также используется для стирального порошка швейцарской компании Rösch.

В Соединенных Штатах имя Linux является товарным знаком, зарегистрированным на Линуса Торвальдса. Первоначально его никто не регистрировал, но 15 августа 1994 года Уильям Р. Делла Кроче-младший подал заявку на товарный знак Linux , а затем потребовал гонорары от распространителей Linux. В 1996 году Торвальдс и некоторые затронутые организации подали на него в суд, чтобы товарный знак был передан Торвальдсу, и в 1997 году дело было урегулировано. С тех пор лицензированием товарного знака занимается Институт Linux Mark (LMI). Торвальдс заявил, что он зарегистрировал это имя как товарный знак только для того, чтобы никто другой не мог его использовать. Первоначально LMI взимала номинальную плату за сублицензию за использование имени Linux в качестве товарного знака, но позже изменила это в пользу бесплатной бессрочной всемирной сублицензии.

Фонд свободного программного обеспечения (FSF) предпочитает GNU/Linux в качестве имени при обращении к операционной системе в целом, потому что считает дистрибутивы Linux вариантами операционной системы GNU , инициированной в 1983 году Ричардом Столменом , президентом FSF. Они явно не возражают против названия Android для ОС Android, которая также является операционной системой, основанной на ядре Linux, поскольку GNU не является ее частью.

Меньшая часть общественных деятелей и программных проектов, помимо Столлмана и FSF, особенно Debian (который спонсировался FSF до 1996 года), также используют GNU/Linux , говоря об операционной системе в целом. Однако в большинстве носителей и в обычном использовании это семейство операционных систем называется просто Linux , как и многие крупные дистрибутивы Linux (например, SUSE Linux и Red Hat Enterprise Linux ). Напротив, дистрибутивы Linux, содержащие только свободное программное обеспечение, используют «GNU/Linux» или просто «GNU», например Trisquel GNU/Linux , Parabola GNU/Linux-libre , BLAG Linux и GNU и gNewSense .

По состоянию на май 2011 года от 8% до 13% строк кода дистрибутива Linux Ubuntu (версия «Natty») состоит из компонентов GNU (диапазон зависит от того, считается ли GNOME частью GNU); при этом 6% занимает ядро ​​Linux, которое увеличивается до 9% при включении его прямых зависимостей.

Смотрите также

Примечания

Рекомендации

Внешние ссылки