Gnu linux операційної системи. Пінгвін для дитини - дитячі дистрибутиви Linux


Ця версія FAQ є полегшеною версією повного FAQ. Із цієї версії викинуто все зайве. Залишилися лише найзначніші моменти. Головною метою було підвищення читабельності тексту. Версія розрахована на тих, хто "ніасиліл" повну.

32 причини чому GNU/Linux не має майбутнього


Література:

Висновок звідси випливає лише один. GNU/Linux живий тільки через ідеологію та купку фанатиків. GNU/Linux успішно може конкурувати лише сам із собою у межах різних дистрибутивів.

Я не пропоную всім переходити на Minix, просто тому, що вона переслідує академічні цілі та служить для навчання проектування систем, драйверів та інтерфейсів. Існують інші проекти так чи інакше наслідуючі концепції мікроядерності. До найвідоміших відносяться Syllable та Haiku. Перша має гібридне ядро, друга чимось ближче до мікро. Зрозуміло що ідеальне дотримання мікроядерної архітектури для домашніх операційних систем не доцільно, але це безумовно великий крок уперед.

Ключові слова: Впровадження GNU/Linux, мінуси GNU/Linux, переваги GNU/Linux, недоліки GNU/Linux, GNU/Linux vs Windows, GNU/Linux у школах,

На жаль, цей FAQ не є вичерпним і багато тем так і залишилися незайманими. Якщо ви поділяєте позицію автора і готові проспонсувати написання нових статей, звертайтесь за контактною адресою admin (at) сайт

Там є реально Linux, і ці люди використовуються, але це є just a part of the system they use. Linux is the kernel: the program in the system that allocates the machine"s resources to the other programs that you run. complete operating system. Linux is normally used in combination with the GNU operating system: the whole system is basically GNU with Linux added, or GNU/Linux.

Багато користувачів не підтримують відповідність між kernel, який є Linux, і всі системи, які вони також називають "Linux". Ці ambiguous use of name doesn"t help people understand. These users often think that Linus Torvalds developed the whole operating system in 1991, with bit of help.

Programmers зазвичай знають, що Linux є kernel. Але вони мають загальну основу всієї системи названої “Linux” як добре, вони будуть зайняти history те, що буде justify naming the whole system after the kernel. Для прикладу, багато хто думає, що тільки Linus Torvalds finished writing Linux, kernel, його користувачі зображені на іншому безкоштовному програмному забезпеченні, щоб йти з ним, і з'ясувати, що (для незначної reason) most everything necessary to make Unix-like system was already available.

What they found was no accident—it was the not-quite-complete GNU system. Доступні free software added up to a complete system because the GNU Project had been working since 1984 to make one. У GNU Manifesto буде налагоджена з метою розробка вільного Unix-like system, названого GNU. Загальна оцінка проекту GNU також об'єднує деякі оригінальні плани для системи GNU. By the time Linux був started, GNU був майже finished.

Більшість free software projects має важливе значення для розвитку особливих програм для індивідуальних робіт. Для прикладу, Linus Torvalds встановлюється для отримання Unix-like kernel (Linux); Donald Knuth вибрати для отримання текстового формату (TeX); Bob Scheifler входить до розробки window system (X Window System). Це є природним для того, щоб розглянути цей вид проекту за конкретними програмами, які ведуть від проекту.

Якщо ми оцінюємо, що GNU Project"s contribution in this way, what would we conclude? One CD-ROM vendor found that in their “Linux distribution”, GNU software був великою єдиним контентом, на 28% of the total source code , І ця включає в себе деякі важливі компоненти без яких не може бути системою Linux. 15%.) Якщо ти будеш ходити за допомогою кнопки для системи, заснованої на тому, що збирається в програмах в системі, найбільш відповідний один вибір буде "GNU".

Але це не є глибокий спосіб до розгляду питання. GNU Project не був, не є проектом для розробки конкретних програмних пакетів. Це не було проектом для розвитку C compiler , алене було, що. Він не був проектом для розвитку текстового editorа, але ми повинні розробити один. The GNU Project set out to develop a complete free Unix-like system: GNU

