Kylin — подход к информационной безопасности по-китайски
Анализ финансирования ИT в КНР
Некоторое время назад в прессе, по большей части зарубежной, муссировались слухи о том, что в КНР создали уникальную операционную систему. Причем по архитектуре она настолько отличается от существующих операционок, что угрозы от Windows, Linux и FreeBSD ей не страшны. Причем внятных и правдивых объяснений, как всегда, найти не удалось. Что это — очередной миф или реальность?
Дорогое удовольствие
Чтобы иметь представление, сколько на самом деле может стоить разработка современной операционной системы, нужно опираться на цифры. Сухая статистика поможет избежать излишней эмоциональности и трезво подойти к задаче. В качестве примера разберем стоимость разработки такой операционной системы, как Linux. В силу открытости Linux история ее развития у нас перед глазами, и этот факт позволяет нам хотя бы приблизительно оценить стоимость ее разработки.
Правда, изначально Linux создавалась не как операционная система, а как простой терминал в уже существующей Minix — академической (в хорошем смысле слова) операционке от Andrew Tannenbaum. То есть фактически использовала определенные идеи по архитектуре и дизайну. Не все, но некоторые моменты у них общие — например строение файловой системы. Более того, не стоит забывать, что полное название операционной системы от простого финского парня звучит как GNU/Linux. Ядро операционной системы Linux практически ничего не значит без пакета программ для пользователя — bash, vi, X11 и пр.
Эти и другие моменты были приняты во внимание сотрудниками LinuxFoundation, когда они попытались дать оценку стоимости разработки дистрибутива Fedora 9. Они подсчитали количество строк в исходном тексте ядра и приложений, учли среднегодовую стоимость оплаты труда занятых программистов, срок разработки и получили следующий результат:
- общее количество строк кода — 204 500 946;
- согласно методике COCOMO, потрачено 59 389,53 (712 674,36) человеко-лет (человеко-месяцев);
- примерный срок разработки, согласно методике COCOMO, — 24,64 (295,68) лет (месяцев);
- примерная стоимость разработки — 10 784 484 309 долл.
Справедливости ради стоит учесть, что анализ стоимости разработки Linux в 2002 году дал цифру в 1,2 млрд долл. (в ценах 2002 года). То есть получившаяся общая стоимость разработки операционной системы с учетом входящих в нее userspace-приложений, подсчитанная LinuxFoundation в прошлом году, — это суммарная стоимость ее разработки в 2002 году и за прошедшие с того момента шесть лет.
Как видите, удовольствие не из дешевых. Вряд ли какая-то отдельно взятая страна смогла бы в одиночку разработать аналогичный продукт. Но даже если это и так, не стоит сбрасывать со счетов и комфорт проживания разработчиков. В долгосрочной перспективе такой сложный продукт, как операционная система, не делается «на коленке» и на голом энтузиазме.
Анализ финансирования ИT в КНР
Исходя из того, что мы не единственные, кто знает о реальной стоимости разработки ОС, предположим, что подобные расчеты проводились и в КНР (впрочем, как и в любой другой стране, которая озаботилась разработкой национальной операционной системы). Зная, что весь стек приложений для userspace уже фактически разработан, его можно взять и использовать в любом «закрытом» дистрибутиве, практически никого не уведомляя — даже несмотря на наличие меток GPL и подобных им. Уверяю, что возможностей FSF для отстаивания интересов открытости никогда не хватит при общении с отдельно взятой страной, особенно с каким-либо «ответственным» министерством.
Остается одно — разработать ядро для национальной системы. В этом случае затраты могут быть на два порядке ниже, чем на разработку всей ОС. Яркий пример — современный openSolaris, ядро и некоторая часть системных утилит которого созданы внутри Sun Microsystems, а практически все остальное идет под заголовком GNU. А каковы были затраты Китая на информационные технологии?
Согласно сделанным в 2000 году прогнозам, Министерство КНР по информационным технологиям планировало инвестировать в ближайшие 5 лет до 400 млрд юаней (примерно 120 млрд долл.) в развитие информационных технологий. Планы планами, но страна большая, округов и муниципалитетов много, исследовательских институтов тоже предостаточно. Что на выходе? Остались ли деньги на собственно интеллектуальные разработки?
В 2006 году компания IDC по заказу Business Software Alliance провела анализ, как и сколько инвестировалось в Китае на ИT за прошедшие годы (рис. 1 и 2).
Рис. 1. Анализ IDC фактических и прогнозируемых затрат на ИT в КНР,
сделанный в 2005 году
Рис. 2. Доля КНР на рынке ИT в мировом разрезе
Как видите, суммы инвестирования во всю ИT-индустрию за 2005 год не так уж и велики. Примерно оценить затраты за 2000-2005 годы тоже вполне реально. Главный вопрос: что же сделали в Китае на самом деле?
Интрига разворачивается
Лучше один раз увидеть, нежели несколько раз услышать. Вооружимся дистрибутивом Kylin 2.1 и попробуем установить его в виртуальной машине VirtualBox.
При установке системы стало видно, что в качестве корневой файловой системы используется UFS2. Вроде для Linux эта система нехарактерна, не правда ли? Может, что-то из семейства BSD? Идем дальше. Применяются пакеты RPM. Может, все-таки Linux?
Итак, установка завершена. Входим и запускаем uname:
$ uname -a
Linux localhost.localdomain 2.4.18 KYLIN 2.1-01 #0: Mon May 8 15:15:02 CST 2006 i686 i686 i386 GNU/Linux
Вот как. Пожалуй, Linux.
Дабы и дальше не гадать на кофейной гуще, скажу, что это смесь: ядро от FreeBSD (рис. 3), а все остальное — GNU/Linux, то есть на самом деле GNU-утилиты без Linux-ядра.
Рис. 3. Сообщения от ядра операционной системы Kylin 2.1 похожи на FreeBSD
Остается выяснить, что за версия ядра FreeBSD используется. Согласно Квингбо Ву (Qingbo Wu), одному из разработчиков дистрибутива Kylin, применяются ядро и сетевой стек от FreeBSD 5.3. Независимое исследование подтверждает — используется ядро именно от FreeBSD, и его наиболее предполагаемая версия — 5.3.
Спрашивается, зачем потребовалось городить такой огород, где часть утилит от Linux, а часть — из проекта FreeBSD? Смею предположить, что ядро от FreeBSD применялось по следующим причинам: оно чуть более стабильно и с ним проще проходить сертификацию. Заметьте, что начало принятия решения об использовании архитектуры датируется 2002 годом (если не раньше). А применение userspace-окружения в виде GNU-приложений гарантирует беспроблемный запуск, например, СУБД от Oracle. Более того, если считать Kylin первым национальным проектом Китая (финансируемым государством) в области построения операционных систем, то достигнутые результаты заслуживают одобрения. Под лежачий камень вода не течет, и результаты обычно проверяются на практике. А она такова, что организации National University of Defense Technology, China Soft, Inc., Lenovo, Inc., профинансировав проект, получили на выходе работоспособный материал, который учитывает автономность авторского права для ядра, бинарную совместимость с Linux на уровне приложений, а также с 64-битной поддержкой. Так что в целом овчинка стоила выделки.
Где применяется Kylin2? Ведь нельзя затратить усилия и посчитать проект чисто академическим, без реального приложения в народном хозяйстве. Да, реальное применение есть. Например, в системе реального времени по управлению объектами электроснабжения на севере Китая. В системе электронного правительства города Penglai (провинция Shandong). В финансовом секторе — в филиале банка China Construction Bank в Shan’Xi, а также в фирме Xiangcai Securities, работающей на фондовом рынке.
Инструменты безопасности
Нам стало интересно, как столь широко разрекламированная система позволяет защититься от внешних и внутренних вторжений? И здесь нас ждал небольшой сюрприз. Мы рассчитывали увидеть список правил пакетного фильтра ipfw, а встретили Lokkit — Gnome-оболочку для iptables. Сказать, что это очень упрощенный подход к знаниям администрирующих персон, — значит не сказать ничего. В качестве оружия от внешнего вторжения используется snort 2.1.0. А для контроля целостности данных есть средство tripwire, как и в любой Linux-системе. Остальные GNU-утилиты и приложения не отличаются от списка приложений в RedHat того времени (2004-2005 годы). В том числе и Perl-программа cosixupdate, предназначенная для получения обновлений системы. Ее просто переименовали из autoupdate. В остальном ничего экстраординарного и специфического во время работы замечено не было. Обычная стабильная система.
Что дальше?
Разговор бы свелся к обычному обзору очередного UNIX-дистрибутива, правда с необычной компоновкой, если бы не панические слухи о супероружии Китая в области информационных технологий и недоступном дистрибутиве Kylin 3, про который все слышали, но который никто не видел. Давайте подумаем, а что могло прийти на смену Kylin 2.1? Действительно ли что-то новое?
Смею утверждать, что, по всей видимости, в качестве Kylin 3 выступает обычный Linux-дистрибутив NeoShine Server (рис. 4), разработанный в том же самом месте, что и Kylin 2.1, но в силу определенных причин теперь уже полностью с Linux-ядром.
Рис. 4. NeoShine Linux Server и есть неуловимый Kylin 3?
Что это могут быть за причины? Первое — основной упор в области микропроцессорного строения КНР делает на свой 64-разрядный MIPS-процессор. Зачем? — спросит читатель. Чтобы не быть зависимым от компаний Intel и AMD. Лицензия и дальнейшая разработка уже полностью принадлежат китайской стороне.
Второе — на данный момент из открытых систем лишь Linux может работать на MIPS-архитектуре. Для FreeBSD 8 осуществляется поддержка только указанной платформы.
И третий, бытовой аргумент: зачем тратить ресурсы на поддержку почти двух систем (FreeBSD-ядро и Linux userspace), когда логичнее пока продвигать Linux? Да и присутствие таких Linux-компаний в сфере ИT-технологий Китая, как Red Flag Software, позволяет подготовить пользователей и системных инженеров к миру UNIX. А как именно он будет смотреться на картинке дисплея — это уже совершенно другой вопрос.