Чому я байдужий до Linux
22 жовтня 2008 р
У 1974 році мені було 25 років. До цього часу ми з моїм одногрупником і тодішнім другом Сашком Бяковим закінчили свою першу роботу в ІТМіВТ з розробки інтерпретатора периферійної машини нового обчислювального комплексу АС-6, займалися розробкою набагато складнішого інтерпретатора центрального процесора і одночасно були залучені до проектування нової операційної системи. 6. Керівником цієї роботи був Віктор Іванніков, який до цього займався проектуванням та розробкою операційної системи НД-70 для БЕСМ-6 та у 1971 р. захистив на цю тему кандидатську дисертацію.
На той час ми знаходилися під глибоким впливом ідей ОС Multics. У Новосибірську тоді перекладалася українською мовою і публікувалася у вигляді препринтів маса статей, присвячених цьому проекту, а ми з цих перекладів навчалися. Крім того, тоді тільки з'явився напрямок мов із абстрактними типами даних, і нам дуже хотілося застосувати ці ідеї в галузі операційних систем. Це тема окремої довгої розмови, але факт, що спочатку ОС UNIX сприймалася нами як повну зневагу досягнутим рівнем технології операційних систем, як популістська ОС, яка не принесе в область операційних систем нічого нового.
Після успішного завершення проекту АС-6 в 1980-ті гг. ми займалися проектом нової операційної системи КЛОС (кластерна операційна система) і продовжували ставитись до UNIX цілком зверхньо, хоча вже використовували цю систему на практиці і навіть емулювали її в середовищі КЛОС (це знову окрема історія). Але до кінця 1980-х рр., коли з'явилася Радянська асоціація користувачів ОС UNIX, яка стала частиною європейської асоціації EurOpen, мені поступово стало зрозуміло, що ОС UNIX означає набагато більше, ніж простаОпераційна система – це важливий компонент підходу відкритих систем.
Так, для мене 1990-ті роки. були часом Відкритих систем, систем, заснованих на відкритих стандартах, що забезпечують можливість створення мобільних та інтероперабельних системних та прикладних програм. І ОС UNIX стала першою (і досі єдиною) відкритою операційною системою, оскільки вже у 1980-ті роки. для неї з'явилися відкриті та загальнодоступні стандарти (наявність яких, зокрема, і дозволило Лінусу Торвальдсу зайнятися створенням власного варіанту цієї ОС).
Мені знову ж таки не хочеться зараз багато поширюватися з приводу Відкритих систем. Зауважу лише, що спочатку (до середини 1990-х рр.) у плідності цього підходу багатьох доводилося переконувати, і з середини 1990-х він був використаний у переважній кількості підприємств, які виробляли програмне забезпечення на платформі ОС UNIX. В даний час про Відкриті системи говорити, мабуть, вже не надто розумно, оскільки (як мені здається) цей підхід став повсюдним.
Так от мені здається, що в Linux все-таки головне не те, що це операційна система з відкритими кодами, а те, що Linux - це операційна система, зроблена за стандартами UNIX. Для широкого класу користувачів Linux відкриті коди ядра не означають зовсім нічого, а важливо те, що різні варіанти цієї ОС, що працюють на різних архітектурах, дозволяють використовувати одні й ті ж програми. Також важливо і те, що програми, розроблені в середовищі Linux, майже напевно можна буде використовувати і в різних варіантах BSD, і в середовищі комерційних варіантів UNIX. Іншими словами, якщо ти не входиш у досить вузьке співтовариство розробників ядра Linux, то відкритість кодів цієї ОС для тебе не означає зовсім нічого. Я вце співтовариство не входжу і тому для мене Linux - це лише один з кількох існуючих варіантів UNIX.
Якщо вже на те пішло, то для мене значно ближче клони UNIX, що базуються на ядрі System V (AIX, HP-UX, Solaris і т.д.), і спадкоємиці системи UNIX BSD. Все-таки вони первинні, вони зароджувалися та розвивалися у мене на очах. Відомо і зрозуміло походження їхніх недоліків та переваг. Це старі добрі операційні системи, які налагоджувалися десятиліттями. На їх тлі Linux (разом з Лінусом) – це зухвалий молокосос, що завоював всесвітню популярність завдяки не так своїм особливим перевагам, як ексцентричності способу розробки. Тим не менш, тепер вже абсолютно ясно, що Linux повноправно входить до когорти UNIX-подібних операційних систем, хоча злокозненные законники і дають цій системі права називатися UNIX.
Може здатися, що у зв'язку з дедалі більш повним засиллям ринку апаратних засобів компанії Intel ідеї відкритих систем і UNIX зокрема стають менш істотними. Проте подивіться, які операційні системи насамперед з'являються на будь-яких експериментальних обчислювальних системах, що ґрунтуються на нових процесорах? Все та ж ОС UNIX (тепер усе частіше Linux), оскільки її найпростіше перенести на нову апаратну платформу. А після перенесення UNIX вже і на цій новій платформі можна використовувати різноманітні додатки, для яких важлива лише наявність середовища UNIX.
Іншими словами, злиденність UNIX обернулася сильними сторонами цієї ОС: вона стандартна, зрозуміла розробникам додатків та користувачам, її можна реалізувати за бажання заново, її просто перенести на нову платформу.
А негативний ефект цієї ОС теж зрозумілий – розвиток технології операційних систем в університетах талабораторія компаній практично припинилося. Сумно та дивно спостерігати ситуації, коли шляхом перенесення Linux на абсолютно нову платформу намагаються уникнути потреби у розробці нової операційної системи, хоча архітектура UNIX для цієї платформи абсолютно не годиться (я знаю конкретні приклади, але не хочу докладно поширюватися з цього приводу).
Що не кажи, але як UNIX не переробляй, все одно з нього висовується архітектура PDP-11, для якої ця ОС спочатку робилася. Адже ми пішли від PDP-11 дуже далеко.
У свій час компанія IBM робила сумісними на рівні системи команд свої серії мейнфреймів 360 і 370, щоб можна було використовувати на всіх моделях цих серій ті самі операційні системи. В результаті свого часу IBM майже пропустила наступ клієнт-серверних архітектур і насилу згодом завоювала частину цього нового ринку.
Компанія Digital Equipment Corporation (DEC) після надвдалої серії 16-розрядних PDP-11 почала випускати також вдалу серію 32-розрядних VAX-11, у яких на рівні мікропрограм емулювалася система команд PDP-11, а в ОС VMS для VAX відтворювалося середовище RSX- 11 для PDP. В результаті на VAX можна було виконувати всі програми, написані для PDP. Але коли DEC вирішила перейти від мікропрограмної архітектури своїх комп'ютерів до RISC-архітектури та випустила процесор Alpha, її спроби забезпечити повноцінне виконання VMS на новій платформі за рахунок бінарної (!) компіляції призвели, зрештою, до краху компанії (хоча, можливо, я і помиляюсь у справжніх причинах цього краху).
Ось і UNIX. Живе собі, плодить нових прихильників та закриває дорогу новим операційним системам. Одна радість, що таки не дає існувати тільки операційним системам від Microsoft (про які тут яговорити взагалі не хочу). Як би в результаті людство взагалі не розучилося робити операційні системи. Типун мені на язик…