Как создать интерфейс к ОС - PullRequest
0 голосов
/ 08 сентября 2018

Вопрос говорит сам за себя. Когда я говорю «интерфейс», я имею в виду то, с чем пользователь взаимодействует полностью. У меня обширный опыт работы с Си и я знаю достаточно, чтобы создать элементарную ОС, но я бы не стал изобретать ее заново. Используя сборку Linux (или что-то еще, если лучше), такую ​​как Arch, я хотел бы знать наиболее подходящий и обширный способ быть самым низким уровнем в ОС.

Самый близкий пример, который я могу вспомнить, - это то, что телефоны Android имеют удобные интерфейсы с пользовательскими разрешениями, обрабатываемыми ОС, но это модифицированное ядро ​​Linux. Является ли модификация ядра лучшим способом для этого, и если да, то какие-либо указатели на настройку любой визуальной системы, такой как OpenGL.

1 Ответ

0 голосов
/ 09 сентября 2018

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...