Интервью с разработчиками KolibriOShttp://www.stavimlinux.ru/dists/KolibriOS/interview-with-developers/На днях Олегу Анлевину (Unlevin) довелось пообщаться с Кириллом
Липатовым. Кирилл - прикладной программист проекта KolibriOS. Работает он давно и всем было бы интересно узнать о проекте KolibriOS со слов программиста. Так же комментарий дает Дмитрий Переверзев - администратор проекта.
Unlevin:
Как давно ты в проекте?
Кирилл Липатов:
Ох. :) Лет 7, наверное. Первое сообщение на форуме было 25 января
2007, в 14:39. То есть уже 6 лет, но слежу дольше... Некоторые следили
лет 5, потом только подключались к разработке. Если коротко, я
пришёл в проект, так как сделал иконку для эмулятора KlbrInWin. Тогда
это было моё хобби, и сейчас - тоже. Автор программы не ответил на
письмо, которое я ему послал, и я пришёл на форум, чтоб написать ему. Я обновил большинство иконок в дистрибутиве, потом начал изучать программирование, именно брагодаря Колибри. Си + ASM.
Недавно я ещё сделал с одним парнем новый официальный сайт Колибри,
потому что старый был очень печален. Меня затянул веб-дизайн, и я начал
изучать РHP. Когда я полез в вебдизайн и прочее, я понял, что нужно
Колибри продвигать в массы через соцсети. И вот, пожалуйста - у нас своя
группа Вконтакте и на Фейсбуке!
Только что мы обсуждали с Димой замену баннера на сайте. Хотим
установить баннер, агитирующий людей вступать в нашу группу Вконтакте
для русскоязычной версии сайта, Фейсбук для англоязычной. У нас много и
других идей, жаль в сутках всего 24 часа. Итак, на данный момент это: - баннер - весёлые картинки в группе, ака демотиваторы, кроме новостей для привлечения внимания - сделать обзор Колибри, качественный, что было сделано в последний раз после выпуска последнего дистрибутива (3 года назад) - этот новый обзор опубликовать на различных ресурсах Это мои с Димой цели.
Unlevin:
Вот очень простой народный вопрос, но интересно узнать твое мнение:
А KolibriOS - зачем вообще она? Это экспериментальная ОС, или все же в
будущем она найдет себе массовое применение в той или иной сфере? К
примеру, можно ли использовать её во встраиваемой технике?
Кирилл Липатов:
Хороший вопрос, частый, и мало кто знает на него ответ. Но я отвечу максимально широко. Несомненными преимуществами KolibriOS перед многими другими операционными системами на дискете являются:
высокое быстродействие, возможность обращения к внешним дисковым
накопителям и сохранения результатов работы, настраиваемый и приятный
интерфейс, открытость исходных текстов. Ее можно рекомендовать
программистам, желающим попробовать свои силы в создании ОС или изучении
ассемблера. В случае, если Windows перестанет загружаться,
KolibriOS поможет скопировать важные данные с разделов NTFS (EXT 2/3 или
FAT) на другой раздел, при этом время загрузки у неё около 5 секунд, а
скорость копирования на 6-8% выше, чем у Windows. Наличие эмулятора Денди и DOS, плюс набор интересных игр могут привлечь внимание детей, обучающихся использованию компьютера. Вместе с тем Колибри достаточно функциональна и может использоваться для замены Windows в ряде задач. Одна из американских компаний уже несколько лет использует MenuetOS и KolibriOS на своих компьютерах,
в России же KolibriOS используется на производстве. Израильская
компания "Green Gadgets Ltd" планировала продавать ультрадешёвые
компьютеры с Колибри на борту. Часть разработчиков получила гаджеты
компании для адаптации системы под них, написания драйверов. Однако спустя год у компании начались какие-то проблемы, и Колибри полетела дальше... Этот абрац кратко:
- Колибри для восстановления данных после падения системы
- Колибри для маломощных дешёвых компов, как в случае с "Green Gadgets
Ltd" - тогда это был мощных толчок развитию Колибри, основатель этой
компании по прежнему с нами, он основал группу в Фейсбуке
- Колибри управляла, и вероятно, до сих пор управляет каким-то
борошномельным котлом на предприятии в Украине
[http://board.kolibrios.org/viewtopic.php?f=25&t=897] (по пункту 3 -
Колибри показала меньшее энергопотребление и большую стабильность, чем
винда, про скорость молчу)
Я продолжу. - Возможно использование Колибри как сервера - она сейчас уже может
работать как сервер (тут лучше распросить Диму, он это пробовал), но
если наш друг-бельгиец закончит новый сетевой стек - это будет... Нет
слов, что это будет.
- Вообще, Колибри задумывалась как десктопная система изначально. У
нас уже есть видеоплеер, драйверы для звука - можно смотреть фильмы и
видео, а если бы ещё и современный браузер + поддержку популярных
сетевых карт... ВИДЕО+МУЗЫКА+ИНТЕРНЕТ - это 80% действий обычного
пользователя.
- Встроенные решения. Колибри-А используется в системах технического зрения и в биосенсорах (для молекулярной биологии).
А еще - для тестирования и наладки нового железа. Наш разработчик
art_zh писал: "Ни одна другая ОСРВ для моих приложений не подходила,
пришлось пилить свою. Работа окупилась уже раз 20, и еще окупится
стократно. Единственное о чем я очень жалею - что не узнал об этом
проекте на три года пораньше". Сам art_zh сейчас уже работает не над
Колибри-А, а над новым проектом Колибри-Б, и занимается этим очень
серьезно.
Дмитрий Переверзев:
Действительно, для Колибри есть веб-серверы, но это не приоритетная
задача. Проблему "десяти тысяч соединений" мы пока что не решили, и в
ближайшем времени решать вряд ли будем. Новый сетевой стек сулит большие
перспективы, потому что уже сейчас он совместим с сокетами Unix, а в
будущем, вероятно, добавится эмуляция сокетов Windows. Это может
упростить разработку и портирование сетевых приложений многократно.
Что касается Колибри-А и Колибри-Б, то на решения, использованные в
данных системах, даже получены патенты. Колибри-А заточена под
определенные чипы AMD, а Колибри-Б - это не только система, но и
специализированное "железо" для неё.
Unlevin:
А что у вас с пакетами программ? Трудно ли писать ПО для повседневного использования?
Кирилл Липатов:
У нас нет понятия пакетов. У нас есть дистрибутив размером 1,44 Мб, в который входит порядка 180 программ,
и дополнительный пак программ (он есть на сайте). В дополнительном паке
в основном портированные тяжеловесы. Всё это - 90% софта Колибри.
Писать программы не сложно, я не писал их под другие ОС, только когда-то
давно баловался Делфи - ещё в школе. Проблема в том, что система
пропагандирует ассемблер. Он куда сложнее для разработки, чем Си, на
котором можно тоже легко писать под Колибри.
Unlevin:
Какое окружение используешь?
Кирилл Липатов:
Windows, но в проекте используют и GNU/Linux. Это не очень важно.
Дмитрий Переверзев:
Компилировать программы для Колибри можно в любой из двух систем;
ядро и основные программы можно скомпилировать из самой Колибри. Поэтому
программы, которыми пользуются программисты, действительно не очень
важны. Например, один наш разработчик постоянно пользуется Колибри как
основной системой. А вот на сервере автосборок без GNU/Linux мы бы
действительно вряд ли обошлись. Каждый коммит в репозиторий вызывает
автоматическую компиляцию проекта, а затем - автоматическую сборку
образов дискет и LiveCD для русского, английского, итальянского языков и
ветки проекта new stack. Чтобы компилировать все программы, приходится
держать на сервере целый зоопарк различных компиляторов и ассемблеров.
После сборки дистрибутивов сервер автосборки обновляет ссылки на
официальном сайте. На всё это, как правило, сервер тратит не больше
нескольких минут.
Unlevin:
C++ Builder используешь?
Кирилл Липатов:
Вот это сложный момент, и ты будешь в шоке, но я использую уже много лет не разрабатываемый компилятор С-- Сфинкс.
Он генерирует неоптимальный код, но так сложилось исторически. Я
редактировал программы на MSVC++ и на GCC, но уже привык к С--, который
все уже ненавидят в проекте. Однако, мои программы на нем отлично
работают и мало весят. После разработки моей последней программы с
Димой, я тоже начал ненавидеть С--: большой и достаточно сложный проект,
и тут уже компилятор начал выкаблучиваться. Все библиотеки для С-- я
написал с нуля, а для нормальных Си-компиляторов есть две библиотеки:
портированная libc и newlibc. С первой получаются небольшие
программы, но были замечены глюки, ведь ей уже много лет. Newlibc -
молодая, ошибок змечено не было, однако из под неё выходят
"программы-кабаны". Ещё есть порт tinyc, о нём, да и о всех библиотеках
подробнее расскажет Дима. Моё увлечение - дизайн, юзабилити и
менеджмент/маркетинг. Писать программы я начал потому, что рабочих рук в
проекте не хватало. Я не считаю себя хорошим программистом, однако за
последний год я серьёзно вырос. Многие вещи объяснил мне Дима. Он умный
парень и давно работает в проекте.
Дмитрий Переверзев:
Newlib - это актуальная разработка RedHat, а libc - порт довольно
старого проекта DJGPP. Соответственно, использовать newlib
перспективнее. Однако, для кода для libc несколько больше.
Unlevin:
Высокая отказоустойчивость, пониженное потребление электроэнергии
системой. KolibriOS можно использовать в сетевом администрировании. Я
надеюсь что в KolibriOS сетевые инструменты намного улучшились по
сравнению с MenuetOS?
Кирилл Липатов:
В транке они пока что примерно на том же уровне, а вот в ветви new_stack - совсем другое дело!
Unlevin:
Проект MenuetOS все еще живой, или вы всё же вытеснили его своим KolibriOS, и теперь вы доминируете?
Кирилл Липатов:
MenuetOS - это 32х разрядная ОС, проект мёртв, и ему на смену пришёл
Menuet64. Menuet64 - система своеобразная, что важно - написана с нуля, и
в ней учтены некоторые ошибки Menuet32. Но для запуска и комфортной
работы нужно 768 Мб памяти. Колибри требуется 8 для запуска, а 32 Мб
вполне хватит для комфортной работы. У MenuetOS есть один важный
плюс - браузер, однако, чтобы запустить интернеты, нужно нехило
пошаманить. Paint у них неплохой, а в целом KolibriOS дрюкает MenuetOS
по полной :)
Unlevin:
Тема безопасности актуальна для KolibriOS, или все же акцент на стабильность?
Кирилл Липатов:
Ядерщики говорят, что завалить Колибри можно, у нас мало уделяется внимания кривому софту.
Мне моими программами не удавалось ни разу. А вообще кривым софтом
можно завалить любую систему. Про безопасность нужно спрашивать
ядерщиков, я прикладной программист. Хе-Хе. Под Колибри когда-то был
вирус :)
Дмитрий Переверзев:
Основные потенциальные уязвимости системы известны, как считают наши
ядерщики, и их едва ли можно эксплуатировать без доступа к сети
Интернет. В будущем проблема станет более актуальной, и ей, без
сомнения, займутся серьезно. К слову, все уязвимости достались нам в
наследство от MenuetOS.
Unlevin:
KolibriOS 8 - новая версия, которая только выйдет?
Кирилл Липатов:
Не факт, что это будет восемь, и неизвесно, когда выйдет, но выйдет - я гарантирую это.
С выходом дистрибутива ситуация вообще интересная. Просто нет лидера,
который бы взял, собрал и сказал: "он будет такой, и всё". Это главная
проблема, я считаю. Есть и другая. Когда-то решили, что в новом
дистрибутиве должна быть однозначно поддержка usb-стека.
Unlevin:
Ты имеешь в виду, что нет такого лидера, как, например, в сообществе
Debian (в данный момент Стефано Закироли), который официально объявляет о
новостях и курирует весь проект?
Кирилл Липатов:
Да. Когда-то это был основатель Колибри Mario, потом diamond, сейчас
такого нет. И никто не хочет им быть. Вот и проблема. Я не могу быть им,
так как не компетентен в "ядреных" вопросах, и вообще, я плохой
программист, а такой человек должен быть ГУРУ в асме. Сейчас
единственная девушка в проекте - CleverMouse - "пилит" USB-стек, и
продвижение есть. Я уважаю ее, она сейчас, можно сказать,
неформальный лидер. Иногда мне кажтся, что она знает все технологии и
языки программирования. Ах, вот ещё что: для Mario, diamond, CleverMouse
ассемблер - не просто язык. Это религия.
Комментарий по USB от CleverMouse:
Известные проблемы с USB:
- всё ещё не поддерживается usb2 как класс;
- следствие 1: некоторые устройства могут быть не видны в принципе,
потому что их забирает себе BIOS; в качестве workaround можно
попробовать
- динамическое подключение и/или отключение всех usb-related опций BIOSа, либо можно подождать поддержки;
- следствие 2: если устройство опознано, общение с ним будет идти на скорости usb1;
- код для UHCI не обрабатывает дисконнекты, так что в случае UHCI
созданные диски будут продолжать висеть и после отключения флешки; с
OHCI этой проблемы быть не должно;
- драйвер использует SCSI-команды, в которых номер сектора ограничен
32 битами; с usb-дисками размером >2T будут проблемы. Это я считаю
некритичным, так что в обозримом будущем ничего делать не собираюсь.
Я обновила ядро и драйвер флешек: синхронизация с транком, небольшие фиксы в драйвере, финальные фиксы в OHCI. На очереди EHCI.
Unlevin:
Поддержку NTFS вы не полностью смогли реализовать?
Кирилл Липатов:
Нет, только чтение и без шифрования, зато на асме. Кстати, есть и ext2/3/4
Unlevin:
В реализации поддержки NTFS у вас такие же проблемы как у
разработчиков ReactOS? Закрытый код, возможные проблемы с нарушением
авторских прав?
Кирилл Липатов:
Колибри может грузится с NTFS раздела и читать с него же (кроме
зашифрованного), не хватает функциональности, в остальном с кодом вроде
всё нормально. Как отдельный драйвер, можно было бы портировать, но...
сколько он весит?
Дмитрий Переверзев:
Когда-то давно, когда поддержка чтения NTFS только появилось,
разгорелся спор. Что лучше: дать пользователям экспериментальный доступ
на запись NTFS, с возможностью потерять все данные с диска, или же не
давать доступа на запись вообще, во избежание неприятностей?
Остановились, как я понимаю, на втором.
Unlevin:
Кто работает над оформлением, стилистикой, внешним видом системы?
Дмитрий Переверзев:
Над оформлением работают все. у нас сотни скинов, к выходу дистра рисуют новый, новые обои, голосуют.
Unlevin:
Что входит в оформление? Каков размер?
Дмитрий Переверзев:
Оформление? 1) Шрифты. Системные шрифты - их два - занимают около 4 килобайт
2) Скин - как правило, он занимает от 300 байт до 2 килобайт Он хранит в
себе изображения для заголовка и кнопок заголовка в активном и
неактивном состоянии, а так же цветовую схему и параметр
"плоские/объемные кнопки" 3)Обои - в ночной сборке их генерирует программа Palitra 4) Иконки - в ночной сборке это iconsrp.png, весом около 20 килобайт. В официальной это gif'ка весом около 40 кб вроде 5) В ночной сборке можно настраивать цвета и внешний вид панели без перекомпиляции, файл PANEL.INI занимает около килобайта.
Unlevin:
В Колибри можно серфить интернет? Как там браузер? его не закончили?
Кирилл Липатов:
Есть. В транке + отдельная ветвь с новым стеком. Еще есть почтовый клиент, текстовый браузер, http-качалка, IRC-клиент.
Дмитрий Переверзев:
Поддерживается около двух десятков тегов, и даже немного CSS.
Блочная верстка не поддерживается. Картинки пока только с диска читает, с
интернета еще не научилось грузить, хотя осталось немного. Поля
ввода и кнопки не работают - тоже немного осталось. HTTPS не
поддерживается. JS тоже. Добавить кнопки и картинки из инета - и будет
как на мобильнике bash можно читать. Автор браузера - Leency :)
Unlevin:
В KolibriOS есть мультимедийное ПО?
Кирилл Липатов:
Дмитрий Переверзев:
У нас есть миди-плеер MIDAMP, и у нас есть плеер AC97SND, который
умеет воспроизводить WAV и MP3 на карты SoundBlaster, AC'97, High
Definity - то есть большинство карт И еще плеер FPlay умеет в mp3, если в них есть дополнительные данные. В 0.7.7.0 поддерживались только SB16 и AC97, сейчас на 40 звуковых больше. Fplay не было. Fplay последние полгода поддерживает аппаратное декодирование видео. Есть версия размером меньше 400 килобайт с поддержкой основных форматов - divx, mkv, mp4 Еще у нас KIV - просмотрщик картинок - прокачался.
Поддерживает теперь не только GIF, BMP, PNG, JPG, но и TIFF, ICO, XCF и
еще всякие разные, а так же можно масштабировать, поворачивать, и все
такое. Плюс теперь есть ImgF, модуль для эффектов на картинки - сепия
там.
Unlevin:
До 1.0 далековато, или это не имеет никакого значения?
Кирилл Липатов:
Вспомните Firefox 1.0, 1.1, 1.x, 2.0, 2.1, 2.2, 2.2.x, 3.0, 4.0, ... 16.0 Внезапно. Цифры не показатель ничего. Просто так принято :)
Однако, звучала идея просто раз в полгода объявлять ночную сборку
релизом, и это здравая идея, ИМХО. Но нет лидера, который бы сказал: "да
будет так!", и тюлени бы мирно склонили головы.
Unlevin:
Как много фирм или организаций поддерживает ваше сообщество и сам проект KolibriOS?
Кирилл Липатов:
Фирма (Green Gadgets) является распространителем Thin Clients /
Nettops в Израиле. Они покупали какие-то компы или железо, и
перепродавали. На них стояла Windows, и грузилась очень долго, работала
медленно, а Колибри летала - вот они и захотели сотрудничать. И всё.
Проблема в том, что мы - скорее локальное exUSSR сообщество, хотя и
известны во всё мире.
Unlevin:
Кажется, вам реально не хватает маркетинга и продвижения операционной системы.
Кирилл Липатов:
Угу.
Unlevin:
Вы не участвуете в каких-либо конкурсах, выставках?
Кирилл Липатов:
Было дело. Мы как-то не особо об этом заботились, проект был очень замкнутым (спасибо создателю). Основатель покинул проект по личным обстоятельства, личным причинам, и сейчас начинается новый виток развития системы. Только в последнее время проект становится более открытым, социальным, юзабельным и няшным.
Unlevin:
Это вам в плюс. Это способствует продвижению и развитию. Будет что-то новое в этом году? Новые идеи и повороты?
Кирилл Липатов:
Будет новое, всё зависит от нас! Окей, какие цели дальше: - больше открытости и социальности - USB и Network - лучше организация и координация - хороший софт - попытки покорения новых рынков, например, встроенного оборудования
Unlevin:
Чтож... 2 часа для меня прошли как мгновение. Столько нового узнал о
проекте от вас. Спасибо вам за такую интересую беседу. Это было полезно.
Удачи!
В интервью участвовали непосредственные разработчики KolibriOS Кирилл Липатов и Дмитрий Переверзев.
Беседу провел Oleg Unlevin.
Cайт проекта http://kolibrios.org/ru/
Специально для Ставропольской группы пользователей Линукс и stavimlinux.ru. Спасибо за внимание!
|