Вікна, помилки та складність: критика Ендрю Таненбаума

  • Таненбаум стверджує, що Windows страждає від помилок через свою складність та монолітний дизайн.
  • Часті виправлення зменшують проблеми, але можуть відкрити нові вразливості.
  • Захищає модульність MINIX від взаємозалежності Windows та Linux.
  • Попереджає про непрозорість комерційного програмного забезпечення та його ризики для безпеки.

Операційна система Windows та помилки

Якщо невдале оновлення або збій коли-небудь зіпсували вам день, ви не самотні: Ендрю С. Таненбаум стверджує, що Windows страждає від такої кількості помилок, оскільки її технічна база настільки обширна, що навіть власний виробник не повністю її контролює.

Ключова фігура в академічних обчисленнях, автор книги «Операційні системи: проектування та впровадження» та творець MINIX , Таненбаум вносить контекст та критерії в дискусію про стабільність систем, які ми використовуємо щодня, та про те, як вони побудовані.

Система настільки велика, що ніхто не контролює її повністю

Складність та помилки Windows

За словами науковця, розмір і складна мережа залежностей Windows означають, що будь-яка зміна може спричинити непередбачені побічні ефекти . Звідси щотижня випускається низка патчів і ризик того, що виправлення однієї помилки призведе до появи нових.

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

Таненбаум навіть стверджує, що в організаціях такого розміру жоден інженер не розуміє навіть значної частини всього коду . Коли один елемент пазла пошкоджений, майже неможливо передбачити, що ще зламається. Його роздуми випливають з розгорнутої розмови з аргентинською газетою Clarín.

Монолітний проти модульного: уроки MINIX, Linux та Windows

Монолітний проти модульного

Професор порівнює цей підхід з модульністю MINIX та альтернативами, такими як Anduinos : якщо аудіоконтролер виходить з ладу, пошкодження обмежуються звуком . Він не повинен мати дозволу на доступ до диска чи мережі, тому фактичний вплив обмежений, а відновлення простіше.

У монолітних системах, таких як Windows або сам Linux (наприклад, LinuxFX ), компоненти набагато тісніше взаємопов'язані . Збій в одному модулі може поширюватися та спричиняти каскадні проблеми: збої, постійні помилки та вразливості, які потребують подальшого виправлення.

Ці дебати не нові. Таненбаум, прихильник мікроядра та модульного підходу, зіткнувся з Лінусом Торвальдсом, прихильником монолітного ядра . Суперечка уособлює класичну дилему: продуктивність та простота реалізації проти ізоляції та безпеки.

Ринкові реалії сприяють монолітним конструкціям, але Таненбаум ставить під сумнів, чи варта ця «перемога», враховуючи витрати з точки зору стабільності, площі поверхні атаки та довгострокового обслуговування. Його теза: трохи повільніша, але компартменталізована система може бути набагато стійкішою.

Закрите програмне забезпечення та непрозорість: чого ми не бачимо

Окрім Windows, фахівець з інформатики попереджає, що значна частина комерційного програмного забезпечення працює як чорна скринька, непрозора навіть для власних команд ; проте такі ініціативи, як відкриття частини коду WSL компанією Microsoft, показують, що прозорість може покращити внутрішній аудит та розуміння.

Для користувачів та організацій це означає жити в ритмі виправлень та сліпо довіряти оновленням , поки залежності та побічні ефекти множаться. Більш модульна інженерія, перевірка дозволів та незалежні аудити допоможуть зменшити ризики, не придушуючи інновації.

Точка зору Таненбаума малює неприємну картину: нерозділена складність робить Windows розсадником помилок , займає команди постійними виправленнями та збільшує ризик вразливостей безпеки; переосмислення архітектури в бік добре ізольованих модулів видається найнадійнішим способом досягнення стабільності.

ВінБоут
Пов'язана стаття:
WinBoat, інструмент, який найкращим чином інтегрує та запускає програми Windows на Linux

Додати як пріоритетне джерело в Google