BeOS: система, яку ніхто не збирався створювати

Через обмеженість бюджету і нестачу часу, операційну систему збиралися придбати на стороні... Але, як виявилося, жодна система не відповідала принциповим вимогам стартапу - і відповідальну цим вимогам довелося писати самим, з нуля.

Хоча б одна її частина вже існувала в природі: ці самі вимоги. Жодне з них не було випадковим, кожне пройшло не один раунд обговорень і суперечок, і навіть авторитет Жана-Луї в створеній ним компанії не завжди приводив його до перемоги. У зведенні вимог була описана приголомшлива система.


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

Продовження. Початок, попередні частини тут, тут і тут.

Назви комп'ютера і операційної системи

Я буду називати всі комп'ютери від Be'BeBox'. Це їхня офіційна назва, але з нею не все так просто. Воно увійшло в обіг тільки в 1995, і з'явилося стихійно. Його ніхто не придумував спеціально. До 1995 комп'ютери своєї розробки називалися в компанії по різному. Часто їх називали «computer», іноді у французьким акцентом.

Найперший, «дрібносерійний», варіант називали Be Machine. Стів Сакоман зібрав у своєму гаражі 30 примірників Be Machine, для співробітників компанії. Природно, йому допомагали співробітники, навіть глава компанії - але головним і найкориснішим помічником був 12-річний син Стіва.

Експлуатація Be Machine виявляла недоліки, і породжувала численні ідеї щодо поліпшення комп'ютера. Власне, саме для цього їх і «випустили» таким великим тиражем. Ними користувалися навіть бухгалтер компанії, і офіс-менеджер. Тому, дуже скоро, комп'ютер у фахівців з розробки комп'ютера став істотно відрізнятися від Be Machine.

Хтось назвав його Be-1, співзвучно з B-1 (як бомбардувальник), і це прижилося. А Be на процесорах PPC-603, природно, став Be-2. Але скоро і ця назва, також стихійно, змінилася на BeBox.


Його зробили офіційним. Жан-Луї не хотів, щоб у назві комп'ютера були цифри. Дивна манія, чимось нагадує стиль Джобса. BeBox його цілком влаштовував. Назва не тільки прижилася - її стали використовувати ретроспективно, для позначення колишніх моделей комп'ютера. Ті самі 30 Be Machine тепер називали Hobbit BeBox. До речі, у колекціонерів кожна така машинка коштує тепер мало не мільйон доларів, але їх залишилися одиниці, у вільний продаж вони ніколи не надходили.

Операційну систему назвали BeOS тоді ж, коли зрозуміли що без написання своєї власної системи не обійтися.

Звід вимог

Система не повинна була займати сотні мегабайт на диску. Саме тому Unix'и навіть не розглядалися як кандидат на роль операційної системи для BeBox.

У ній мало бути ядро (низькорівневий сервіс системи, що відповідає за базові операції - процеси, потоки, роботу планувальника завдань, семафори, зони, порти, комунікації між процесорами тощо).

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

За важливі аспекти роботи системи повинні були відповідати її внутрішні «сервери», у разі придбання системи на стороні вони могли бути перейменовані як завгодно, але всі вони повинні були виконуватися в окремих процесах, можливо з декількома потоками. Application Server (відповідає за запуск та ініціалізацію програм), Storage Server (управління постійною пам'яттю), Audio Server, Net Server та інші.

Від конструкції системи і до її найважливіших процесів (таких як запуск системи, управління потоками і процесами, управління обміном повідомленнями між процесами, робота з мережею і периферією, підтримка TCP/IP, тощо) вимагали:


  • чистоту і виразність реалізації (контролювати можна тільки зрозумілі механізми);
  • подробиць і виразність документації;
  • відкритість (для «розумного» користувача).

При всій очевидності цих вимог, їх ніколи не записували в технічних завданнях, і не звертали ніякої уваги на їх дотримання.

Не дивно, що на пошук сторонньої операційної системи пішло багато сил і часу. Дивніше інше: у світі знайшлася операційна система, Chorus OS, яка відповідала майже всім цим вимогам.

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

BeOS

Акуратна реалізація вимог до системи зажадала від розробників приблизно стільки ж часу, скільки йде на розробку операційних систем в яких ці вимоги сформульовані нечітко.

У BeOS траплялися тимчасові відступи від цих правил, коли у розробників не було часу, але саме тимчасові. Після закінчення авралу, будь-якою ціною, головні принципи обов'язково відновлювали.


На спокійному етапі розробки системи, з особливою ретельністю, враховувався характер хоббітів.

Вплив хоббітів був, в основному, позитивним: майже весь вихідний код BeOS був написаний на C і C++. У тому числі і низькорівневий. Завдяки цьому, систему вдавалося переносити на принципово інші архітектури відносно легко. Відносно.

У відомій мені частині зводу вимог немає жодного, пов'язаного з інтерфейсом користувача. Це не випадково. Змирившись з неминучим, Жан-Луї дозволив писати свою власну систему, але все що пов'язано з інтерфейсом, віконною і графічною системами він наполегливо відкладав.

Як виявилося, він шукав відповідного «донора», сподіваючись вирішити інтерфейсне питання, як мінімум, вигравши час.

У 1992 році в компанію прийшов Стів Хоровіц, недавній випускник університету, знавець користувальницьких інтерфейсів і аномально великої кількості мов програмування. Його першим завданням стало вивчення PostScript. Людина займалася улюбленою справою, і за це отримувала пристойну зарплату, в компанії яка явно не страждала від надлишку грошей.


Його мучили докори сумління, поки йому не повідомили його головне завдання.

Графіка та інтерфейс користувача

Віконну операційну систему від Sun Microsystems, написану на Display PostScript, Жан-Луї передбачав використовувати як графічний інтерфейс BeOS. Або як основу цього інтерфейсу.

Стіву Хоровіцу доручалося все коло питань, пов'язане з адаптацією NeWS у BeOS. Я думаю, Жан-Луї прокидався ночами в холодному поту, згадуючи про те, що якщо NeWS буде визнана відповідною, доведеться вести переговори про придбання ліцензій відразу у двох монстрів (у Sun Microsystems і у Adobe Systems). Це було б нелегко, але виграти час було необхідно.

Стів Хоровіц змусив NeWS «ворушитися» в BeOS, але прийшов до висновку що перенесення цієї системи в BeOS і її адаптація займуть нереально багато часу. Він детально описав у звіті складності перенесення і адаптації, і пояснив чому вони нереальні.

Тепер ще й графіку з віконною системою і інтерфейсом користувача потрібно робити самим?


Але тут з'ясувалося, що Бенуа Шиллінгз, нікому про це не кажучи, потихеньку працював над своїм варіантом графічної системи з усіма її підсистемами, з нуля - і вже багато чого домігся. Навіть у найбільш зайнятих людей має бути вільний час. Інакше, у важку годину, подібні чудеса будуть просто неможливі.

Бенуа став начальником відділу графіки та інтерфейсу, а Стів Хоровець - співробітником цього відділу.

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

Продовження слід

COM_SPPAGEBUILDER_NO_ITEMS_FOUND