Знаймо

Додати знання

приховати рекламу

Цей текст може містити помилки.

Ядро Linux


NewTux.svg

План:


Введення

Ця стаття про ядрі для операційних систем. Про групу операційних систем, які використовують це ядро, званих "Linux", див в статті Linux

Linux ( / Lɪnʊks / [1]) - ядро операційної системи, відповідне стандартам POSIX. Розробка була розпочата фінським студентом Лінус Торвальдс у 1991.

В основному код написаний на Сі з деякими розширеннями gcc і на асемблері (з використанням AT & T-синтаксису GNU Assembler).

Поширюється як вільне програмне забезпечення на умовах GNU General Public License, крім невільних елементів, особливо драйверів, які використовують прошивки, поширювані під різними ліцензіями [2].

Торгова марка Linux зареєстрована на Лінуса Торвальдса.

Операційні системи на базі Linux є лідерами на ринках суперкомп'ютерів, серверів і мобільних операційних систем [3].


1. Історія

Початок проекту було покладено в 1991 з публікації повідомлення в новинній групі Usenet comp.os.minix такого змісту [4] :

Привіт всім, хто використовує мінікс - Я роблю (вільну) операційну систему (всього лише хобі, вона не буде великою і професійної, як gnu) для клонів 386 (486) AT ...

Оригінальний текст (Англ.)

Hello everybody out there using minix -

I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386 (486) AT clones.

До того часу GNU вже створив безліч складових для вільної операційної системи, але її ядро GNU Hurd ще не було готове. Тому порожнє місце ядра для вільної ОС зайняв Linux і, незважаючи на обмежену функціональність ранніх версій, привернув до себе безліч розробників і користувачів.

"Linux", розробка якого була розпочата Торвальдсом - лише невелика частина багатьох з використовуючих його систем, які зазвичай теж називають "Linux". Це іноді призводить до плутанини, і ті з них, які використовують системні бібліотеки (наприклад, GNU C Library) і інші програми Проекту GNU, називають також " GNU / Linux ". [5] Про різних комбінаціях вільних компонентів в операційних системах см. Операційні системи на основі вільного ПЗ.

Зараз у квітні 2011 сімейство операційних систем на базі ядра Linux - третє за популярністю в світі на ринку настільних комп'ютерів - 5,1% [6]. На ринку веб-серверів частка Linux порядку 32%, решта - Unix-системи ( FreeBSD та ін) [7]. За даними Top500, Linux використовується в якості операційної системи на 91% найпотужніших суперкомп'ютерів планети [8]. Більшість мобільних пристроїв, таких як смартфони і планшетні комп'ютери на базі ОС Android і MeeGo, а також телевізори, і багато службові пристрої, такі як зовнішні мережеві жорсткі диски, маршрутизатори та модеми, також використовують операційні системи на базі ядра Linux.


1.1. Хронологія

Від: torvalds@klaava.Helsinki.Fi (Лінус Бенедикт Торвальдс)
Новинна група: comp.os.minix
Тема: Невелике опитування про мою новій операційній системі
Message-ID: <1991Aug25.205708.9541 @ klaava.Helsinki.Fi>
Дата: 25 Aug 91 20:57:08 GMT
Організація: Гельсінський Університет

Привіт усім тим, хто використовує мінікс -

Я роблю (вільну) операційну систему (це тільки хобі, не настільки велике і професійне, як GNU) для 386 (486) AT клонів. Ця система пишеться з квітня і скоро буде готова. Я хочу отримати будь відгук, що стосується речей, які подобаються / не подобаються людям в мінікс, так як моя ОС схожа на неї (такий же пристрій файлової системи (з практичних міркувань), серед іншого).

В даний час я портувати bash (1.08) і gcc (1.40), і, схоже, ці програми працюють. Це означає, що я отримаю щось практичне в найближчі кілька місяців, і я хочу дізнатися, які можливості хоче більшість людей. Будь-які пропозиції приймаються, але я не обіцяю, що я здійсню їх :-)

Лінус (torvalds@kruuna.helsinki.fi)

