Walleij: Setting up the Arm32 architecture

Post Syndicated from original https://lwn.net/Articles/835875/rss

For those who are following along with Linus Walleij’s detailed writeup of
how the 32-bit Arm bootstrap process works, he has posted two new
installments (part 1,
part 2)
on what happens once virtual memory is enabled. “This init task is
task 0. It is not identical to task 1, which will be the init process. That
is a completely different task that gets forked in userspace later on. This
task is only about providing context for the kernel itself, and a point for
the first task (task 1) to fork from. The kernel is very dependent on
context as we shall see, and that is why its thread/task information and
even the stack pointer for this ‘task zero’ is hardcoded into the kernel
like this. This ‘zero task’ does not even appear to userspace if you type
ps aux, it is hidden inside the kernel.