Завантаження kolibri os з флешки, dev64

Як відомо, Kolibri OS - операційна система, написана на асемблері. KolibriOS відгалузилися від MenuetOS, коли MenuetOS почав перехід на 64 бітну версію.

Завантаження kolibri os з флешки, dev64

Kolibri OS - невелика ОС. Хороший кандидат для вивчення деяких нутрощів платформи x86. Я займаюся експериментами, і мені захотілося подивитися як Kolibri влаштована. Я скачав з svn вихідні, погортав форум, мені стало цікаво завантажити Kolibri OS на реальному залозі.

Після деякої кількості пошуків, я з'ясував наступне. Розробники Kolibri OS як виявилося реалізували досить екзотичну систему завантаження, властиву скоріше не класичної, а embedded системі. Операційна Система написана на асемблері. Тому розмір ядра і додатків поки не великий. Це дозволяє помістити стандартну інсталяцію Kolibri на дискету.

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

Завантажувачів є кілька варіантів. Kolibri може таким чином грузиться з дисків, на яких встановлено Windows. Тобто в корінь диска C: записується спеціальний модуль mtldr, змінюється конфігурація стандартного завантажувача Windows і Kolibri стає одним з варіантів завантаження.

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

Я сам писав завантажувач з флешки c FAT32. Для початку я спробував його. Завантажувач завантажив ядро ​​Kolibri, воно вивело завантажувальний меню на цьому все зупинилося. Щоб завантаження продовжилася в пам'ять потрібно завантажити ще image дискети.

Пошук по форуму і svn дав наступне. У svn, тут
svn: //kolibrios.org/programs/hd_load/usb_boot є все необхідне для завантаження з флешки.

У мене на флешці вже записаний завантажувальний MBR взятий зі статті MBR завантажувач в режимі LBA. Тому MBR я чіпати не став. Решта взяв з svn:

У підсумку на флешці вийшли такі файли:

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

Щоб завантажитися з віртуальної машини, просто підключив KERNEL.IMG як віртуальний флопік до VMWare Player і протестувати.

Крім перерахованих файлів, в зазначеному директорії svn: //kolibrios.org/programs/hd_load/usb_boot лежить ще readme та вихідні утиліт для запису boot сектора і mbr. Я користувався власними тестовими засобами, проте, думаю згадані утиліти можуть стати в нагоді.