Linux hardware independence?



Hi!

In the article "10 Reasons to Switch to Linux" at http://www.tuxmagazine.com/node/1000117

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?

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?

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

Brs,
Markus
.