Linux ( / ˈlɪnʊk s / , LIN -uuks ) [15] — семейство Unix-подобных операционных систем с открытым исходным кодом , основанных на ядре Linux , [ 16] ядре операционной системы, впервые выпущенном 17 сентября 1991 года Линусом Торвальдсом . [ 17] [18] [19] Linux обычно упаковывается в виде дистрибутива Linux (дистрибутива), который включает в себя ядро и вспомогательное системное программное обеспечение и библиотеки , многие из которых предоставляются проектом GNU .
Популярные дистрибутивы Linux [20] [21] [22] включают Debian , Fedora Linux , Arch Linux и Ubuntu . Коммерческие дистрибутивы включают Red Hat Enterprise Linux и SUSE Linux Enterprise . Дистрибутивы Linux для настольных компьютеров включают оконную систему , такую как X11 или Wayland , и среду рабочего стола, такую как GNOME , KDE Plasma или Xfce . Дистрибутивы, предназначенные для серверов, могут вообще не иметь графического пользовательского интерфейса или включать стек решений, такой как LAMP . Многие дистрибутивы Linux используют слово «Linux» в своем названии, но Free Software Foundation использует и рекомендует название « GNU/Linux » , чтобы подчеркнуть использование и важность программного обеспечения GNU во многих дистрибутивах, что вызывает некоторые споры. [23] [24] Поскольку Linux свободно распространяется, любой может создать дистрибутив для любых целей. [25]
Linux изначально был разработан для персональных компьютеров на основе архитектуры Intel x86 , но с тех пор был портирован на большее количество платформ , чем любая другая операционная система. [26] Из-за доминирования Android на основе Linux на смартфонах , Linux, включая Android, имеет самую большую установленную базу среди всех операционных систем общего назначения по состоянию на май 2022 года [обновлять]. [27] [28] [29] По состоянию на март 2024 года Linux [обновлять]используется примерно на 4 процентах настольных компьютеров . [30] Chromebook , работающий под управлением ChromeOS на основе ядра Linux , доминирует на рынке образования США от K до 12 и составляет почти 20 процентов продаж ноутбуков стоимостью менее 300 долларов в США. [31] Linux является ведущей операционной системой на серверах (более 96,4% из миллиона операционных систем веб-серверов являются Linux), [32] лидирует среди других крупных железных систем, таких как мэйнфреймы , и используется на всех 500 самых быстрых суперкомпьютерах мира [g] (по состоянию на ноябрь 2017 года , постепенно вытеснив всех конкурентов). [33] [34] [35][обновлять]
Linux также работает на встроенных системах , т. е. устройствах, операционная система которых обычно встроена в прошивку и в значительной степени адаптирована к системе. Сюда входят маршрутизаторы , средства автоматизации , устройства для умного дома , игровые приставки , телевизоры ( умные телевизоры Samsung и LG ), [36] [37] [38] автомобили (Tesla, Audi, Mercedes-Benz, Hyundai и Toyota), [39] и космические корабли ( ракета Falcon 9 , капсула экипажа Dragon и вертолет Ingenuity Mars). [40] [41]
Linux — один из самых ярких примеров сотрудничества свободного и открытого программного обеспечения . Исходный код может использоваться, изменяться и распространяться в коммерческих или некоммерческих целях любым лицом в соответствии с условиями соответствующих лицензий, таких как GNU General Public License (GPL). Например, ядро Linux лицензируется по GPLv2, за исключением системных вызовов , что позволяет коду, который вызывает ядро через системные вызовы, не лицензироваться по GPL. [42] [43] [25]
Операционная система Unix была задумана и реализована в 1969 году в Bell Labs компании AT&T в США Кеном Томпсоном , Деннисом Ритчи , Дугласом Макилроем и Джо Осанной . [44] Впервые выпущенная в 1971 году, Unix была написана полностью на языке ассемблера , что было обычной практикой в то время. В 1973 году, в ключевом новаторском подходе, она была переписана на языке программирования C Деннисом Ритчи (за исключением некоторых аппаратных средств и процедур ввода-вывода). Наличие реализации языка высокого уровня Unix упростило ее портирование на различные компьютерные платформы. [45]
Из-за более раннего антимонопольного дела [ указать ], запрещающего [ указать ] входить в компьютерный бизнес, AT&T лицензировала исходный код операционной системы как коммерческую тайну любому, кто просил. [ необходимо разъяснение ] В результате Unix быстро рос и стал широко использоваться академическими учреждениями и предприятиями. В 1984 году AT&T избавилась от своих региональных операционных компаний и была освобождена от обязательства не входить в компьютерный бизнес; освободившись от этого обязательства, Bell Labs начала продавать Unix как запатентованный продукт, где пользователи не имели законного права изменять его. [46] [47]
Компания Onyx Systems начала продавать ранние рабочие станции Unix на базе микрокомпьютеров в 1980 году. Позднее компания Sun Microsystems , основанная как ответвление студенческого проекта Стэнфордского университета , также начала продавать настольные рабочие станции на базе Unix в 1982 году. Хотя рабочие станции Sun не использовали аппаратное обеспечение ПК, для которого позже изначально был разработан Linux, они представляли собой первую успешную коммерческую попытку распространения в первую очередь однопользовательского микрокомпьютера, работающего под управлением операционной системы Unix. [48] [49]
Поскольку Unix все больше «запирался» как проприетарный продукт, проект GNU , начатый в 1983 году Ричардом Столлманом , имел целью создание «полной Unix-совместимой программной системы», состоящей полностью из свободного программного обеспечения . Работа началась в 1984 году . [50] Позже, в 1985 году, Столлман основал Free Software Foundation и написал GNU General Public License (GNU GPL) в 1989 году. К началу 1990-х годов многие из программ, требуемых в операционной системе (такие как библиотеки, компиляторы , текстовые редакторы , оболочка командной строки и оконная система ), были завершены, хотя низкоуровневые элементы, такие как драйверы устройств , демоны и ядро , называемое GNU Hurd , были остановлены и не завершены. [51]
Minix был создан Эндрю С. Таненбаумом , профессором компьютерных наук , и выпущен в 1987 году как минимальная Unix-подобная операционная система, ориентированная на студентов и других, кто хотел изучить принципы операционных систем. Хотя полный исходный код Minix был доступен бесплатно, условия лицензирования не позволяли ему быть свободным программным обеспечением до тех пор, пока лицензирование не изменилось в апреле 2000 года. [52]
Хотя 386BSD , от которой произошли NetBSD , OpenBSD и FreeBSD , не был выпущен до 1992 года из-за юридических сложностей , разработка предшествовала Linux. Линус Торвальдс в отдельных случаях заявлял, что если бы ядро GNU или 386BSD были доступны в то время (1991), он, вероятно, не создал бы Linux. [53] [54]
Во время учебы в Университете Хельсинки осенью 1990 года Торвальдс записался на курс Unix. [55] На курсе использовался миникомпьютер MicroVAX под управлением Ultrix , а одним из обязательных текстов была книга «Операционные системы: проектирование и реализация» Эндрю С. Таненбаума . В этот учебник входила копия операционной системы Minix Таненбаума . Именно на этом курсе Торвальдс впервые познакомился с Unix. В 1991 году он заинтересовался операционными системами. [56] Разочарованный лицензированием Minix, которое в то время ограничивало его использование только в образовательных целях, [52] он начал работать над ядром своей операционной системы, которое в конечном итоге стало ядром Linux.
3 июля 1991 года для реализации системных вызовов Unix Линус Торвальдс безуспешно пытался получить цифровую копию документации стандартов POSIX , запросив ее в новостной группе comp.os.minix . [57] Не найдя документацию POSIX, Торвальдс сначала прибег к определению системных вызовов из документации SunOS, принадлежащей университету, для использования в работе его сервера Sun Microsystems . Он также узнал некоторые системные вызовы из текста Minix Таненбаума.
Торвальдс начал разработку ядра Linux на Minix, и приложения, написанные для Minix, также использовались на Linux. Позже Linux созрел, и дальнейшая разработка ядра Linux происходила на системах Linux. [58] Приложения GNU также заменили все компоненты Minix, поскольку было выгодно использовать свободно доступный код из проекта GNU с молодой операционной системой; код, лицензированный по GNU GPL, может быть повторно использован в других компьютерных программах, если они также выпущены по той же или совместимой лицензии. Торвальдс инициировал переход от своей первоначальной лицензии, которая запрещала коммерческое распространение, к GNU GPL. [59] Разработчики работали над интеграцией компонентов GNU с ядром Linux, создавая полностью функциональную и свободную операционную систему. [60]
Линус Торвальдс хотел назвать свое изобретение « Freax », что является гибридом слов «free», «freak» и «x» (как намек на Unix). В начале его работы над системой некоторые файлы сборки проекта включали название «Freax» в течение примерно полугода. Первоначально Торвальдс рассматривал название «Linux», но отверг его как слишком эгоистичное. [61]
Для облегчения разработки файлы были загружены на FTP-сервер ( ftp.funet.fi
) FUNET в сентябре 1991 года. Ари Леммке, коллега Торвальдса по Хельсинкскому технологическому университету (HUT), который в то время был одним из добровольных администраторов FTP-сервера, посчитал, что «Freax» — неподходящее название, поэтому он назвал проект на сервере «Linux», не посоветовавшись с Торвальдсом. [61] Однако позже Торвальдс согласился на «Linux».
Согласно сообщению в новостной группе Торвальдса, [15] слово «Linux» следует произносить как ( / ˈ l ɪ n ʊ k s / LIN-uuks) с коротким «i» как в «print» и «u» как в «put». Чтобы еще раз продемонстрировать, как следует произносить слово «Linux», он включил аудиогид в исходный код ядра.[62]Однако в этой записи он произносит Linux как/ˈlinʊks/(LEEN-uuks) с коротким, ноблизким передним неогубленным гласнымвместоблизкого близкого переднего неогубленного гласногокак в его сообщении в группе новостей.
Внедрение Linux в производственные среды, а не только для использования любителями, впервые началось в середине 1990-х годов в сообществе суперкомпьютеров, где такие организации, как NASA , начали заменять свои все более дорогие машины кластерами недорогих компьютеров массового потребления, работающих под управлением Linux. Коммерческое использование началось, когда Dell и IBM , а затем и Hewlett-Packard , начали предлагать поддержку Linux, чтобы избежать монополии Microsoft на рынке настольных операционных систем. [63]
Сегодня системы Linux используются во всех вычислительных системах, от встроенных систем до практически всех суперкомпьютеров , [35] [64] и обеспечили себе место в серверных установках, таких как популярный стек приложений LAMP . Использование дистрибутивов Linux на домашних и корпоративных настольных компьютерах растет. [65] [66] [67] [68] [69] [70] [71] Дистрибутивы Linux также стали популярными на рынке нетбуков , при этом многие устройства поставляются с установленными настраиваемыми дистрибутивами Linux, а Google выпускает собственную ChromeOS, разработанную для нетбуков.
Наибольший успех Linux на потребительском рынке, возможно, связан с рынком мобильных устройств, где Android является доминирующей операционной системой на смартфонах и очень популярной на планшетах и, в последнее время, на носимых устройствах . Linux-гейминг также находится на подъеме, поскольку Valve продемонстрировала свою поддержку Linux и выпустила SteamOS , свой собственный игровой дистрибутив Linux, который позже был реализован в их платформе Steam Deck . Дистрибутивы Linux также приобрели популярность среди различных местных и национальных правительств, таких как федеральное правительство Бразилии . [72]
Линус Торвальдс является ведущим сопровождающим ядра Linux и руководит его разработкой, в то время как Грег Кроа-Хартман является ведущим сопровождающим стабильной ветви. [73] Зои Койман является исполнительным директором Free Software Foundation, [74] который, в свою очередь, поддерживает компоненты GNU. [75] Наконец, отдельные лица и корпорации разрабатывают сторонние компоненты, не относящиеся к GNU. Эти сторонние компоненты включают в себя обширный объем работы и могут включать как модули ядра, так и пользовательские приложения и библиотеки.
Поставщики и сообщества Linux объединяют и распространяют ядро, компоненты GNU и компоненты, не относящиеся к GNU, с дополнительным программным обеспечением для управления пакетами в форме дистрибутивов Linux.
Многие разработчики программного обеспечения с открытым исходным кодом согласны, что ядро Linux не было спроектировано, а скорее эволюционировало путем естественного отбора . Торвальдс считает, что хотя дизайн Unix служил в качестве лесов, «Linux рос с большим количеством мутаций – и поскольку мутации были менее случайными, они были быстрее и более направленными, чем альфа-частицы в ДНК ». [76] Эрик С. Рэймонд считает революционные аспекты Linux социальными, а не техническими: до Linux сложное программное обеспечение тщательно разрабатывалось небольшими группами, но «Linux развивался совершенно иначе. Почти с самого начала он довольно небрежно взламывался огромным количеством добровольцев, координирующих свою работу только через Интернет. Качество поддерживалось не жесткими стандартами или автократией, а наивно простой стратегией еженедельного выпуска и получения отзывов от сотен пользователей в течение нескольких дней, создавая своего рода быстрый дарвиновский отбор мутаций, введенных разработчиками». [77] Брайан Кэнтрилл , инженер конкурирующей ОС, соглашается, что «Linux не был разработан, он эволюционировал», но считает это ограничением, предполагая, что некоторые функции, особенно те, которые связаны с безопасностью, [78] не могут быть эволюционированы, «это не биологическая система в конце концов, это программная система». [79]
Система на базе Linux — это модульная операционная система типа Unix, которая во многом базируется на принципах, заложенных в Unix в 1970-х и 1980-х годах. Такая система использует монолитное ядро , ядро Linux, которое управляет процессами, сетями, доступом к периферийным устройствам и файловыми системами . Драйверы устройств либо интегрируются непосредственно с ядром, либо добавляются в качестве модулей, которые загружаются во время работы системы. [80]
Пользовательское пространство GNU является ключевой частью большинства систем, основанных на ядре Linux, за исключением Android. Библиотека GNU C , реализация стандартной библиотеки C , работает как оболочка для системных вызовов ядра Linux, необходимых для интерфейса ядро-пользовательское пространство, цепочка инструментов представляет собой обширный набор инструментов программирования, жизненно важных для разработки Linux (включая компиляторы, используемые для сборки самого ядра Linux), а coreutils реализует множество базовых инструментов Unix . Проект GNU также разрабатывает Bash , популярную оболочку CLI . Графический пользовательский интерфейс (или GUI), используемый большинством систем Linux, построен поверх реализации X Window System . [81] Совсем недавно сообщество Linux стремилось перейти на Wayland в качестве нового протокола сервера отображения вместо X11. Многие другие проекты программного обеспечения с открытым исходным кодом вносят свой вклад в системы Linux.
Установленные компоненты системы Linux включают в себя следующее: [81] [83]
Пользовательский интерфейс , также известный как оболочка , представляет собой либо интерфейс командной строки (CLI), либо графический пользовательский интерфейс (GUI), либо элементы управления, прикрепленные к соответствующему оборудованию, что является общим для встраиваемых систем. Для настольных систем пользовательский интерфейс по умолчанию обычно является графическим, хотя CLI обычно доступен через окна эмулятора терминала или на отдельной виртуальной консоли .
Оболочки CLI — это текстовые пользовательские интерфейсы, которые используют текст как для ввода, так и для вывода. Доминирующей оболочкой, используемой в Linux, является Bourne-Again Shell (bash), изначально разработанная для проекта GNU. Большинство низкоуровневых компонентов Linux, включая различные части пользовательского пространства , используют исключительно CLI. CLI особенно подходит для автоматизации повторяющихся или отложенных задач и обеспечивает очень простое межпроцессное взаимодействие .
На настольных системах наиболее популярными пользовательскими интерфейсами являются оболочки GUI , упакованные вместе с обширными средами рабочего стола, такими как KDE Plasma , GNOME , MATE , Cinnamon , LXDE , Pantheon и Xfce , хотя существует множество дополнительных пользовательских интерфейсов. Наиболее популярные пользовательские интерфейсы основаны на X Window System, часто называемой просто «X». Она обеспечивает сетевую прозрачность и позволяет графическому приложению, работающему на одной системе, отображаться на другой, где пользователь может взаимодействовать с приложением; однако некоторые расширения X Window System не способны работать по сети. [84] Существует несколько серверов отображения X, причем эталонная реализация, X.Org Server , является наиболее популярной.
Дистрибутивы сервера могут предоставлять интерфейс командной строки для разработчиков и администраторов, но предоставлять настраиваемый интерфейс для конечных пользователей, разработанный для варианта использования системы. Этот настраиваемый интерфейс доступен через клиент, который находится в другой системе, не обязательно на базе Linux.
Для X11 существует несколько типов оконных менеджеров , включая тайлинг , динамический , стекирование и композитинг . Оконные менеджеры предоставляют средства для управления размещением и внешним видом отдельных окон приложений и взаимодействия с X Window System. Более простые оконные менеджеры X, такие как dwm , ratpoison или i3wm, обеспечивают минималистичную функциональность, в то время как более сложные оконные менеджеры, такие как FVWM , Enlightenment или Window Maker, предоставляют больше функций, таких как встроенная панель задач и темы , но все еще легковесны по сравнению с окружениями рабочего стола. Окружения рабочего стола включают оконные менеджеры как часть своих стандартных установок, такие как Mutter (GNOME), KWin (KDE) или Xfwm (xfce), хотя пользователи могут выбрать другой оконный менеджер, если предпочитают.
Wayland — это протокол сервера отображения, предназначенный в качестве замены протокола X11; по состоянию на 2022 год [обновлять]он получил относительно широкое распространение. [85] В отличие от X11, Wayland не нуждается во внешнем менеджере окон и менеджере композитинга. Поэтому композитор Wayland берет на себя роль сервера отображения, менеджера окон и менеджера композитинга. Weston является эталонной реализацией Wayland, в то время как Mutter от GNOME и KWin от KDE портируются на Wayland в качестве автономных серверов отображения. Enlightenment уже был успешно портирован с версии 19. [86] Кроме того, для Wayland было создано много менеджеров окон, таких как Sway или Hyprland, а также других графических утилит, таких как Waybar или Rofi.
В настоящее время в Linux имеется два современных API ядра и пользовательского пространства для обработки устройств ввода видео: API V4L2 для видеопотоков и радио и API DVB для приема цифрового телевидения. [87]
Из-за сложности и разнообразия различных устройств, а также из-за большого количества форматов и стандартов, обрабатываемых этими API, эта инфраструктура должна развиваться, чтобы лучше соответствовать другим устройствам. Кроме того, хорошая библиотека устройств пользовательского пространства является ключом к успеху в том, чтобы иметь приложения пользовательского пространства, способные работать со всеми форматами, поддерживаемыми этими устройствами. [88] [89]
Основное отличие Linux от многих других популярных современных операционных систем заключается в том, что ядро Linux и другие компоненты являются бесплатным программным обеспечением с открытым исходным кодом. Linux — не единственная такая операционная система, хотя она, безусловно, наиболее широко используется. [90] Некоторые лицензии на свободное и открытое программное обеспечение основаны на принципе copyleft , своего рода взаимности: любая работа, полученная из части программного обеспечения, защищенного copyleft, также должна быть защищена copyleft. Наиболее распространенная лицензия на свободное программное обеспечение, GNU General Public License (GPL), является формой copyleft и используется для ядра Linux и многих компонентов из проекта GNU. [91]
Дистрибутивы на основе Linux предназначены разработчиками для взаимодействия с другими операционными системами и установленными стандартами вычислений. Системы Linux придерживаются стандартов POSIX, [92] SUS , [93] LSB , ISO и ANSI , где это возможно, хотя на сегодняшний день только один дистрибутив Linux был сертифицирован POSIX.1, Linux-FT. [94] [95]
Проекты свободного программного обеспечения, хотя и разрабатываются в сотрудничестве , часто производятся независимо друг от друга. Однако тот факт, что лицензии на программное обеспечение явно разрешают распространение, обеспечивает основу для более масштабных проектов, которые собирают программное обеспечение, созданное автономными проектами, и делают его доступным сразу в форме дистрибутива Linux.
Многие дистрибутивы Linux управляют удаленной коллекцией системного программного обеспечения и пакетов прикладного программного обеспечения, доступных для загрузки и установки через сетевое соединение. Это позволяет пользователям адаптировать операционную систему к своим конкретным потребностям. Дистрибутивы поддерживаются отдельными лицами, слабо связанными командами, волонтерскими организациями и коммерческими структурами. Дистрибутив отвечает за конфигурацию по умолчанию установленного ядра Linux, общую безопасность системы и, в более общем плане, за интеграцию различных пакетов программного обеспечения в единое целое. Дистрибутивы обычно используют менеджер пакетов, такой как apt , yum , zypper , pacman или portage для установки, удаления и обновления всего программного обеспечения системы из одного центрального расположения. [96]
Дистрибутив в значительной степени управляется сообществами разработчиков и пользователей. Некоторые поставщики разрабатывают и финансируют свои дистрибутивы на добровольной основе, Debian является известным примером. Другие поддерживают общественную версию своих коммерческих дистрибутивов, как это делает Red Hat с Fedora , а SUSE с openSUSE . [97] [98]
Во многих городах и регионах местные ассоциации, известные как группы пользователей Linux (LUG), стремятся продвигать свой предпочтительный дистрибутив и, соответственно, свободное программное обеспечение. Они проводят встречи и предоставляют бесплатные демонстрации, обучение, техническую поддержку и установку операционной системы для новых пользователей. Многие интернет-сообщества также оказывают поддержку пользователям и разработчикам Linux. Большинство дистрибутивов и проектов свободного программного обеспечения/с открытым исходным кодом имеют чаты IRC или группы новостей . Онлайн-форумы являются еще одним средством поддержки, яркими примерами которых являются LinuxQuestions.org и различные форумы поддержки и сообщества, специфичные для дистрибутивов, например, для Ubuntu , Fedora, Arch Linux , Gentoo и т. д. Дистрибутивы Linux размещают списки рассылки ; обычно для данного списка будет определенная тема, например, использование или разработка.
Есть несколько технологических сайтов с фокусом на Linux. Печатные журналы о Linux часто комплектуют обложки дисков , которые содержат программное обеспечение или даже полные дистрибутивы Linux. [99] [100]
Хотя дистрибутивы Linux, как правило, доступны бесплатно, несколько крупных корпораций продают, поддерживают и вносят вклад в разработку компонентов системы и свободного программного обеспечения. Анализ ядра Linux в 2017 году показал, что более 85% кода было разработано программистами, которым платят за их работу, оставив около 8,2% неоплачиваемым разработчикам и 4,1% неклассифицированными. [101] Некоторые из крупных корпораций, которые вносят вклад, включают Intel , Samsung , Google , AMD , Oracle и Facebook . [101] Несколько корпораций, в частности Red Hat, Canonical и SUSE, построили значительный бизнес вокруг дистрибутивов Linux.
Лицензии свободного программного обеспечения , на которых основаны различные программные пакеты дистрибутива, построенного на ядре Linux, явно предусматривают и поощряют коммерциализацию; отношения между дистрибутивом Linux в целом и отдельными поставщиками можно рассматривать как симбиотические . Одной из распространенных бизнес-моделей коммерческих поставщиков является взимание платы за поддержку, особенно для бизнес-пользователей. Ряд компаний также предлагают специализированную бизнес-версию своего дистрибутива, которая добавляет фирменные пакеты поддержки и инструменты для администрирования большего количества установок или для упрощения административных задач.
Другая бизнес-модель — раздавать программное обеспечение для продажи оборудования. Это было нормой в компьютерной индустрии, где операционные системы, такие как CP/M , Apple DOS и версии классической Mac OS до 7.6, свободно копировались (но не модифицировались). По мере стандартизации компьютерного оборудования в 1980-х годах производителям оборудования становилось все сложнее получать прибыль от этой тактики, поскольку ОС запускалась на любом компьютере производителя, который имел ту же архитектуру.
Большинство языков программирования поддерживают Linux либо напрямую, либо через сторонние порты на основе сообщества . [102] Оригинальные инструменты разработки, используемые для создания как приложений Linux, так и программ операционной системы, находятся в цепочке инструментов GNU , которая включает в себя GNU Compiler Collection (GCC) и GNU Build System . Среди прочего, GCC предоставляет компиляторы для Ada , C , C++ , Go и Fortran . Многие языки программирования имеют кроссплатформенную эталонную реализацию, которая поддерживает Linux, например PHP , Perl , Ruby , Python , Java , Go , Rust и Haskell . Впервые выпущенный в 2003 году, проект LLVM предоставляет альтернативный кроссплатформенный компилятор с открытым исходным кодом для многих языков. Проприетарные компиляторы для Linux включают Intel C++ Compiler , Sun Studio и IBM XL C/C++ Compiler . BASIC доступен в процедурной форме из QB64 , PureBasic , Yabasic , GLBasic , Basic4GL , XBasic , wxBasic , SdlBasic и Basic-256 , а также в объектно-ориентированной форме через Gambas , FreeBASIC , B4X, Basic for Qt, Phoenix Object Basic, NS Basic , ProvideX, Chipmunk Basic , RapidQ и Xojo . Pascal реализован через GNU Pascal , Free Pascal и Virtual Pascal , а также графически через Lazarus , PascalABC.NET или Delphi с использованием FireMonkey (ранее через Borland Kylix ).
Linux, как общая черта Unix-подобных систем, включает в себя традиционные специализированные языки программирования, ориентированные на скриптинг , обработку текста и настройку и управление системой в целом. Дистрибутивы Linux поддерживают скрипты оболочки , awk , sed и make . Многие программы также имеют встроенный язык программирования для поддержки настройки или программирования. Например, регулярные выражения поддерживаются в таких программах, как grep и locate , традиционный агент передачи сообщений Unix Sendmail содержит собственную полную систему скриптов Turing , а расширенный текстовый редактор GNU Emacs построен на основе интерпретатора Lisp общего назначения .
Большинство дистрибутивов также включают поддержку PHP , Perl , Ruby , Python и других динамических языков . Хотя это и не так распространено, Linux также поддерживает C# и другие языки командной строки (через Mono ), Vala и Scheme . Guile Scheme действует как язык расширения , нацеленный на системные утилиты GNU, стремясь сделать традиционно небольшие, статические , скомпилированные программы на языке C дизайна Unix быстро и динамически расширяемыми с помощью элегантной, функциональной высокоуровневой системы сценариев; многие программы GNU могут быть скомпилированы с дополнительными привязками Guile для этой цели. Ряд виртуальных машин Java и комплектов разработки работают на Linux, включая оригинальную Sun Microsystems JVM ( HotSpot ) и J2SE RE от IBM, а также множество проектов с открытым исходным кодом, таких как Kaffe и Jikes RVM ; также доступны Kotlin , Scala , Groovy и другие языки JVM .
GNOME и KDE являются популярными рабочими средами и предоставляют фреймворк для разработки приложений. Эти проекты основаны на инструментах виджетов GTK и Qt , соответственно, которые также могут использоваться независимо от более крупного фреймворка. Оба поддерживают широкий спектр языков. Существует ряд интегрированных сред разработки, включая Anjuta , Code::Blocks , CodeLite , Eclipse , Geany , ActiveState Komodo , KDevelop , Lazarus , MonoDevelop , NetBeans и Qt Creator , в то время как давно известные редакторы Vim , nano и Emacs остаются популярными. [103]
Ядро Linux — это широко портированное ядро операционной системы, доступное для устройств от мобильных телефонов до суперкомпьютеров; оно работает на самых разных компьютерных архитектурах , включая смартфоны Android на базе ARM и мэйнфреймы IBM Z. Существуют специализированные дистрибутивы и форки ядра для менее распространенных архитектур; например, форк ядра ELKS может работать на 16-разрядных микропроцессорах Intel 8086 или Intel 80286 , в то время как форк ядра μClinux может работать на системах без блока управления памятью . Ядро также работает на архитектурах, которые когда-либо предназначались только для использования фирменной операционной системы, созданной производителем, например, компьютеры Macintosh [104] [105] (с процессорами PowerPC , Intel и Apple Silicon ), КПК , игровые приставки , портативные музыкальные плееры и мобильные телефоны.
Linux имеет репутацию очень хорошей поддержки старого оборудования, сохраняя стандартизированные драйверы в течение длительного времени. [106] Существует несколько отраслевых ассоциаций и конференций по оборудованию, посвященных поддержанию и улучшению поддержки разнообразного оборудования в Linux, например FreedomHEC . Со временем поддержка различного оборудования в Linux улучшилась, в результате чего любая готовая покупка имеет «хорошие шансы» быть совместимой. [107]
В 2014 году была запущена новая инициатива по автоматическому сбору базы данных всех протестированных конфигураций оборудования. [108]
Многие количественные исследования свободного/открытого программного обеспечения фокусируются на таких темах, как доля рынка и надежность, при этом многочисленные исследования специально изучают Linux. [109] Рынок Linux растет, и ожидается, что размер рынка операционной системы Linux вырастет на 19,2% к 2027 году, достигнув 15,64 млрд долларов США по сравнению с 3,89 млрд долларов США в 2019 году. [110] Аналитики прогнозируют совокупный среднегодовой темп роста (CAGR) в 13,7% в период с 2024 по 2032 год, что приведет к размеру рынка в 34,90 млрд долларов США к последнему году. [111] Аналитики и сторонники приписывают относительный успех Linux его безопасности, надежности, низкой стоимости и свободе от привязки к поставщику . [112] [113]
Ядро Linux лицензируется в соответствии с лицензией GNU General Public License (GPL), версия 2. GPL требует, чтобы любой, кто распространяет программное обеспечение на основе исходного кода в соответствии с этой лицензией, сделал исходный исходный код (и любые модификации) доступным получателю на тех же условиях. [135] Другие ключевые компоненты типичного дистрибутива Linux также в основном лицензируются в соответствии с GPL, но они могут использовать другие лицензии; многие библиотеки используют GNU Lesser General Public License (LGPL), более разрешительный вариант GPL, а реализация X.Org системы X Window использует лицензию MIT .
Торвальдс утверждает, что ядро Linux не будет переходить с версии 2 GPL на версию 3. [136] [137] Ему особенно не нравятся некоторые положения в новой лицензии, которые запрещают использование программного обеспечения в управлении цифровыми правами . [138] Также было бы непрактично получать разрешение от всех владельцев авторских прав, число которых исчисляется тысячами. [139]
Исследование Red Hat Linux 7.1, проведенное в 2001 году, показало, что этот дистрибутив содержал 30 миллионов строк исходного кода . [140] Используя модель конструктивной стоимости , исследование подсчитало, что для разработки этого дистрибутива потребовалось около восьми тысяч человеко-лет. Согласно исследованию, если бы все это программное обеспечение было разработано обычными фирменными средствами, его разработка в 2023 году в Соединенных Штатах обошлась бы примерно в 1,82 миллиарда долларов США [141] . [140] Большая часть исходного кода (71%) была написана на языке программирования C, но использовались и многие другие языки, включая C++ , Lisp , язык ассемблера, Perl, Python, Fortran и различные языки сценариев оболочки . Чуть более половины всех строк кода были лицензированы по GPL. Само ядро Linux состояло из 2,4 миллиона строк кода, или 8% от общего числа. [140]
В более позднем исследовании тот же анализ был выполнен для Debian версии 4.0 (etch, выпущенной в 2007 году). [142] Этот дистрибутив содержал около 283 миллионов исходных строк кода, и исследование подсчитало, что для его разработки обычными средствами потребовалось бы около семидесяти трех тысяч человеко-лет и 10,2 миллиарда долларов США [141] (в долларах 2023 года).
В Соединенных Штатах название Linux является товарным знаком, зарегистрированным на Линуса Торвальдса. [14] Первоначально его никто не регистрировал. Однако 15 августа 1994 года Уильям Р. Делла Кроче-младший подал заявку на товарный знак Linux , а затем потребовал отчисления от дистрибьюторов Linux. В 1996 году Торвальдс и некоторые затронутые организации подали на него в суд, чтобы товарный знак был передан Торвальдсу, и в 1997 году дело было урегулировано. [144] Лицензированием товарного знака с тех пор занимается Институт знаков Linux (LMI). Торвальдс заявил, что он зарегистрировал название как товарный знак только для того, чтобы помешать кому-либо другому его использовать. Первоначально LMI взимала номинальную плату за сублицензирование за использование названия Linux как части товарных знаков, [145] но позже изменила это в пользу предложения бесплатной, бессрочной всемирной сублицензии. [146]
Фонд свободного программного обеспечения (FSF) предпочитает использовать название GNU/Linux применительно к операционной системе в целом, поскольку считает дистрибутивы Linux вариантами операционной системы GNU, созданной в 1983 году Ричардом Столлманом , президентом FSF. [23] [24] Фонд открыто не возражает против названия Android для ОС Android, которая также является операционной системой на основе ядра Linux, поскольку GNU не является ее частью.
Меньшинство общественных деятелей и программных проектов, помимо Столлмана и FSF, в частности, дистрибутивы, состоящие только из свободного программного обеспечения, такие как Debian (который спонсировался FSF до 1996 года), [147] также используют GNU/Linux , когда ссылаются на операционную систему в целом. [148] [149] [150] Однако большинство средств массовой информации и общепринятого использования называют это семейство операционных систем просто Linux , как и многие крупные дистрибутивы Linux (например, SUSE Linux и Red Hat Enterprise Linux ).
По состоянию на май 2011 года [обновлять]около 8–13 % строк кода дистрибутива Linux Ubuntu (версия «Natty») состоит из компонентов GNU (диапазон зависит от того, считается ли GNOME частью GNU); в то же время 6 % занимает ядро Linux, а если включить его прямые зависимости, то эта цифра увеличивается до 9 %. [151]
общность ядра — это то, что определяет принадлежность системы к семейству Linux; различные приложения OSS , которые могут взаимодействовать с общим ядром, — это то, что отличает дистрибутивы Linux.
Первоначально разработанное для ПК на базе Intel x86, «хобби» Торвальдса теперь выпущено для большего количества аппаратных платформ, чем для любой другой ОС в истории.
Однако UNIX родилась в 1969 году...
В 1982 году группа хакеров Unix из Стэнфорда и Беркли основала Sun Microsystems, полагая, что Unix, работающий на относительно недорогом оборудовании на базе 68000, станет выигрышной комбинацией для широкого спектра приложений. Они были правы, и их видение задало шаблон для целой отрасли. Хотя рабочие станции все еще были недоступны большинству людей, они были дешевы для корпораций и университетов; сети из них (по одной на пользователя) быстро заменили старые VAX и другие системы с разделением времени
права Linux изменятся: у меня было несколько просьб сделать его совместимым с GNU copyleft, удалив условие "вы не можете распространять его за деньги". Я согласен. Я предлагаю изменить авторские права так, чтобы они соответствовали GNU ─ в ожидании одобрения лиц, которые помогали писать код. Я полагаю, что это не будет проблемой ни для кого: Если у вас есть претензии ("Я написал этот код, предполагая, что авторские права останутся прежними"), напишите мне. В противном случае, GNU copyleft вступает в силу с первого февраля. Если вы не знаете сути авторских прав GNU ─ прочтите их.
{{cite web}}
: CS1 maint: числовые имена: список авторов ( ссылка ){{cite web}}
: CS1 maint: несколько имен: список авторов ( ссылка )реструктурировала свою программу сублицензирования. Наше новое сублицензионное соглашение: Бесплатное — одобренные держатели сублицензии не платят никаких сборов; Бессрочное — сублицензия прекращается только в случае нарушения соглашения или когда ваша организация прекращает использовать ее знак; Глобальное — одна сублицензия охватывает ваше использование знака в любой точке мира
...мы пытались использовать слово "Linux" или выражение "ядро Linux" для обозначения ядра, а GNU/Linux — для обозначения всего корпуса программного обеспечения ОС под лицензией GNU/GPL,... ...многие забывают, что почтовая рассылка linux kernel — это форум для обсуждения вопросов, связанных с ядром, а не GNU/Linux в целом...