На каких языках написаны 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 ответов
- 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. Некоторые детали в сборке. (источник)
На каких языках программирования написаны операционные системы Windows, Mac OS и Linux?
Ядра в основном на C и языке ассемблера. Остальное (в особенности графические интерфейсы) на C++ (Linux, Windows) или Objective-C (Mac OS). Ну и оставшиеся крохи на чем удобнее программисту: Python, Perl, Java, Bash, Lisp, Haskell и т.д.
Купил ноутбук с ОС Linux. Вот теперь вопрос: что мне делать? Это точно ОС Linux или может без ОС? Прошу помочь разобраться. тех кто шарит.
Вот и у меня такая же фигня как на фото! Что с ним делать? Есть флешка с win 10, захожу в bios по f2, но флешку он не видит. Помогите.
В чем минусы перехода на Линукс для обычного пользователя Windows?
Сейчас уже выпускают такие дистрибутивы линукс, которые не требуется настраивать для дальнейшей работы, то есть установил и пользуешься как ни в чем не бывало. Единственным минусом может быть то, что мало игр можно запустить на линукс (а если и можно, то с какими-нибудь ухищрениями), или какой-нибудь специализированный менее функциональный софт по типу autocad и пр.). В целом же, если рассматривать с точки зрения обычного пользования, то одни плюсы.
3 2 · Хороший ответ
Вопрос про программирование. Я никогда не изучал языки программирования. Хочу начать, но не знаю с какого. С чего бы начать?
Pascal — точно нет. Сам язык считается очень хорошим для обучения, но увы, уже лет 20 как мёртв. Базовые концепции программирования вы на нём освоите, а вот все знания по синтаксису потом придётся выкидывать на помойку и учить заново.
По той же причине не стоит начинать изучение с Basic и ему подобных.
Есть семейства языков со своим «уникальным» синтаксисом, типа Pyton, Lisp и т.д., но если нет твёрдой уверенности, что дальше будете работать именно с ними, то тоже не советую. На начальном этапе цена переучивания синтаксиса очень высокая.
В общем, я бы рекомендовал начать с С-подобных языков. Из основных тут, собственно C, C++, C#, Java, JavaScript и PHP. Есть ещё ряд других, но они не на столько распространены.
JavaScript — отметаем сразу. Он делался «на коленке» и содержит в себе множество нелогичных конструкций с которыми приходится мириться современным разработчикам. Плюс это язык с так называемой «динамической» типизацией. Как язык для изучения основ использовать его точно не стоит.
Также, по причине «динамической» типизации, отметаем PHP.
Чистый C. я бы поспорил. С одной стороны, в начале будет тяжело из-за постоянных ошибок с утечками памяти и неправильной адресацией, но с другой, если освоите это, то дальше будет на порядок проще с пониманием нового.
С++, который ещё называют «C с классами» — то же самое, но добавляются концепции объектно ориентированного программирования. С точки зрения обучения основам принципиальной разницы нет.
Остаются C# и Java. Они «одноклассники», созданные прямыми конкурентами для решения бизнес-задач. Java больше распространён, у C# чуть более понятный и логичный синтаксис.
Дальше имеет смысл отталкиваться от задач. Если есть желание заняться, например, написанием игр, то всё-таки стоит начать с C/C++ и сразу развивать в себе навыки контроля памяти и прочих специфичных для C/C++ нюансов. Если же больше привлекает решение бизнес-задач, то смотрите, какие свзанные с этим конторы есть в вашем городе и целенаправленно затачивайте свои знания под это. Если у вас в городе, допустим, никто C# не практикует, то и изучать его смысла особо нет.
Чем ядро macOS отличается от ядра Linux
Многие полагают, что macOS основана на ядре Linux. На самом деле две системы значительно различаются и своей историей и своими особенностями. Сегодня я рассмотрю эти отличия, хотя и сходство, конечно же, тоже имеется.
Широко известно, что Android, самая популярная операционная система для умных телефонов и планшетных компьютеров, основана на Линуксе. И зачастую это представление переносится и на те системы, которые управляют работой устройств, предлагаемых компанией Apple. И не только ее компьютеров, но также iPhone и iPad.
Коммерческий проект
В далеком 1985 году Стив Джобс вынужден был покинуть Apple из-за разногласий с Джоном Скалли, который тогда был главой компании. Легендарным компьютерным гением была основана новая компания — NeXT. Для экономии времени при создании новой ОС ею использовалось ядро Mach от Университета Карнеги-Меллона и часть кода BSD. Итогом этого труда стала система NeXTSTEP.
Как известно, NeXT так никогда и не удалось достичь финансового успеха. Тем временем, Apple неоднократно пыталась обновить свою ОС. В числе ее попыток было даже партнерство с IBM.
В 1997 году Apple приобрела новую компанию Стива Джобса. Он вернулся в основанную им совместно со Стивом Возняком компанию и принес с собой NeXTSTEP, которая со временем и легла в основу macOS и iOS.
Студенческая разработка
Линукс изначально была некоммерческим проектом. Ее ядро было разработано финским студентом Линусом Торвальдсом. Его код был опубликован в Usenet в августе 1991 года и студенту начали поступать предложения по использованию кода. В 1992 году у Линукса появилась поддержка графического интерфейса.
Не Юникс
Ядро macOS называется XNU и расшифровывается как «X — не Unix». Оно является гибридным ядром, в котором части ядра Mach сочетается с FreeBSD и C++ API, используемым для написания драйверов. Фрагменты Mach отвечают за выполнение задач низкого уровня, в числе которых — многозадачность, защищенная память, управление виртуальной памятью и поддержка отладки ядра.
Таким образом, даже в самой максимально упрощенной формулировке, macOS правильнее считать системой, основанной на BSD, а не на Линуксе.
Какая из систем старше
Если macOS включает в себя микроядро Mach и монолитное ядро BSD, то Линукс основана исключительно на монолитном ядре. Оно отвечает за управление центральным процессором, памятью, взаимодействием между процессорами, драйвера устройств, файловую систему и взаимодействие с сервером.
Возможно многие из вас удивятся, но ядро XNU, на котором основана система Apple, по сути является более «древним», чем Линукс. Ведь оно базируется на двух намного более старых базах кода. Линукс новее и была написана «с нуля». Она находит себе в применение в самых разнообразных устройствах, а не только в девайсах, выпускаемых одной компанией.
Таким образом, в корне неправильным оказывается и другое распространенное представление, согласно которому Mac и iPhone прочно ассоциируются в сознании пользователей с чем-то очень современным и молодежным, а Линукс — с системой для пожилых программистов, которые еще помнят эпоху гигантских вычислительных машин.
Решающая роль экранной картинки
Другое дело, что являясь коммерческим проектом, macOS развивается лидером технологической индустрии. Она постоянно совершенствуется и, что самое главное для многих пользователей, становится более привлекательным ее графический интерфейс. Пользователь не работает напрямую с ядром, поэтому для многих в понятие «операционная система» входит прежде всего ее «графика».
Впрочем, современные Линуксы также весьма привлекательны, но, возможно, им не хватает того стиля и гармонии, которые годами шлифовались лучшими специалистами. «Линуксовых» систем огромное множество и они значительно различаются между собой и дизайном и функционалом, что также не способствует их привлекательности для обычного пользователя, который предпочел бы, чтобы все на компьютере из года в год выполнялось так, как он привык.
Какую операционную систему предпочитаете вы и почему именно она нравится вам больше альтернативных вариантов?