О создании образа KolibriOS

    Всё началось с новости о возможном представлении KolibriOS на для Chaos Constructions-2011. Она была опубликована на форуме разработчиков KolibriOS за четыре месяца до мероприятия.

    И вот, в начале августа 2011 года у меня возникла идея создать образ для виртуальной машины с этой системой (KolibriOS), разнообразным программным обеспечением и примерами файлов, с которым можно работать. Собственно, этим я и занялся.

    Первый вопрос, который возник у меня, это для какой машины создавать образ? Сначала я отдавал предпочтение эмуляторам Bochs и QEMU (с которыми я уже имел дело), но для данной работы всё же решил выбрать виртуальную машину от VMware. VMware Player мне показался довольно продвинутым с понятным интерфейсом.



    Для того, чтобы создать образ нужен VMware Player не ниже версии 3.0. После создания образа виртуальной машины был создан и подключён виртуальный диск объёмом 1 Гб, что вполне предостаточно. Но потом нужно было создать и отформатировать раздел. И здесь возникла проблема. В КолибриОС пока нет утилит, чтобы выполнить такие действия. Применил образ загрузочной дискеты DOS. А там — fdisk и format c:… В принципе, можно запускать Колибри и без образа жёсткого диска — необходим лишь образ дискеты, но хотелось чего-то более серьёзного.

    Первая установка Колибри на жёсткий диск виртуалки был произведена с помощью загрузчика GRUB4DOS. Да, к сожалению, опять пришлось прибегнуть к помощи чудо-дискетки с ДОСом.

    Позже в качества вторичного загрузчика был использован «родной» mtldr. Для этого виртуальный диск был подключён как диск к хост-системе. Инсталлятор загрузчика нужно немного изменить — в исходнике inst.asm раскомментировать две строки, чтобы загрузчик можно было устанавливать не только на съёмные носители (флешки), но и на жёсткие диски. После перекомпилирования программы установил загрузчик.

    ; Uncomment following lines to allow hard drives
    ;	cmp	eax, 3	; DRIVE_FIXED
    ;	jz	@f
    

    Всё, что нужно для загрузки Колибри — установить загрузчик (как можно видеть, есть как минимум два варианта) и скопировать в корень диска образ дискеты.

    В качестве образа дискеты я выбрал последнюю на то время «ночную» сборку. Последний релиз КолибриОС (0.7.7.0) состоялся в феврале 2010 года. А ночные сборки создаются автоматически — после внесения изменений на SVN.

    Непосвящённый в особенности КолибриОС может не понять при чём здесь образ дискеты, ведь мы в 21 веке. Поясню.

    С точки зрения пользователя это лишь контейнер для системных файлов. В образе диска используется файловая система FAT12. Работать с образом можно и в *nix (mount), и в Windows (Winimage, плагины для Total Commander). Переносить один файл проще. А с точки разработчика — это наследство от прародителя KolibriOS — операционной системы MenuetOS. Без него сложно (но можно) создать рамдиск /rd/1. Диск в оперативной памяти — одна из особенностей КолибриОС.

    Вернёмся к описанию процесса создания образа для виртуалки. Использовать немодифицированную ночную сборку КолибриОС я не стал. Во-первых, теряется смысл наличия жёсткого диска. Да, все программы, которые существуют для Колибри, на образ дискетки уместить нельзя, но бОльшую их часть — очень даже возможно. А во-вторых, так как целью образа виртуальной машины было ознакомление людей с операционной системой, я постарался сделать расположение программ более наглядным. Для этого была изменена структура каталогов и по возможности программы были вынесены с рамдиска на жёсткий диск. Кроме того для вынесенных приложений исправлены связи (например, чтобы их можно было вызывать из главного меню).



    Итак, на рамдиске остались: ядро, драйверы, шрифты, динамически загружаемые библиотеки и программы, для доступа к которым используются абсолютные пути.

    На жёстком диске были созданы каталоги: Demos, Develop, Docs, Education, Emulators, Games, Media, Network, Office, Other, Skins, System, Wallpapers. Приложения и другие файлы были отсортированы по этим каталогам, для каждого приложения был создан свой каталог.

    Больше всего оказалось игр — 51. Это и простенькие игрушки (пятнашки, крестики-нолики, змейки, сапёр, пасьянс, тетрис, линии, реверси, морской бой, шашки), и портированный Doom.



    Нужно заметить, что кроме игр с графическим интерфейсом в КОС есть несколько консольных игр — пятнашки, шахматы и имитатор искусственного интеллекта Eliza.

    Другие категории приложений не так богаты представителями.

    К системным программам относятся файловые менеджеры KFAR, KFM и Eolite (аналоги FAR, Total Commander и Explorer соответственно), информационная утилита CPUID (аналог CPU-Z), утилита для тестирования монитора Disptest (аналог Nokia monitor test), утилита для получения информации о жёстких дисках HDD-Info, экранная лупа и виртуальная клавиатура, а также простой командный интерпретатор Shell.

    Приложения для разработки находятся в каталоге Develop. Это доска отладки Board, отладчик Mtdbg, шестнадцатиричный редактор Heed, утилита для просмотра экспортируемых динамическими библиотеками функций cObj, главный инструмент разработчика в KolibriOS — ассемблер FASM, а также интерпретаторы с примерами их использования — Brainfuck, Lua, Tinypy.



    В том же каталоге можно найти примеры программ для ОС Колибри, в основном тесты динамических библиотек.



    В каталоге Emulators находятся эмулятор DOSBox, эмулятор NES FCEU, эмулятор компьютера ZX Spectrum и симулятор программируемого калькулятора Б3-34.



    Обучающее программное обеспечение находится в папке Education. Пока что здесь лишь только три программы — таблица Менделеева, продвинутый клавиатурный тренажёр и просмотрщик карт (использует кэш программы SASPlanet). По поводу последнего хочу заметить, что так как с лицензией карт не всё понятно, то в образе виртуальной машины присутствует лишь несколько — только для ознакомления.



    В каталоге Media находятся мультимедийные программы — аудио- и видео проигрыватели, просмотрщики графических файлов и анимации, шрифтов в различных форматах. Видеоплеер без драйвера звука будет работать очень плохо, но тем не менее, чтобы можно было попробовать его, в образ включены два видеофайла. Особое внимание хочу обратить на просмотрщик графических файлов zSea. Он обладает довольно продвинутыми возможностями, но не включён в официальную сборку системы. Здесь я установил его просмотрщиком графических файлов по-умолчанию.

    С другим программным обеспечением предлагаю ознакомиться самостоятельно.

    Что же ещё находится в образе? Скины и обои, например. Внешний вид системы изменить довольно легко. Но, в процессе работы над образом у меня всё же возникли трудности с внешним видом. Пусть наборов иконок, обоев и скинов окон довольно много, но найти хорошо сочетающиеся друг с другом оказалось сложной задачей.



    Первый вариант участникам проекта не понравился из-за использования скина, который копирует интерфейс MacOS X (есть с расположением кнопок как слева, так и справа), второй вариант вообще был ужасен из-за обоев. Участники проекта предлагали десятки своих вариантов, но ни один из них мне не понравился. Поэтому внешний вид данной сборки не на высоте.



    Кстати, чтобы изменить внешний вид системы нужно внести изменения в файле /rd/1/autorun.dat, сохранить нужный скин под именем /rd/1/dafault.skn и сохранить образ рамдиска на /hd0/1. После любых изменений на рамдиске (чтобы они сохранились после перезагрузки системы) нужно сохранять его с помощью программы rdsave.

    Документация к системе находится в каталоге Docs и представлена приложением Docpak и сборкой в виде файлов HTML (которые просматриваются с помощью программы HTMLv).

    Итак, рассмотрев содержимое образа хочу сказать, какие результаты сборки данного образа.
    — Собран образ виртуальной машины с KolibriOS для ознакомления всех желающих с данной системой.
    — Получены представления о количестве программ для KolibriOS. Я их брал с SVN, форума и других ресурсов.
    — Выявлены слабые места в программном обеспечении (нет программ для установки системы, разбивки и форматирования дисков) и дизайне (всё таки мало сочетающихся скинов, обоин и иконок).
    — Получен ценный опыт.

    Вместо выводов. К сожалению, об образе на Chaos Constructions-2011 успешно забыли, но это не главное. За время до этой публикации образ немного обновился, устранены некоторые ошибки (и, скорее всего, внесены новые). Скачать его (98 Мб) можно с «народа»: narod.ru/disk/36181467001/KolibriOS.zip.html

    Ссылки по теме:
    Сайт KolibriOS — kolibrios.org
    Вики — wiki.kolibrios.org/wiki/Main_Page
    Форум разработчиков — board.kolibrios.org
    Тема об образе на форуме разработчиков — board.kolibrios.org/viewtopic.php?f=4&t=1819
    «Ночные» сборки — builds.kolibrios.org
    KolibriOS Project Team
    76,00
    Быстрая операционная система для бизнеса и хобби
    Поделиться публикацией

    Похожие публикации

    Комментарии 55

      0
      Без него сложно (но можно) создать рамдиск /rd/1. Диск в Без него сложно (но можно) создать рамдиск /rd/1. Диск в оперативной памяти — одна из особенностей КолибриОС.
      А в чём проблема использования линуксового механизма загрузки initrd? Всё равно же GRUB вроде как используете.
        +1
        Просто так исторически сложилось. Тянется ещё с МенуэтОС… А переписать никто не берётся. А GRUB используется только некоторыми, опционно…
          0
          На самом деле, были эксперименты с ядром как kernel и образом как initrd. Не прижилось.
            0
            Я помню. Мне идея тогда понравилась, но реализация была не очень удачная…
              0
              Пока будет GRUB — реализация будет «не очень удачной». Он слишком тяжелый для Колибри, как его не пили.
        +1
        Помню поразился когда впервые (ещё в школе был) запустил её с дискеты. Не мог поверить что с 1.4мб откроется нечто с гуи, так ещё и с кучей прог из коробки O_O. До сих пор под впечатлением. Эх, дать бы хорошего пинка этому проекту, у него я думаю было бы отличное будущее на мобильных устройствах. Спасибо за сборку! Будет время ознакомлюсь.
          +7
          От блестящего будущего на мобильных устройствах эту ОС отделяет сущая ерунда. Ее придется полностью переписать.

          Потому что 386-й ассемблер на мобильных устройствах (подавляющей их части) — совершенно неактуален.
          0
          Прочитал про «в школе запустили», и удивился несколько. Мы в школе с дискеты запускали QNX, тоже были под впечатлением… :)
            0
            Ну, QNX всё же из немного другой оперы. ;)
          0
          простите, я дилетант и ничего про колибри не знал, но почему данный продукт не динозавр? какова сфера его применения?
            +1
            Применение в супердешёвых неттопах/нетбуках от Green Gadgets, в робототехнике и в перспективе в образовании.
            По поводу неттопов:
            www.youtube.com/watch?v=AaoIiMFRmN8
              +3
              В робототехнике давно и успешно трудится QNX и даже Android, а тут даже браузер до сих пор не запилили
                0
                Есть три оригинальных браузера (да, до современных им далековато, но сам факт, что браузер есть) и теоретически можно портировать некоторые существующие, тот же dillo.
                  +2
                  «Теоретически — это лошадь. Практически — она падает» принято говорить про такое :)
                    0
                    Практически можно портировать. Инфа 100%.
                      0
                      Не, как принято говорить «при всем уважении»: «можно портировать» это не «практически» :)
                        0
                        Самолично портировал для себя Lua, ZSNES, GnGB и (оффлайн-версию) netsurf. Так что можно портировать. И теоретически, и практически.
                    0
                    Названия браузеров перечислите, пожалуйста. В вики не нашел.
                      0
                      Первый — Httpc. Не актуальная на сегодняшний день программа.
                      image

                      Второй — HtmlV. Позволяет просматривать HTML и MHT, а также простые сайты. Поддерживает несколько кодировок. После того, как было сделано более-менее нормальное отображение картинок, поломалась часть, позволяющая просматривать сайты — так что приходится пользоваться старой версией.
                      image

                      Третий — только развивающийся Webby, аналог Opera Mini.
                      image
                  0
                  простите, но про нетопы и нетбуки не верю в 99.8% случаев запускается Linux в остальных 0.2% что-то специально на них заточенное. Про образование верю, и готов услышать про перспективы в этой области.
                    +1
                    Простите, производительность неттопов и нетбуков под Linux и Windows бывает слишком печальна, особенно если это eBox с частотой около 300 МГц. Колибри на такой машине работает очень легко и задорно.

                    Каждый разработчик системы работает не для мифического общего блага, а для себя. Поэтому если в системе чего-то нет, значит, разработчики пока что в этом не очень нуждаются.

                    Насчет образования. Колибри — очень удобный инструмент для изучения 32-битного ассемблера. Кроме того, есть Бейсик (которого еще не было, когда создавался образ), Си (про компилятор которого благополучно забыли), Луа и Питон. Учитесь программировать на здоровье. Причем учитесь именно языку, а не ОС-специфичным вещам.
                0
                Жаль, что образ под VMWare. На ОС, отличных от Win и Lin не попробуешь :(

                Но за работу спасибо, было интересно почитать. Вот думаю, может ScummVM под него портировать?
                  0
                  Это ж какие отличные от Win и Lin ОС остаются? BSD, MacOS? Так для первой есть VMWare, для второй — Fusion (который есть VMWare Workstation for MacOSX). Так что выбор виртуальной машины, ИМХО, очень удачный.
                  Вот если бы автор сделал образ под Hyper-V, тогда можно было бы жаловаться, а так…
                    0
                    Машина А — FreeBSD, там только vmware3 портирован. Машина B — MacOS X, но платить $80 за Fusion жалко, ибо VirtualBox удовлетворяет все нужды.
                      +2
                      Ой, а сейчас у VMWare акция, Fusion продают за $50. Купил :)
                        +1
                        Успешно запускал образ в qemu. С помощью qemu-img можно перевести его в vhd/img и использовать в любом другом эмуляторе. Можно попробовать, к примеру, в DosBox.
                        image
                    +2
                    Нужно заметить, что кроме игр с графическим интерфейсом в КОС есть несколько консольных игр — пятнашки, шахматы и имитатор искусственного интеллекта Eliza.

                    Eliza, случаем, не вот эта?
                      0
                      Практически. Если посмотрите внимательно в комментарии, там ссылка на Колибри проскальзывала.
                        +1
                        Нет. :) Вот эта.
                        (недавно перечитывал тот рассказ:))
                          0
                          Так они кровные родственники. :)
                        0
                        У кого-нибудь была ещё такая проблема? колибри грузится до десктопа и падает с такой ошибкой:
                        linkme.ufanet.ru/images/2bbc7be878b0adae9cfbc36320b5a422.png
                        ммм? Не подскажете, что делать?
                          0
                          У меня упало под Маком сразу после появления десктопа. Запулил им support request. Если порешают, отпишусь.
                            0
                            у меня win 7 x64
                              +2
                              Ага, «порешали». Сказали, что просто не поддерживается:

                              My name is Taranjit and I will be assisting you for this case.

                              I understand that you have issues using the Vmware Fusion with Kolibri OS as guest.

                              I downloaded the OS and tested it here at my end. I got the same problem. I got an error and it crashes the entire Vmware Fusion.

                              This seems to be an issue with the compatibility. Kolibri OS is not listed in the list of the Compatible OS. The article pertaining to these information is found here:

                              Supported Guest Operating Systems in VMware Fusion (1026468)
                              kb.vmware.com/kb/1026468
                                +1
                                Короче, как всегда. :) Если не сложно, можете логи показать? И конфигурацию системы?
                                  +1
                                  Могу конечно, только давайте уже в оффлайне.
                                    0
                                    То есть в ЛС?

                                    Ох, так вы тим-лидер ScummVM? Когда-то давно для Колибри был порт ScummVM, пару месяцев назад я специально скачал свежую версию, но так и не дошли руки до неё. Если возникнут трудности, можно будет обращаться?
                                      +1
                                      Да, конечно, обращайтесь. В порте ScummVM под KoilbriOS я весьма заинтересован.
                                        0
                                        Спасибо. Думаю, особых проблем со сборкой быть не должно. Если нет кода на C++.

                                        Если у вас есть интерес, можете сами попробовать. Инструкции и засекреченный порт libSDL отправлю :)
                                          0
                                          Отправляйте. Кода на C++ полно, но без STL и прочих наворотов. Причём так было с самого начала, и раз порт был, то будем надеяться, что и в этот раз получится.

                                          Цель не просто собрать, а сделать официальную поддержку, т.е. чтобы собиралось из коробки и были бинарники во время релизов.
                                            0
                                            Отправил в ЛС. STL есть, но не везде.
                                            Надеюсь, что портируется легко :)
                              0
                              Кстати, еще при загрузке можно попробовать отключить «Диски, видимые через BIOS».
                              0
                              Логи покажите. D:\Data\KolibriOS\KolibriOS\vmware.log
                              Версия программы какая?
                                0
                                VMWare Player 4.0.1

                                логи rapid.ufanet.ru/8872211
                                  0
                                  И правда, похоже на баг в VMWare Player. Ошибка происходит после инициализации SVGA.
                                0
                                Очень жаль, что упала… Во время тестирования образа участниками проекта такая ситуация тоже возникла (был единичный случай, а теперь уже несколько)… Что я могу посоветовать — это только отправить логи разработчикам VMWare… Ну, и нам бы хотелось на них взглянуть. :)
                                +1
                                Пора обновлять образ… Количество программ немного увеличилось.
                                image
                                image
                                А, еще pdf можно смотреть.
                                  +1
                                  Да, о двух новых эмуляторах (Gameboy и SNES) я вспомнил уже после публикации… А pdf мне кажется пока рановато включать — нужен хороший фронтэнд…
                                    +1
                                    Надеюсь, в этом месяце разберусь с libc для ktcc, можно будет портировать программы для Колибри прямо в Колибри.
                                      +1
                                      Да, было бы неплохо добить libc… И можно будет не только портировать программы, а и более эффективно (без копирования изменённого экзешника в виртуалку из хост системы) улучшать оригинальные, написанные на Си.
                                        +1
                                        Проблема исключительно в файле start.o из комплекта ktcc. Передаются неправильные указатели на argc и argv. В остальном можно смело линковать с libc, libSDL, libm и всем остальным.
                                        Newlib не пробовал использовать, для нее вероятно нужно компилировать tcc-для-windows и мудрить со скриптами линковки.
                                  0
                                  Да и немножко неясно «Колибри видимо пишется исключительно для запуска DOS-игр?».
                                    0
                                    Разве?
                                      0
                                      Откуда цитата?

                                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                    Самое читаемое