El sistema operativo lo que hace es relacionar la arquitectura de un microprocesador determinado con ciertos perifericos, para hacer posible (generalmente) la interaccion humana con dicho micro. Ejemplos de los perifericos a los que nos referimos: teclado, discos, puertos diversos, dispositivos multimedia, etc. A la vez el sistema operativo, provee generalmente interfaces, librerias, documentacion, etc., de las que se valen los desarrolladores de lenguajes para escribir estos programas. Como para un mismo controlador pudieran escribirse distintas plataformas operativas, consecuentemente los lenguajes varian internamente, amoldandose a los recursos provistos por el sistema. Ejemplo: para un micro Pentium IV, pudieran instalarse sistemas operativos w98, XP x86, x64, Linux, etc. Sobre la base de cada uno de ellos, por ejemplo un lenguaje de programacion como Visual C++ esta construido con distintas interfases de programacion, aunque el producto es identico desde el punto de vista del usuario.
Entonces, los lenguajes de programacion tradicionales, son dependientes del hardware y del sistema operativo.
Actualmente se usa en forma extendida lenguajes que no tienen estas dependencias, ya que crean su propia maquina virtual o marco, como por ejemplo el lenguaje Java.
En que lenguaje se escriben los sistemas operativos?
En codigo maquina, o un lenguaje de muy bajo nivel, cercano al codigo maquina, generalmente se usan Assembler o C.
Espero que esto te ayude, suerte.