Pull to refresh

Comments 20

Пока что я не храню половину регистров от различных расширений.
FPU похоже тоже? Это же всё-таки математический сопроцессор, а не просто дополнительный набор регистров.
Нет, FPU работает, у меня есть статья про написание ОС, там код копирование памяти при помощи SSE, который не работает без включенного сопроцессора.
Имелось в виду сохранение регистров и статуса FPU при переключении потоков. Не увидел этого в структуре.

Так как обычно функции сохраняют часть регистров в стек,
то можно ли отложить переключение процесса до входа/выхода из функции и сэкономить на сохранении используемых регистров?
Например, по получении прерывания от таймера настроить процессор на выдачу прерывания перед/после инструкций call/ret.

Смысл? Calling convention существует много, на ассемблере можно свои делать.
Зачем ограничивать программы в верчении регистрами?

Здорово, если появится еще один Minix и учебник типа «Operating Systems: Design and Implementation».

Я правильно понимаю, что ядро и все процессы в этой системе работают в едином адресном пространстве? Если это так, то действительно — заявленный выигрыш по производительности может быть существенным, но становится крайне интересным вопрос о защитных механизмах всего этого хозяйства.
Хочу заметить, что стек растет вверх(т.е. ESP уменьшается), это значит, что последний регистр, который вы сохранили в стек будет лежать по адресу ESP, предпоследний — ESP +4 и т.п:

У стека есть вершина, адрес которой убывает при помещении в стек некоторого значения; таким образом, стек у Вас растет вниз, а не вверх.

Для начала хочу заметить, что к примеру, в обработчике локальные переменные хранятся в стеке, а значит после входа в обработчик компилятор портит нам esp. Чтобы такого не произошло создадим переменную с абсолютным адресом, и перед вызовом обработчика будем засовывать ESP туда.

Зачем у Вас все так сложно, когда существует регистр EBP; который, в паре с ESP, формирует базовый адрес для локальных переменных.

Я понимаю, что Вы только-только начали изучение системного программирования, поэтому «ругать» не хотелось, однако Вашу статью читают и другие начинающие тоже, поэтому как-то так.
Смотрел группу в ВК про Вашу работу. А что, исходники Вашей оси закрыты?
Да, но вы можете принять участие в разработки и они станут для Вас доступны:)
тю… так не интересно. В мире масса других проектов, исходники которых доступны. Если в 2018 году, вопреки упрекам в другой вашей статье в ваш адрес, ещё можно согласится тем, что разрабатывать x86 систему в целях самообразования это вполне себе актуально и нормально, то с закрывать исходники при наличии массы других проектов, более продвинутых и ориентированных на пользователя в 2018 — моветон
Согласен с предыдущим оратором, однако хотел бы посмотреть исходники
И в правду, зачем писать закрытую ОС и предоставлять код только команде разработчиков, состав которой еще не определен? Лучше дать всем исходники, там BSD или GPL (от злых проприетарщиков) поставить…
Хотя, сабж, похоже, не Unix-подобный, а такие системы делать открытыми не принято)
сабж, похоже, не Unix-подобный

Судя по тому, что там используется такая ненужная сущность как буква диска, сабж наследует совершенно другие традиции
Sign up to leave a comment.

Articles