tutorial online office libre gratis windows linux macos programming-languages operating-system

online - libreoffice windows 10



¿En qué idiomas están escritos Windows, Mac OS X y Linux? (13)

¡¡¡Guau!!! 9 años de preguntas, pero acabo de encontrar una serie de article internos sobre el historial de la línea de comandos de Windows y creo que parte de ello podría ser relevante en el lado de Windows de la pregunta:

Para aquellos que se preocupan por estas cosas: muchos han preguntado si Windows está escrito en C o C ++. La respuesta es que, a pesar del diseño basado en objetos de NT, como la mayoría de los sistemas operativos, Windows está escrito casi en su totalidad en ''C''. ¿Por qué? C ++ introduce un costo en términos de espacio de memoria y sobrecarga de ejecución de código. Incluso hoy en día, los costos ocultos del código escrito en C ++ pueden ser sorprendentes, pero en los últimos años de la década de 1990, cuando la memoria costaba ~ $ 60 / MB (sí ... $ 60 por MEGABYTE! ), El costo de la memoria oculta de vtables, etc. era significativo. Además, el costo de la indirección de llamadas de método virtual y la anulación de referencias a objetos podría resultar en penalizaciones de escala y rendimiento muy significativas para el código C ++ en ese momento. Si bien todavía hay que tener cuidado, la sobrecarga de rendimiento del C ++ moderno en las computadoras modernas es mucho menos preocupante y, a menudo, es un compromiso aceptable considerando su seguridad, legibilidad y beneficios de mantenibilidad ... por eso Actualizando constantemente el código de la consola a C ++ moderno.

Me preguntaba quién sabe de qué están compuestos los lenguajes de programación Windows, Mac OS X y Linux y qué lenguajes se usan para cada parte del sistema operativo (es decir: Kernel, arquitectura de plug-ins, componentes de GUI, etc.).

Supongo que hay varios idiomas para cada uno y, obviamente, sé que el kernel de Linux está escrito en C.

Supongo que aquí Mac OS X contiene una gran cantidad de código Objective-C, ya que es el lenguaje de Apple derivado de NeXT.

Windows, he escuchado 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 de sistemas operativos para las partes de scripts del sistema operativo? ¿Qué partes del sistema operativo se escribirían en cada idioma?


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.



Entiendo que esta es una publicación antigua, pero Windows definitivamente no está escrito en C ++. Hay un montón de C ++ en él 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 me dieron un código filtrado tanto para Windows 2000 como para Windows XP. El código no estaba 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 está escrito en C. No he vuelto a mirar, pero estoy seguro de que el código filtrado todavía sobrevive como archivos torrent que todavía pueden estar disponibles.


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 su propia comida para perros ", lo que significa que escriben Mac OS X usando 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 ++.


La mayoría del kernel de Linux está escrito 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 scripts Bash. Más allá de eso, es un poco difícil definir "Linux", ya que básicamente construyes un sistema Linux al seleccionar las partes y los fragmentos que deseas y, y dependiendo de lo que quiera un usuario individual de Linux, puedes usar casi cualquier idioma involucrado. (Como dijo Paul, Python y C ++ juegan papeles importantes)


Linux: C. Algunas piezas en ensamblaje.

[...] Es mayormente en C, pero la mayoría de la gente no llamaría a lo que escribo C. Utiliza todas las características posibles del 386 que pude encontrar, ya que también fue un proyecto para enseñarme sobre el 386. Como ya se mencionó , utiliza una MMU, tanto para la paginación (que aún no está en el disco) como para la segmentación. Es la segmentación lo que lo hace REALMENTE dependiente de 386 (cada tarea tiene un segmento de 64Mb para código y datos: máx. 64 tareas en 4Gb. Cualquiera que necesite más de 64Mb / tarea: cookies difíciles). [...] Algunos de mis archivos "C" (específicamente mm.c) son casi tan ensambladores como C. [...] A diferencia de minix, también sucede que las interrupciones LIKE, así que las interrupciones se manejan sin tratar de ocultarme La razón detrás de ellos. (Source)

Mac OS X: Cacao principalmente en Objective-C. Kernel escrito en C, algunas piezas en ensamblaje.

Mac OS X, en la capa del kernel, es en su mayoría un sistema operativo gratuito más antiguo llamado BSD (específicamente, es Darwin, una especie de híbrido de BSD, Mach y algunas otras cosas) ... casi completamente C, con un poco de ensamblador arrojado. (Source)

Gran parte de Cocoa se implementa en Objective-C, un lenguaje orientado a objetos que se compila para ejecutarse a una velocidad increíble, pero que emplea un tiempo de ejecución verdaderamente dinámico que lo hace excepcionalmente flexible. Como Objective-C es un superconjunto de C, es fácil mezclar C e incluso C ++ en sus aplicaciones Cocoa. (Source)

Windows: C, C ++, C #. Algunas partes en ensamblador.

Utilizamos casi en su totalidad C, C ++ y C # para Windows. Algunas áreas del código son ensamblados a mano / escritos a mano. (Source)

Unix: C. Algunas piezas en ensamblaje. (Source)


Mac OS X usa grandes cantidades de C ++ dentro de algunas bibliotecas, pero no está expuesto porque temen que se rompa el ABI.


Tienes razón MacOSX tiene Objective-C en el núcleo.

Windows C ++

Linux C

Sobre los lenguajes de scripting, no, son bastante altos.


Windows obviamente no está escrito en C # (!)

Simplemente vea el código fuente de Windows y verá ...


Windows: Mayormente C y C ++, algunos C #


  • Windows: C ++, kernel está en C
  • Mac: Objetivo C, el kernel está en C (el subsistema IO PnP es Embedded C ++)
  • Linux: la mayoría de las cosas están en C, muchas aplicaciones de usuario están en Python, KDE es todo C ++

Todos los núcleos utilizarán también algún código de ensamblaje.


  • ventanas: C ++
  • linux: c
  • mac: objetivo c
  • Android: JAVA, C, C ++
  • Solaris: C, C ++
  • iOS 7: Objective-C, Swift, C, C ++