Ядро Microsoft Windows разработано в основном на языке C, с некоторыми частями на языке ассемблера. На протяжении десятилетий наиболее часто используемая операционная система в мире, занимающая около 90% рынка, была основана на ядре, написанном на C.
Windows написана на C или C ++?
Для тех, кто заботится о таких вещах: многие спрашивают, написана ли Windows на C или C ++. Ответ заключается в том, что, несмотря на объектно-ориентированный дизайн NT, как и большинство операционных систем, Windows почти полностью написана на языке C. Почему? C ++ требует затрат с точки зрения занимаемой памяти и накладных расходов на выполнение кода.
Windows / Написано на
Использует ли Microsoft C ++?
C ++ — это язык рабочей лошадки в Microsoft, который использует C ++ для создания многих своих основных приложений. … C ++ широко используется в индустрии программного обеспечения и остается одним из самых популярных языков, когда-либо созданных.
Какой язык кодирования использует Windows 10?
Windows 10
Версия операционной системы Windows NT | |
Снимок экрана Windows 10 версии 20H2, показывающий меню «Пуск» и Центр действий в светлой теме | |
разработчик | Microsoft |
Написано в | С, С ++, С # |
Статус поддержки |
---|
C ++ лучше Python?
Производительность C ++ и Python также заканчивается этим выводом: C ++ намного быстрее Python. В конце концов, Python — это интерпретируемый язык, и он не может совпадать с компилируемым языком, таким как C ++. Хорошая новость заключается в том, что вы можете получить лучшее из обоих миров, комбинируя код C ++ и Python.
C все еще используется в 2020 году?
Наконец, статистика GitHub показывает, что и C, и C ++ являются лучшими языками программирования для использования в 2020 году, поскольку они по-прежнему входят в первую десятку списка. Так что ответ — НЕТ. C ++ по-прежнему остается одним из самых популярных языков программирования.
Python написан на C или C ++?
Python написан на C (на самом деле реализация по умолчанию называется CPython). Python написан на английском языке. Но есть несколько реализаций: PyPy (написано на Python)
Написана ли Java на C?
Самый первый компилятор Java был разработан Sun Microsystems и был написан на C с использованием некоторых библиотек из C ++. Сегодня компилятор Java написан на Java, а JRE — на C.
Для чего используется Python?
Python — это язык программирования общего назначения, а это означает, что, в отличие от HTML, CSS и JavaScript, он может использоваться для других типов программирования и разработки программного обеспечения, помимо веб-разработки. Это, среди прочего, включает в себя внутреннюю разработку, разработку программного обеспечения, анализ данных и написание системных скриптов.
Используется ли Python в Microsoft?
Установка Python в Microsoft Store включает стандартный менеджер пакетов pip. Pip позволяет вам устанавливать и управлять дополнительными пакетами, которые не являются частью стандартной библиотеки Python. Чтобы подтвердить, что у вас также есть pip для установки пакетов и управления ими, введите pip –version.
Может ли Python заменить C ++?
В целом Python лучше, чем C ++, с точки зрения простоты и легкого синтаксиса. Но C ++ лучше с точки зрения производительности, скорости, обширных областей применения и т. Д. Q # 3) Может ли Python заменить C ++? Ответ: НЕТ.
Какие компании используют Python?
8 компаний-разработчиков программного обеспечения мирового уровня, использующих Python
- Промышленный свет и магия.
- Google.
- Facebook.
- Instagram.
- Spotify.
- Quora.
- Netflix.
- Dropbox.
Что мне следует изучать C или C ++?
Нет необходимости изучать C перед изучением C ++. Это разные языки. Распространено заблуждение, что C ++ каким-то образом зависит от C, а не является полностью определенным языком сам по себе. Тот факт, что C ++ имеет один и тот же синтаксис и много одинаковой семантики, не означает, что вам нужно сначала изучить C.
Linux написан на C или C ++?
Linux. Linux также написан в основном на C, с некоторыми частями сборки. Около 97 процентов из 500 самых мощных суперкомпьютеров в мире работают под управлением ядра Linux.
Почему C более популярен, чем C ++?
Самая большая практическая причина для предпочтения C заключается в том, что поддержка более распространена, чем C ++. Есть много платформ, особенно встроенных, на которых даже нет компиляторов C ++. Также существует вопрос совместимости для поставщиков.
- Remove From My Forums
-
Общие обсуждения
-
Всем привет!
К сожалению, я не нашел другой группы, кроме как этой, где можно задать такой вопрос.
Пожалуйста, дайте ссылочку или приведите цитаты из официальных данных о том, на каких языках программирования написан код операционной системы Windows — хотя бы для Windows XP, Windows 2000/2003 Server.
Интересует самая общая, но официальная информация (что-то типа официальной справки компании Microsoft), в процентном соотношении, что-то навроде: Windows XP — 80% на C/C++, 20% на asm — в общем-то и все.
Просто утомил тут один любитель Visual Basic своими безаппеляционными заявлениями, что «Windows написан на VB» — ну утомил он «песнями про VB», ну просто достал… :))
Спасибо!
03 Декабря 2019 14:06
03 Дек 2019 14:06
|
Microsoft в рамках экспериментального проекта Verona развивает новый язык программирования, основанный на Rust. Не исключено, что некоторые низкоуровневые компоненты Windows 10 впоследствии будут переписаны на нем, что позволит сделать систему значительно более устойчивой к киберугрозам.
Проект Verona
Корпорация Microsoft разрабатывает новый язык программирования, который ориентирован на создание приложений, не подверженных наиболее распространенным проблемам безопасности, пишет Zdnet.
Новый язык базируется на набирающем популярность Rust, развитием которого занимается компания Mozilla, разработчик известного браузера Firefox. Проект получил название Verona и, по данным издания, ключевое его отличие от Rust заключается в применении модели владения на основе групп объектов, а не единичных объектов. Ожидается, что исходные тексты текущих наработок в его рамках будут открыты под свободной лицензией Apache 2.0. Репозиторий проекта уже появился на принадлежащей Microsoft c 2018 г. платформе Github, но пока пуст.
Как отмечает Zdnet, Microsoft также может переписать некоторые низкоуровневые компоненты Windows 10 с использованием модифицированного Rust, чтобы исключить потенциальные проблемы, возникающие при применении языков C и C++.
Как смена языка поможет повысить безопасность
Языки C и C++ в течение десятилетий повсеместно используются в качестве инструмента разработки системного ПО и возлагают на программиста задачу управления оперативной памятью, что неизбежно приводит к возникновению ошибок, таких как обращение к участку памяти после его освобождения или, например, выход за границы буфера. По словам Мэтта Миллера (Matt Miller), специалиста Microsoft по безопасности, около 70% всех уязвимостей, обнаруженных в программных продуктах корпорации за последние 12 лет, связанны с ошибками управления памятью.
Около 70% всех уязвимостей, обнаруженных в программных продуктах Microsoft за последние 12 лет, связанны с ошибками управления памятью
В языке Rust (как, видимо, и в Verona), в отличие от C и C++, реализован механизм автоматического управления памятью на основе принципа «владения», который избавляет программиста от необходимости вручную манипулировать памятью, тем самым снижая вероятность возникновения ошибок. Стоит также отметить, что в угоду производительности в Rust не используется так называемый сборщик мусора (Garbage Collector, GC), в задачи которого входит автоматическое удаление из памяти объектов, которые более не востребованы программой.
Эксперименты Microsoft с Rust
Zdnet пишет, что Microsoft начала экспериментировать с Rust летом 2019 г. Сообщалось, что компания собирается переписать некоторые из своих продуктов с использованием этого языка программирования.
В начале ноября 2019 г. Адам Берч (Adam Burch), программист из команды разработчиков Hyper-V (системы аппаратной виртуализации для x64-систем на основе гипервизора), написал в корпоративном блоге о том, что ему поручили переписать на Rust некий низкоуровневый компонент Windows, назвать который он пока не может. По его словам, несмотря на незавершенность проекта, опыт применения Rust оказался в целом позитивным. Он также отметил, что кодовую базу новых компонентов и уже существующих, но с «чистыми интерфейсами», перевести на Rust не составит большого труда. Кроме того, Берч посетовал на отсутствие некоторых возможностей в языке по сравнению с привычным ему C, но выразил уверенность в том, что Microsoft сможет посодействовать их добавлению.
Несколько слов о Rust
Rust появился в 2006 г. как личный проекта Грейдона Хоара (Graydon Hoare), сотрудника Mozilla. В 2009 г. Mozilla начала спонсировать разработку Rust для собственных нужд, а также расширила команду для дальнейшего развития языка.
Как в VK создали корпоративный суперапп для 10 тысяч сотрудников
Цифровизация
Интерес Mozilla к Rust был вызван наличием огромного числа критических уязвимостей в разрабатываемом компанией браузером Firefox, в реализации которого присутствовало свыше 4 млн строк на языке C++. Rust был создан с учетом требований безопасности и параллелизма, что сделало его подходящим выбором для переписывания многих компонентов Firefox в рамках проекта Quantum по полной переработке архитектуры браузера. Кроме того, Mozilla использовала Rust для разработки Servo, движка рендеринга HTML, который должен был заменить действующий движок рендеринга Firefox.
Помимо Mozilla и Microsoft в своих проектах Rust применяют Google, Facebook, Amazon, Dropbox, Fastly, Baidu.
В августе 2019 г. в рамках саммита по технологиям с открытым исходным кодом (Open Source Technology Summit) Джош Триплетт (Josh Triplett), ведущий инженер Intel, рассказал о том, что его компания заинтересована в том, чтобы в ближайшем будущем Rust достиг «паритета» с доминирующим в области системной и низкоуровневой разработки языком C.
В том же месяце Грег Кроа-Хартман (Greg Kroah-Hartman), один из ключевых разработчиков ядра Linux, заявил, что не станет препятствовать включению в ядро фреймворка для написания драйверов на языке Rust.
- С чего начать импортозамещение SAP, Oracle и IBM?
Вообще, самый удобный язык для системного программирования — это C. Плюс к этому существуют довольно сильные opmimizing compilers, компиляторы с очень продуманной оптимизацией. В C есть ряд удобных вещей — таких как union, например. В паскале / delphi строгая типизация, которую можно обойти, конечно, довольно легко с использованием указателей, к примеру, но все это будет сложнее и менее удобно реализовываться. Есть примеры -и ОС на паскале-подобных языках, вроде ОС на FreePascal (StreamOS, DelphineOS).
А DOS’ы на C писались, тот же MSDOS, тот же замечательный FreeDOS. Компактные ядра, загрузчики на ASM, остальное на C.
Все это не значит, что Delphi, FPC и VPC — плохие паскале-подобные языки, здесь вопрос в самих компиляторах и принципе строгой типизации. Немного переработать тот же FreePascal и спокойно можно будет функциональные OC писать.
Хотя уже, к примеру, тот же FPC написан на FreePascal и уже давно компилирует сам себя, перспективы развития есть. Что очень важно, он реализует целый ряд диалектов языка, что значит, есть возможности и для расширения.
Есть множество ОС на чистом ассмеблере, тот же MenuetOS / Kolibri, просто уникальная и ультракомпактная мини ОС.
Раньше наши отечественные ОС, варианты ДОС, писались на ASM, причиной чему были жесткие ограничения по ОЗУ, дисковому пространству и быстродействию.
Мне просто интересно, кто знает, какие языки программирования Windows, Mac OS X и Linux состоят из и какие языки используются для каждой части ОС (т. е.: ядро, подключаемая архитектура, компоненты GUI и т. д.).
Я предполагаю, что для каждого есть несколько языков, и, очевидно, я знаю, что ядро Linux написано на C.
Я полностью предполагаю, что Mac OS X содержит много кода Objective-C, поскольку это язык Apple, полученный из следующий.
Windows, я слышал, содержит сборку C, C++ и Intel. Содержит ли Linux или Mac OS какой-либо код сборки?
кроме того, существуют ли языки сценариев, такие как Ruby, Python и т. д., используемые разработчиками ОС для написания сценариев частей ОС? Какие части ОС будут написаны на каждом языке?
13 ответов
- Windows: c++, ядро находится в C
- Mac: Objective C, ядро находится в C (подсистема ввода-вывода PnP встроена в C++)
- Linux: большинство вещей находятся в C, многие приложения userland находятся в Python, KDE-это все c++
все ядра также будут использовать некоторый код сборки.
Linux: C. Некоторые детали в сборке.
[…] Это в основном в C, но большинство людей не назвали бы то, что я пишу C.
Он использует все мыслимые функции 386, которые я мог найти, как это было
проект, чтобы научить меня о 386. Как уже упоминалось, это
использует MMU, как для подкачки (еще не на диск), так и для сегментации. Это
сегментация, которая делает его действительно зависимым от 386 (каждая задача имеет
Сегмент 64Mb для кода и данных-максимум 64 задачи в 4Gb. Кто должен
более 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, но мы смогли скомпилировать отдельные программы и сервисы. Например, нам удалось успешно скомпилировать Блокнот.проблемы, проблемы.exe и 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. The GCC (коллекция компиляторов GNU) 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
Windows, очевидно, не написана на C# (!)
просто посмотрите исходный код Windows, и вы увидите…
Вау!!! 9 лет вопроса, но я только что наткнулся на ряд внутренних статьи в истории командной строки Windows, и я думаю, что какая-то часть этого может быть актуальной для Windows стороной вопроса:
для тех, кто заботится о таких вещах: многие спрашивали, написана ли Windows на C или c++. Ответ заключается в том, что, несмотря на объектный дизайн NT, как и большинство ОС, Windows почти полностью написана на «C». Почему? C++ вводит стоимость с точки зрения памяти footprint и накладные расходы на выполнение кода. Даже сегодня скрытые затраты на код, написанный на C++, могут быть удивительными, но еще в конце 1990-х годов, когда память стоила ~ $ 60 / MB (да … $60 за мегабайт!), скрытая стоимость памяти vtables и т. д. это было важно. Кроме того, стоимость косвенного вызова виртуального метода и разыменования объектов может привести к очень значительным штрафам за производительность и масштабирование кода C++ в то время. Хотя все еще нужно быть осторожным, накладные расходы на производительность современный C++ на современных компьютерах вызывает гораздо меньше беспокойства и часто является приемлемым компромиссом, учитывая его преимущества безопасности, читаемости и ремонтопригодности … именно поэтому мы постоянно обновляем код консоли до современного C++.