Architecture Dependencies
Versions 2.0 and later of the Linux kernel are fairly portable across platforms, which means that most of the code runs on all the supported architectures without the need to differentiate among them. Everything we have seen in this tour up to now is completely independent of the hardware platform.
The arch directory tree is a minor part of the Linux kernel
that contains the platform-specific code. Every
system-dependent function is replicated in each arch
subdirectory, so that the structure of all the subdirectories is
similar. The most important of these subdirectories is
kernel, which hosts every system-specific function related to the
main kernel source directory.
There are two assembly sources that are always found under
kernel. head.S is the startup code executed at system boot;
it sometimes includes some of the exception-handling code. The other file
is entry.S, which includes the entry points to kernel space.
In particular, every such file contains the sys_call_table for its
own architecture; every architecture has a different table to associate
system call numbers to functions.
Other commonly found subdirectories are lib, which hosts the
optimized checksum routines for network packets and sometimes
includes other low-level operations such as string operations;
mm, which deals with low-level handling of page faults
(fault.c) and the initialization code called at system boot
(init.c); and boot, which contains the code needed to bring up the system. ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access