singlepost

А на чем написан Windows? << На главную или назад  

прост оч много разных мнений…хотелось бы узнать от тех кто в этом разбирается…меня интересует основной язык на котором написаны винда и ядро…а по мелочи итак понятно что использовалась куча разных языков…
большинство программистов склоняется к мысли что винда написана на С, а вот по поводу ядра ходят споры…в основном выбирают между С и ASM…

62 ответов в теме “А на чем написан Windows?”

  1. 62
    Rob Salekhov ответил:

    а я в футбол играю и програмир. не занимаюсь)

  2. 61
    Борис Глебов ответил:

    "Код ядра написан в основном на Си, а части, дающие наибольшую нагрузку на процессор, на языке Ассемблере." (с)//khpi-iip.mipk.kharkiv.edu/library/extent/os/o…

  3. 60
    Жека Кирпичев ответил:

    Я знаю, я хотел услышать это от него :)

  4. 59
    Леонид Максимов ответил:

    они немного перепутали. на sing# в значительной степени написана singularity, которая виндой вовсе не является

    //en.wikipedia.org/wiki/Singularity_(operating_...

  5. 58
    Жека Кирпичев ответил:

    Андрей, какая версия винды написана на SING#? В каком году появилась эта версия винды? В каком году появился SING#?

  6. 57
    Андрей Подкорытов ответил:

    НАРОД ХВАТИТ ОШИБАТЬСЯ! Ядро, дрова и dll-лки написаны на асме и плюсах, а остальное на SING#!!!!

  7. 56
    Deleted Deleted ответил:

    Ну это конечно очень круто – поматюгаться, ну ты бы хоть поскромнее, без адреса, что-ли… некрасиво.
    А вот если дизассемблировать, там чё будет написано что-то типа "этот код был сто пудово написан на ассемблере и никакого си тут не было" ??? Или как определили? Любую прогу дизассемблировать если – такая же хрень получится и ни о чём это не говорит, по моему так?
    Линуха ядро на си написано, а виндовс нельзя на си написать(?), или ты знаешь наверняка?

  8. 55
    Константин Сергеевич ответил:

    Вы ибанулись, ядро+длл для апи на асме, интерфейс и модули – на сях, используя апи, уже написаный на асме. Из этого и существует много скрытых, не док-ных способностей этой оси, т.к. не все апи описаны в манах, дизасемблите – и всё увидите.

  9. 54
    Жека Кирпичев ответил:

    Пиздец, Андрей, ну и аргументация у тебя :) Что значит "нет смысла писать на С т.к. можно на асме"? Ну, на машинном коде тоже можно! Нет смысла писать веб-странички на PHP, если можно написать самому сервер с нуля на машинном коде! Поэтому сайт микрософта процентов на 70 стопудово написан на машинном коде!

    Ты вообще представляешь себе программу со сколько-нибудь сложной архитектурой, написанную на асме?

  10. 53
    Евгений Кирсанов ответил:

    Ну в основном как я слышал что там: асемблер, С++ и еще какой то, точно не впомню, акцес вроде или что то на подобии

  11. 52
    Deleted Deleted ответил:

    Мля. Очень трудно себе представить кучу прогеров (даже такого уровня как у них там работают), которые будут писать такую прогу как Word, Excel … на ассемблере, они помрут там на солнцепёке!
    В очень большой куче книжек натыкался на строки типа "C++ … Windows, Linux… " и очень этому верю. Значит Windows на C, а Word на асме? =))
    Чушь. ))

  12. 51
    Всёхорошовсёпростосупер Япростоумер ответил:

    всё что токо возможно написано на асме, это сто пудово, оболочка не знаю точно, а вот все прикладные программы тоже где возможно поделаны вставки на асме, в ворде2003 тож процентов 70 на асме, так шо асм рулит, на самом с практически ничего нет, как нет смысла на нем писать если можна тоже закодить на асме=)

  13. 50
    Константин Смотритель ответил:

    Ядро всех Windows написано на Си (как 9x так и NT), 90% дров тоже (Майкрософтовских).

    Остальное – как повезёт (С++, Java, C#, VBA, …)

  14. 49
    Леонид Максимов ответил:

    для для этих задач, как правило, хватает ассемблерных вставок до полусотни байт. в последний раз речь шла о написании прикладных программ.

  15. 48
    Жека Кирпичев ответил:

    Вообще я вспомнил – у меня есть один знакомый, который вроде бы писал оптимизированные вычисления на асме – перемножение больших матриц, какая-то там обработка изображений и т.п. Так что пишут, пишут.

  16. 47
    Леонид Максимов ответил:

    100 kb game гуглу

  17. 46
    Леонид Максимов ответил:

    сомневаюсь в том, что кто-то пишет прикладные программы на ассемблере ради денег. я, правда, знаю одного человека, ассемблер активно в работе использующего. но он участвует в разработке оптимизирующего компилятора, ему без этого никак.

    ЗЫ: не так давно (несколько лет назад) появился 3д-шутер, написанный на ассемблере и занимающий 100кб. до этого та же группа выпускала 64кб-демки.

  18. 45
    Deleted Deleted ответил:

    :) Я тоже видел 3D-демки на ассемблере.
    Офигел тогда от размера файла и от графики вообще (давно было).
    А можно этот шутер посмотреть, где-нибудь скачать? :) Есть ссылка?

  19. 44
    Deleted Deleted ответил:

    Если тесно работать с аппараткой – то тут без него, извините, бывает никак ;)

    А кто-нибудь сейчас вообще пишет прикладные программы на ассемблере (MASM, TASM и пр.)? Мне правда интересно (без шуток), много таких людей?
    И этот труд окупается? (понимаю, мимо темы, но не удержался:)

  20. 43
    Леонид Максимов ответил:

    Виталий, прочел. ничего интересного в статье нет – простейшая прямая оптимизация пары десятков байт машинного кода. на нетривиальную оптимизацию куска на несколько сотен байт уйдет куда больше времени и сил.

    2Жека Кирпичев:
    владение ассемблером и знание тонкостей архитектуры, тем не менее, очень полезно при написании собственно оптимизирующих компиляторов.

  21. 42
    Жека Кирпичев ответил:

    Согласен, да и не только при нем – ассемблер вообще полезно знать в любом случае. Я и не говорю, что его не надо знать – безусловно, надо. Но преимущества обычно есть именно во владении асмом, а не в его использовании :)

  22. 41
    Жека Кирпичев ответил:

    У асма есть преимущество только в руках виртуоза, у которого слишком много свободного времени.

  23. 40
    Дветысячи Год ответил:

    ядро на асембе, проги на си++

  24. 39
    Deleted Deleted ответил:

    Прочёл. Сделал вывод – лучше C.
    Но автор статьи и не отрицает того факта что у ассемблера всегда имеется преимущество (не в скорости написания программы, конечно :) )

  25. 38
    Виталий Слободин ответил:

    Я сам тоже не очень представляю оптимизацию асссемблера – Сергей Богданов оставил ссылку на оч полезную статью =) советую прочесть

  26. 37
    Леонид Максимов ответил:

    Виталий, а вы представляете, как выглядят оптимизации на ассемблере? мне, например, непонятно выражение "байты оптимизации ускоряют работу".

    ЗЫ: а в качестве ядра, работающего на аппаратном уровне, я представляю себе просто кусок кремния + оксида кремния + множество проводничков.

  27. 36
    Виталий Слободин ответил:

    Я почти согласен с Леонид maxleo Максимов =)
    Кроме одного момента – вот как раз таки эти байты оптимизации и ускоряют работу, хоть и на единицы, но все же быстрее, чем С
    Тем более ядро на аппаратном уровне должно работать оч быстро

    Вообщем развели мы тут холивар – что быстрее…
    Вопрос то был совсем другой в начале темы
    Поэтому товарищи программисты, давайте закругляться =))
    А то этот "спор" может длиться вечно

  28. 35
    Леонид Максимов ответил:

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

    только вот я не знаю таких… даже слово подобрать сложно… "математиков", которым не жалко потратить неделю-другую на оптимизацию нескольких сотен байт машинного кода для получения выигрыша в единицы процентов. в ядре/драйверах такое применение изощренных математиков не целесообразно.

    а вот простое использование ассемблера (когда программа на ассемблере пишется почти сразу из головы) уступает по производительности результатам работы оптимизирующего компилятора.

  29. 34
    Deleted Deleted ответил:

    Да ну нафиг )) Ниже ассемблера только цифры и микросхемы. Тут от программиста зависит насколько быстро будет работать его программа. Они либо работают с одинаковой скоростью, либо код написанный на ассемблере работает быстрее.
    А иногда без асма просто не обойтись и тут высокоуровневый язык вообще бесполезен становится.

  30. 33
    Сергей Богданов ответил:

    //www.insidepro.com/kk/145/145r.shtml – Крис Касперски "Война миров: ассемблер против С"

  31. 32
    Кира Умняшкаа ответил:

    да На Сишке уже доказано

  32. 31
    Виталий Слободин ответил:

    Жека, было бы интересно =) но в асме я не силен, да и в С.
    Я больше по С++ и С# =)
    Но достаточно погуглить и найдешь массу ссылок, где говорится о том, что асм быстрее С =) но вот целые приложения на асме писать не выгодно, вот и использеутся С, Но лучше использовать С вместе с ассемблером

  33. 30
    Тимур Багаутдинов ответил:

    >> Так как код написанный на асме быстрее исполняется, чем на С.

    Да лана!!!

  34. 29
    Виталий Слободин ответил:

    Не веришь?!? =) проверь

  35. 28
    Жека Кирпичев ответил:

    О! Виталий, а давай – самую простую задачу: копирование массива. Скажем, 10млн 4байтовых слов перегнать 100 раз туда-обратно. Сможешь написать на асме так, чтобы сработало быстрее чем прога на си с полной оптимизацией? Только чур сначала писать на асме, а потом уже смотреть в сгенерированный код из си!

  36. 27
    Саня Кравченко ответил:

    to Виталий Инквизитор Слободин
    Ну на юниксах я знаю, на чем дрова пишутся, а вод винда – хегознает =)

  37. 26
    Александр Летов ответил:

    Зачем ещё что-то брать? Вам уже про все версии рассказали.

    Современные версии Виндовс начиная с 2000 строятся на основе NT, но всё больше и больше "загрязняют" ядро, перетаскивая в него службы из пользовательского режима по соображениям быстродействия в ущерб безопасности и устойчивости…

  38. 25
    Ирина Ким ответил:

    так…терь как и во всех форумах будем спорить чисто о том на чем написано ядро)))
    давайте чтоб особо не париться возьмем ХР и висту…так проще…

  39. 24
    Виталий Слободин ответил:

    Я не имел ввиду, что все ядро написано на асме, а только аппаратный уровень. Так как код написанный на асме быстрее исполняется, чем на С.
    Согласен смешивать линейки NT и 9x вообще нельзя.

  40. 23
    Александр Летов ответил:

    Ядро Виндовс на Асме? Это какой, простите, Виндовс?

    Как-то странновато видеть с какой лёгкостью тут смешивают Виндовс линейки 3.x, 9x и NT. У них принципиально разные архитектуры.

    Ядро NT, как и все системы, работающие в режиме ядра и в пользовательском режиме, написано на Си (возможно, и C++).

    Ассемблер используется только в HAL – Hardware Abstraction Layer. В том и смысл.

  41. 22
    Виталий Слободин ответил:

    Обратили. Насчет паскаля не знаю. Возможно.
    Но начиная с версии 3.1 (я могу и ошибаться) все писалось на С, оболочка на С++, а ядро всегда пишется на асме

  42. 21
    Алексей Федоров ответил:

    Первая версия была написана на паскале, а потом все переписано на С. В документации, если вы обратили внимание, много паскаль нотации.

  43. 20
    Виталий Слободин ответил:

    Практически да. Но, если брать в основном, то… уже писал выше =)))

  44. 19
    Ирина Ким ответил:

    ну блин, там практически все языки использутся…

  45. 18
    Виталий Слободин ответил:

    еще и С++ ;-) тоже как никак используется!

  46. 17
    Ирина Ким ответил:

    ну собсно ясно=)) С и ASM

  47. 16
    Виталий Слободин ответил:

    Ядро ОС написано на ассемблере, так как нужна скорость, и С.
    Все остальное:
    Оболочка и так далее на С++
    Прикладные программы на других различных языках
    =))

  48. 15
    Виталий Слободин ответил:

    вообщем =) мы ответили на вопрос!

  49. 14
    Денис Шабалін ответил:

    Windows 1-7 : Asm/C/C++

    P.S. Singularity != Windows 8. Это чисто экспериментальная ОС, которая пока не ориентирована на какое-либо коммерческое применение. Написана на: Asm/C – микроядро, Sing# – все остальное.

  50. 13
    Жека Кирпичев ответил:

    "Утекшие" исходники Windows 2000 в основном состоят из си, с++ и асма. Асм только для вещей, которые на си не написать в принципе – т.е. например переключение контекстов для разных процессоров.

  51. 12
    Виталий Слободин ответил:

    to Александр Dantrag Кравченко
    ну как линуксоид ты должен знать, что дрова написаны или на С или на С++, также иногда с применением асма =))
    ———————————————————————————
    винда 3.1 написана на С. А гуевина пишется на С++

  52. 11
    Саня Кравченко ответил:

    С, basic использовался только в винде 3.1, потом гуевина переписалась на С, вставки на асме нужны для виндовой реализации нектарых компонент ядра. Насчет дров – не знаю, я вопще линуксоид))

  53. 10
    Василий Воробьев ответил:

    To: Рустем Rusteam Закиев

    Бугага!!!
    Ну ты чувак и сказанул!!! :) ))) Ржунимагу патсталом.

    Может тогда винда не на basic, а ЛОГО написана?
    Бугага:)))))

  54. 9
    Андрій Пушкар ответил:

    basic рулить

  55. 8
    Dmitriy Usanov ответил:

    Винда написана на разных языках
    Но воснавном на С

  56. 7
    Рустем Закиев ответил:

    Помоему как я слышал от препода нашего вроде на basic…Но точно не уверен но dos точно на нем написан=)

  57. 6
    Дмитрий Лаптев ответил:

    Singularity (Windows 8) – на sing # )))

  58. 5
    Виталий Слободин ответил:

    Ядро написано на С со вставками на ассемблере…
    Оболочка и прикладные проги на С++. Дрова можно писать как на С так и на С++.
    Разница в переносе потом на другую архитектуру.
    Дрова написанные на С легче адаптировать под другие архитектуры

  59. 4
    Ирина Ким ответил:

    А вот я читала что:
    Несмотря на то, что компоненты Windows режима ядра построены на принципах ООП, большая часть системного кода написано на C в целях переносимости и из-за широкой распространенности средств разработки на C. Ассемблер использовали лишь для решения специфических задач, трудно реализуемых на C.
    Драйверы, как правило, пишутся на C, а иногда на C++

  60. 3
    Сергей Ширяк ответил:

    Я слышал, что на С++

  61. 2
    Андрій Пушкар ответил:

    походу асемблер
    а лінукс під С

  62. 1
    Андрей Денисов ответил:

    С++ компоненты, ядро ASM ибо аппаратка

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.