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



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



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



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



Windows, я слышал, содержит C, C++ и сборку Intel. Содержит ли Linux или Mac OS какой-либо ассемблерный код?



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

654   13  

13 ответов:

  • Windows: C++, ядро находится в C
  • Мак: задача с, ядра В С (ИО ПНП подсистема встроенный c++)
  • Linux: большинство вещей находятся в C, многие приложения userland находятся в Python, KDE-это все C++

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

Linux: C. Некоторые детали в сборке.

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

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

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

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

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

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

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

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

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

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

  • windows: C++
  • linux: C
  • mac: цель C
  • android: JAVA, C, C++
  • Solaris: C, C++
  • iOS 7: Objective-C,Swift,C, C++

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

Windows C++

Linux C

о скриптовых языках, нет, они очень высокого уровня.

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

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

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

смотрите под заголовком Одна Операционная Система Работает На Нескольких Платформах где говорится:

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

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

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

Вау!!! 9 лет вопрос, но я только что наткнулся на ряд внутренних статьи в истории командной строки Windows, и я думаю, что какая-то ее часть может быть актуальной стороной вопроса Windows:

для тех, кто заботится о таких вещах: многие спрашивали, написана ли Windows на C или c++. Ответ заключается в том, что, несмотря на объектно-ориентированный дизайн NT, как и большинство ОС, Windows почти полностью написана на "C". Зачем? C++ вводит стоимость с точки зрения памяти след, и накладные расходы на выполнение кода. Даже сегодня скрытые затраты на код, написанный на C++ , могут быть удивительными, но еще в конце 1990 - х годов, когда память стоила ~$60/MB (да ... $60 за мегабайт!), скрытая стоимость памяти vtables и т. д. это было важно. Кроме того, стоимость косвенного вызова виртуального метода и разыменования объектов может привести к очень значительным штрафам за производительность и масштабирование для кода C++ в то время. Хотя все еще нужно быть осторожным, накладные расходы на производительность современный C++ на современных компьютерах вызывает гораздо меньше беспокойства и часто является приемлемым компромиссом, учитывая его преимущества в области безопасности, читаемости и ремонтопригодности ... именно поэтому мы постоянно обновляем код консоли до современного C++.

Comments

    Ничего не найдено.