Can't remember where it is - I remember Linus saying that you should design your kernel to sit on an "ideal processor". If the processor can't implement that feature, you then put an emulation, or HAL, layer between the kernel and the hardware.
Doing that usually results in a design that is not only simpler to maintain, but actually also usually works better than a design targeted at sub-optimal hardware!
(He didn't word it quite like that, but that's the gist... I think it was in a discussion about the port to Alpha)
Posted Oct 11, 2008 18:47 UTC (Sat) by drag (subscriber, #31333)
[Link]
Well the Linux design for portability is to design the kernel to work on a 'generic' kernel.. that is design it to run with concepts that all processors and platforms generally support, then implement architectural specifics to 'port' the kernel to different platforms.
Portability
Posted Oct 13, 2008 23:37 UTC (Mon) by ncm (subscriber, #165)
[Link]
Linux ended up completely different from what Tanenbaum recommended or Torvalds designed. It turns out you really can't anticipate what future processors will be like (not even x86!). Instead it relies, ultimately, on an army of developers to rewrite major subsystems as needed. Lately that means adapting it to the (what now seem bizarre) needs of thousands of cores.
Tanenbaum's approach may ease porting from one CPU (actually, MMU) to another, but it's almost completely useless -- even, Linus might argue, actively harmful -- for what has actually had to be done.