На чем написан линукс
Перейти к содержимому

На чем написан линукс

  • автор:

Ядро Linux

Linux ( /ˈlɪnʊks/ [1] ) — ядро операционной системы, соответствующее стандартам POSIX. Разработка была начата финским студентом Линусом Торвальдсом в 1991 году.

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

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

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

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

Содержание

История

Начало проекту было положено в 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.

Хронология

  • Апрель 1991 — 21-летний Линус Торвальдс начал работу над некоторыми механизмами операционной системы. Он начал с эмулятора терминала и планировщика задач. 1991 — Линус поместил следующее сообщение [4] :

От: 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 :-(.

    1991 — Linux версии 0.01. (10 239 строк кода) 1991 — Linux версии 0.02 [1]  (англ.)
  • Декабрь 1991 — Linux версии 0.11. Это была первая версия Linux, на которой можно было собрать Linux из исходных кодов. 1992 — Первое сообщение в группе новостей alt.os.linux  (англ.) 1992 — Создана группа новостей comp.os.linux  (англ.)
  • Апрель 1992 — Linux версии 0.96, на котором стало возможно запустить графический сервер X Window System.
  • Весь 1993 и начало 1994 — 15 тестовых релизов версии 0.99.* (в июле 1993 введено понятие BogoMips). 1994 — Linux версии 1.0.0 (176 250 строк кода).
  • Март 1995 — Linux версии 1.2.0 (310 950 строк кода). 1996 — Выбран символ Linux — пингвин Tux. 1996 — Linux версии 2.0.0 (777 956 строк кода). 1999 — Linux версии 2.2.0, изначально довольно недоработанный (1 800 847 строк кода). 2001 — Linux версии 2.4.0 (3 377 902 строк кода). 2003 — Linux версии 2.6.0 (5 929 913 строк кода). 2009 — Linux версии 2.6.29, временный символ Linux — тасманский дьявол Tuz (11 010 647 строк кода). 2011 — релиз Linux 3.0 2011 — релиз Linux 3.1 2012 — релиз Linux 3.3 преодолел отметку в 15 млн строк кода.

Версии

Торвальдс продолжает выпускать новые версии ядра, объединяя изменения, вносимые другими программистами, и внося свои. Оно обычно называется «ванильным» (vanilla), то есть официальное ядро без каких-либо сторонних изменений. В дополнение к официальным версиям ядра существуют альтернативные ветки, которые могут быть взяты из различных источников. Как правило, разработчики дистрибутивов Linux поддерживают свои собственные версии ядра, например, включая в них драйверы устройств, которые ещё не включены в официальную версию. С 30 мая 2011 изменена политика нумерации версий ядра [2]

Нумерация версий до 30 мая 2011

Номер версии ядра Linux до 30 мая 2011 содержал четыре числа, согласно недавнему изменению в политике именования версий, схема которой долгое время была основана на трёх числах. Для иллюстрации допустим, что номер версии составлен таким образом: A.B.C[.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).

Нумерация версий с 30 мая 2011

30 мая 2011 Линус Торвальдс выпустил ядро версии 3.0-rc1. Вместе с ним изменена политика нумерации версий ядра. Отменено использование чётных/нечётных номеров для обозначения стабильности ядра, а третье число означает стабилизацию ядра. Версия 3.0 практически не несет никаких изменений, кроме изменения политики нумерации ядра. Таким образом, стабильные версии ядра 3.0 будут именоваться 3.0.X, а следующий после этого релиз будет иметь номер 3.1.

Поддержка

В то время как Торвальдс продолжает выпускать новые экспериментальные версии, руководство «старыми» стабильными версиями передаётся другим лицам:

Серия Версии Руководители
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   (англ.) ).

На чём написано ядро Линукс?

— Можно ли под ядро писать модули на Си и на С++, или только на каком-то одном языке?

Re: На чём написано ядро Линукс?

Re: На чём написано ядро Линукс?

> — На чём написано ядро Линукс, на Си или C++?

> — Можно ли под ядро писать модули на Си и на С++

Можно — но заколебешься.

На самом деле, тот кто задает такие вопросы мягко говоря не готов для того, чтобы писать модули, да еще и на C++ 🙂

Re: На чём написано ядро Линукс?

>- На чём написано ядро Линукс, на Си или C++?

