Как компьютер умеет отображать текст и графический интерфейс на экране?

Это может быть глупый и странный вопрос, но я действительно не могу спать, пока я не найду ответ. Как компьютер умеет отображать текст и графический интерфейс на экране?
Если я не ошибаюсь, процесс загрузки x86 компьютеров выглядит так:

  • BIOS запускает процессор и остальное оборудование, и он проверяет, если все работает
  • процессор выполняет код с первых 512? байты загрузочного раздела и экран отображает загрузчик menu
  • выбранное ядро выполняется
  • etc.

мой вопрос: если до запуска ядра нет операционной системы, как компьютер знает, как отобразить текст на экране? BIOS и загрузчика может отображать какой-либо текст и базовый GUI. Каким образом они это делают? Сообщает ли BIOS / загрузчик ЦП (GPU?) что он должен отображать синий пиксель на, скажем, позиции (0,0), затем белый пиксель на (1,0) и т. д.?

мой второй теория заключается в том, что BIOS имеет драйвер базового дисплея, который имеет какой-то API для печати на экране. Есть ли какая-то функция print (), доступная из драйверов дисплея?

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

Часть 2 моего вопроса: как работают среды рабочего стола, такие как KDE или GNOME? Допустим, я хочу создать абсолютно новая среда рабочего стола для Linux. С чего мне начать? Нет функции в C/C++ или любом другом языке высокого уровня для отображения N цвет prixel на позиции (x, y). На каком языке написана программа, отображающая dekstop? Создает ли он рабочий стол пиксель за пикселем?
Как работают библиотеки, такие как GTK или Qt? Я знаю, что могу отобразить окно только с несколькими функциями, но как эти функции действительно работают?

Извините, если мои вопросы не понятны. Английский - не мой родной язык.

26
задан M0rning
03.01.2023 2:05 Количество просмотров материала 2378
Распечатать страницу

2 ответа

в принципе, на материнской плате есть чип ROM (только для чтения памяти), который говорит ему, как отображать любой графический интерфейс, который ему нужен. Вы думаете об этом, как не имея никакого программного обеспечения, но он делает, он поставляется с предустановленной от производителя. На самом деле, вы бы скорее назвать это "прошивка", так как это программное обеспечение для чип.

Что касается графических окружений рабочего стола, то в них нет ничего особенного. Они рисуют на экране так же, как и любая другая программа. Все вам действительно нужно рисовать на экране, чтобы знать адрес любого чипа, который у вас есть, который отвечает за обработку графики (обычно GPU или IGPU/APU). Когда обычные программы делают это, я считаю, что они запрашивают эту информацию из операционной системы, поэтому, если бы вы написали свою собственную графическую среду рабочего стола, вам пришлось бы выяснить, на какой адрес отправлять свои данные. Адрес должен быть обеспечен драйверы для любой г/ИГ/ВСУ у вас.

1
отвечен Michael Dorst 2023-01-04 09:53

в двух основных частей:

  1. после загрузки MBR его код загружает второй этап загрузочного кода под названием Windows Boot Manager или GRUB на Linux. Этот загрузчик имеет текстовые и графические функции, реализованные в коде, или использует прямой доступ BIOS для вывода текста.

  2. после загрузки ОС (Windows, Linux, и т. д.) используя любой язык программирования, такой как C, C++, Java, Basic, у вас есть доступ к функциям, реализованным в ядре и/или библиотеках, которые разрешить писать или рисовать на экране. Каждый язык программирования сегодня имеет IDE (интегрированную среду разработки), что значительно упрощает написание пользовательского кода.

0
отвечен snayob 2023-01-04 12:10

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх