Google
 

jueves, enero 10, 2008

¿Porqué los sistemas operativos están en C?

No me refiero a esos sistemas operativos de juguete que pululan por la red, sino a los que son productivos: Windows, Linux, MacOS, etc... No es que no quieran usar otros lenguajes radicalmente diferentes, es que ni tan siquiera se atreven a tirar de C++ (MacOS con su Objective-C poca diferencia tiene con el C normal).

Después de mi visita diaria a Reddit lo he visto claro. No es cuestión de encontrar una respuesta sino de encontrar la pregunta correcta (como dirían los budistas). La realidad es que no hay lenguajes malos para crear un S.O. lo que hay son CPUs que no se llevan bien con determinados lenguajes.

Y es que después de que se programara el primer Unix en C, las CPUs han tendido a acomodarse más a este lenguaje. La forma en que trabaja el lenguaje ensamblador de, digamos por ejemplo 8086, está íntimamente ligada a la forma en trabaja el lenguaje C.

Una prueba de lo que digo son las Lisp Machines y las CPUs para Forth. ¿Porqué si no hacer CPUs para unos lenguajes en concreto? Pues porque una CPU modelada para usarla con C nunca se podría exprimir al máximo con Forth (por ejemplo).