>- Можно ли под ядро писать модули на Си и на С++, или только на каком-то одном языке?

Модули можно писать на чем-угодно, если только компилятор создает корректный с точки зрения ядра код. Даже компилятор С теоретически можно создавать неприемлемый для ядра код.

Re: На чём написано ядро Линукс?

Для каких целей используется в ядре ASM?

Re: На чём написано ядро Линукс?

Re: На чём написано ядро Линукс?

Т.е. для kernel programmera необходимо знание Си и ассемблера или только Си? С++ нужен?

В сети можно какую нить литературку по программированию ядра можно найти?

Re: На чём написано ядро Линукс?

в моём больном сознании не совмещаются начинания по "программированию ядра" и не желание посмотреть для начала _самому_ сорцы этого самого ядра: определить язык по сорцам не так уж и сложно 😉

ЗЫ. не надо рассказывать про дороговизну интернета

Re: На чём написано ядро Линукс?

>не надо рассказывать про дороговизну интернета

Последняя з/п уже истрачена на пиво и до конца февраля не имею возможности скачать :)))

Re: На чём написано ядро Линукс?

>з/п уже истрачена на пиво

да-да, зарпалту грех не пропить

Re: На чём написано ядро Линукс?

Re: На чём написано ядро Линукс?

>Как-то странно человек, не разу не ставивший linux, хочет писать под него модули?

Успокойтесь уважаемый, ставивший и не раз, и есть дистры без сорцов ядра. В данный момент жду из линуксцентра Suse 10.2, а пока не имею возможности ни скачать сорцы, ни в дистре посмотреть.

Re: На чём написано ядро Линукс?

> и есть дистры без сорцов ядра.

Re: На чём написано ядро Линукс?

AltLinux Home — вроде так назыввался
Вообще и без сорцев и средств разработки 🙂

Re: На чём написано ядро Линукс?

>AltLinux Home — вроде так назыввался Вообще и без сорцев и средств разработки 🙂

Это с трудом можно назвать дистрибутив. Ты бы еще Damm Small привел в пример.

Re: На чём написано ядро Линукс?

Re: На чём написано ядро Линукс?

> В сети можно какую нить литературку по программированию ядра можно найти?

Например LDD — Linux Device Drivers, есть еще новеловская книжка. Видел на сайте linuxcenter.ru что-то вроде ядреного helloworld-а, тоже может быть полезно.

Re: На чём написано ядро Линукс?

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

Re: На чём написано ядро Линукс?

2. Ооп там и так есть, просто костыльный. Ни что не мешает на C++ писать вменяемый код. По скорости разница будет максимум проценты.

Re: На чём написано ядро Линукс?

По слухам из глубокой древности, древний гуру и джедай Торвалд-сан начал писать ядро Матрицы нового поколения на голом С и асме. Но с течением времени из-за притока неофитов, для предотвращения искажения Истины подлинные и непроявленные сорцы ядра превратились в сакральный текст на brainfuck. И задачу трансляции в понятный для Гуру вид и обратно выполняет когорта девелоперов, организованных в сектоподобный конгломерат, результатой деятельности которых являются зловещие заклинания под названием "патчи", преобразующие реальность и счётчик в версии ядре.

Так вот, аффару — убить себя апстену, модули можно писать хоть на паскале, но нормальный джедай сделал бы ядерную дырку и молодецким движением всунул туда могучий юзерспейс-компонент, ежели зело припёрло плюсики помацать.

Re: На чём написано ядро Линукс?

я тебя обрадую — ооп в ядре есть, хоть и на Си 🙂

Re: На чём написано ядро Линукс?

А может и правда — пофлеймим?

> если вы хотите заточить свое знание ооп ,идите куда подальше от ядра 🙂

Ядро широко использует ООП (правда, в угребищном Си-варианте)

> ядро-это код,где в течение 15 лет отшлифовывается буквально каждая машинная команда

Аха, ядро включает в себя специальный компилятор, который спрашивает у хакера, какие именно команды выдавать 🙂

Re: На чём написано ядро Линукс?

>>ха, ядро включает в себя специальный компилятор, который спрашивает у хакера, какие именно команды выдавать

аха
компилятор в таких случаях вообще не спрашивают
инлайн в таких случаях пользуют

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *