Me preguntaba quién sabe de qué lenguajes de programación se componen Windows, Mac OS X y Linux y qué lenguajes se utilizan para cada parte del sistema operativo (es decir: Kernel, arquitectura de plug-in, componentes GUI, etc.).
Supongo que hay varios idiomas para cada uno y, obviamente, sé que el kernel de Linux está escrito en C.
Supongo totalmente aquí que Mac OS X contiene una gran cantidad de código Objective-C, ya que es el lenguaje de Apple derivado de NeXT.
Windows, he oído que contiene C, C ++ e Intel Assembly. ¿Linux o Mac OS contienen algún código de ensamblaje?
Además, ¿existen lenguajes de scripting como Ruby, Python, etc. utilizados por los desarrolladores del sistema operativo para las partes de scripting del sistema operativo? ¿Qué partes del sistema operativo se escribirían en cada idioma?
fuente
Respuestas:
Todos los núcleos utilizarán también un código de ensamblaje.
fuente
Linux: C. Algunas partes en ensamblaje.
Mac OS X: Cocoa principalmente en Objective-C. Kernel escrito en C, algunas partes en ensamblaje.
Windows: C, C ++, C #. Algunas partes en ensamblador.
Unix: C. Algunas partes en ensamblaje. (Fuente)
fuente
Mac OS X usa grandes cantidades de C ++ dentro de algunas bibliotecas, pero no está expuesto ya que temen que se rompa ABI.
fuente
IOKit
,WebKit
yGLKit
. También echar un vistazo adyld
. Esos son muy pesados en C ++.Entiendo que esta es una publicación anterior, pero Windows definitivamente no está escrito en C ++. Hay un montón de C ++, pero lo que definimos técnicamente como un sistema operativo no está en C ++. La API de Windows, el kernel de Windows (ambos son, en esencia, lo que es un sistema operativo) están escritos en C. Hace años recibí un código filtrado para Windows 2000 y Windows XP. El código no era lo suficientemente completo como para compilar el kernel o la API, pero pudimos compilar programas y servicios individuales. Por ejemplo, pudimos compilar con éxito Notepad.exe, mspaint.exe y el servicio spoolsv.exe (cola de impresión). Todo escrito en C. No he vuelto a mirar, pero estoy seguro de que el código filtrado aún sobrevive como archivos de torrent que aún pueden estar disponibles.
fuente
Windows: principalmente C y C ++, algunos C #
fuente
fuente
¡¡¡Guau!!! 9 años de preguntas, pero acabo de encontrar una serie de artículos internos sobre el historial de la línea de comandos de Windows y creo que alguna parte podría ser relevante para Windows:
fuente
Tienes razón MacOSX tiene Objective-C en el núcleo.
Windows C ++
Linux C
Sobre los lenguajes de secuencias de comandos, no, son bastante de alto nivel.
fuente
He leído o escuchado que Mac OS X está escrito principalmente en Objective-C con algunas de las partes de nivel inferior, como el kernel y los controladores de dispositivos de hardware escritos en C. Creo que Apple "come (s) su propia comida para perros ", lo que significa que escriben Mac OS X utilizando sus propias herramientas de desarrollo de Xcode . El compilador-enlazador GCC (GNU Compiler Collection) es la herramienta de línea de comandos de Unix que xCode usó para la mayoría de sus compilaciones y / o enlaces de ejecutables. Entre otros lenguajes posibles, sé que GCC compila el código fuente de los lenguajes C, Objective-C, C ++ y Objective-C ++.
fuente
El núcleo de Linux está escrito principalmente en C (y un poco de lenguaje ensamblador, me imagino), pero algunas de las utilidades (programas) importantes del espacio de usuario son scripts de shell escritos en el lenguaje de scripting Bash. Más allá de eso, es un poco difícil definir "Linux", ya que básicamente construyes un sistema Linux seleccionando partes y piezas que deseas y uniéndolos, y dependiendo de lo que quiera un usuario individual de Linux, puedes obtener casi cualquier idioma involucrado. (Como dijo Paul, Python y C ++ juegan papeles importantes)
fuente
Como una adición sobre el núcleo de Mac OS X, Finder no se había escrito en Objective-C antes de Snow Leopard. En Snow Leopard fue escrito en Cocoa, Objective-C
fuente
Consulte bajo el título Un sistema operativo que se ejecuta en varias plataformas donde dice:
fuente
Windows obviamente no está escrito en C # (!)
Simplemente vea el código fuente de Windows y verá ...
fuente