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