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