Багато людей мають зроблені величезні contributions до free software в системі, і вони всі кредитні кредити для їх software. But the reason it is an integrated system—і не має спільного набору useful programs—існує в GNU Project set out to make it one. We made a list of the programs needed to make a complete free system, і we systematical found, wrote, or found people to write everything on the list. We wrote essential but unexciting components because you can't have a system without them. game, GNU Chess, because a complete system потребує games too.

By early 90s we had put together the whole system aside from the kernel. We had also started a kernel, the GNU Hurd , which runs on top of Mach. Розвиток цього рядка буде been a lot harder than we expected; the GNU Hurd started working reliably в 2001 , але це є тривалий час від того, щоб бути використаний для людей для використання в основному.

Fortunately, we didn"t have to wait for the Hurd, because of Linux. Once Torvalds freed Linux in 1992, it fit into the last major gap in the GNU system. system — a version of the GNU system which also contained Linux.

Making them work well together був не trivial job. Кілька GNU компонентів потрібні загальні зміни до роботи з Linux. Integrating a complete system as a distribution that would work “out of the box” was a big job, too. Це потребує адреси, що ви знаєте, як налагодити і натиснути на цю систему—на проблему, що не буде встановлена, тому що ви думаєте про те, що вказує на це. була робота, що в природі тих, була суворо йти до чого здавалося б одному.

The GNU Project supports GNU/Linux systems as well as the GNU system. FSF funded rewriting of Linux-related extensions до GNU C library, so that now they are well integred, and the new GNU/Linux systems use the current library release with no changes. The FSF також funded early stage of development of Debian GNU/Linux.

Сьогодні є багато різних варіантів з GNU/Linux system (often called “distros”). Most of them include nonfree programs—their developers follow the associated with Linux rather than the “free software” philosophy of GNU. Але вони є повністю вільними GNU/Linux distros . The FSF підтримує комп'ютерні можливості для багатьох з них.

Making a free GNU/Linux distribution is no just matter of eliminating divers nonfree programs. Nowadays, the usual version Linux contains nonfree programs too. Ці програми будуть впроваджені, щоб були завантажені в I/O пристроїв, коли система стріляє, і вони включаються, як довгий рядок номерів, в "source code" Linux. Thus, maintaining free GNU/Linux distributions now entails maintaining free version of Linux too.

Whether you use GNU/Linux або немає, щоб не confuse the public by using the name “Linux” ambiguously. Linux is the kernel, 1 of the essential major components of the system. , З Linux added.

Якщо ви хочете, щоб зробити link на “GNU/Linux” для подальшого посилання, ця сторінка і є хороші вибори. Якщо ваш mention Linux, kernel, і намагається отримати посилання для подальшого посилання, http://foldoc.org/linux is a good URL to use.

Postscripts

