Я не могу найти эту информацию нигде.Куда бы я ни посмотрел, я нахожу вещи, относящиеся к тому, как выглядит стек после того, как вы нажмете «main» (независимо от того, какая у вас точка входа), что будет аргументами программы и средой, но я ищу то, как система настраиваетстек для взаимодействия с макросом switch_to.В первый раз, когда задача переключается, она должна иметь EFLAGS, EBP, регистры, которые GCC сохраняет, и адрес возврата из функции schedule () в стеке, на который указывает "tsk-> thread-> esp",но я не могу понять, как ядро настраивает этот стек, поскольку он позволяет GCC сохранять регистры общего назначения (используя выходные параметры для встроенной сборки).
Я имею в виду только ПК с архитектурой x86.Я исследую систему планировщика / процесса Linux для своего собственного небольшого ядра, которое я (пытаюсь) написать, и я не могу понять, чего мне не хватает.Я знаю, что чего-то не хватает, поскольку тот факт, что Slackware работает на моем компьютере, является свидетельством того, что планировщик работает: P
РЕДАКТИРОВАТЬ: Я, кажется, сформулировал это плохо.Я ищу информацию о том, как настраивается стек задач kernel , а не о том, как задается задача user .Точнее говоря, стек, на который указывает tsk-> thread-> esp и который переключается на "switch_to".