Fiquei imaginando quem sabe de que linguagens de programação Windows, Mac OS X e Linux são constituídos e quais linguagens são usadas para cada parte do sistema operacional (ou seja: Kernel, arquitetura de plug-in, componentes da GUI, etc.).
Eu assumo que existem vários idiomas para cada um e, obviamente, eu sei que o kernel do Linux está escrito em C.
Estou totalmente adivinhando aqui que o Mac OS X contém muito código Objective-C, pois é o idioma da Apple derivado do NeXT.
Ouvi dizer que o Windows 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 SO para criar partes do SO? Quais partes do sistema operacional seriam escritas em cada idioma?
fonte
Respostas:
Todos os kernels também usarão algum código de montagem.
fonte
Linux: C. Algumas peças em montagem.
Mac OS X: cacau principalmente no Objective-C. Kernel escrito em C, algumas peças em montagem.
Windows: C, C ++, C #. Algumas peças em montador.
Unix: C. Algumas peças em montagem. (Fonte)
fonte
O Mac OS X usa grandes quantidades de C ++ em algumas bibliotecas, mas não é exposto, pois tem medo da quebra da ABI.
fonte
IOKit
,WebKit
eGLKit
. Também dê uma olhada nodyld
. Esses são muito pesados em C ++.Entendo que este é um post antigo, mas o Windows definitivamente não está escrito em C ++. Há muito C ++ nele, mas o que definimos tecnicamente como um sistema operacional não está em C ++. A API do Windows, o kernel do Windows (ambos são essencialmente o que é um sistema operacional) está escrito em C. Anos atrás, recebi um código vazado para o Windows 2000 e o Windows XP. O código não estava completo o suficiente para compilar o kernel ou a API, mas conseguimos compilar programas e serviços individuais. Por exemplo, conseguimos compilar com êxito o Notepad.exe, o mspaint.exe e o serviço spoolsv.exe (spooler de impressão). Tudo escrito em C. Eu não olhei novamente, mas tenho certeza que o código vazado ainda sobrevive como arquivos torrent por aí que ainda podem estar disponíveis.
fonte
Windows: Principalmente C e C ++, alguns C #
fonte
fonte
Uau!!! 9 anos de pergunta, mas acabei de encontrar uma série de artigos internos sobre o histórico da Linha de Comando do Windows e acho que parte disso pode ser relevante para o Windows:
fonte
Você está certo O MacOSX tem o Objective-C no núcleo.
Windows C ++
Linux C
Sobre as linguagens de script, não, elas são de alto nível.
fonte
Eu li ou ouvi dizer que o Mac OS X é escrito principalmente no Objective-C com algumas das partes de nível inferior, como o kernel e os drivers de dispositivos de hardware escritos em C. Acredito que a Apple "coma (s) sua própria comida de cachorro" ", o que significa que eles gravam o Mac OS X usando suas próprias Ferramentas para Desenvolvedor de Xcode . O compilador-linker do GCC (GNU Compiler Collection) é a ferramenta de linha de comando unix usada pelo xCode na maior parte de sua compilação e / ou vinculação de executáveis. Entre outras linguagens possíveis, eu sei que o GCC compila código fonte das linguagens C, Objective-C, C ++ e Objective-C ++.
fonte
O kernel do Linux é principalmente escrito em C (e um pouco de linguagem assembly, eu imagino), mas alguns dos importantes utilitários de espaço do usuário (programas) são shell scripts escritos na linguagem de script Bash. Além disso, é meio difícil definir "Linux", já que você basicamente constrói um sistema Linux escolhendo as partes que deseja e juntando-as, e dependendo do que um usuário individual do Linux deseja, é possível envolver praticamente qualquer idioma. (Como Paul disse, Python e C ++ desempenham papéis importantes)
fonte
Como complemento sobre o núcleo do Mac OS X, o Finder não havia sido escrito no Objective-C antes do Snow Leopard. No Snow Leopard, foi escrito em Cocoa, Objective-C
fonte
Veja sob o título Um sistema operacional em execução em várias plataformas, onde afirma:
fonte
Obviamente, o Windows não está escrito em C # (!)
Basta ver o código fonte do Windows e você verá ...
fonte