Поміж GNU, один інший проект має самостійно виготовлений вільний Unix-like operating system. Ця система є відома як BSD, і вона була розроблена в UC Berkeley. Це не булобезкоштовно в 80-х, але became free в минулому 90-х. A free operating system that exists today

  • На іншій стороні, в роки since цей матеріал був написаний, GNU C Library буде been ported до одних версій з BSD kernel, які зробили його правильнимзавданням до складу GNU system with this kernel. Just as with GNU/Linux, ці є індеїдними варіантами з GNU, і є там, що називається, для додатків, GNU/kFreeBSD і GNU/kNetBSD, depending on the kernel of the system. Орієнтовні користувачі на типових робочих столах можуть чітко відрізнятися між GNU/Linux і GNU/*BSD.
  • 1.2. Що таке GNU/Linux?

    Linux - це операційна система: набір програм, які дозволяють працювати з вашим комп'ютером і запускати інші програми.

    Операційна система (ОС) складається з кількох основних програм, які потрібні вашому комп'ютеру, щоб він міг спілкуватися та отримувати інструкції від користувачів; читати та записувати дані на жорсткі диски, стрічки та принтери; контролювати використання пам'яті; запускати інші програми. Найважливіша частина ОС – ядро. У системі GNU/Linux ядром є Linux. Решта системи складається з інших програм, багато з яких написані проектом GNU або для проекту GNU. Оскільки одне ядро ​​Linux - це ще не вся працююча ОС, ми вважаємо за краще використовувати термін « GNU/Linux »для позначення систем, які багато людей помилково називають « Linux ».

    Linux зроблена на зразок операційної системи Unix. З самого початку Linux розроблялася як багатозадачна, розрахована на багато користувачів система. Цих факторів достатньо, щоб зробити Linux відмінним від інших широко відомих операційних систем. Однак, Linux відрізняється набагато сильніше, ніж ви можете собі уявити. На відміну від інших операційних систем Linux нікому не належить. Значна частина системи розроблена добровольцями безкоштовно.

    Розробка того, що пізніше стане GNU/Linux, почалася в 1984 році, коли Фонд Вільного Програмного забезпечення почав розробку вільної Unix-подібної операційної системи, названої GNU.

    Лінус Торвальдс продовжує координувати роботу кількох сотень розробників за допомогою кількох підсистем, що супроводжують. Є офіційний сайт для ядра Linux. Інформація про список розсилки linux-kernelможна знайти у FAQ списку розсилки linux-kernel.

    Користувачі Linux мають велику свободу у виборі програмного забезпечення. Наприклад, користувачі Linux можуть вибирати з дюжини різних оболонок командного рядка та кількох графічних робочих столів. Цей вибір часто дивує користувачів інших операційних систем, які не думали, що командні оболонки або робочий стіл можна замінити.

    Linux також менш схильний до збоїв, краще пристосований для одночасного виконання більш ніж однієї програми і більш захищений, ніж багато інших систем. Завдяки цим перевагам, Linux швидко завойовує ринок серверних операційних систем. З недавніх пір Linux почав ставати популярним серед домашніх користувачів і в корпоративному середовищі.

    Linux- загальна назва UNIX-подібних операційних систем на основі однойменного ядра та зібраних для нього бібліотек та системних програм, розроблених у рамках проекту GNU.
    GNU/Linux працює на PC-сумісних системах сімейства Intel x86, а також на IA-64, AMD64, PowerPC, ARM та багатьох інших.

    До операційної системи GNU/Linux також часто відносять програми, що доповнюють цю операційну систему, та прикладні програми, які роблять її повноцінним багатофункціональним операційним середовищем. На відміну від більшості інших операційних систем, GNU/Linux немає єдиної «офіційної» комплектації. Натомість GNU/Linux поставляється у великій кількості так званих дистрибутивів, в яких програми GNU з'єднуються з ядром Linux та іншими програмами.

    Розробка

      На відміну від Microsoft Windows, Mac OS та комерційних UNIX-подібних систем, GNU/Linux не має географічного центру розробки. Немає й організації, яка б цією системою; немає навіть єдиного координаційного центру. Програми для Linux – результат роботи тисяч проектів. Деякі з цих проектів централізовані, деякі зосереджені фірмах. Багато проектів об'єднують хакерів з усього світу, які знайомі лише з листування. Створити свій проект або приєднатися до вже існуючого може будь-хто і, у разі успіху, результати роботи стануть відомими мільйонам користувачів. Користувачі беруть участь у тестуванні вільних програм, спілкуються з розробниками безпосередньо, що дозволяє швидко знаходити та виправляти помилки та реалізовувати нові можливості.

      Саме така гнучка та динамічна система розробки, неможлива для проектів із закритим кодом, визначає виняткову економічну ефективність GNU/Linux. Низька вартість вільних розробок, налагоджені механізми тестування та розповсюдження, залучення людей з різних країн, які мають різне бачення проблем, захист коду ліцензією GPL - все це стало причиною успіху вільних програм.

      Звичайно, така висока ефективність розробки не могла не зацікавити великих фірм, які почали відкривати свої проекти. Так з'явилися Mozilla (Netscape, AOL), OpenOffice.org (Sun), вільний клон Interbase (Borland) – Firebird, SAP DB (SAP). IBM сприяла перенесенню GNU/Linux на свої мейнфрейми.

      З іншого боку, відкритий код значно знижує собівартість розробки закритих систем для GNU/Linux та дозволяє знизити ціну рішення для користувача. Ось чому GNU/Linux стала платформою, яка часто рекомендується для таких продуктів, як Oracle, DB2, Informix, SyBase, SAP R3, Domino.

    Дистрибутиви GNU/Linux

    Більшість користувачів для встановлення GNU/Linux використовують дистрибутиви. Дистрибутив - це не просто набір програм, а ряд рішень для різних завдань користувачів, об'єднаних єдиними системами встановлення, керування та оновлення пакетів, налаштування та підтримки.

      Найпоширеніші у світі дистрибутиви:

      Ubuntu

      Дистрибутив, що швидко завоював популярність, орієнтований на легкість в освоєнні та використанні.

      openSUSE

      Версія дистрибутива SuSE, що безоплатно розповсюджується, належить компанії Novell. Відрізняється зручністю в налаштуванні та обслуговуванні завдяки використанню утиліти YaST.

      Fedora

      Підтримується спільнотою та корпорацією RedHat, передує випускам комерційної версії RHEL.

      Debian

      Міжнародний дистрибутив, що розробляється широким співтовариством розробників у некомерційних цілях. Послужив основою для створення багатьох інших дистрибутивів. Відрізняється суворим підходом включення невільного ПЗ.

      Mandriva

      Французько-бразильський дистрибутив, об'єднання колишніх Mandrake та Conectiva.

      Slackware

      Один із найстаріших дистрибутивів, відрізняється консервативним підходом у розробці та використанні.

      Gentoo

      Дистрибутив, який збирається з вихідних кодів. Дозволяє дуже гнучко налаштовувати кінцеву систему та оптимізувати продуктивність, тому часто називає себе мета-дистрибутивом. Орієнтований на експертів та досвідчених користувачів.

      Archlinux

      Орієнтований на застосування останніх версій програм і постійно оновлюваний, що підтримує однаково як бінарну, так і установку з вихідних кодів і побудований на філософії простоти "KISS" ("Keep it simple, stupid" / "Не ускладнюй"), цей дистрибутив орієнтований на компетентних користувачів, які хочуть мати всю силу та модифікованість Linux, але не в жертву часу обслуговування.

    Крім перелічених, існує безліч інших дистрибутивів, що базуються на перерахованих, так і створених з нуля і найчастіше призначених для виконання обмеженої кількості завдань.

    Кожен з них має свою концепцію, свій набір пакетів, свої переваги та недоліки. Жоден неспроможна задовольнити всіх користувачів, тому поруч із лідерами благополучно існують інші фірми та об'єднання програмістів, які пропонують свої рішення, свої дистрибутиви, свої послуги. Існує безліч LiveCD, побудованих на основі GNU/Linux, наприклад Knoppix. LiveCD дозволяє запускати GNU/Linux безпосередньо з компакт-диска без встановлення на жорсткий диск. Більшість великих дистрибутивів, включаючи Ubuntu, можна використовувати як LiveCD.

    Для бажаючих досконало розібратися з GNU/Linux підійде будь-який з дистрибутивів, проте досить часто для цієї мети використовуються так звані «source-based» дистрибутиви, тобто такі, що передбачають самостійне складання всіх компонентів з вихідних кодів, такі як LFS, Gentoo або CRUX.

    Застосування

    Область поширення Linux величезна, набагато більше, ніж у всіх інших операційних систем. Крім того, що Linux чудово працює на звичайних домашніх і робочих комп'ютерах і серверах, існують адаптації Linux до більшості сучасних процесорів, що дозволяє використовувати системи з ядром Linux у мережному обладнанні, домашній «розумній» техніці, роботах, мобільних телефонах, різних портативних пристроях та іншому устаткуванні, що підтримує програмовані операції.

    У кінцевому підсумку настільки широке коло підтримуваних пристроїв означає чудову переносимість програм. Наприклад, той самий додаток часто можна запустити з мінімальними зусиллями і на звичайному комп'ютері, і на мобільному телефоні на базі Linux. Наприклад: Windows та її молодший брат Windows Mobile є повністю несумісними платформами.

    Я натрапив на пропозицію перекласти статтю GNU or Linux? за авторством David Chisnall. Автор пропонує розібратися чого більше в ОС - GNU чи Linux? Власне переклад цієї статті пропонується до Вашої уваги.

    GNU чи Linux?

    Жодна інша система не відчувала таких суперечок навколо свого імені. Велика кількість флейм воєн почалася після заяви FSF про те, що такі дистрибутиви як Ubuntu та Fedora мають називатися GNU/Linux замість Linux. Чи намагалися вони просто заробити на чужій праці, чи їх аргументи небезпідставні?

    Щоб розібратися в цьому питанні, погляньмо на те, що відбувається, коли ви запускаєте GNU/Linux систему - скільки використовується GNU коду, а скільки Linux коду. Розробник використовує безліч GNU коду, наприклад GCC і GNU Make, але наскільки це справедливо і для кінцевого користувача?

    Що робить ядро?

    Перед тим як почати розбиратися, де ж GNU біти, а де Linux, важливо зрозуміти, що саме робить ядро. Ядро виконує дві основні завдання:

    * Звільняє розробників від необхідності вивчати низькорівневу архітектуру.Для цього потрібна наявність великої кількості драйверів до пристроїв та єдиних інтерфейсів до цих драйверів. Хорошим прикладом є Сокет-інтерфейс. Коли ви пишете мережевий код, ви просто відкриваєте сокет і пишіть дані. Вам не треба піклуватися про тип мережевого обладнання користувача та нижчі протоколи.

    * Ізолює запущені програми одна від одної.Ізолювати процеси платформо-незалежним методом просто: Дозволити процесам використовувати лише непривілейовані інструкції процесора. На жаль, такий підхід унеможливить будь-які операції введення/виводу для програм, що робить всі програми безглуздими. Для зняття цього обмеження існує системний виклик - механізм, який дозволяє запущеному процесу запитувати ядро ​​для здійснення привілейованої операції від імені процесу, що запитує. Звичайні приклади - запис у файл (віртуальний диск), виділення пам'яті, або доступ до екрана чи клавіатури.

    Механізм, який використовується системним викликом, платформо-залежний. На платформі x86 поширеним методом був виклик виключення, хоча нові процесори від AMD і Intel надають інструкції, що дозволяють виконати це ще швидше. При цьому управління переходить до ядра, яке вирішує, як інтерпретувати значення в регістрах і на стеку, а також які дії зробити.

    Погляд із боку розробника.

    Важливим стандартом при програмуванні для *NIX або *NIX є єдина специфікація UNIX - супермножина POSIX, яке включає все, що має бути в UNIX системі. Код, написаний згідно з цим стандартом, переносимо серед низки UNIX-подібних систем.

    Стандарт не описує системні дзвінки. Навпаки, він описує Cі-функції, які є обгорткою для системних викликів. Коли програміст хоче викликати функцію open(), йому не треба знати, що він помістить покажчик у EBX і значення 2 в EAX, а потім викличе переривання 80h; стандартна бібліотека Ci реалізує всі ці функції. Будь-яка нетривіальна програма на Linux звертатиметься до бібліотеки Сі (libc, для стислості). Існує кілька варіантів реалізації стандартної бібліотеки Сі. У кожного члена сімейства BSD є своя реалізація, втім як і будь-яка комерційна UNIX система. Який варіант стандартної бібліотеки використовується в Linux залежить від використання; існує кілька версій для вбудованих систем, але більшість декстопів дистрибутивів Linux використовують GNU libc.

    За кількістю коду ядро ​​та libc практично рівні. На двох вони пропонують інтерфейс розробника до системи. Оскільки стандарт визначає лише Cі-інтерфейси, а не системні виклики, то і більшість коду написано з використанням стандартної бібліотеки Cі. Це справедливо й інших мов; якщо ви, наприклад, запускаєте якийсь java або python код, то він отримуватиме доступ до ядра через бібліотеку Cі. Для деяких мов існує стандартна бібліотека GNU Project. Наприклад, будь-який C++ код буде використовувати GNU libstc++ на GNU/Linux платформах. Деякі дистрибутиви також включають GNU-реалізації для бібліотек Java, хоча така практика вже не така популярна, враховуючи, що Sun-версії стали open source. Навіть якщо ви використовуєте Sun Java бібліотеки, ви, як і раніше, використовуєте GNU libc на цих платформах для будь-якого Java програми.

    C C + + нюансів ще більше, ніж з іншими мовами. Коли ви лінкуєте два модулі (наприклад, виконуваний файл і бібліотеку), то відразу кілька стандартів описують модель взаємодії цих двох модулів. При виклику функції з іншого модуля необхідно явно визначити порядок аргументів на стеку та регістрах, хто очистить пам'ять згодом і таке інше. У С++ багато що має бути явно визначено використання класів у різних модулях. Цей набір стандартів називається Бінарний Інтерфейс Програм (Application Binary Interface, ABI). У Linux, С++ ABI визначений GCC, який є пакетом GNU, як згадувалося раніше. Скомпільований С++ код, незалежно від того, який компілятор використовувався, повинен підкорятися стандартам GNU, інакше такий код не зможе повторно використовувати інший С++ код.

    Сучасні GNU/Linux дистрибутиви розпочинають процес завантаження з GRUB (GRand Unified Bootloader), який також є частиною проекту GNU. (Хоча, технічно, завантаження починається в BIOS або іншій прошивці, і це застосовно для всіх систем, які запускаються на апаратній платформі.) GRUB не створювався спеціально для Linux. Він може запускати інші ОС і є стандартом для запуску деяких систем на архітектурі x86, включаючи OpenSolaris і гіпервізор Xen.

    Потім GRUB передає керування ядру, яке продовжує ініціалізувати систему та конфігурування драйверів. Ядро своєю чергою передає управління процесу init. Цей процес відповідає за створення інших процесів.

    На Linux системах init це дуже маленька програма, яка робить щось більше, ніж просто запуск скрипта. У деяких дистрибутивах init замінений на Upstart, програму, яка не є ні частиною Linux, ні частиною GNU, і має більш складну модель, що керується подіями. Скрипти, запущені init'ом або Upstart'ом - це просто набір команд, що інтерпретуються командною оболонкою (shell).

    Специфікація POSIX містить опис мінімальної функціональності оболонки. Якщо ви хочете писати портативні shell-скрипти, то можете залишатися в рамках цієї обмеженої функціональності, і в результаті отримаєте скрипти, які будуть йти на всіх UNIX-подібних системах.

    Однак більшість init скриптів не портуються. Вони використовують розширену функціональність командної оболонки, що є у більшості Linux дистрибутивів - Bash, командна оболонка від GNU.

    Що у стандарті?

    Єдина специфікація UNIX містить набагато більше, ніж просто набір Cі-функцій. Зокрема, стандарт визначає набір утиліт, які зобов'язані бути присутніми в UNIX-подібних системах. Багато програм використовують ці утиліти через shell-скрипти або інші дзвінки. Більшість з них містяться в пакеті кореневих утиліт GNU. Знову ж таки, порівнюючи кількість рядків коду, розмір кореневих утиліт можна порівняти з розміром ядра.

    Можна припустити, що ці утиліти не така важлива частина системи, проте це не так. Без утиліт більшість init скриптів просто не запустяться (навіть за наявності Bash), а система буде непридатна до використання. Більшість інсталяторів також не запустяться, а це означає, що ви не зможете встановити жодну програму. Навіть базова функціональність, така як копіювання файлів, використовує кореневі утиліти.

    Єдина UNIX Специфікація надає список із 175 програм, які мають бути присутніми у кожній UNIX системі. Більшість з яких (з деякими винятками типу vi) створені GNU і присутні в більшості Linux дистрибутивів. Частина ніколи не використовуються звичайними користувачами; Наприклад, стандарт визначає наявність c99 і fort77 утиліт для компілювання програм написаних на C і Fortran (обидві утиліти надаються GNU).

    На що слід звернути увагу?

    Раніше я казав, що ядро ​​має дві ролі. Головна роль у наданні програм користувача доступу до апаратної частини. Тому більшість Linux коду (і коду більшості інших ядер) складається з драйверів пристроїв. Але окремо варто згадати про графік.

    Стара модель драйвера XFree86 слабко залежала від ядра. Х-сервер запускався як привілейований процес та отримував прямий доступ до апаратної частини. Я сам бачив живий приклад цього під час спроби використання бінарного Linux драйвера Matrox під FreeBSD. Хоча драйвер і було написано для Linux, він чудово став на FreeBSD, т.к. він безпосередньо взаємодіяв з Х-сервером та залізом, а зовсім не з ядром FreeBSD.

    Нові драйвера використовують Інфраструктуру прямого рендерингу (Direct Rendering Infrastructure (DRI)). Ця система складається з двох компонентів, званих DRI та DRM. DRI - це драйвер користувача оточення, який забезпечує командами апаратну частину і надає API іншим програмам користувача. DRM, у свою чергу, є маленьким модулем ядра, який перевіряє команди та передає їх апаратній частині.

    Часто при холіварах на тему «чи готовий Linux для робочого столу» люди запитують, а як добре працює 3D в Linux? Взагалі-то обробка 3D це не завдання Linux на більшості системах. Linux всього лише надає прямий інтерфейс до апаратної частини, а вже X.Org пише драйвера. Ці ж драйвера можуть бути запущені на FreeBSD, OpenBSD та ще ряді систем. У світі GNU/Linux систем Linux не займається розробкою драйверів для найскладніших частин апаратної складової сучасного дектопа/лептопа.

    З винаходом FUSE, яка також працює на FreeBSD, NetBSD та Mac OS X, ядро ​​часто перестає надавати всі драйвера для файлових систем, що ще більше применшує роль «Linux» в системі.

    Видалення GNU або Linux.

    Можливо, найправдивіший тест на важливість того чи іншого компонента системи полягає в тому, наскільки просто обійтися без даного компонента в системі. Деякі Linux платформи використовують не так багато програм GNU; наприклад, використання busybox для утиліт командного рядка і uclibc для стандартної бібліотеки. Частина платформ GNU, таких як Nexenta або Debian GNU/kFreeBSD не використовують ядро ​​Linux.

    Щоб оцінити важливість Linux, погляньмо на Linux сумісне оточення в FreeBSD. При запуску Linux програм на FreeBSD відбувається встановлення модифікованого обробника системного виклику, який викликає функції ядра FreeBSD, у відповідь на системні виклики Linux. Цей похід дозволяє запускати програми, написані під Linux без їх зміни.

    Для того, щоб цей метод працював, часто встановлюють урізану версію Linux в окремому оточенні. Програми написані під Linux в результаті зможуть знайти всі необхідні бібліотеки та утиліти, включаючи утиліти GNU, GNU grep, Bash та інші пакети.

    Про що це каже? Це говорить про те, що якщо ви хочете запустити GNU/Linux програму на іншій системі, то це легко здійснити без Linux, а ось без GNU обійтися не так просто.

    Безумовно, більшість програм успішно запустяться без будь-яких режимів сумісності, якщо ви їх перекомпілюєте. У цьому випадку вони не будуть використовувати GNU libc, утиліти GNU або bash. Деякі програми для успішної компіляції вимагають GNU компілятор або GNU Make, однак, після компіляції ці програми більше не вимагатимуть жодних утиліт GNU, крім:

    • програм, які використовують С++, які, швидше за все, будуть використовувати GNU libstdc++.
    • програм, що явно використовують одну з багатьох бібліотек GNU.

    Отже, видалення GNU з GNU/Linux бачиться набагато складнішим, ніж видалення Linux. PC-BSD або Nexenta - це хороші десктопні ОС без краплі Linux коду всередині, але з великою кількістю коду GNU. Ті Linux системи, які не дуже залежать від GNU коду - це суцільно інтегровані системи, назви яких не знайомі користувачам десктопних та серверних варіантів Linux.

    То як варто говорити, Linux, GNU або GNU/Linux? Я називаю GNU, тому що, як програміст і користувач, я користуюся здебільшого тими інструментами, які розроблені GNU. Коли я портую код із FreeBSD, проблеми виникають лише у кореневих утилітах або у стандартній бібліотеці Сі. Якщо б я хотів запустити цей же код на HURD або будь-якій іншій GNU системі, то я б використовував ті самі інтерфейси.

    Загалом, я волію виділяти дистрибутиви, Fedora або Ubuntu, і не згадувати GNU або Linux. Система включає величезну кількість коду з різних джерел. Серед найбільших постачальників коду фігурують Проект GNU і X.org, але Ubuntu GNOME/X.Org/GNU/Linux звучить трохи довго. А включаючи в назви системи таку невелику і без проблем частину, що видаляється, як Linux, надходять несправедливо по відношенню до безлічі розробників, чий код також присутній в системі.