@Soft_touch_plastic

Как рисуется графика в операционной системе?

Здравствуйте, я заранее сообщаю что я знаю, что говорю о материях и вещах, в которых ничего не понимаю, но спрашиваю это не из праздного любопытства. Как и где хранится графика в операционной системе? Привожу пример: я например хочу, чтобы у моей операционки вместо просто черного экрана, логотипа загрузки и кружка загрузки была красивая анимация прогрузки элементов компьютера: материнки, видюхи и прочего, как это красиво подлетает и вместе собирается в компьютер. Тоесть, результаты POST должны быть переданы в uefi/саму операционную систему (я не знаю, что управляет компьютером во время черного экрана загрузки). Вот и вопрос, в каком виде хранится подобная анимация: это просто заранее отрендеренное видео, или у загрузчика на си есть возможность рендерить на ходу и красиво анимировать ошибки?(отпало что нибудь, POST это заметило и передало, мол материнка ок, видюха ок, шина ок, с юсб портом что то не то, отрисуй анимацию как он подлетает к собранному компу, но краснеет и не подходит). Я знаю что сумбур, но попробуйте ответить. И если можно сказать, где и в каком виде хранится вся внешка оси?
  • Вопрос задан
  • 765 просмотров
Решения вопроса 1
Слишком поверхностно задан вопрос. Если говорить об ОС WIndows - то там вся графика в системных библиотеках (dll, и т.д.) и графических файлах, которые загружаются по мере надобности.
Но сам процесс загрузки и то, что там делается в POST - это разные вещи, и они не пересекаются.
То есть, сначала идёт при включении считывание содержимого микросхемы биос (да, пропустим этап инициализации чипсета и самого процессора, это зависит от аппаратуры), и биос при выполнении уже проверяет и инициализирует основные части - MIS/SIO, чипсет, контроллер памяти, порты всякие, видеокарты и т.д. И если что не так, то либо остановится, либо проинформирует о неисправности и пойдёт выполнять следующие шаги. (например, если не найдена видеокарта, на большинстве биосов по умолчанию будет остановка с выдачей пост-кода ошибки, и далее не загрузится ничего; а если не найдена клавиатура, или SMART диска BAD - то поведение может быть и с остановкой, а может и продолжить выполнение, зависит от настроек). А уже когда этап выполнения POST завершится, то биос передаёт управление на первый сектор жёсткого диска, или на другое устройство, смотря как настроено. ОС уже никак не знает, что там до него делалось в процессе POST.
Другое дело - системы с EFI (UEFI). Там всё довольно тесно связано, и есть несколько фаз загрузки, но всё так же загрузка самой операционной системы будет после выполнения всех процедур в EFI. Разница только в том, что EFI более плотно связано с ОС, и сама ОС может хранить в чипе свои данные, и EFI может передавать данные и параметры в операционную систему.

Если нужно именно на этапе инициализации системы на базе EFI - то вполне можно собрать образ firmware, в котором сделать нужные анимации, и прочее. Но это выйдет слишком трудозатратно, и заметно замедлит загрузку. В линуксах и всяких бсд вон изначально при загрузке не экран с картинкой, а сообщения загрузчика, ядра ОС, и стартовых скриптов (системы инициализации). И не нужно никаких анимаций, всё по тексту понятно, что именно сейчас загружается и выполняется. В более современных системах сложнее - там уже systemd, параллельная загрузка и выполнение, и прочие плюшки. Плюсом обычно ставят как раз какую-нибудь анимацию вместо текстов, якобы она предотвращает появление сообщений консоли, которые замедляют процесс старта (на самом деле, это было давно и неправда). Например, plymouth. Эта заставка стартует практически с самого загрузчика, и вполне логично было бы её и сделать под это всё дело, если надо.
Остался у меня один вопрос - а ЗАЧЕМ? Ведь любые компы за последние лет 20 инициализировали железо (проходили POST) за доли секунды, и ещё от 1 до 3 секунд тратилось на загрузку всяких option ROM (сетевушки, рейд/ide контроллера, или ещё чего), и на раскрутку диска, чтобы с него загрузиться. О какой анимации речь? А сегодняшние компы, да с UEFI, да с SSD загружаются вместе с ОС за пару секунд! Сейчас никто и не заботится о том, чтобы что-то там в процессе загрузки Вам показать. Ладно, можно в автозагрузку запихнуть mplayer с видео любым, по вкусу. ОС уже конечно давно загрузилась, и ещё воспроизведение видео займёт 20-30 секунд. Да, красиво, да, можно понтануться перед друзьями (смори, как офигенно сделано, видно как комп загружается!). Но повторюсь, а кому это надо?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
profesor08
@profesor08
На прерываниях
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы