Я могу получить выполнение вызова системных вызовов и его обработки в ядре. Но мне пока не все ясно. При вводе подпрограммы Swi, ядро сохраняет регистры пользовательского режима в стеке. Вопрос:Системный вызов Linux
Кто такой стек? (Поскольку обработка swi и соответствующая системная обработка вызовов требуют, чтобы рама стека работала)
Если это собственный стек ядра, откуда будет выделен стек ...? Приступит ли он к использованию текущего стека? Если да, то текущий может быть любым процессом, который может выполняться в данный момент в ядре. Это не стека тока выхлопа?
Если он использует текущий исполняемый стек пользовательского процесса в swi-обработчике, это будет пространство адресов пользователей, к которому теперь будет обращаться ядро. Возможно ли это? Поскольку адресная память ядра находится в пределах 1 ГБ (если соотношение 1: 3, отношение пространства между ядром к пользователю используется в 4 ГБ оперативной памяти).
Спасибо, и вы правы. Пользовательский режим SP, LR сохраняется при входе в SWI hander. Но я могу видеть текущую (активную ядро Linux task_struct, которая активна) info из стека обработчика SWI .. Как это возможно? –