Експерти з програмного забезпечення ігнорували економіку обладнання
... або "Мур мав рацію, і вони обидва помилялися"
Найбільше, що було помічено у цій дискусії, - це вплив технології та економіки виготовлення процесора, зумовлений зменшенням розмірів транзисторів, як це виражено в законі Мура (не дивно, ніби вони багато знали про апаратне забезпечення процесора; ці хлопці вивчали і обговорювали програмне забезпечення, а не Виробництво процесора або економіка). Фіксовані виробничі витрати, які амортизуються протягом процесора (наприклад, дизайн ISA, дизайн процесора та виробничі потужності процесора), швидко зростали, тим самим збільшуючи значення економії на масштабі; при зменшенні витрат на центральний процесор (в плані "баг за долар" і "баг за ват") скорочення витрат на центральний процесор не потрібно амортизувати через такий широкий вибір функцій для забезпечення вартості, тому обчислення в продуктах з фіксованою функцією вибухнула; Бюджети процесорних транзисторів зросли експоненціально,
1. Процесорна шкала перемагає над різноманітністю процесора
Важливість економії на масштабі зробила переваги ISA / CPU, орієнтованих на більший (тому ширший) ринок, переважає потенційні вигоди від дизайнерських виборів, які звужують ринок ISA / CPU. ОС може вирішувати більші та більші частини ринку за підтримуваною ISA / CPU, тому для перенесення вправ є мало потреби (або навіть немає потреби), щоб екосистема ОС процвітала. Проблемні домени Цілі ISA та процесора, як правило, настільки широкі, що вони в основному перекриваються, тому для будь-якого програмного забезпечення, що перебуває поза компілятором, зменшився і розмір вправ для перенесення. Можливо, і Торвальдс, і Таненбаумпереоцінив частину дизайну та впровадження ядра, яка тепер має бути специфічною для ISA або навіть процесора. Як описав Tanenbaum, сучасні ядра ОС абстрагують відмінність між процесорами та ISA. Однак специфічний код CPU / ISA в сучасних ОС набагато менший, ніж мікроядер. Замість того, щоб реалізувати обробку / планування переривань, управління пам’яттю, зв’язок та введення-виведення, ці не портативні біти стосуються лише невеликої частини реалізації цих служб, при цьому переважна більшість архітектури навіть цих основних функцій ОС є портативними.
2. Open Source виграв битву, але програв війну
Більший удар за долар означає, що більша частка обчислень виконується продуктами з фіксованою функцією, де можливість модифікувати продукт не є частиною цінової пропозиції для замовника. Зараз іронічно, у цих пристроях з фіксованою функцією процвітає відкритий код, але найчастіше переваги цих свобод реалізуються більше тими, хто виготовляє продукцію, а не кінцевими споживачами (що насправді стосувалося ринку програмного забезпечення ще тоді: Microsoft був великим споживачем програмного забезпечення з відкритим кодом, але їх клієнтів не було). Аналогічно, можна стверджувати, що відкритий вихідний код боровся більше в просторі робочого столу загального призначення, ніж деінде, але в міру того, як Інтернет та хмарні обчислення зростали, обчислення настільних комп’ютерів все частіше використовуються для вузьких цілей (в першу чергу запуск браузера), а інші функції функціонують у хмарі (як не дивно, насамперед на платформах з відкритим кодом). Якщо коротко: відкритий код дійсно володіє обчислювальним простором загального призначення, але ринок став більш досконалим; обчислення упаковки продуктів рідше зупиняється на функції загального призначення, але продовжується разом із продуктом, призначеним для фіксованих функцій, коли значна частина переваг обчислень з відкритим кодом суперечить цілям продукту.
3. 2 n Зростання засобів Фіксований k заощадження не є важливими
Експонентне зростання транзисторних бюджетів дозволило зрозуміти, що транзисторна бюджетна вартість архітектури CISC майже повністю зафіксована. Стратегічна перевага RISC полягала в тому, що він перемістив складність із набору інструкцій процесора та перейшов до компілятора (без сумніву, частково мотивованого тим, що автори-компілятори виграли набагато менше від складних ISA, ніж кодування людськими розробниками в зборах, але компілятори могли набагато легше пояснити математично про, а тому і експлуатувати, простіший ISA); отримана транзисторна економія може бути застосована для покращення продуктивності процесора. Застереження полягало в тому, що економія бюджету на транзисторі від більш простої ISA в основному була фіксованою (і витрати в дизайні компілятора в основному також були виправлені). Хоча цей фіксований вплив був величезною частиною бюджету ще в той день, як можна собі уявити, потрібно лише кілька раундів експоненціального зростання, щоб вплив став тривіальним. Це швидко зменшується вплив у поєднанні з вищезгаданою швидко зростаючою важливістю монокультури процесора означало дуже маленьке вікно можливостей для створення будь-якого нового ISA. Навіть там, де нові ISA досягли успіху, сучасні ISA "RISC" не є ортогональними ISA, описаними стратегією RISC, оскільки постійне зростання бюджетів транзисторів і більш широка застосованість обробки SIMD, зокрема, спонукають до прийняття нових інструкцій, налаштованих на конкретні функції. Це швидко зменшується вплив у поєднанні з вищезгаданою швидко зростаючою важливістю монокультури процесора означало дуже маленьке вікно можливостей для створення будь-якого нового ISA. Навіть там, де нові ISA досягли успіху, сучасні ISA "RISC" не є ортогональними ISA, описаними стратегією RISC, оскільки постійне зростання бюджетів транзисторів і більш широка застосованість обробки SIMD, зокрема, спонукають до прийняття нових інструкцій, налаштованих на конкретні функції. Це швидко зменшується вплив у поєднанні з вищезгаданою швидко зростаючою важливістю монокультури процесора означало дуже маленьке вікно можливостей для створення будь-якого нового ISA. Навіть там, де нові ISA досягли успіху, сучасні ISA "RISC" не є ортогональними ISA, описаними стратегією RISC, оскільки постійне зростання бюджетів транзисторів і більш широка застосованість обробки SIMD, зокрема, спонукають до прийняття нових інструкцій, налаштованих на конкретні функції.
4. Просте: розділення турбот. Комплекс: Поділ адресного простору.
Сучасне ядро Linux (нарівні з більшістю інших ядер) відповідає досить слабкому визначенню макрокереля, а не швидкому, ніж вузькому визначенню мікроядра. Зважаючи на це, завдяки архітектурі драйверів, динамічно завантаженим модулям та багатопроцесорним оптимізаціям, завдяки яким комунікація з простору ядра все більше нагадує проходження повідомлення мікропроводу, його структура більше нагадує дизайн мікроядра (як втілено Minix), ніж дизайн макрокенера (як втілено дизайном Linux на час обговорення). Як і мікроелектронний дизайн, ядро Linux забезпечує узагальнену комунікацію, планування, обробку переривань та управління пам'яттю для всіх інших компонентів ОС; її компоненти, як правило, мають чітку структуру коду та даних. Хоча модулі динамічно завантажуються, нещільно з'єднані фрагменти портативного коду, які спілкуються через фіксований інтерфейс, не використовують одне залишене властивість мікроядер: вони не є процесами простору користувача. Зрештою, Закон Мура забезпечив, що проблеми, мотивовані апаратними питаннями, такими як портативність (стурбованість Таненбаума) та продуктивність (турбота Торвальда), зменшилися, але питання розробки програмного забезпечення набули першорядного значення. Інші нереалізовані переваги, які може забезпечити поділ адресних просторів, переважують додатковий багаж, накладений на програмне забезпечення ОС через обмеження дизайну та підвищену складність інтерфейсів компонентів. s Закон гарантував, що проблеми, мотивовані апаратними проблемами, такими як портативність (стурбованість Tanenbaum) та продуктивність (стурбованість Торвальда), зменшилися, але проблеми розробки програмного забезпечення набули першорядного значення. Інші нереалізовані переваги, які може забезпечити поділ адресних просторів, переважують додатковий багаж, накладений на програмне забезпечення ОС через обмеження дизайну та підвищену складність інтерфейсів компонентів. s Закон гарантував, що проблеми, мотивовані апаратними проблемами, такими як портативність (стурбованість Tanenbaum) та продуктивність (стурбованість Торвальда), зменшилися, але проблеми розробки програмного забезпечення набули першорядного значення. Інші нереалізовані переваги, які може забезпечити поділ адресних просторів, переважують додатковий багаж, накладений на програмне забезпечення ОС через обмеження дизайну та підвищену складність інтерфейсів компонентів.
Цікаво те , що вже було сильної тенденцією є поява гипервизора, який так само, як мікроядер, абстрагується з апаратних засобів. Деякі стверджують, що гіпервізори - це мікроядра. Хоча архітектура гіпервізора відрізняється, оскільки обов'язки мікроелементів покладаються на "гостьові" ядра, розташовані на вершині, з мультиплексами гіпервізорів між ними, а абстракція гіпервізора не є загальним простором обміну повідомленнями та пам'яттю, а переважно фактичною апаратною емуляцією.
На закінчення: майбутнє надає перевагу тим, хто приймає найменшу сувору семантику
* .. або "азотники смокчуть передбачення майбутнього"
На практиці багато правильності / неправильності в дискусіях є питанням семантики (і це було частиною того, що Торвальдс сперечався, а ІМХО Таненбаум не зміг повністю оцінити). Важко дати точні визначення щодо майбутнього, оскільки поза аргументом існує стільки факторів, які можуть зіграти; слабша семантика означає, що ваші прогнози є більшою ціллю на дартсі, ніж інші хлопці, що дає вам кращі шанси. Якщо ігнорувати семантику, аргументи, висунуті як Торвальдсом, так і Таненбаумом, були правильні щодо багатьох речей, а неправильні - дуже мало.
тл; д-р
Більшість ISA не відповідають семантичному визначенню RISC, але використовують більшість конструктивних переваг, які були характерними для процесорів RISC в той час; обсяг ОС, що відповідає процесору, менший, ніж очікував Таненбаум, не кажучи вже про Торвальда; відкритий джерело домінує в обчисленні загального призначення, але споживачі цього ринку зараз передусім ті, хто пакує обчислення в більш фіксовану функціональну продукцію, де значна частина переваг програмного забезпечення з відкритим кодом не реалізується; відокремлення функції ОС на адресні простори не виявилось корисним, але розділення функції ОС на "віртуальне" обладнання має. Якщо ви хочете стверджувати, що ваші прогнози виявилися правильними, залиште собі якомога більше семантичної маневреної кімнати, як і містер Торвальдс.
PS Остаточне іронічне спостереження: Лінус Торвальдс є одним із найсильніших прихильників збереження якомога більше нових функціональних можливостей у просторі користувачів та поза ядром Linux.