PS. Так - в ній немає коду мінікс, і буде мультіпотоковая ФС. Система непереносимості (використовує команди Intel 386 і т. д.) і, ймовірно, буде підтримувати тільки жорсткі диски AT, так як це все, що у мене є :-(

Оригінальний текст (Англ.)

Hello everybody out there using minix -

I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386 (486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like / dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).

I've currently ported bash (1.08) and gcc (1.40), and things seem to work. This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-)

Linus (torvalds@kruuna.helsinki.fi)

PS. Yes - it's free of any minix code, and it has a multi-threaded fs. It is NOT portable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(.


2. Версії

Торвальдс продовжує випускати нові версії ядра, об'єднуючи зміни, внесені іншими програмістами, і вносячи свої. Воно зазвичай називається "ванільним" (vanilla), тобто офіційне ядро без будь-яких сторонніх змін. На додаток до офіційних версіями ядра існують альтернативні гілки, які можуть бути взяті з різних джерел. Як правило, розробники дистрибутивів Linux підтримують свої власні версії ядра, наприклад, включаючи в них драйвери пристроїв, які ще не включені в офіційну версію. З 30 травня 2011 змінена політика нумерації версій ядра [2]


2.1. Нумерація версій до 30 травня 2011

Номер версії ядра Linux до 30 травня 2011 містив чотири числа, згідно з недавнім зміни в політиці іменування версій, схема якої довгий час була заснована на трьох числах. Для ілюстрації припустимо, що номер версії складений таким чином: ABC [. D] (наприклад 2.2.1, 2.4.13 або 2.6.12.3).

  • Число A позначає версію ядра. Воно змінюється рідко і тільки тоді, коли вносяться значні зміни в код і концепцію ядра. Воно змінювалося три рази в історії ядра: в 1994 (версія 1.0), в 1996 (версія 2.0) та 31 травня 2011 (3.0.0).
  • Число B позначає старшу версію ревізії ядра. Парні числа позначають стабільні ревізії, тобто ті, які призначені для промислового використання, такі як 1.2, 2.4 або 2.6. Непарні числа позначають ревізії для розробників, такі як 1.1 або 2.5. Вони призначені для того, щоб тестувати нові поліпшення й драйвера до тих пір, поки вони не стануть достатньо стабільними для того, щоб включити їх у стабільний випуск.
  • Число C позначає молодшу версію ревізії ядра. У старій трехчісловой схемі нумерації воно змінювалося тоді, коли в ядро ​​включалися латочки, пов'язані з безпекою, виправлення помилок, нові поліпшення або драйвери. З новою політикою нумерації, проте, воно змінюється тільки тоді, коли вносяться нові драйвери або поліпшення; невеликі виправлення підтримуються числом D.
  • Число D вперше з'явилося після випадку, коли в коді ядра версії 2.6.8 була виявлена ​​груба, що вимагає негайного виправлення помилка, пов'язана з NFS. Однак інших змін було недостатньо для того, щоб це послужило причиною для випуску нової молодшої ревізії (якої повинна була стати 2.6.9). Тому була випущена версія 2.6.8.1 з єдиною зміною у вигляді виправлення цієї помилки. З ядра 2.6.11 ця нумерація була адаптована в якості нової офіційної політики версій. Виправлення помилок та заплатки безпеки тепер позначаються за допомогою четвертого числа, тоді як великі зміни відображаються у збільшенні молодшої версії ревізії ядра (число C).

2.2. Нумерація версій з 30 травня 2011

30 травня 2011 Лінус Торвальдс випустив ядро ​​версії 3.0-rc1. Разом з ним змінена політика нумерації версій ядра. Скасовано використання парних / непарних номерів для позначення стабільності ядра, а третє число означає стабілізацію ядра. Версія 3.0 практично не несе жодних змін, окрім зміни політики нумерації ядра. Таким чином, стабільні версії ядра 3.0 будуть іменуватися 3.0.X, а наступний після цього реліз буде мати номер 3.1.

2.3. Підтримка

У той час як Торвальдс продовжує випускати нові експериментальні версії, керівництво "старими" стабільними версіями передається іншим особам:

Серія Версії Керівники
2.0 2.0.40 Девід Віенхал
2.2 2.2.27-rc2 Марк-Крістіан Петерсон (раніше Алан Кокс)
2.4 2.4.37.6 Віллі Тарру
2.6.16 2.6.16.62 Едріан Банк
2.6 2.6.31.1 Лінус Торвальдс
3.0 3.0.11 Лінус Торвальдс
3.1 3.1.6 Лінус Торвальдс
3.2 3.2.11 Лінус Торвальдс
3.4 3.4.0 Лінус Торвальдс

Іншими програмістами ядра Linux є Роберт Лав і Інго Молнар. (Див. Список супровідників Linux (Англ.) ).


2.4. Стабільні версії

  • Версія 1.0 в березні 1994 - підтримувала тільки однопроцесорні i386 -машини.
  • Версія 1.2 в березні 1995 - додана підтримка процесорів Alpha, SPARC і MIPS.
  • Версія 2.0 в червні 1996 - додана підтримка інших процесорів, а також багатопроцесорних систем.
  • Версія 2.2 в січні 1999 - [3] (Англ.) .
  • Версія 2.4 в січні 2001 - додана підтримка ISA Plug and Play, процесорів PA-RISC, шин USB і PC-Card ( PCMCIA). Підтримка для процесорів Axis Communications ETRAX CRIS і файлової системи InterMezzo були додані трохи пізніше. [4] (Англ.)
  • Версія 2.6 від 17 грудня 2003:
    • створено відгалуження μClinux (для мікроконтролерів);
    • додана підтримка для процесорів Hitachi серії H8/300, NEC v850, процесори для вбудованих систем Motorola m68k, нова архітектура доступу до пам'яті NUMA, підтримка NCR Voyager, технології Intel hyperthreading і PAE;
    • додано:
      • підтримка файлової системи XFS (розробник - фірма SGI);
      • покращена підтримка APIC;
      • збільшено максимальну кількість користувачів і груп з 65 000 до понад 4 млрд;
      • збільшено максимальну кількість процесів з 32 000 до 1 млрд;
      • збільшено максимальну кількість типів пристроїв (major device) з 255 до 4095 та максимальна кількість пристроїв кожного типу (minor device) з 255 до понад мільйона через проблеми з розподілом номерів під типи пристрою введений системний сервіс udev;
      • покращена підтримка 64-бітових систем і підтримка файлових систем розміром більше 16 Тбайт;
      • зменшено час реакції для процесів реального часу;
      • переписана реалізація потоків з використанням Native POSIX Thread Library ( NPTL);
      • поліпшений завантажувач модулів;
      • додана нова службова файлова система sysfs;
      • інтеграція User-mode Linux;
      • та ін
  • Версія 3.0.
  • Версія 3.2 - використовується в Ubuntu 12.04 LTS і Debian 7 Wheezy. Крім виправлень помилок передбачається вперше вносити деякі оптимізації коду, що впливають на продуктивність, в ядро ​​з тривалим циклом підтримки.

3. Архітектура

Архітектура ядра Linux і інтерактивна карта
Узагальнена структура файлової системи

Ядро Linux підтримує багатозадачність, віртуальну пам'ять, динамічні бібліотеки, відкладену завантаження, продуктивну систему управління пам'яттю і багато мережеві протоколи.

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

Те, що архітектура Linux не є микроядерной, викликало якнайширші дебати між Лінус Торвальдс і Ендрю Таненбаум в конференції comp.os.minix (Англ.) в 1992 р.


4. Сумісність

Чи не задуманий спочатку як багатоплатформного ядро, Linux на даний момент портований на дуже широке коло архітектур, запускається на широкому спектрі обладнання від iPAQ (кишеньковий комп'ютер) до IBM S/390 (високопродуктивний мейнфрейм). Системи на основі Linux використовуються в якості основних практично на всіх суперкомп'ютерах (більше 91% списку Top500), в тому числі і на самих потужних - K computer.

Спочатку Linux розроблявся для 32-бітових x86 -сумісних ПК; на сьогоднішній день Linux запускається на наступних процесорних архітектурах:


5. Ліцензія

Linux поширюється на умовах ліцензії GNU General Public License, тобто вільно. Цю ліцензію вибрав Лінус Торвальдс практично відразу після того, як стало зрозуміло, що його хобі почало отримувати поширення по всьому світу. Володарем торгової марки Linux є Лінус, а допомагає стежити за дотриманням його прав та умов GPL Фонд вільного програмного забезпечення.


6. Символ

Tux

Офіційним символом Linux є пінгвін на ім'я Tux, що відрізняється від "звичайних" пінгвінів жовтим кольором дзьоба і лап.

Tuz

У якості символу версії ядра 2.6.29 прийнятий тасманійський диявол Tuz, зображення якого раніше служило талісманом конференції linux.conf.au 2009. На цій конференції Лінус Торвальдс провів успішну акцію з доброчинної продажу іграшок Linux Tasmanian devil за збереження популяції тасманійського диявола. У версії 2.6.30 використовується колишній логотип.


7. Оцінка вартості розробки з нуля

Вартість переразработкі ядра Linux версії 2.6.0 способами, прийнятими для розробки пропрієтарного, була оцінена в 612 млн дол США (467 млн ​​євро) в цінах 2004 року з використанням моделі оцінки людино-місяців COCOMO. [10] У 2006 році дослідження, профінансоване Євросоюзом, підняло вартість розробки ядра Linux до рівня 882 млн євро (1,09 млрд дол США). [11]

Ця тема була знову піднята в жовтні 2008 р. Амандою Макферсон, Брайаном Проффіттом і Роном Хейл-Евансом. Використовуючи методологію Девіда Е. Вілер, вони оцінили розробку ядра 2.6.25 в 1,3 млрд дол США (частина від 10,8 млрд дол США переразработкі Fedora 9). [12] Також Гарсіа-Гарсіа і Алонсо де Магдалено з університету Овідій (Іспанія) оцінили щорічний приріст вартості ядра приблизно в 100 млн євро з 2005 по 2007 рр.. і 225 млн євро в 2008 р. Сукупна вартість розробки в Євросоюзі в 2009 році оцінена в більш ніж 1 млрд євро (близько 1,23 млрд дол США). [13]


Цей текст може містити помилки.

Схожі роботи | скачати

Схожі роботи:
Linux
Історія Linux
The Linux Foundation
Gentoo Linux
Linux Libertine
Oracle Linux
Ядро
Linux MultiMedia Studio
ALT Linux Team
© Усі права захищені
написати до нас
Рейтинг@Mail.ru