на каком языке создан виндовс
Microsoft полностью перепишет часть Windows на своем новом языке программирования
Проект 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 лет, связанны с ошибками управления памятью.
В языке 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 для собственных нужд, а также расширила команду для дальнейшего развития языка.
Интерес 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?
Мне просто интересно, кто знает, какие языки программирования Windows, Mac OS X и Linux состоят из и какие языки используются для каждой части ОС (т. е.: ядро, подключаемая архитектура, компоненты GUI и т. д.).
Я предполагаю, что для каждого есть несколько языков, и, очевидно, я знаю, что ядро Linux написано на C.
Я полностью предполагаю, что Mac OS X содержит много кода Objective-C, поскольку это язык Apple, полученный из следующий.
Windows, я слышал, содержит сборку C, C++ и Intel. Содержит ли Linux или Mac OS какой-либо код сборки?
кроме того, существуют ли языки сценариев, такие как Ruby, Python и т. д., используемые разработчиками ОС для написания сценариев частей ОС? Какие части ОС будут написаны на каждом языке?
13 ответов
все ядра также будут использовать некоторый код сборки.
Linux: C. Некоторые детали в сборке.
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. Некоторые детали в сборке. (источник)
История Windows
Содержание
Содержание
Раньше, чтобы добиться ответа от будущего поработителя человечества, приходилось вручную вводить данные в командную строку. Это неудобно и долго. Привычный «оконный интерфейс» появился в середине 80-х годов и необходимость заучивать словарик терминов отпала, команда стала передаваться парой кликов. Визуализация действий позволила параллельно выполнять несколько задач, переносить информацию из одной программы в другую, получать быстрый доступ к файлам с помощью иконок.
Первая графическая операционная система была воспринята специалистами в штыки из-за высоких требований к «железу». Для работы требовался экзотический зверь – мышь. В то время хвостатый грызун не был распространен, и на вопрос: «Мыши есть?», можно было получить искренний ответ продавца-консультанта: «Травим».
Начало начал
Графический интерфейс придумал Даг Энгельбарт в 60-х годах. В 1973 команда Xerox создала корпоративный инструмент WIMP – окна, иконки, меню, указатели для компьютеров собственной разработки PERQ и STAR.
Вычислительные машины долгое время считались специализированным инструментом военных, ученых, инженеров. Для элементарных математических расчетов требовалось выучить компьютерную грамоту. Рядовые пользователи не могли представить, зачем им этот дорогой аппарат. С появлением графического интерфейса все изменилось. Звуки, картинки и главное – игры, превратили ЭВМ в мультимедийный развлекательный центр.
Почему окна?
Мы живем в физическом объемном мире, нам нравится все, что можно потрогать, рассмотреть с разных сторон. Окно умеет менять свою форму, расширяется и сужается, отбрасывает тень, создает иллюзию выпуклости. Негатив, злость и раздражение приходят в тот момент, когда динамичное изменение пространства рабочего стола вдруг замораживается, а меняющиеся надписи, иконки, размеры шрифтов, цвета регулярно раздражают мозг, вызывая позитивную реакцию.
Повелители окон
История оконной гегемонии началась в 1975, когда Билл Гейтс и Пол Аллен основали корпорацию Microsoft.
Выпуская софт для быстро растущего рынка персональных компьютеров, Гейтс не мог упустить возможность скопировать новый продукт – графический интерфейс Apple.
В довесок к окнам яблочники давали увесистую Lisa, массой в 9 «тонн» американских денег. Большинство пользователей предпочитали машины попроще. В начале 80-х в гонку вычислений вступает Белоснежка – IBM и 7 компаний-гномов: RCA, CDC, Univac, Burroughs, Honeywell, NCR, GE. Стоимость персонального компьютера падает до 500-1000$. Lisa, стоившая в 9-18 раз дороже, чуть не погубила Apple, снизив ценность акций на 30%, Джобс покинул здание.
Трудолюбивые гномы наштамповали массу компьютеров и настала пора клепать новый интерфейс – так решили в Microsoft. У компании уже был опыт разработки OS для IBM. MS-DOS – получает графическую надстройку Windows 1.
Все украдено до нас
Увидев знакомые окна в 1984 году, Джобс отправился в суд. Тяжба длилась до 1993 года, и закончилась в пользу Билла. По одной из версий, Гейтс позаимствовал интерфейс во время разработки софта для Macintosh, по другой – это самостоятельная разработка, которую вели с 1982 года.
Сам Стив Джобс обзавелся окошками во время визита в исследовательский центр Xerox в Пало-Альто. Стащив дискету со стола инженера, он убегал, сверкая пятками (но это не точно). Компания Apple щедро отсыпала своих акций Xerox, чтобы предотвратить судебные тяжбы.
Факт: первое название Windows – Interface Manager. «Окна» появились благодаря маркетинговому отделу компании.
Причина популярности окошек – отсутствие альтернативы в принципе. Продукт, разработанный Xerox, доведенный до ума Apple и MicroSoft, завоевывал доверие, постепенно приручая восприятие людей к оконному мышлению. Microsoft обязан своей популярности двум провальным проектам Стива Джобса и высокому спросу на персональные компьютеры.
Оконная история
Первенец, родившийся 10 ноября 1983 года, был наречен Windows 1. За цветастым кафтаном графического интерфейса, спряталась морально устаревшая MS-DOS. Черный экран, отражающий лысину программиста, уступил место окнам. Стоимость – 100$, продано 500 000 копий, основной конкурент – Apple Lisa 1983 года рождения.
Старший брат – Windows 2, явился на свет 9 декабря 1987 года, будучи по-прежнему всего лишь шкуркой, он лишился недостатков первой версии. Окна свободно перемещались, появилось ведро для отбросов. Обновился интерфейс: кнопки минимизации и максимизации окон, поддержка горячих клавиш, встроенная программа Dynamic Data Exchange для обмена сообщениями. Цена не изменилась, продажи увеличились в 2 раз.
Появившийся 22 мая 1990 года Windows 3 – стал окном в Интернет. С версии 3.1 используется протокол TCP IP. Малыш получился довольно цветастым, – к тому же со славянской примесью. Пока американских ученых и студентов радовали 256 оттенков, граждане СССР рассматривали зарубежные витражи с кириллическими буковками – добавилась поддержка русского языка.
Дедушка MS-DOS сделал свое дело, родив 3-х сыновей, больше его услуги не требовались. 27 июля 1993 года свершилось долгожданное событие, на свет явилась Windows NT – операционная система нового поколения, мать-прародительница всех последующих OS, которая изначально разрабатывалась для серверов.
На дворе 24 августа 1995 года. Windows 95 – первая полноценная OS для домашнего использования. Лихой хакер играет в косынку, слушает wav-мелодию и пялится 15 минут на медленно прорисовывающуюся картинку в браузере Internet Explorer.
Многозадачность пошла в массы. Интерфейс стал удобным и симпатичным. Появилась кнопка «Start», 65 000 цветов. Продано 40 миллионов копий по 210$, совет директоров Apple льет крокодильи слезы.
Windows 98 – 21 июня 1998 выходит естественное продолжение Windows 95 c улучшенным USB, поддержкой HDD большого объема, предустановленным ПО: обновленный Explorer и Outlook Express. За 7 дней реализовано полмиллиона дисков ценой в 110$.
17 февраля 2000 года появился Millennium, получивший народное прозвище «Линолеум». Выкидыш стимулировал народное творчество, старина Билли узнал о себе много нового. Gif-ки с изображающим головы главы корпорации демонстрировали широту фантазии оконных адептов. Windows ME по сути был Windows 98 с новой красивой шкуркой, аудио-видеоплеером и огромным количеством багов.
«Чупакабру» не смог спасти даже мизерный ценник в 60$. Забив на провальный проект, Microsoft выпускает новую OS – легендарную Windows XP. Система по сей день пользуется популярностью за стабильность, не требовательность к ресурсам, лаконичный графический интерфейс. С 15 августа 2019 года она считается совершеннолетней. По информации от NetmarketshareXP установлена на 12% всех ноутбуков на планете. Ценник – 85$.
30 ноября 2006 года выходит Windows Vista – сестра Линолеума по несчастью. Красивая и яркая особа оказалась слишком требовательна к кормовой базе. Почувствовав неладное, пользователи спешно мигрировали обратно на XP. Из новинок: защита от вирусов, идентифицирующая пользователей, как врагов. Красивая Aero, превращающая Pentium IV в дрова. Ценник 200-400$.
Счастливая 7-ка вышла 22 октября 2009 года, и стала самой популярной операционной системой в первом десятилетии 21 века, установлена на 55,7% ПК по данным Netmarketshare. Быстрая, производительная, с симпатичным интерфейсом, она сочетала в себе брутальный характер XP и красоту Висты. Стоимость на момент релиза 160-320$.
В октябре 2012 года появилсяWindows 8, подтвердив теорию – корпорация выпускает нормальный продукт через один. Многим не понравился плиточный интерфейс, к тому же OS бесконечно быстро пожирала оперативную память. С другой стороны, система работала стабильно и быстро загружалась. Попытка создать универсальный продукт для планшетов, компьютеров и телефонов вышла третьим по счету комочком.
Apple был первым, но не смог. Семейство Windows за 30 лет захватило дисковое пространство 90% ПК и 30% серверов, установив свою гегемонию. Агенты: Paint, Word, Блокнот, Сапер, Косынка и Пасьянс – поработили разум и души миллиардов пользователей, став легендарными.
Программирование в Windows
У меня такой вопрос, зачем для программирования в Windows создано столько языков программирования?
Я начал изучать программирования с паскаль, а потом делфи, и наконец понял какой я дурак, зачем вся эта запутывающая херь!? Вить Windows написан на языке C++ в каждой DLL функции написаны на C++.
И этот язык универсален, поддерживает и ООП и Ассемблер! Для него сразу от майкрософта SDK идут!
Например какой бы не был язык программирования чтоб создать окно программа обращается к функции CreateWindow по любому! Вот и вопрос! Зачем было мудрить когда можно в легкую писать все на C++?
На C++ можно для винды что хочешь написать! От драйверов до чего хочешь!
Но я немного погорячился, Еще очень нужен Ассемблер! С ним многое делать легче!
А некоторые библиотеки вообще проще на Visual Basic писать. Это так, для справки (:
objective-C используют на Apple Iphone. Язык основан на С и почти не связан с С++.
На Python’е реально написать скрипт который спамит mail.ru
HTML не используется в Windows, зато при просмотре этой страницы вы его используете. (Не верите? Нажмите ctrl+u)
Соглашусь с остальными, узко мыслите мой друг.
Windows не та платформа, которая свободна как ветер.
«Вить Windows написан на языке C++ в каждой DLL функции написаны на C++.»
улыбнуло
Реально на СИ (не на С++) написан msdn и разные там SDK т. е. заголовки функций из тех самых DLL, но все это есть и для других языков (FreePascal, Delphi)
на самом деле функции в DLL посрать из программы на каком языке ее вызвали, самое главное знать ее номер и порядок передачи параметров
На Delphi если умеючи можно тоже что хочешь написать (правильнее «от чего хочешь до драйверов», к стати ты сколько драйверов на С++ написал? ).
Assembler язык конечно нужный, но судя по интернет вакансиям язык системы «1С Предприятие» куда нужнее
На будущее, нужно учится писать программы, а не учить языки программирования
На чем лучше всего писать Windows приложение?
Есть задача, написать приложение для гос. нужд по Windows.
И думаю, на чем писать.
.NET всем хорош, но framework нужно будет заставлять устанавливать (не везде он стоит еще по дефолту, поверьте мне).
А вы бы на чем предложили написать небольшое отдельное приложение для мат. расчетов?
XXX: Если бы компьютер был стройкой, то на просьбу посоветовать инструмент для забивания гвоздя большинство окружающих посоветовали бы использовать различные модели пизженых со склада микроскопов, поливая говном микроскопы других производителей, и только пара человек молча протянули бы молоток.
YYY: Причем из этих двух молотков, один был бы самодельной киянкой!
XXX: Точно. А еще кто-нибудь заявил бы, что все ламеры, а вместо гвоздя нужно использовать шуруп.
YYY: И предложил бы свой вариант самореза с правой резьбой под шестигранную отвертку с логотипом Sun…
XXX: А потом кто-нибудь прийдет и скажет, что посадил все на суперклей и вроде стоит.
YYY: А кто то будет причитать про то, что раньше вообще без гвоздей строили и стояло века…
Вам шашечки или ехать? Если нужен «продвинутый» язык, то поинтересуйтесь, что сейчас в моде и пишите на каком-нибудь Ruby (ничего личного к пишущим на этом языке).
Delphi же вам может обеспечить скорость разработки и скорость вычислений без дополнительных примочек, устанавливаемых в систему.
Не знаю, что вы подразумеваете под кривостью библиотек… У BDE, которое не всем нравилось, давно есть альтернативы. Критических багов не наблюдается еще версии наверно с 7-й. Юникод уже причесали по всему VCL. С разными мелочами, которые кочуют из версии в версию для обратной совместимости, можно мириться. Ну и так далее.
Вот тут я задавал подобный вопрос — habrahabr.ru/qa/1894/
Остановился на C# + winforms, хоть и не имел опыта кодинга (только веб), разобрался довольно быстро. В инете куча документации, проблемы решаются быстро, и больше половины задуманных фич можно реализовать интуитивно.
Да, придётся заставлять установить фреймворк, это минус. Но в моем случае это не особо критично т.к. я сам являюсь сисадмином, и на нужные компы сам могу его установить.
Не говоряуж о том, что компилятор в Qt используется очень серьезный и мощный
В последнее время стало модно писать для Windows на Silverlight. Поставить плагин к браузеру всё-таки проще, чем целый фрэймворк, и исчезает проблема автоматического обновления приложения.
Начиная с 4- версии Silverlight позиционируется не только как веб-клиент, но и как Windows-приложение (про это много говорил товарищ Черномордиков).
Однако нужно учесть, что Silverlight-приложения по задумке должны общаться с внешним миром в основном через веб-сервисы (хотя есть возможность работать с файлами в личной папке и взаимодействовать с MS-Офисом и пр.).
Если приложение сложное, требуется прямой доступ к БД, требовательно к аппаратным ресурсам или должно получать доступ к системным файлам — тогда WPF.
Сам сейчас разрабатываю большую корпоративную систему документооборота, весь интерфейс на Silverlight. В 99% случаев для бизнес-задач этого достаточно.