Se tiene que tener siempre una parte 'generalista' que es igual para todas las arquitecturas y una parte dependiente del hardware que tiene código para cada hardware en concreto, y que por supuesto aprovecha las capacidades del mismo al máximo. Este código dependiente del hardware suele estar en el nivel más bajo en el diseño del sistema operativo, y es llamado por los módulos más altos ('generalistas') de forma que no se pierda rendimiento.
Si quieres ver un ejemplo de lo que digo mira el directorio /usr/src/linux/arch/ donde tienes las partes (normalmente en ensamblador) dependientes del hardware de las distintas arquitecturas bajo las que funciona Linux.
Re:Perdón
(Puntos:1)( http://barrapunto.com/ )
Se tiene que tener siempre una parte 'generalista' que es igual para todas las arquitecturas y una parte dependiente del hardware que tiene código para cada hardware en concreto, y que por supuesto aprovecha las capacidades del mismo al máximo. Este código dependiente del hardware suele estar en el nivel más bajo en el diseño del sistema operativo, y es llamado por los módulos más altos ('generalistas') de forma que no se pierda rendimiento.
Si quieres ver un ejemplo de lo que digo mira el directorio /usr/src/linux/arch/ donde tienes las partes (normalmente en ensamblador) dependientes del hardware de las distintas arquitecturas bajo las que funciona Linux.