На каком языке написан windows
Мне было просто интересно, кто знает, из чего состоят языки программирования Windows, Mac OS X и Linux и какие языки используются для каждой части ОС (то есть: ядро, архитектура подключаемых модулей, компоненты GUI и т. Д.).
Я предполагаю, что есть несколько языков для каждого, и, очевидно, я знаю, что ядро Linux написано на C.
Я полностью предполагаю, что Mac OS X содержит много кода Objective-C, поскольку это язык Apple, полученный из NeXT.
Я слышал, что Windows содержит C, C ++ и Intel Assembly. Linux или Mac OS содержат какой-либо ассемблерный код?
Кроме того, существуют ли языки сценариев, такие как Ruby, Python и т. Д., Используемые разработчиками ОС для сценариев частей ОС? Какие части ОС будут написаны на каждом языке?
Этот обмен SO может помочь ответить на самую последнюю часть вашего вопроса.- Windows: C ++, ядро в C
- Mac: Цель C, ядро в C (подсистема IO PnP - Embedded C ++)
- Linux: большинство вещей на C, многие пользовательские приложения на Python, KDE - это C ++
Все ядра также будут использовать некоторый ассемблерный код.
Я должен добавить, что Gnome тоже в значительной степени C. Правда, у каждого ядра будет хотя бы какой-нибудь ассемблерLinux: C. Некоторые детали в сборке.
[. ] Это в основном на C, но большинство людей не стали бы называть то, что я пишу C. Он использует все мыслимые возможности 386, которые я смог найти, так как это был также проект, чтобы рассказать мне о 386. Как уже упоминалось он использует MMU как для подкачки (пока не на диск), так и для сегментации. Это сегментация, которая делает его ДЕЙСТВИТЕЛЬНО 386 зависимым (каждая задача имеет 64-мегабайтный сегмент для кода и данных - максимум 64 задачи в 4 ГБ. Любой, кому нужно более 64 МБ / задача - жесткие файлы cookie). [. ] Некоторые из моих "C" -файлов (в частности, mm.c) являются почти таким же ассемблером, что и C. [. ] В отличие от minix, я также сталкиваюсь с LIKE-прерываниями, поэтому прерывания обрабатываются без попыток скрыть причина, стоящая за ними. (Источник)
Mac OS X: какао в основном в Objective-C. Ядро написано на C, некоторые части в сборке.
Mac OS X на уровне ядра - это, в основном, старая, бесплатная операционная система, называемая BSD (в частности, это Darwin, своего рода гибрид BSD, Mach и некоторых других) . почти полностью C, с небольшим ассемблер брошен в. (Источник)
Большая часть Cocoa реализована в Objective-C, объектно-ориентированном языке, который скомпилирован для работы с невероятной скоростью, но использует действительно динамическое время выполнения, что делает его уникально гибким. Поскольку Objective-C является надмножеством C, легко смешивать C и даже C ++ в ваших приложениях Cocoa. (Источник)
Аххх, как хорошо, просто бальзам на сердце.
Тогда можете считать что сто процентов, нет, даже сто десять.
Не ребят виндовс написан на англиском, из-за этого периодически он непонятно тупит, то есть шутит, по англиски.исходя из того, что dll библиотека может быть написано на чём угодно, хоть на асме, уместно предположить что нет единого языка в windows xp. в неё есть и Ява аплеты и чего только нет.
но само ядро вроде написано на c++, по крайней мере я в это верю 8]
Давайте начнём с простого: на чём написан "Сапёр"? Ну и так далее - по всем программам, DLL-ам и прочим.
Кстати, нет ли утилитки, которая натравливается на на исполнимый файл и говорит, на чём он написан?
Сначала нужно как минимум нужно определить границы самой Windows, например Notepad это ОС или не ОС.
А так однозначно С/C++, хотя некоторые вещи возможно на ASM.
windows xp. в неё есть и Ява аплеты и чего только нет.
Какие ява аплеты. Нет там и строчки ява аплетов. Я не видел исходников ХР, но твёрдо уверен в этом. Зачем Микрософт использовать сторонний язык для своей ОС, откуда они знаю что в свои либы напихала Сан микросистем. Однозначно С\С++, ядро асм.
Вообще, вопрос интересный. Например, для OpenVMS я где-то видел диаграмму использованных языков. Каких только языков там не было!
По теме:
1. Диалоги и визарды MS Office написаны на VB. Поэтому с определенной долей правоты можно утверждать, что часть MS Office написана на VB. Видимо, это ваш друг имел в виду.
2. В инталляторе Windows использовался VBScript.
Есть еще один момент. Если помните, в Win3.1 была утилита recorder - она записывала нажатия и передвижения мыши в файл, позволяя потом этот файл запустить. Потом аналогичную функциональность добавили в MS Office, но при этом записывались не перемещения мыши, а события - записывались они в макрос на VB. Аналогичную функциональность планировалось реализовать для системы в целом, встроив в нее VB. Предполагалось, перемещая мышку и нажимая кнопочки, запуская файлы можно будет записать последовательность событий в файл VBScript и потом запустить заместо bat-файла. Но эту функциональность так и не реализовали.
Корпорация 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 лет, связанны с ошибками управления памятью.
В языке 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 для собственных нужд, а также расширила команду для дальнейшего развития языка.
OSDU: что нужно знать об открытых стандартах работы с данными в нефтегазеИнтерес 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.
Мне просто интересно, кто знает, какие языки программирования Windows, Mac OS X и Linux состоят из и какие языки используются для каждой части ОС (т. е.: ядро, подключаемая архитектура, компоненты GUI и т. д.).
Я предполагаю, что для каждого есть несколько языков, и, очевидно, я знаю, что ядро Linux написано на C.
Я полностью предполагаю, что Mac OS X содержит много кода Objective-C, поскольку это язык Apple, полученный из следующий.
Windows, я слышал, содержит сборку C, C++ и Intel. Содержит ли Linux или Mac OS какой-либо код сборки?
кроме того, существуют ли языки сценариев, такие как Ruby, Python и т. д., используемые разработчиками ОС для написания сценариев частей ОС? Какие части ОС будут написаны на каждом языке?
- 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. (источник)
Читайте также: