Могут ли 25-летние разработки ядра Linux быть квалифицированными или абстрагированными с точки зрения обывателя? [закрыто]


12

Ядру Linux почти 25 лет . Если бы мне пришлось придумать краткую версию истории развития ядра Linux с 1991 года (с момента его создания) и частично с 1994 года (1.0.0) до сегодняшнего дня, ну, я бы не смог. Лучшее, что я мог бы сделать, если бы не читал все примечания к выпуску ядра, - это предоставить следующие основные функции выпуска, добавленные в ядро ​​до версии 3.11 (примечания и ссылки опущены):

  • Версия 1.0 ядра Linux была выпущена 14 марта 1994 года. Этот выпуск ядра Linux поддерживал только однопроцессорные компьютерные системы на базе i386. Мобильность стала проблемой, и поэтому версия 1.2 (выпущенная 7 марта 1995 г.) получила поддержку компьютерных систем, использующих процессоры на основе архитектур Alpha, SPARC и MIPS.
  • Версия 2.0 была выпущена 9 июня 1996 года. В серии было 41 релиз. Главной особенностью 2.0 была поддержка SMP (то есть поддержка нескольких процессоров в одной системе) и поддержка нескольких типов процессоров.
  • Версия 2.2 (выпущена 26 января 1999 г.) убрала глобальную спин-блокировку и обеспечила улучшенную поддержку SMP, а также добавила поддержку архитектур m68k и PowerPC, а также новых файловых систем (включая поддержку только для чтения для NTFS от Microsoft).
  • Версия 2.4.0 , выпущенная 4 января 2001 года, содержала поддержку карт ISA Plug and Play, USB и PC. В него также включена поддержка процессора PA-RISC от Hewlett-Packard. Разработка для 2.4.x немного изменилась, так как на протяжении всей серии было доступно больше функций, включая поддержку Bluetooth, Logical Volume Manager (LVM) версии 1, поддержку RAID, файловые системы InterMezzo и ext3.
  • Версия 2.6.0 была выпущена 18 декабря 2003 года. Разработка для 2.6.x изменилась в сторону включения новых функций на протяжении всей серии. Среди изменений, которые были сделаны в серии 2.6: интеграция µClinux в основные источники ядра, поддержка PAE, поддержка нескольких новых линий процессоров, интеграция ALSA в основные источники ядра, поддержка до 2 32 пользователей ( от 2 16 ), поддержка до 2 29 идентификаторов процессов (только для 64-битных, 32-битные арки по-прежнему ограничены 2 15), существенно увеличено количество типов устройств и количество устройств каждого типа, улучшена поддержка 64-битных систем, поддержка файловых систем, поддерживающих размеры файлов до 16 терабайт, приоритетное вытеснение в ядре, поддержка библиотеки потоков Native POSIX (NPTL), интеграция Linux в пользовательском режиме с основными источниками ядра, интеграция SELinux с основными источниками ядра, поддержка InfiniBand и многое другое. Также следует отметить добавление нескольких файловых систем в версиях 2.6.x: FUSE, JFS, XFS, ext4 и другие. Подробную информацию об истории серии ядер 2.6 можно найти в файлах ChangeLog в области выпуска исходного кода серии 2.6 на kernel.org.
  • Версия 3.0 была выпущена 22 июля 2011 года. Торвальдс объявил, что большое изменение было: «НИЧЕГО. Абсолютно ничего». 30 мая 2011 года Торвальдс объявил: «... давайте удостоверимся, что мы действительно сделаем следующий релиз не просто новым блестящим номером, но и хорошим ядром». После ожидаемого 6-7-недельного процесса разработки, он будет выпущен около 20-летия Linux.
  • В декабре 2012 года Торвальдс решил уменьшить сложность ядра, отказавшись от поддержки процессоров i386, сделав ядро серии 3.7 последним, все еще поддерживавшим оригинальный процессор. В той же серии унифицирована поддержка процессора ARM.
  • Версия 3.11 , выпущенная 2 сентября 2013 года, добавляет множество новых функций, таких как новый флаг O_TMPFILE для open (2) для уменьшения временных уязвимостей файлов, экспериментальное динамическое управление питанием AMD Radeon, сетевой опрос с малой задержкой и zswap (сжатый кэш подкачки).

