Чи можна за 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 Card. Вона також включала підтримку процесора 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 knjižnica POSIX Thread (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 для відкритого (2) для зменшення тимчасових уразливостей файлів, експериментальне управління динамічною потужністю AMD Radeon, опитування мережі з низькою затримкою та zswap (стислий кеш своп).

Я міг би також додати , що в протягом багатьох років тепер Фонд Linux був звіти про розвиток ядра. Це основні моменти розвитку ядра 2012-2013:

  • Майже 92 000 наборів змін було об'єднано у 3738 окремих розробників, що представляють 536 корпорацій (про що ми знаємо).
  • Великий набір важливих нових функцій було об'єднано в основну лінію. До них відносяться повна галочка, простори імен користувачів, віртуалізація KVM та Xen для ARM, відстеження навантажень на сутність в планувальнику, контрольно-пропускний пункт / перезапуск користувача, підтримка 64-бітної архітектури ARM, флеш-орієнтована файлова система F2FS, безліч покращених мереж при проблемах із затримкою та буферним блоком, дві незалежні підсистеми, що забезпечують швидке кешування блокових пристроїв зберігання даних, та багато іншого.
  • Багаторічна суперечка щодо особливостей ядра Android, повністю відійшла на другий план. Особливо обговорювана функція "несподіванок" була тихо замінена іншим основним рішенням, яке використовується в останніх пристроях Android.
  • Використання автоматизованих інструментів для пошуку помилок у ядрах розвитку за цей період значно зросло. Такі інструменти, як тест-тест "трійця" та система збору та завантаження з нульовим днем, знаходять велику кількість помилок у ядрах перед випуском, скорочуючи цикл розробки та даючи змогу спільноті доставляти релізи більш високої якості.
  • Внесок мобільної та вбудованої галузей продовжує зростати. Наприклад, Linaro, Samsung та TI разом внесли 4,4% змін у попередній версії цього документу; за період до 3.10 вони внесли майже 11% усіх змін.
  • Проект ядра вперше брав участь у програмі Outreach for Women для жінок, що призвело до 41 заявки на 7 доступних посад. Під час процесу подання ядра було подано 374 патчі, а понад 1/3 цих патчів було прийнято у версії ядра 3.10. Зараз триває процес стажування, але результати цього не почнуть відображатися до наступних випусків ядра.

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

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

Але все це приносить мало розуміння на мою думку. Тому я б просив:

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

Шукаю абстрактну відповідь непростою фразою, яка говорить все це, не вдаючись сказати все.


"Підтримка до 229 ідентифікаторів процесу" на мене вискочила, тому я погуглив це, і єдине посилання є, здається, першоджерелом цього абзацу . Я думав, що ідентифікатори процесу мають 16-бітовий діапазон (підписаний), тобто ~ 16000, але насправді це може бути набагато більше, ніж це . Це звичайно не кілька сотень.
goldilocks

3
Це питання занадто широке, тому що воно шукає статтю у Вікіпедії з цього питання.
Жил 'ТАК - перестань бути злим'

Ви маєте намір написати документ тут? Це добре, але це допоможе, радить розумним, якщо ви конкретно ставитеся до того, що ви намагаєтеся зробити. Я припускаю, що це не просто гарне резюме, готове до наступного вечора у місцевій отворі для поливу;)
goldilocks

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

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

Відповіді:


11

Ви запитаєте:

Чи може ця еволюція чверті століття бути кваліфікованою за лінійним доповненням усіх перерахованих функцій, які складають це ядро ​​з часом? І чи приносить це розуміння того, про що йдеться в ядрі Linux або куди воно йде?

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

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

На деякий час у 80-х та 90-х роках власні операційні системи стали висхідними. Це було в деякому сенсі неприродним станом речей. Протягом деякого часу Windows в Microsoft була домінуючою, і в певному сенсі все ще є, але вона зберегла своє становище лише використовуючи мережеві ефекти.

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

Зауважте, що за ядром Linux опинилося багато великих виробників комп'ютерів. Чому? Люди дбають про свободу. Громади дбають про свободу. Корпорації дбають лише про прибуток та пов'язані з ними стратегії. Я вважаю, що багато комп'ютерних корпорацій помирилися з поняттям "комодизованої" операційної системи, "рівних ігрових умов", якщо хочете. Вони дивилися на приклад Microsoft заробляти багато грошей за допомогою проприетаризації операційної системи, але не кожен може бути Microsoft, і мати одного постачальника в такій силовій позиції, можна сказати, найменш проблематично, хоча б тому, що це дає їм несправедлива перевага з точки зору інших корпорацій.

Отже, я думаю, що оскільки більшість корпорацій не в змозі стати Microsoft, і, можливо, цього не хочуть, вирішили підтримати "товарну" операційну систему. Знову рівні умови. Таким чином, кожен може використовувати цю ОС для будь-яких цілей, і нікому в групі не надається переваги стосовно когось іншого. Інший спосіб поглянути на це полягає в тому, що наявність чогось такого основного, як операційна система стає власником, - це серйозне втручання в принципи вільного ринку. Як правило, корпорації не особливо прихильні до вільних ринків, якщо вони можуть бути на перемозі, але якщо вони не можуть бути, то вони є.

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

Звичайно, ми не повинні оминати бажання спільноти, яку зазвичай називають спільнотою вільного програмного забезпечення, а іноді і FOSS (Free and Open Source Software), щоб мати безкоштовну операційну систему для звичайних людей, яка не контролюється корпораціями. Зрештою, такі проекти, як Debian та Fedora, керують волонтери, які вірять у ці цінності. Однак я вважаю, що роль корпорацій також не повинна недооцінюватися.


1
+1 Для підняття питання про суспільно-політичні сили, які зробили Linux у поєднанні з неприємним враженням від GNU у мейнстрімі. Я думаю, що це дуже важливий аспект витоків, який, хоча це може здатися "нетехнічним питанням", насправді є визначальною характеристикою рук щодо розвитку ОС - див., Зокрема, статті Еріка С. Реймонда - і основна частина динаміки його впровадження широким колом виробників апаратних засобів і як історично переважаючої платформи Інтернету.
goldilocks

^ Зауважте, багато людей мають ядро ​​Linux у своєму будинку і навіть не знають цього через це (ваш маршрутизатор, DVR-коробка тощо)
goldilocks

Я вітаю вашу відповідь за те, що ядро ​​розташувалося в часі і закликало до динаміки, яка панувала - еволюція обчислень; ділове звернення; ринкові сили; інтернет; свобода обчислень; ліцензування; і як все вищезазначене впливає на реалізацію в ядрі, з перспективою на Linux в цілому. Я маю прочитати у вашій заяві про "неприродний стан речей", що нам може не вистачати історичної точки зору, щоб правильно це оцінити - і це важливо. Хоча я і справді був зосереджений на ядрі, але я більше подумаю про ваші моменти та коментарі вище. Дякую!

1
@goldilocks: Не кажучи вже про ваші телефони Android.
slebetman
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.