На каких языках написаны Windows, Mac OS X и Linux?

210

Мне просто интересно, кто знает, какие языки программирования Windows, Mac OS X и Linux составлены и какие языки используются для каждой части ОС (например, ядро, архитектура подключаемого модуля, компоненты GUI и т.д.).

Я предполагаю, что для каждого языка есть несколько языков, и, очевидно, я знаю, что ядро ​​Linux написано на C.

Я полностью предполагаю, что Mac OS X содержит много кода Objective-C, поскольку это язык Apple, полученный из NeXT.

Windows, я слышал, содержит C, С++ и Intel Assembly. У Linux или Mac OS есть код сборки?

Кроме того, существуют ли скриптовые языки, такие как Ruby, Python и т.д., используемые разработчиками ОС для создания скриптов в ОС? Какие части ОС будут записаны на каждом языке?

Теги:
programming-languages
operating-system
osx

12 ответов

189
Лучший ответ
  • Windows: С++, ядро ​​находится в C
  • Mac: Objective C, ядро ​​находится в C (подсистема IO PnP встроена в С++)
  • Linux: большинство вещей находятся на C, многие приложения для пользователей находятся в Python, KDE - это все С++

Все ядра также будут использовать некоторый код сборки.

  • 10
    Я должен добавить, что Gnome тоже в значительной степени C.
  • 17
    Гном также заигрывал с C # (моно).
Показать ещё 9 комментариев
74

Linux: C. Некоторые части сборки.

[...] Это в основном на C, но большинство людей не будет называть то, что я пишу C. Он использует все мыслимые возможности 386, которые я мог найти, так как это было также проект, чтобы научить меня о 386. Как уже упоминалось, это использует MMU, как для пейджинга (не для диска), так и для сегментации. Это сегментация, которая делает ее ДЕЙСТВИТЕЛЬНО 386 зависимой (каждая задача имеет Сегмент 64 Мб для кода и данных - не более 64 задач в 4 ГБ. Любой, кто нуждается более 64 Мб/задача - жесткие файлы cookie). [...] Некоторые из моих "C" файлов (в частности, mm.c) почти такие же ассемблеры, как C. [...] В отличие от minix, я также случаюсь с LIKE прерываниями, поэтому обрабатываются прерывания не пытаясь скрыть причину позади них. (Источник)

Mac OS X: Cocoa в основном в Objective-C. Ядро написано на C, некоторые части сборки.

Mac OS X на уровне ядра представляет собой в основном более старую бесплатную операционную систему под названием BSD (в частности, ее Darwin, своего рода гибрид BSD, Mach и некоторые другие вещи)... почти полностью C, с небольшим количеством ассемблера. (Источник)

Большая часть Cocoa реализована в Objective-C, объектно-ориентированном языке, который скомпилирован для работы с невероятной скоростью, но использует действительно динамическое время выполнения, что делает его уникальным. Поскольку Objective-C является надмножеством C, легко смешивать C и даже С++ в ваших приложениях Cocoa. (Источник)

Windows: C, С++, С#. Некоторые части в ассемблере.

Мы используем почти полностью C, С++ и С# для Windows. Некоторые области кода ручной настройки/ручной письменной сборки. (Источник)

Unix: C. Некоторые детали в сборке. (Источник)

  • 3
    Подсистема драйверов в Дарвине (IOKit) в значительной степени опирается на COM-подобную объектную модель, написанную в подмножестве C ++.
  • 6
    Мы уверены, что Windows не была написана на Visual Basic?
Показать ещё 1 комментарий
10

Mac OS X использует большое количество С++ внутри некоторых библиотек, но она не отображается, поскольку они боятся нарушения ABI.

  • 9
    Какие? В любом случае половина программ перестает работать на каждом новом выпуске.
  • 6
    Не могли бы вы привести какую-то цитату для выражения «Mac OS X использует большое количество C ++ внутри некоторых библиотек» ? Мне просто сложно поверить на слово! Прошу прощения за скептическое отношение.
Показать ещё 2 комментария
7

Windows: в основном C и С++, некоторые С#

  • 1
    .NET поставляется с Windows. Много .NET находится в C #.
  • 0
    Ходят слухи, что в будущих версиях Windows (возможно, Windows 8) код C ++ будет заменен на C # / .NET.
Показать ещё 10 комментариев
5

Я понимаю, что это старый пост, но Windows определенно не написан на С++. В нем много С++, но то, что мы определяем в качестве операционной системы, находится не в С++. Windows API, ядро ​​Windows (оба они по сути являются операционной системой) написаны на C. Годы назад мне был предоставлен некоторый пропущенный код для Windows 2000 и Windows XP. Код был недостаточно полным для компиляции ядра или API, но мы смогли скомпилировать отдельные программы и службы. Например, мы смогли успешно скомпилировать Notepad.exe, mspaint.exe и службу spoolsv.exe(диспетчер очереди печати). Все написано на C. Я еще не посмотрел, но я уверен, что пропущенный код все еще сохраняется как файлы торрента, которые могут быть доступны.

4
  • windows: С++
  • linux: C
  • mac: Objective C
  • android: JAVA, C, С++
  • Solaris: C, С++
  • iOS 7: Objective-C, Swift, C, С++
  • 0
    Android написан на Java? В самом деле?
  • 2
    Android: Java (пользовательский интерфейс). Источник: en.wikipedia.org/wiki/Android_(operating_system)
Показать ещё 2 комментария
4

Я прочитал или услышал, что Mac OS X написана в основном в Objective-C с некоторыми из частей более низкого уровня, таких как ядро ​​и драйверы аппаратного устройства, написанные на C. Я считаю, что Apple "съедает" свои Собственная пища для собак ", что означает, что они пишут Mac OS X, используя собственный Xcode Developer Tools. GCC (сборник компиляторов GNU) compiler-linker - это инструмент командной строки unix, который xCode используется для большей части его компиляции и/или связывания исполняемых файлов, Среди других возможных языков я знаю, что GCC компилирует исходный код с языков C, Objective-C, С++ и Objective-C ++.

4

Вы правы MacOSX имеет Objective-C в ядре.

Windows С++

Linux C

О языках сценариев нет, они довольно высокого уровня.

  • 7
    Windows в C: ядро, драйверы, API. Наверное, только системные приложения и инструменты на C ++. Так что проще сказать просто C
2

Смотрите под заголовком Одна операционная система, работающая на нескольких платформах, где указано:

Most of the source code for Windows NT is written in C or C++.
2

В качестве дополнения к ядру Mac OS X Finder не был написан в Objective-C до Snow Leopard. В Snow Leopard это было написано в Cocoa, Objective-C

2

Ядро Linux в основном написано на C (и немного на языке ассемблера, как я полагаю), но некоторые из важных утилит (программ) пользовательского пространства - это сценарии оболочки, написанные на языке сценариев Bash. Помимо этого, трудно определить "Linux", поскольку вы в основном создаете систему Linux, выбирая нужные вам биты и комбинации, и в зависимости от того, чего хочет пользователь Linux, вы можете использовать практически любой язык. (Как сказал Павел, Python и С++ играют важную роль)

0

Windows явно не написана на С# (!)

Просто посмотрите исходный код Windows, и вы увидите...

  • 33
    «Просто посмотрите исходный код Windows», если вы один из немногих, кому это разрешено / возможно ...
  • 0
    В Torrents есть много частей исходного кода Windows, а также несколько обзоров
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню