Re: Linux hardware independence?

dspfun wrote:

In the article "10 Reasons to Switch to Linux" at

the following can be read regarding Linux hardware independence:

3. Virtually Hardware-Independent
Linux was designed and written to be easily portable to different
hardware. For the desktop user, this means that Linux has been and
likely always will be the first operating system to take advantage of
advances in hardware technology such as AMD's 64-bit processor chips.

My question is, what kind of strategy is used in the Linux kernel
source code to make Linux "Virtually hardware-independent"? I.e., how
is the source code organized to achieve hardware independence?

Its written in C

The hardware interface is a small subsection and can be re-written for specific hardware

Device drivers are modular and can likewise be rewritten.

The operating system as a whole once working provides enough functionality that one need not be limited by having only OS calls rather than direct hardware access.

Is there a HAL (Hardware Abstraction Layer) which abstracts all the
hardware specifics? If so, which source code (files/directories) in
the Linux kernel are below the the HAL?

Id say that HAL is a bit of a red herring - the real interface to most hardware beyond the CPU itself is device drivers.

Any other "simple" or short explanations (or reference) how the
hardware independence is implemented in Linux would be greatly