OSDev

для всех
Текущее время: 28 апр 2024, 00:30

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 11 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: UEFI на ассемблере
СообщениеДобавлено: 11 окт 2013, 00:10 

Зарегистрирован: 04 сен 2013, 21:56
Сообщения: 17
Пожалуй, пора поставить точку в этой теме.

Дисковые операции UEFI, как оказалось, обладают парой особенностей:
1. Адрес буфера в памяти и адрес строки имени файла усекается до 32 бит. Это тем более непонятно, что функции ввода и вывода на экран этим не страдают.
2. При обновлении файла с увеличением его размера наблюдается любопытный эффект: по смещению старого конца файла начинается повторная запись с начала буфера, в цикле. Единственный выход: указатель на начало, переписать старое содержимое, указатель на конец, записать остаток. Смешно, но работает железно.

Распределение памяти: первый гиг лучше не трогать - там таблицы UEFI, туда же грузятся драйверы, приложения (включая Ваше); первый мегабайт - святое, его даже UEFI стороной обходит; с начала четвёртого гигабайта - MMIO, середина - UEFI (16 Мб), конец - BIOS.

Для программирования под UEFI не нужны никакие монструозные тулкиты. Нужен любой компилятор Си или транслятор ассемблера x86-64. И всё. Берём флэшку с FAT32 (можно и с диска), неважно что там ещё. Кладём на неё файл /EFI/BOOT/BOOTx64.EFI. Перегружаемся.

Получаем псевдо-текстовой видеорежим 25x80, функции ввода/вывода - сплошной юникод, русские символы есть все. Функции - от ACPI до TCP/IP, работа с графикой, формы. Если Ваша ОС умеет больше, можно уйти в runtime, но вовсе не обязательно.

Надеюсь, эта информация кому-нибудь пригодится.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB