manager Em quais idiomas o Windows, o Mac OS X e o Linux estão escritos?




macos programming-languages (11)

Eu estava apenas imaginando quem sabe de que linguagens de programação o Windows, o Mac OS X eo Linux são feitos e quais linguagens são usadas para cada parte do sistema operacional (isto é: Kernel, arquitetura de plug-in, componentes GUI, etc).

Eu suponho que existem vários idiomas para cada um e, obviamente, eu sei que o kernel do Linux está escrito em C.

Estou supondo que o Mac OS X contém muito código Objective-C, já que é a linguagem da Apple derivada da NeXT.

Windows, ouvi dizer que contém C, C ++ e Intel Assembly. O Linux ou Mac OS contém algum código de montagem?

Além disso, existem linguagens de script como Ruby, Python, etc usadas pelos desenvolvedores do sistema operacional para criar scripts de partes do sistema operacional? Quais partes do sistema operacional seriam escritas em cada idioma?


Answer #1

Windows obviamente não está escrito em c # (!)

Basta ver o código fonte do Windows e você verá ...


Answer #2

Eu li ou ouvi que o Mac OS X é escrito principalmente em Objective-C com algumas das partes de nível inferior, como o kernel, e drivers de dispositivo de hardware escritos em C. Acredito que a Apple "coma sua própria ração" ", o que significa que eles escrevem o Mac OS X usando suas próprias ferramentas de desenvolvimento do Xcode . O compilador-vinculador GCC (GNU Compiler Collection) é a ferramenta de linha de comando unix que o xCode usou para a maioria de sua compilação e / ou vinculação de executáveis. Entre outras linguagens possíveis, eu sei que o GCC compila o código fonte das linguagens C, Objective-C, C ++ e Objective-C ++.


Answer #3

Você está certo MacOSX tem Objective-C no núcleo.

Windows C ++

Linux C

Sobre as linguagens de script, não, elas são de nível muito alto.


Answer #4

Uau!!! 9 anos de pergunta, mas acabei de encontrar uma série de article internos sobre a história da linha de comando do Windows, e acho que parte dela pode ser um aspecto relevante do Windows sobre a questão:

Para aqueles que se importam com essas coisas: Muitos perguntam se o Windows está escrito em C ou C ++. A resposta é que - apesar do design baseado em objetos do NT - como a maioria dos sistemas operacionais, o Windows é quase todo escrito em 'C'. Por quê? O C ++ introduz um custo em termos de consumo de memória e sobrecarga de execução de código. Mesmo hoje, os custos ocultos do código escrito em C ++ podem ser surpreendentes, mas no final dos anos 90, quando a memória custava ~ $ 60 / MB (sim… $ 60 por MEGABYTE! ), O custo de memória oculta de vtables etc. era significativo. Além disso, o custo do método indireto de chamada de método virtual e a remoção de objeto pode resultar em penalidades muito significativas de desempenho e escala para o código C ++ naquele momento. Embora ainda seja preciso ter cuidado, a sobrecarga de desempenho do C ++ moderno nos computadores modernos é muito menos preocupante, e geralmente é um compromisso aceitável, considerando seus benefícios de segurança, legibilidade e manutenibilidade ... e é por isso que estamos constantemente atualizando o código do console para o C ++ moderno.



Answer #6
  • windows: C ++
  • linux: C
  • mac: Objetivo C
  • android: JAVA, C, C ++
  • Solaris: C, C ++
  • iOS 7: Objective-C, Swift, C, C ++

Answer #7
  • Windows: C ++, o kernel está em C
  • Mac: Objetivo C, o kernel está em C (o subsistema IO PnP é Embedded C ++)
  • Linux: A maioria das coisas estão em C, muitos aplicativos são em Python, o KDE é todo em C ++

Todos os kernels também usarão algum código assembly.


Answer #8

O Mac OS X usa grandes quantidades de C ++ dentro de algumas bibliotecas, mas não é exposto, pois temem a quebra da ABI.


Answer #9

Windows: Principalmente C e C ++, alguns C #


Answer #10

Como complemento do núcleo do Mac OS X, o Finder não havia sido escrito em Objective-C antes do Snow Leopard. No Snow Leopard foi escrito em cacau, Objective-C


Answer #11

O kernel do Linux é escrito principalmente em C (e um pouco de linguagem de montagem, imagino), mas alguns dos utilitários importantes do userspace (programas) são scripts de shell escritos na linguagem de script Bash. Além disso, é meio difícil definir "Linux", já que você basicamente constrói um sistema Linux escolhendo os pedaços que deseja e colocando-os juntos, e dependendo do que um usuário Linux individual quer, você pode obter praticamente qualquer idioma envolvido. (Como Paul disse, Python e C ++ desempenham papéis importantes)





operating-system