Я мог бы также добавить , что в течение многих лет теперь Фонд Linux был отчеты о развитии ядра. Вот основные моменты развития ядра на 2012-2013 годы:

  • Почти 92 000 наборов изменений были объединены с 3738 отдельными разработчиками, представляющими 536 корпораций (о которых мы знаем).
  • Огромный набор важных новых функций был объединен с основной линией. Они включают в себя полную работу без галочек, пространства имен пользователей, виртуализацию KVM и Xen для ARM, отслеживание нагрузки для каждого объекта в планировщике, проверку / перезапуск пространства пользователя, поддержку 64-битной архитектуры ARM, файловую систему F2FS, ориентированную на флэш-память, многие сетевые улучшения, нацеленные на при задержках и проблемах с буферизацией - две независимые подсистемы, обеспечивающие быстрое кэширование для блочных устройств хранения и многое другое.
  • Давняя ссора по поводу специфичных для Android функций ядра полностью отошла на второй план. Очень обсуждаемая функция «wakelocks» была тихо заменена другим решением магистрали, которое используется в последних устройствах Android.
  • Использование автоматизированных инструментов для поиска ошибок в ядрах разработки значительно увеличилось за этот период. Такие инструменты, как fuzz-тестер «trinity» и система сборки-загрузки «нулевого дня», обнаруживают большое количество ошибок в ядрах, выпущенных до выпуска, сокращая цикл разработки и позволяя сообществу выпускать более качественные релизы.
  • Вклад мобильной и встраиваемой промышленности продолжает расти. Например, Linaro, Samsung и TI вместе внесли 4,4% изменений в предыдущей версии этого документа; за период до 3.10 они внесли почти 11% всех изменений.
  • Проект «Ядро» впервые принял участие в Программе по работе с женщинами, что привело к 41 заявке на 7 доступных вакансий. В процессе подачи заявки ядру было отправлено 374 патча, и более 1/3 из этих патчей были приняты в версии ядра 3.10. Процесс intern проходит сейчас, но его результаты не будут отображаться до будущих выпусков ядра.

Кроме того, количественно определить, что происходит с ядром, не очень сложно, поскольку у нас есть показатели, выходящие за пределы отдельных коммитов . Например, мы знаем, что ядро ​​1.0.0 в 1994 году имело 176 250 строк кода; и мы знаем, что современное ядро, такое как 3.10, имеет 15 803 499 строк кода. Значительно больше Увеличена частота выпуска ядра (63 дня для 3.10), а также скорость изменения (9 коммитов в час или больше, как мы говорим). Процитируем Linux Foundation:

Способность выдерживать эту скорость изменений в течение многих лет является беспрецедентной в любом предыдущем публичном программном проекте.

Но все это приносит мало понимания, на мой взгляд. Поэтому я бы спросил:

  1. Может ли эта четверть века эволюция быть обобщенно квалифицированной, помимо линейного сложения всех перечисленных особенностей, составляющих это ядро ​​с течением времени?
  2. И дает ли это какое-либо представление о том, что такое ядро ​​Linux или куда оно идет? После 25 лет разработки можно сделать определенные выводы по этому поводу?

Ищите абстрактный ответ в терминах непрофессионала, который говорит сам за себя, не прибегая ко всему.


«поддержка до 229 идентификаторов процессов» отчасти ускользнула от меня, так что я гуглил это, и единственная ссылка, похоже, является первоначальным источником этого абзаца . Я думал, что идентификаторы процессов имеют (подписанный) 16-битный диапазон, то есть ~ 16 000, но на самом деле это может быть гораздо больше . Это конечно не несколько сотен.
Златовласка

3
Этот вопрос слишком широкий, потому что он ищет статью в Википедии на эту тему.
Жиль "ТАК - перестать быть злым"

Вы собираетесь написать статью здесь? Это хорошо, но это помогло бы, совет мудрый, если вы конкретно о том, что вы пытаетесь сделать. Я полагаю, что это не просто для того, чтобы подготовить хорошее резюме к следующему вечеру в местной водопой;)
Златовласка

1
Я смутно припоминаю, что хотя бы несколько человек планировали писать диссертации на эту тему или тому подобное. Я подозреваю, что вы найдете академическую литературу по этому вопросу ... Кроме того, чтобы указать на существующие публикации, кажется, что ваши вопросы потребуют месяцев исследований, чтобы ответить.
Дероберт

На ваш вопрос, может быть, вам нужно рассказать нам об условиях непрофессионала, чтобы получить хороший ответ здесь. Кроме того, опубликуйте это в lkml и получите отзывы о вашей хронологии. Если вы пропустили что-то важное, они сообщат вам.
Bananguin

Ответы:


11

Ты спрашиваешь:

Может ли эта четверть века эволюция быть обобщенно квалифицированной, помимо линейного сложения всех перечисленных особенностей, которые со временем составляют это ядро? И дает ли это какое-либо представление о том, что такое ядро ​​Linux или куда оно идет?

Я сомневаюсь, что такие вопросы имеют четко определенные ответы. Однако я думаю, что нетрудно понять силы, которые движут развитием ядра Linux.

Во-первых, компьютеры становятся все более важными вещами. Хомский где-то замечает, что они являются центральными для любой индустриальной экономики. Компьютер - ничто без операционной системы, что делает операционные системы важными.

На какое-то время в 80-х и 90-х годах проприетарные операционные системы стали восходящими. Это было в некотором смысле неестественное положение дел. Windows на какое-то время доминировала, и в каком-то смысле все еще доминирует, но она сохранила свое положение, используя сетевые эффекты.

С появлением Интернета стало возможным создать операционную систему сообщества. Однако такая операционная система будет полезна только в том случае, если она, в свою очередь, не может быть приватизирована. Семейство операционных систем BSD не было в этой категории. Отсюда возникновение ядра Linux как сердца операционной системы сообщества, которая не может быть проприетарна.

Обратите внимание, что многие крупные производители компьютеров отстают от ядра Linux. Почему? Люди заботятся о свободе. Сообщества заботятся о свободе. Корпорации заботятся только о прибыли и связанных стратегиях. Я считаю, что многие компьютерные корпорации примирились с понятием «коммодитизированной» операционной системы, «ровного игрового поля», если хотите. Они рассмотрели пример того, как Microsoft зарабатывает много денег, проприетаризируя операционную систему, но не каждый может быть Microsoft, и наличие одного поставщика в таком положении может, по меньшей мере, проблематично, хотя бы потому, что это дает это несправедливое преимущество с точки зрения других корпораций.

Итак, я думаю, что, поскольку большинство корпораций не в состоянии стать Microsoft и, возможно, не хотят этого, решили поддержать «товарную» операционную систему. Опять ровное игровое поле. Таким образом, каждый может использовать эту ОС для любых целей, и никто в группе не имеет преимущества перед кем-либо еще. Другой способ взглянуть на это состоит в том, что наличие чего-то такого базового, как операционная система, становится проприетарной - это серьезное вмешательство в принципы свободного рынка. В целом корпорации не особенно поддерживают свободные рынки, если они могут быть на выигрышной стороне, но если они не могут быть, то они есть.

Большинство характеристик ядра Linux действительно могут быть выведены из этой динамики. Например, модульная и податливая природа Unix-подобной операционной системы хорошо подходит для ОС, которая спроектирована как «товарная». Кроме того, отчасти стремительный характер проекта ядра заключается в том, что он пытается удовлетворить все эти многочисленные корпоративные требования, чтобы они были такими, какими они должны быть. Несмотря на то, что большая часть деятельности сосредоточена вокруг поддержки / драйверов оборудования, за пределами этой области также наблюдается большая активность; постоянное развитие новых функций и поддержание и улучшение существующих.

Конечно, мы не должны сбрасывать со счетов желания сообщества, обычно называемого сообществом свободного программного обеспечения, или иногда FOSS (свободное и открытое программное обеспечение), иметь бесплатную операционную систему для использования обычными людьми, которая не контролируется корпорациями. В конце концов, такие проекты, как Debian и Fedora, управляются добровольцами, которые верят в эти ценности. Однако я считаю, что роль, которую играют корпорации, также нельзя недооценивать.


1
+1 За то, что поднял вопрос о социально-политических силах, которые сделали Linux в комбинации с GNU недоумением в мейнстриме. Я думаю, что это очень важный аспект происхождения, который, хотя может показаться «нетехническим вопросом», на самом деле является определяющей характеристикой рук в разработке ОС - см., В частности, работы Эрика С. Рэймонда - и большая часть динамики его принятия широким кругом производителей оборудования и как исторически доминирующая платформа Интернета.
Златовласка

^ Обратите внимание, что многие люди имеют ядро ​​Linux в своем доме и даже не знают об этом из-за этого (ваш маршрутизатор, ваш видеорегистратор и т. Д.)
goldilocks

Я рекомендую ваш ответ за своевременное расположение ядра и обращение к динамике, которая преобладала - эволюция вычислений; деловая привлекательность; рыночные силы; Интернет; свобода вычислений; лицензирование; и как все вышеперечисленное влияет на реализацию в ядре с точки зрения Linux в целом. Я должен прочесть в вашем заявлении о «неестественном положении вещей», что у нас может не быть исторической перспективы, чтобы правильно оценить это - и это важно. Хотя я действительно сосредоточился на ядре как таковом, я буду больше думать о ваших замечаниях и комментариях выше. Благодарность!

1
@goldilocks: не говоря уже о ваших телефонах Android.
Slebetman
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.