Комментарии 393
Скорее всего разработчики ReactOS не будет ничего оттуда заимствовать, боюсь даже смотреть постремаются и будут изобретать велосипед лишь бы не нарушать лицензионную чистоту.
Ну так правильно. Какой смысл в ReactOS, если она не будет лицензионно чистой? Те, кому плевать на лицензии, всегда могут поставить крякнутую винду. Это тривиально. А вот легальная, свободная альтернатива — это уже намного сложнее, и интереснее.

смысла в РеактОС нет никакого


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


так было в 80-х с кучей эелектроники с запада, так было и с игровыми приставками в 90-х-2000-х когда они официально не поставлялись в СНГ и их просто продавали уже взломанными


а пока есть официальная поддержка(сейчас) смысла в своем костыле вообще никакого, если Микрософт уйдет из СНГ тогда все вернуться на взломанную винду(и прочий софт) и ничего не изменится

На предприятиях куча специфического софта, написанного под ранние версии винды. Переписывать его нет никакого смысла — «работает — не трогай» (да и недешевое/небыстрое это занятие). А вот запасы старого железа не безграничны. Можно конечно возразить типа «виртуалки и все такое» — но нет, виртуалки плохо дружат с производственным оборудованием. Так что ХР-подобная ОС, которая дружит с новым железом нужна.

Поддержка embedded XP есть до сих пор, если что, но не для всех, конечно.
Ну и она в тыкву не превратится и не превратилась, когда срок поддержки закончится.
Если софт настолько немодифицируем — оно в интернет вряд-ли смотрит и никто не органичивает использование легальной ОС.

Ну и она в тыкву не превратится и не превратилась, когда срок поддержки закончится.

Она отказывается "дружить" с новым компьютерным железом, драйвера на которое есть только под десятку. Даже семерку порой уже не водрузить на новый компьютер.
Придет время, и все совместимое компьютерное железо превратится в тыкву по причине банального физического старения, а останется в доступе только новое. А вот железка стоимостью, на порядки превышающей стоимость самого крутого современного компьютера, сделанная в отличие от этих самых компьютеров на века, может продолжать жить, и ею надо будет как-то управлять.

Каким способом эта железка подключается к компьютеру?
А то у нас есть одна такая железка, работающая через RS-232. Компьютер, с которым она работала изначально, давно на помойке, а она продолжает работать через USB-адаптер под WinXP в виртуалке.

Через последовательный порт. И все бы хорошо, оно даже "правильного" последовательного порта не требует, довольствуется USB переходником, но управляющая программа, зараза такая, напрочь отказывается работать в виртуалке (а еще при запущенном отладчике и при установке на ту же машину некоторых средств разработки), громко вопя про попытку бедную программу взломать (точнее ругается на запуск под отладчиком, что считается ею недопустимым). А еще она почему-то "не любит" винды версии выше ХР.

Каким способом эта железка подключается к компьютеру?
А в чём разница, через какое соединение железка работает с компом, если на компе управляющий софт и без него оная железка лишь железка?
Ну и да, когда тебе новый лабораторный прибор поставляют с современным системным блоком, на котором крутится более-менее свежая винда, гипервизор и в нём вин 2000 то ты понимаешь насколько IT далёк от реального мира зачастую…
А в чём разница, через какое соединение железка работает с компом, если на компе управляющий софт и без него оная железка лишь железка?

Разница в том, удастся запустить этот управляющий софт под VM, или нет.
Если, например, к железке для подключения к компьютеру прилагается плата ISA, то VM не поможет.
то VM не поможет

Зато поможет pci-isa bridge.
Собственно, ISA, кажется, до сих пор есть в компьютерах (Intel) в виде LPC. Эта штука делает то же самое, что PCI-LPC bridge, и как pci-устройство, может быть проброшена в VM. А в свою очередь, для ВМ можно эмулировать соответствующий процессор.


Разумеется, без реального устройства сложно говорить наверняка, но как минимум, видны обходные пути.
И даже если мост с платой не заработает, можно подключить плату к плисине, умеющей со стороны хоста в нормальный pci-e.


Am0ralist, в общем, как раз IT'шник в лице одной пушистой морды, видит пути решения.

Слушайте, у нас на производстве меняли системник при итальянском чпу. Просто через два компорта работающий.
Инженер полдня ковырялся, не заводится и всё. Потом сказал в духе, что между инженерами сей компании ходя слухи, что с компами с чипами риалтека не работают чпу. Взяли первый попавшийся комп у технологов без риалтека, чпу взлетел с полпинка.
Под медаппарат от сименса было немного не так, но там тоже замена матери на другое поколение процов/чипов привела к тому, что несколько дней их инженеры долбились, пытаясь свой софт на этом франкеншетйне завести, а в итоге вроде как привезли такую же мать из-за границы. Хотя там, как я понял, не зависит начинка прибора от железа блока. В идеале. А в реале…

Внимание, вопрос: вы виртуалки под каждую такую магию шаманить будете? А верифицировать результат того, что работа в виртуалке полностью равна работе на голом железе для подобных аппаратов как будете?
компами с чипами риалтека не работают чпу

Не зная, какой именно чип имеется ввиду (не звук/сеть же?), сложно гадать. Вполне возможно была кривая реализация опорной частоты, в результате чего на используемой скорости происходила рассинхронизация.
Причем, не факт, что проблема была не на стороне устройства.


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

А вот за закупку и производство таких чудес — вообще надо банкротить принудительно, чтоб неповадно было.


вы виртуалки под каждую такую магию шаманить будете?

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

Не зная, какой именно чип имеется ввиду (не звук/сеть же?),
Именно подобный.
Причем, не факт, что проблема была не на стороне устройства.
Вполне может быть. Только ЧПУ стоил 6 лямов + лизинг, а системник 30к.
А вот за закупку и производство таких чудес —
Мать — серверный асус. Просто уже старая и в РФ отсутствующая. Прибор по сути из двух независимых вещей: платформа и интегрированный комп. В идеале. На практике… Может какой инженер самого сименса по конкретной серии их приборов смог бы сделать и быстро, но работали местные представители.
вообще надо банкротить принудительно, чтоб неповадно было.
вы сейчас про сименс или про коммерческую лабораторию, закупающую как бы известных и качественных по мировым стандартам производителей медоборудования?
А это обязательно, особенно, если проблема решается заменой мелкого устройства-посредника на более совместимый вариант?
на совместимый с чем, извините?
единственный вариант, когда от компа ничего не зависит, когда управляющая приблуда встроена в прибор (в этом случае если она сдохнет — вообще ничего не замените без ремкомплекта).
вот только мало кто пишет свою ось для этого и разрабатывает встроенное железо сам, либо пытается под производство в условных тысячу приборов протестировать совместимость со всем многообразием ПК в мире.
Обычно используют либо брендованные (HP, например, что в чпу, что в разных медприборах встречал) железки, ну или конкретное, хоть и всем доступное, железо (как выше серверные мамки от асус) с чем и тестят, попутно где-то нечаянно завязавшись на него жестко из-за особенностей реализации.

До инженерного подхода в повсеместной разработке нам ещё далеко
Именно подобный

Звучит как плохопрожареная дичь, атакующая в филей…
Скорее всего, случайная корреляция. Наиболее частая причина сбоев последовательного порта — это разные опорные частоты. Для МК даже приходилось специально искать неровные кварцы, чтобы стабильная передача была не на одной-двух скоростях из возможных.
В старых компах (PCI) uart'ы могли тактироваться от системного источника с n×33,3(3), в компах поновее (PCI-e) — 100МГц. Ни то, ни другое к стандартной сетке толком не приводится.
Потому если порты не снабжены своим собственным кварцем и генератором, то стабильность работы, сами понимаете, оставляет желать лучшего.


На практике…

Увы.


вы сейчас про сименс или про коммерческую лабораторию

Про производителей и потребителей тивоизации. Будь они хоть карманными фирмами лично президента.


До инженерного подхода в повсеместной разработке нам ещё далеко…

Всеми лапами за. И хвостом.

Это не тивоизация — это требование FDA и других национальных регуляторов о сертификации программно-аппаратной платформы. В Сименсе просто не заморачиваются проверками совместимости с рандомным железом — поскольку это низачем им не надо. В том числе и в плане ответственности — если что-то глюкнет с новой платой и пациент как-то пострадает.

Промстандарты, как бы, отлично документированы. И тот же Сименс, покупая консьюмерское железо вместо промкомпа должен вести списки совместимости. Если инженеры вышли за пределы списков самовольно — это их косяк, конечно.
Если соблюдать стандарты и подбирать совместимое железо (а без этого не получится серийного производства) то ломаться на ровном месте будет нечему, и никакая процедура получения бумажек тут не может помешать, потому что работающего железа они не касается никак.


А если и так сойдет, и вообще клиент же тогда к нам опять обратится — то получаем что имеем.

Сименс не покупает «консьюмерское железо». Сименс заключает договора с ведущими OEM-производителями (Dell, например) и поставляет какую-то одну модель компьютера со своими системами (например, томографами). За какое-то время до того, как эта модель планируется к end-of-life — тот же Dell предлагает замену, она всесторонне проверяется и весь комплекс по новой сертифицируется FDA и другими регуляторами.
Разумеется, количество геморроя сильно зависит от того, чем управляет этот компьютер — планированием татуировок на фото (Class I) или NFC-программатором кардиостимулятора (Сlass III).

Ну, как вам сказать. Комп в ATX, даже если в нем стоит вендорлокнутая мать, не становится промышленым.
Даже если сертификатов хватит обклеить комнату вместо обоев.


И именно такие игры и становятся причиной того, что где-то как-то вроде — а нифига, которые без бубнов не решаются.

По поводу «отличного документирования промстандартов» — любой уважающий себя стандарт (да тот же HTTP) имеет столько вариаций, версий и подверсий, что ни одна имплементация не пройдет тесты на 100%. Это я вам говорю из опыта работы в «доинтернетном» телекоме, где совместимостью еще заморачивались — и с фирмами уровня Nokia и Ericsson.

HTTP — это часть монстра под названием web, которого лучше просто так не призывать… На этой неделе, вроде уже был про него топик.
Хотя отдельные части могут быть и довольно просты.

А причём тут «стандартная сетка», которую довольно несложно получить синтезатором частоты?

То есть, вы предлагаете на удешевленную плату (Realtek вместо Intel), из которой для удешевления выкинули кварц и генератор, поставить отдельным корпусом синтезатор частоты? )
Этот может и ошибаться, но оно так не должно работать.

Зачем «отдельный корпус»? где-то в недрах рилтека может валяться IP ядро синтезатора частот. Персональные кварц/генератор не так и нужны, когда на плате есть разводка тактовой (НЯП мосты имеют такие выходы в PCI, а для синтезатора может хватить и самосинхронизации на имеющихся сигналах даже)
Синтезатор частот при необходимости дробного деления частоты «несколько» не даёт точности.
Вы забыли про погрешность.

Синтезатор может быть выполнен на простом делителе. ФАПЧ, кажется, приказала долго жить с аналоговыми умножителями частоты?
И если используется системный генератор, то все упирается в его реальную частоту. А RS 232/485, емнип, автосогласования не умеет.

Знаете, общался я с «какими инженерами Самого Сименса». Либо они считают русских инженеров идиотами, либо моя инженерная квалификация выше. Общались по английски.
Поэтому я и написал «может». Ибо опыт общения с программистами софта для ЧПУ от итальянцев тоже был тот ещё…
С итальянцами я тоже общался. У заказчика была проблема с линией по выпечке кондитерских изделий.
Впечатление хуже, чем от инженеров Сименса.
Весьма неспешные люди и долго фиксящие проблемы, как по мне.
к слову об итальянской мебельной фунитуре
А ещё б им хорошо про стандартизацию услышать было бы. Когда два парных алюмниевых профиля у одного из которых тощина на 0,1 мм официально меньше, чем у другого, то кроме как вопросов «нафига так-то» не возникает.

Впечатление хуже, чем от инженеров Сименса.
Макаронники...
Но при этом одна из ведущих стран в области станкостроения. Удивительно…
Когда два парных алюмниевых профиля у одного из которых тощина на 0,1 мм официально меньше, чем у другого, то кроме как вопросов «нафига так-то» не возникает.

Левый и правый, чтобы не перепутать?

> медаппарат от сименса
> замена матери на другое поколение
Вообще-то, в медтехнике запрещено менять железо на что-то другое.
Хабр тупит и не всегда получается отвечать. Вот, что отвечал в личке:
Вы же не думаете, что в случае поломки детали прибора — его выкидывают? Да нет, приходят ремонтники авторизованные, приносят ремкомплекты. Так как серия приборов одна, то одинаковой «механической» частью зачастую рулят системники разных поколений. Одна серия приборов у нас всегда работала с системниками HP на ещё NT. Вот, не так давно новый такой же поставили уже с XP embeded.Прогресс.
Это не говоря о том, что часть анализаторов вообще к любому компу может быть подключена, независимо от (и поставляются без компьютера), максимум пропишет производитель, что под софт требуется не выше win7…
Разумеется, нет. Но если у вас был прибор условно с Dell 100 — то вам будут этот Dell 100 чинить, пока Dell производит детали. А если окажется что Dell их перестал производить — скорее всего и гарантия на ваш прибор кончилась. Соответственно, вам не приколхозят к нему Dell 105 — а скажут купить новый, хотя он вполне может ничем от старого не отличаться.
Хм, смотрите.
Мать+проц — в данном случае это внутренние запчасти прибора, в случае если сломался внутренний блок прибора его могут заменить на такой же или аналогичный из сертифицированных.
скорее всего и гарантия на ваш прибор кончилась
вспоминая гарантию IBM на сервер конца 90-х.... Гарантия — понятие растяжимое в бизнес продуктах.
Бизнес- и медицинские продукты — это несколько разные области. Медицина — это т.н. «регулируемая отрасль», наряду с телекомом и военкой.
Понятно, что очень многое зависит от страны клиента и принятого там уровня пофигизма. Когда я работал в телекоме — нам нужно было установить апдейт нашей системы у одного крупного провайдера. Проблема была в подписях, которые нужно было собрать для официального изменения версии. И тогда один из их (!) инженеров предложил «гениальное» решение — «вы изменения внесите, а версию не меняйте». И так — 12 раз подряд, пока не заработало.
Смысла в Linux нет никакого, всегда быстрее взять взломанный Unix чем прилить свой кривой. /sarcasm
Смысл в ReactOS еще и в том, что она открытая и можно тем или иным способом проверить что там нет бэкдоров.

Винду тоже в теории можно проверить на наличие бекдоров. У них есть программы, по которым можно получить доступ к исходникам. Это, конечно, не отвечает на вопрос — а действительно ли конкретные бинарно были скомпилированы именно из этих исходников. Но это же справедливо и до реактос. А сами Вы компилировать ничего не будете.


А ещё… ещё мелкософт pdb файлы с отладочной информацией давал. Так что, да, они — корпорация зла, но не абсолютного ))))

>pdb файлы с отладочной информацией давал
Не на все. Например, atmfd.dll. В котором столько уязвимостей было, что пришлось его выпилить.
А сами Вы компилировать ничего не будете.

Можно подумать это тривиальный процесс для исходников такого уровня
Когда гос органы делают валидацию кода Windows они запускают билд и потом сравнивают полученные файлы с тем что есть на их тестовом компьютере.

В это очень мало верится. Потому что на окончательный бинарный код влияют библиотеки, магические константы, и флаги компиляции (всякие оптимизации и все такое). Да и теория повторяемых (бинарно!!!) сборок стала зарождаться совсем недавно.

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

Их тоже можно повторить, для этого требуют точные инструкции.


Да и теория повторяемых (бинарно!!!) сборок стала зарождаться совсем недавно.

Недавно — это когда? Рассказ от Сергея Кубушина, как софт для игровых автоматов проверяла соответствующая комиссия в США и требовала повторяемости результата, для чего им пришлось подпилить GCC и оторвать у него генерацию таймштампов — это 2000 или 2001. И им не нужна была какая-то "теория", им достаточно было нескольких простых действий. И это только тот случай, что мне лично знаком, а наверняка это делали и раньше.
Если вы про "теорию" имели в виду обеспечить повторяемость между разными компиляторами — по-моему, это сейчас нереально. А вот убрать явно мешающие элементы в виде таймштампов и укротить абсолютные пути (или предписать конкретные при сборке), убрать параллельную сборку — это вещи, которые грамотный программист ловит за пять минут спокойного раздумья.


Вот что интересно в этом плане в связи именно с Windows — насколько на результат сборки будут влиять принудительные апдейты 10ки...

У меня с GCC был случай, когда переименование локальной переменной приводило к изменению в генерируемом машкоде. Закопавшись в отладчик, удалось выяснить, что register allocator обрабатывает переменные по порядку, в котором они лежат в некой хеш-таблице, и переименование переменной поменяло порядок обхода.
Предполагаю, что влиять на генерируемый машкод могут и более тонкие факторы, типа абсолютного пути самого компилятора и стандартных заголовков, или например hostname.
Ну, для отладочной сборки я нашёл 4 изменённых байта для обычного исполняемого файла, так что не всё так плохо.
переименование локальной переменной

Это изменение кода. Всё законно, даже если парадоксально.


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

Вообще как раз где-то в начале 2000-х Linux мир озаботился проблемой проверки зависимости сборки пакетов от ряда факторов, включая порядок установки зависимостей (были плачи на это), корректности исполнения настроечных пакетов и т.п.; как результат, например, была порождена OBS. Этот подход, или его клоны для более странных дистрибутивов, сейчас основной, и подходы типа "пересобираем с нуля раз в сутки, а если что поменялось без объяснения — ищем причину" приняты, соответственно, сильно больше десяти лет. И влияние hostname и пути к компилятору исключено тоже очень давно. Фирма, где я работал 2008-2014, делала свой дистрибутив, и этот процесс я наблюдал в подробностях (работали как раз через OBS).


(Уточнение: если путь к компилятору означает путь к libgcc_s или аналогу — то разница, конечно, будет. В RedHat devtoolsets это пришлось специально отрабатывать, вместе с версией стандартной библиотеки C++.)


Да, подход OBS означает наличие сборочного контейнера (ещё в до-докеровские времена, это может быть и простой chroot). Но это доступно в Unix мире ещё с конца 80-х, и потому проблемы не составляет.

Думаю, достаточно варианта типа "взять 3 основных дистрибутива, собрать целевую версию GCC/Clang/etc. в них, этим промежуточным — собрать целевой компилятор на целевой среде и сравнить побайтно".
Да, может, 1e-20 вероятность получить Томпсона и будет… для этих целей — устроит.

Думаю, что для вставки серьезных бэкдоров, серьезные же организации используют небольшие «доработки» криптофункций, ГСЧ и т.п. — для поиска которых придется затратить немало времени и усилий.
У них был лет 7-8 большой скандал ибо подсмотрели. Не думаю что вновь вступят на эти грабли.
Посмотреть как устроено и скопировать это разные вещи. Вот не думаю, что они совсем не подсматривают:) Но официально конечно говорят что не подсматривают. А на практике наверняка понять многое можно только с дизассемблером и отладчиком.
Дизассемблирование законно и разрешено, и они это открыто используют, чтение исходных кодов это уже совсем другой вопрос.
Я говорю не о законе, а о реальности. Да, по закону чтение скорее всего запрещено, и поэтому говорить об этом нельзя, и никто никогда не скажет и будут всячески отрицать, чтобы соблюсти букву закона и избежать даже возможных зацепок для судебных исков. Но в реальности никогда не поверю, чтобы люди с Хакерским мышлением (а другие и не будут заниматься такими проектами) не посмотрели:)
Я говорю не о законе, а о реальности. Да, по закону чтение скорее всего запрещено, и поэтому говорить об этом нельзя,

Если чтение исходников запрещено значит они что-то скрывают, вполне возможно что-то плохое и/или незаконное
Дадите почитать содержимое вашего почтового ящика, дабы убедиться, что в вашей переписке не скрывается что-то плохое и/или незаконное?
Не дам! Это персональные данные и охраняются законом о тайне переписки.
А исходники — это коммерческая тайна, и охраняются ст. 183 УК РФ и аналогичными законами в других странах.

Напомните, какой закон нивелирует пункт EULA о том, что дизассемблирование запрещено?

Я забыл «подсмотрели» в кавычки заключить. Там были куски кода из утёкших исходников 2000 винды или какой там.
Не «куски кода из утёкших исходников», а «куски кода, совпавшие с утёкшими исходниками».
Они утверждали, что код с требуемой функциональностью можно написать только одним способом, так что совпадение было неминуемо.
Тогда они закрыли доступ к исходникам и около года вычищали. Там были факты непосредственного копирования.
Нет, таких фактов там не было. Был наброс, потом долгая нудная проверка. Ничего сомнительного не нашли.
Насколько я помню, сомнительного было много (из-за чего проверку и начали), но ничего несомненно скопированного в итоге не нашли.
Вот не думаю, что они совсем не подсматривают

Можно даже и подсматривать, но при этом подсматриваюший должен написать спецификацию (что и как делать), а кодер уже может по этой спецификации сделать свою реализацию. Если кодер не будет в контакте с подсматривающим, то это вполне законно, в том смысле что кодера никак не привлечь (если не нарушены другие вещи, типа патентов) — а вот подсматривающий может получить по ушам, если, к примеру, он под NDA.

Не подсмотрели, а были обвинены в том, что подсмотрели. Это отнюдь не одно и то же.
Есть же метод чистой комнаты, chinese wall technique. Один ковыряет код из архива, рассказывает другому, тот имплементирует. При этом второй сам код не читал и чист перед всеми.
можно еще придумать полиморфную белую комнату с элементами испорченного телефона :)
Собственно часть исходных кодов утекало и раньше, и они утверждают, что туда не смотрели. Как минимум прямого копипаста там точно нет, хотя с другой стороны, те части, которые до этого не утекали, реализованы хуже или не реализованы вообще, по сравнению с теми, у которых уже были утечки.
Материал, возможно, будет дополняться.


Как минимум стоит убрать ссылки пока их вместе со всем постом не убрало нло.
Не получится: habr не поддерживает magnet… Держите. magnet:?xt=urn:btih:3d8b16242b56a3aafb8da7b5fc83ef993ebcf35b&dn=Microsoft%20leaked%20source%20code%20archive_2020-09-24

Также убрал эту ссылку в статье, дабы НЛО не сердилось))
Ну в статье же сказано, что нужен только nt5src.rar. А в папке media там вообще про Билл Гейтса и чипирование в прививках.
Т.е. хакеры искали материалы о чипировании, а нашли исходники винды?
Нет, это отсебятина от автора, состоящего в Qanon. И оно там было еще в старой версии торрента.
Ага, представляю себе эту картину: так, что тут у нас… исходники винды… так… да где же чипирование? :D

в торренте прикол. там лежит архив windows_xp_source.rar (не тот, что в статье). а в текстовом файле пишут, что это исходники xp, а может и не исходники, потому что файл запаролен. :) как говорится, пилите шура...

А помимо этого файла есть что-то годное? Качаю, пока что нашел сорцы по native api с книги Небета (уже 20 лет как документированные). ( /misc/Windows 2000 Native API (source code)), и тот самый запароленный архив windows_xp_source.rar.
Еще какие-то видео есть, их не качал даже.
Этот файл это то, что описано в статье. windows_xp_source это другой файл, не имеет отношения к статье.
Понятие не имею. Он же зашифрован на открытие. Даже файлы не посмотришь.

Вообще уже была утечка кодов нт4 и w2k когда-то давно. Вот опять… можно попробовать найти все и проследить историю развития системы.

помню, в старом сливе win2000 я смотрел исходники notepad. меня удивило, что он был написан на native api, а не на winapi. посмотрите прикола ради на паинт, кто скачает, тож native?

Вы точно смотрели его исходники? Ознакомьтесь, что такое native api. Не поленился, посмотрел — там используется классический message loop с использованием GetMessage, TranslateMessage, DispatchMessage ((LPMSG)&msg) и вообще вся работа с окнами весьма стандартна.

посмотрел, точно, обычный winapi. это было лет 10 назад) видимо взгляд зацепился за префикс «Np» :)
Там люди потрошат его вовсю третий день. Нашли makefile под GNU make в подкаталоге /shell у XP. Недаром Баллмер утверждал, что СПО — вирус, заражающий другой ПО.
В то время (да и сейчас) часть оси собирается с помощью gcc, а не cl.exe. Это не значит, что оно GPL)) Просто gcc лучше.
Конечно, не значит. Лицемерие это просто со стороны бывших руководителей MS.
Ну разумеется нет. Во-первых, microsoft compiler и intel compiler написаны одной и той же фирмой, Edison Design Group. И до последего времени (2019) они не поддерживали всего функцонала C99, что уж говорить про gcc-измы для написания ядер ОС.
Во-вторых, опираться для написания ОСи на компилятор с закрытым кодом опасно.

!?!? Аргументы какие-то детские.
Во-первых, Gcc не лучший. Тогда уж лучший clang и llvm
Во-вторых, разрабы cl.exe — сама мелкософт. Лучше уж зависеть от продукта соседнего отдела, чем непонятно от чего.
В третьих, я попросту не помню включений гцц туда
В четвёртых, у операционной системы, ядра оси, драйверов свой тулкит для сборки. MSBUILD. И его можно даже бесплатно посмотреть в составе того же NTDDK, w2kddk или других ddk.

>Тогда уж лучший clang и llvm

Эээ… Вот проект компиляции ядра linux под llvm: github.com/ClangBuiltLinux/linux/issues
Там нашли огромное количество багов как в компиляторе, ассемблере и линковщике от llvm, так и в ядре linux (в основном, только благодаря статическому анализату в llvm). Только недавно это все стало юзабельно. Ну и наверное лучше всего это llvm, который использует в составе ядра gcc — лучшие от обоих))

>разрабы cl.exe — сама мелкософт
Нет. en.wikipedia.org/wiki/Edison_Design_Group

>попросту не помню включений гцц туда
Сейчас вроде перешли на clang. www.quora.com/What-kind-of-compiler-does-Microsoft-use-to-compile-Windows-source-code

>свой тулкит для сборки. MSBUILD
А не NT build?
>разрабы cl.exe — сама мелкософт
Нет. en.wikipedia.org/wiki/Edison_Design_Group
Компилятор разрабатывается самой Microsoft. Работа Edison Design Group задействована только в той части что отвечает за IntelliSense, то есть только в редакторе кода, по части подсветки синтаксиса и автодополнения кода. По этой причине, некоторые вещи, которые на самом деле не поддерживаются компилятором, подсвечиваются в редакторе, и наоборот.
Dinkumware раньше вроде как пилили стандартную библиотеку, но сейчас похоже что сама Microsoft занимается STL. Вообще, Microsoft сейчас много внимания уделяет C++, не то что было 10+ лет назад. Большая часть C++20 уже поддерживается (особенно в грядущем обновлении 16.8, что выйдет в октябре-ноябре), и походу в первой половине следующего года поддержка будет уже близко к полной.
Замечу, что запускать это нужно в Xpsp1. На сервере скрипты творят чёрте знает что.

Ну, это не проблема сервера, а скорее подготовки окружения для сборки (вместе с девтулами)

Там нашли огромное количество багов как в компиляторе, ассемблере и линковщике от llvm, так и в ядре linux (в основном, только благодаря статическому анализату в llvm).
На сколько я понимаю, во-многом сложности сборки ядра Linux при помощи LLVM/Clang были связаны с тем, что при разработке ядра активно используются нестандартные расширения GCC.

Разработчики Clang пытаются поддерживать расширения как GCC, так и MSVC. Но так как это всё же сильно разные компиляторы, совместимость не идеальная. То что было написано изначально под GCC или MSVC, весьма вероятно что вероятно не соберётся под Clang, просто из-за небольших различий в строгости компиляторов, трактовке каких-то тонких моментов в стандарте, или разницей в реализации каких-то (нужных проекту) нестандартных расширений. Но это не значит, что Clang хуже GCC или MSVC. Если писать код изначально только под Clang, то он наверняка потом не соберётся как надо под GCC или MSVC.
ИМХО все эти расширения gcc давно пора принять в стандарт. Они давно сделаны и давно и многократно проверены в реальном коде.
А компиляция одних исходников разными компиляторами очень полезна как раз для нахождения сложных ошибок. Сам все проекты под железо обязательно делаю максимально кроссплатформенными с одновременным написанием эмулятора под Windows. Отлаживать алгоритмическую часть очень удобно.
Во-первых, microsoft compiler и intel compiler написаны одной и той же фирмой, Edison Design Group.

Вы или вообще не знакомы с темой компиляторов или намеренно пускаете ложную информацию (совершенно непонятно зачем).

The Edison Design Group (EDG) is a company that makes compiler front ends (preprocessing and parsing)


— Раньше в ICC можно было использовать фронтенд clang или EDG, на выбор.
Сейчас остался только clang, AFAIK.
— EDG используется в компиляторе lcc для Эльбруса.
Но это не значит что «EDG разрабатывает компилятор для МЦСТ».
Dinkumware разрабатывают библиотеки и не касаются компиляторов.

Исторически, компилятор Си у Microsoft появился ещё до Windows 1.0, а компилятор Фортрана — ещё до MS-DOS.
Было бы очень странно, если бы отдел компиляторов, стоявший у истоков Microsoft, внезапно был расформирован, а его продукты заменены сторонними.

Независимо от названия это скорее всего makefilы для nmake который имеет какую-то долю совместимости с gmake

В сеть утекли исходные коды операционной системы Windows XP и Server 2003

Заголовок спойлера
На этот раз вполне полные)) И ни разу еще xp не утекала, а Server 2003 вышла позже xp.
Я считаю что сейчас сила именно в поддержке, в постоянной актуальности систем. Что толку от ХР, хоть полностью ее копируйте, если она не запустится на 90% UEFI ONLY ноутбуках, если там нет поддержки SSD Trim (за редким исключением), не знаю как там будет WiFi 802.11ac и 5Ghz работать, не знаю как там монитор с 5к разрешением будет работать, наверно даже драйвера современных видеокарт, как и современные браузеры там не заведутся… Стоимость систем это именно стоимость работы людей, которые актуализируют все постоянно.

Самый большой недостаток линукса для меня сейчас — в его неподдержке со стороны производителей десктопного железа, да, может все заработать идеально, но когда покупаешь ноутбук с сенсорным экраном и сканером отпечатков, и этот ноутбук выпущен 2 месяца назад, собран на последней логике (к примеру Интел 10ххх), там даже 10ка 1809 уже не работает, не видит контроллер диска, только на 1909+ версии завелось (у друга была история).
Старого железа ещё полно, и оно вполне рабочее. Современный интернет работать не будет (те, кто его делают, вообще всякую связь с реальностью утратили!), но огромное количество отличного софта работать будет. Просто новые системы, начиная с вин7, всё ближе и ближе к цифровому концлагерю. Со всеми этими цифровыми подписями на драйвера, я даже собственный код на собственном компьютере запускать не имею права! Так что железки уровня 775/1155 я храню и берегу на всякий случай. А поддержку трим в принципе было бы интересно добавить в XP, как и прочие фишечки. Так что я очень рад этим исходничкам.
Ну во-первых, можно отключить проверку подписей. Во-вторых, можно получить Exended Validation сертификат и подписать…
Ну во-первых, можно отключить проверку подписей.
Штатными средствами нормально не отключить. Можно наверно сломать-подпатчить, но как тогда с апдейтами?
Во-вторых, можно получить Exended Validation сертификат и подписать…
Вот так простому юзеру пойти и получить? Да и не хочу я ничего получать, я хочу чтобы мой компьютер исполнял тот код, который я запускаю! без всяких препонов и сертификатов.

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

Вот я и говорю, что ИТ превращается в полицейское государство. В собственный комп уже предлагается по паспорту заходить. Причём под дружное одобрение всяких «айтишников», якобы вроде бы только так и может и должно быть.
Нет, я ещё помню системы, где программу или драйвер можно было просто набрать в блокноте, скомпилировать и запустить. Если чужая программа работает не так, как хочешь — не проблема, в один тык открывается отладка, что нам не нравится — забиваем нопами, чего не хватает — дописываем. И даже вылет программы — не конец, если приаттачиться и аккуратно внести правки на ходу — процесс может продолжить работу и даст сохранить данные.
А теперь оказывается что на своём компе я не хозяин, а гость — и запускаться на компе будет не то, чему я доверяю, а то что одобрил какой-то дядька, выдающий сертификаты… Куда «не положено» не лезь, всевозможным зондам и «телеметриям» доступ в сеть не закрывай, за отключение автообновлений M$ подаст в суд.

На линуксе и сейчас так можно. Надо поправить драйвер? Просто берёте и делаете это. А если исправление полезно не только вам — отправляете в апстрим, дальше и другие люди с таким же устройством будут спокойно им пользоваться.

Нет. SecureBoot работает и в linux. И она монолитная же. Те драйверы, что в ядре не обязательно ведут себя как модули ядра.
SecureBoot

Можно просто выключить.

И она монолитная же. Те драйверы, что в ядре не обязательно ведут себя как модули ядра

Што?
Linux — модульное ядро, в нём вроде бы все драйверы собираются как модули, а не жёстко вкомпиливаются. Если речь про стоковые ядра популярных дистрибутивов, а не про гентушников всяких.

Часть драйверов вкомпиливается и в стандартных, но тут разницы особой нет, кроме одного случая — всё, что собрано прямо в ядро, будет загружено обязательно. Остальное — после монтирования rootfs и с определёнными условиями (есть ли такое железо, указана ли загрузка таких модулей).

Linux монолитное модульное ядро, это не антонимы)) Прочтите статью на wiki…
Кода вводили CPU serial number, его тоже можно было отключить через BIOS.
На текущий момент эта функция в BIOS отсутствует.
Через пару лет будут выпускаться motherboard в которых будет отсутствовать возможность отключения SecureBoot и загрузки своих ключей.
Вот только CPU serial number уже никто не использует, используют MachineID и более сложные технологии.
>загрузки своих ключей

Это часть UEFI стандарта. Не уберут.
На текущий момент эта функция в BIOS отсутствует.

Ибо зачем отключать вывод нулей?
Intel eventually removed the PSN feature from Tualatin-based Pentium IIIs, and the feature was not present in Pentium 4 or Pentium M.

SecureBoot работает и в linux.
И что мешает подписать ядро + загнать свой ключ в прошивку?
Ничего. Все нормальные прошивки UEFI (исходники которых тоже тут недавно утекли в Intel leak) поддерживают импорт своих PK, KEK и т.д.

Никто не мешает вам работать на своем собсвенном компе под управление своего собственного кода. А я как разработчик хочу знать как именно вы используете разработанное мной оборудование и ПО и кто вы собствено такой. Если вы не хотите раскрывать свою личность, я не хочу чтобы вы использовали мое ПО.

Только при этом, почемуто никто нехочет нести финансовую ответственность за работу софта на такой огороженной системе…
В автомобилестроении, авиации и т.п. — производители софта несут финансовую ответственность за его работу, из-за чего разработка удорожается на порядок.
Вы бы заплатили за «Windows с ответственностью» $2000 вместо $200?

Мой бизнес — разработка ПО и предоставление услуг хорошим на мой взгляд людям. Я несу ответсвенность за качество предоставляемых услуг в соответсвии с законом. Если вам нужен SLA и гарантии — я предлагаю Enterprise Support Contract и страховку на любой случай жизни за дополнительную плату.

Речь не об SLA, а об «если из-за бага в софте кому-то оторвало ногу, заплатит ли автор софта 100500 денег пострадавшему».

Софт не оказывает услуги по эксплуатации, и автор софта тоже. Очевидно, эксплуатацией машины занимается некая организация, в ней существуют некие процессы и ответственные за эти процессы. Руководители организации обычно страхуют свою ответственность. И если кому то отрывает ногу, то это не может являться лишь следствием бага в софте. Как пример, Boing 735MAX и MCAS.

Это так не работает. Почитайте про Q&R (Quality and Regulation) — там ответственность начинается еще на этапах формулирования ТЗ и разработки архитектуры.
Станет понятно, почему серьезный медицинский софт почти всегда поставляется вместе с компьютером, и мало кому среди эксплуатантов приходит в голову что-то с ним колхозить.
Вот так простому юзеру пойти и получить?

Можно сделать самоподписанный сертификат, добавить и собирать под ним ПО для себя.
Драйверы с самоподписанным сертификатом грузиться не будут (если не перевести систему в специальный тестовый режим).

Можно.
Только на экране будет постоянно гореть плашка о режиме отладки. Так было в Win8.


А в Win10 ещё и систему каждый раз надо запускать при помощи бубна (зайти в кучу менюшек и так при каждой перезагрузке).
Так весело запускать диагностический софт от машины, которому для работы нужен неподписанный драйвер (ибо софт времён WinXP) :(

С автомобильным диагностическим софтом такой секс с танцами вприсядку, что оказалось проще древний ноут из шкафа достать и накатить XP.

страшно такое читать в 2020 году, как и другие коментарии на хабре(и вообще интернетах)


в 2020 году существует Ютуб где есть миллион туториалов и ответов на все вопросы


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

В данном случае есть вся документация на signtool и stackechange))

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

Ну, справедливости для — различные disassembly manuals лучше смотреть на ютубе. А то, я когда разбирал свой дзыньбук — рисковал погнуть ему корпус. Оказалось что там винты под резиновыми ножками есть, кто б знал, что так можно?

Disassembly manual в виде текста и серии фотографий IMHO удобнее, не нужно ловить нужный стоп-кадр самому. Плюс его можно без проблем распечатать. Но я в первую очередь имел в виду обучение программированию и смежные области.


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

все так. К тому же, плотность информации текста достаточно (тем более с иллюстрациями) и там выделено главное — что очень ценно. Образцовыми мануалами считаю IBM Thinkpad Maintemance Manuals или HMM

ну, серия фотографий зачастую плохо передает необходимые движения, например.
всегда от этого страдал при сборке мебели. а видеоряд в этом плане более информативен.
Поддержу Вас. Время от времени ковыряю свой велик, некоторые деффекты или особенности можно увидеть токлько в движении — кручение педалей в основном, а картинки только запутают.
Проблема мануалов в виде текста и серии фотографий в том что автор может посчитать какое-либо действие несущественным и не сфотографировать/описать его, что выльется в невозможность пользователя повторить изображенное.

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

image
видеоролик все-равно никогда вас не удовлетворит до конца, зато у текста и набора фоток есть неоспоримое преимущество: контекстный поиск. Кстати у видеороликов все та же проблема, автор показывает только то что считает нужным и как считает нужным. Вспоминаются уроки по андроиду от известных контор в некоторых даже законспектировать нечего, настолько они не информативны.
Кстати у видеороликов все та же проблема, автор показывает только то что считает нужным и как считает нужным.


Объясните? Если автор показывает видеоролик-инструкцию вида «Как сделать Х» без склеек то ему придется повторять все действия вплоть до мелочей, иначе выполнить действие банально не получится.

Вспоминаются уроки по андроиду от известных контор в некоторых даже законспектировать нечего, настолько они не информативны
.
Обзор существующих возможностей и инструкция «как сделать конкретное действие» — все-таки разные категории туториалов.
без склеек

А со склейками? А с ускорением до невозможности разобрать промежуточные шаги?
Да даже и без склеек, достаточно чтобы на какое-то время ракурс оказался не как надо.
У леново для ноутов были отличные видео по разбору каждой конкретной модели. С учетом, что на фото трудно передать последовательность движений, то максимум полезного — это схемка с винтами в виде картинки распечатать.

А у леново вообще ноуты для людей. По крайней мере ноуты 5-7-летней давности. Я собирал/разбирал около двух десятков ноутбуков различных компаний и только у леново, даже самые бюджетные ноутбуки отличались редкостным удобством в плане обслуживания, я бы даже сказал, человечностью отличались. Дополнительные разъёмы под оперативку, возможность снять крышку с доступом ко всем основным компонентам без разбора всего корпуса, стандартные батарейки биоса (хотя на самом старом ноуте пришлось распаивать), прочный корпус и т.д. После нескольких рассыпавшихмя асеров и хп, а также против невероятно плохого по качеству msi за 70к рублей, леново просто шикарны. В магазине и сотрудникам все ноуты заменил на леново бюджетных моделей с небольшими апгрейдами в плане железа и все довольны. Так что с учётом их продуманности в аппаратом плане, то, что вы написали смотрится закономерно.

У леновы бесят безвариантно распаяные 4ГБ. Особенно на райзенах.

Тут знаете, когда как. Мой Z500 имел отличное видео разборки и… десятки винтиков, чтоб вскрыть и поменять внутри что-нибудь. А другой ноут ленововский примерно тех же времён — всего 2 винта и сдвижную крышку, чтоб заменить и жесткий, и оперативку можно было.
Но у других фирм часто всё было ещё хуже, да, при качестве не лучше леновоского. Разве что Асусы мне нравились побольше, но и цена их была заметно выше.
Сейчас же с новыми опыта давно не имел. Но вот рабочий асус с вздувшимся за три года аккумом расстроил в этом году.
Очень от серии ноутбуков зависит. Есть более дорогие, и сделанные для людей, а есть бюджетные — чтобы страдать при обслуживании или апгрейде.

Я когда-то намучался с простым перекидыванием жёсткого диска из видавшего виды Dell Inspiron (разобрать почти весь ноут, чтобы добраться до диска, прикрученного снизу к материнке, ибо крышечка на корпусе не предусмотрена для извлечения) в Dell Latitude 6-й серии(открытить отдин винт и вытащить салазки с диском).
Есть более дорогие, и сделанные для людей, а есть бюджетные — чтобы страдать при обслуживании или апгрейде.

зависимость совершенно не прямая. Поясню. Старые ThinkPad были прекрасными неубиваемыми кирпичами, но разбирались-собирались гораздо сложнее (100500 разных типов винтиков), чем какие-нибудь бюджетные Acer'ы популярных серий (типа Aspire 5520). При этом именно по ThinkPad всегда документация была в свободном доступе и я бы их HMM назвал эталонными.

Эх, значит мне просто повезло с теми несколькими ноутами. Спасибо за примеры.
Соглашусь с ответом выше, что не прямая зависимость. Z500 был не самой бюджетной серии, у другой серии подешевле система охлаждения была фиговой.
А с двумя болтами — тоже был из обычной серии примерно тех же лет.
Просто такое ощущение, что разные отделы разрабатывали.
Со всеми этими цифровыми подписями на драйвера, я даже собственный код на собственном компьютере запускать не имею права!

в семерке нужно отключить secure boot и подписать свой драйвер (например, во время сборки) своим же самопальным сертификатом, который установлен в системе. по крайней мере я так делал.

Не нужно ничего отключать, есть полуприватный способ подписать, не отключая никаких защитных механизмов.
Да При этом можно использовать любой отозванный сертификат, например, от HackedTeam.
Вкратце: используется специальная утилита от TrustAsia, которая позволяет подписать бинарник. Делается это таким образом, что можно использовать любой сертификат, при условии, что он хоть когда-то был валидным (т.е. он может быть отозван или истечь на текущий момент, это не важно) и у вас есть приватный ключ от него, разумеется. Доступ в интернет при этом не требуется.

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

Не то чтобы это был какой-то секрет, эта штука много лет гулят по рукам (и на ру-борде даже выкладывалась), просто открыто не публикуют, а то ещё начнут всякие скрипт-кидди подписывать малварь…
Хотите сказать в винде нет проверок на то что сертификат драйвера невалидный? Невероятно.

А как Вы проверку сделаете валидной? Вот реально. CRL будете подкачивать из интернета при каждом установке драйвера? Или при его каждом запуске? А потом фигак — и у вас система не загружается, потому что драйвер контроллера диска устарел. Офигеть. Я уж не говорю о том, что юзер всегда может время подвинуть назад (у него пока такое право не отобрали, хотя возможно, что и зря)

С обновлениями могут прилетать свежие сертификаты и списки отозванных, дальше оно используется локально.
Но есть ньюанс… )

Они и так прилетают — например, в свойствах подписанного файла явно показывается, что сертификат невалидный.
Но kernel-mode не пользуется системным хранилищем сертификатов, там какая-то своя минимальная реализация с захардкоженным root certificate.
Вот кстати да, я видимо об этом ниже писал, что оно пришло с XP x64.
Конкретно в этой ситуации у меня возникает вопрос почему сертификат TrustAsia до сих пор не заблокирован в винде. Судя по тому что я вижу утек он как минимум в 2017. Мне кажется при выборе между «сломать N драйверов» и «дать возможность подписать любую малварь» — выбор очевиден. Каких-то крупных производителей железа можно проинформировать заранее чтобы они переподписали драйвера если считают это необходимым.
Вроде как есть такая штука, как штамп времени. И вполне можно разрешить работать тем драйверам, подпись которых была сделана после выпуска, но до его отзыва. С локальной перемоткой времени ничего не поделаешь, если пользователю будет комфортно сидеть за ПК с 2015 годом, из-за чего даже сайты не будут открываться, то медицина тут бессильна.
Тут есть нюанс. При «честном» подписывании требуется доступ в интернет, насколько я знаю. Поэтому штамп времени будет актуальный.

А вот при «древнекитайском» подписывании доступ в интернет не требуется, что позволяет отмотать системную дату на N лет назад. Что как раз даст ситуацию «подписано до отзыва».
Значит там просто нет штампа времени, либо он делается таким же утекшим сертификатом.
Нет, вы путаете 3 сертификата подписи и 3 сертификата таймштампа. Первое интернета не требует. Второе делается с помощью интернета, и время проверяется на стороне сервера. Вообще говоря, подпись таймштамповым сертификатом делают для того, чтобы увеличить срок подписи на 10-20 лет, пока сертификат таймштампа не закончиться. Если сертификат подписи был отозван по причине «Потеря приватного ключа», то подпись сразу не валидна, даже если есть валидная подпись-таймштамп.
И вполне можно разрешить работать тем драйверам, подпись которых была сделана после выпуска, но до его отзыва.

Так и сделано. Поэтому для подписывания истёкшим сертификатом используется виртуалка, в которой время отматывается назад. А пользователю такого драйвера ничего отматывать уже не нужно.
Нет, там всё сложнее. Там как-то хитро запихиваются два сертификата.
При этом, Windows прекрасно видит, что сертификат отозван и просрочен.
Мне не удаётся скачать бинарники с архива. Закидывайте прямые ссылки в личку, так будет проще.
Со всеми этими цифровыми подписями на драйвера, я даже собственный код на собственном компьютере запускать не имею права!

Что, всё настолько плохо, что там теперь Certificate Pinning и они не примут самоподписанный сертификат, если свой CA запихать в Trusted Root CA Store?
У ядра свой корневой сертификат. Если добавить самоподписанный сертификат в CA, то оболочка согласится установить этот драйвер, не ругаясь неприличными словами. Но при попытке загрузить этот драйвер ядро всё равно проверит сертификат, обнаружит, что он левый, и откажется его грузить. (Насколько я помню, это в Висте появилось, в 64-битной версии.)
Разве? Я попробовал сейчас в виртуалке с XP x64 поставить самоподписанный драйвер, он установился и загрузился. Или это с каким-то обновлением прилетало?
В каком-то сервис паке. Или может это относится только к файлам ОС и их защите.
У меня SP2, последний.
Защиту системных файлов не исследовал, это в любом случае уже какой-то другой механизм, не имеющий отношения (во всяком случае прямого) к обязательности подписывания драйверов.
Где они публично расскажут, что получили незаконный доступ к чужим исходникам?
Это сейчас вопрос на полном серьезе?
Потому что исходник такой же объект авторского права, как свежее кинцо.
Винда вовсе не опенсорс, автоматом дающий право на какой бы то ни было доступ к исходникам, так что посмотреть их, это как рип с рутрекера.
Это вопрос на полном серьёзе и твой комментарий и аналогия с медиа-продукцией не убедили меня в том, что просмотр исходного кода может быть незаконным, если не ты сам его добыл незаконным способом. Для медиа существуют свои отдельные регуляции. Более того, даже в случае медиаконтента, его потребление не является незаконным в случае пиратства, незаконно (зависит от юрисдикции, но в целом, так) распространение.
Хотя я тоже считаю, что скачивание из открытых источников и изучение в целях самообразования утекших исходников не является незаконным, но отчёт от pvs должен будет включать куски кода для иллюстрации (а иначе смысла нет), так что мы его вряд ли дождёмся, так как это формально подпадает под распространение. В принципе pvs каждый может попробовать, но вот как потом о найденных ошибках рассказать?
Никто не станет судиться из-за таких мелочей. Максимум, попросят удалить. Но я и в этом сомневаюсь. В наши дни Майкрософт усиленно отыгрывает роль корпорации добра, им ни к чему такой чёрный пиар.
Судятся и из-за 9 строчек кода.
Если же вы имеете в виду русское авось, дескать такая большая компания не будет обращать внимание на такую маленькую, то я лично нахожу такую практику неправильной. Как-то это несерьёзно, на мой взгляд
Оракл это уникальный случай, но даже и они начали судебную тяжбу далеко не из-за «девяти строчек кода», а из-за того, что захотели получить свою долю от гугловского пирога. В случае non-profit анализа кода никакого смысла тратить кучу денег на юристов с последующими репутационными издержками, нет. Это просто неразумно и «bad for business».
просмотр исходного кода может быть незаконным, если не ты сам его добыл незаконным способом

А скачка и просмотр камрипа? Там тоже нарушение авторских прав совершается тем, кто его записывал, а не теми, кто скачивает и смотрит?
В чём разница между камрипом и спираченным фильмом? Да, смотреть камрип легально. Распространять — нет.
В какой стране это легально? В России — нет.

Последнее, а именно хранение на компьютере подобного контента, равносильно использованию (Ст. 1270 ГК РФ: «При этом запись произведения на электронном носителе, в том числе запись в память ЭВМ, также считается воспроизведением). Также, в ГК РФ отмечается, что не важно, используете ли вы такой контент, например, пиратское ПО для извлечения прибыли, или нет. То есть даже установленный на компьютере пиратский Photoshop — это нарушение закона.

habr.com/ru/company/hidemy_name/blog/403539
По вашей ссылке написано: «Torrenting or downloading copyrighted material without permission is flat-out illegal and a much more serious crime, according to the U.S. Copyright Office.»
Для проверки исходников PVS-Studio, с которой начался этот тред, — их необходимо скачать. После этого к PVS-Studio будут юридические претензии и в США, и в России.
Это всё юридические аспекты, на которые всегда можно найти loophole. Например, выложить исходники онлайн, чтобы не нужно было скачивать — проще простого. Если прицепятся к тому, что файл попадает в память, можно выложить как картинки, в этом случае суд не сможет ничего сделать. Было бы желание, а методы найдутся всегда.
Последнее, а именно хранение на компьютере подобного контента, равносильно использованию (Ст. 1270 ГК РФ

А как же ст. 1273? Произведение правомерно обнародовано в кинозале, кто-то неправомерно воспроизвёл его, и теперь я снова правомерно воспроизвожу его в личных целях.
Нет, прав на воспроизведение у вас нет, пока вы не купите фильм у его издателя.
Это прямо противоречит смыслу статьи 1273, которая разрешает воспроизводить в личных целях любое правомерно обнародованное аудиовизуальное произведение (и не только), но с некоторыми ограничениями (например, на концерте или в кинозале записывать без согласия правообладателя нельзя).
Хотелось бы почитать, как они настраивают сборку всего вот этого ))

Если есть исходный код, то его можно проверить на "закладки", а после скомпилировать с новым названием в качестве замены Астралинукса и мсвс… Госслужащие будут довольны...

Проверка на это кода Intel увенчалась неуспешно, как выяснилось слово backdoor также используется для спецефической терминологии при программировании PCI express.
его можно проверить на «закладки»

Конечно, достаточно поискать 'zakladka' в общем списке сурсов
Как и heartbleed, скорее случайно кто-то наткнется, чем целенаправленно найдет
На сколько я знаю не совсем так. MS платила Атласу за то, чтобы он проводил сертификацию под требования ФСБ на НДВ и предоставляла ему какой-то удаленный доступ к исходникам, но вроде как просто слить все исходники Атлас не мог.
Но я могу и заблуждаться :)
удаленный доступ к исходникам

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

Толку от такой операции немного. Минимум "закладок" можно добиться только скомпилировав код лично и на своем железе. Просмотр кода удаленно или на чужем компе смысла не имеет.

Это заголовок хайповый или в сливе действительно есть исходники ОС, а не только одной подсистемы DX8 и одной мелкой программки paint? По тексту не понять
Похоже, что не прям все-все. DIAMONDAPI (он же cabinet.dll) не получилось найти…
XPSP1\NT\shell\published\dload\cabinet.c

static
BOOL
FAR DIAMONDAPI
FDICopy (
HFDI hfdi,
char FAR *pszCabinet,
char FAR *pszCabPath,
int flags,
PFNFDINOTIFY pfnfdin,
PFNFDIDECRYPT pfnfdid,
void FAR *pvUser
)
{
return FALSE;
}


А это что?
Ну этот .lib, видимо, для динамической линковки с самим cabinet.dll
Не, это настройки проводника, если верить содержимому

NAME Cabinet WINDOWAPI

DESCRIPTION 'Windows Shell Application'

А как насчет XPSP1\NT\base\ntsetup\legacy\dll\diamond.c и XPSP1\NT\base\ntsetup\textmode\kernel\diamond.c
XPSP1\NT\sdktools\restools\mui\muisetup\diamond.cpp

Module Name:

diamond.c

Abstract:

Implement File Decompression Interface -FDI- for Cabinet files.

Это интерфейс для инсталлятора для работы с cab архивами в ISO.
На самом деле, прошелся полным поиском, но реализации там нет. Либо экспортируемые функции под другими именами.

Какая именно функция? Есть еще такое. XPSP1\NT\base\win32\lz32\tools\compress
Вобщем, научился собирать любой компонент без всяких чудо-скриптов из папки tools и на своей системе без самой Windows XP. Правда компилятор придется использовать тот, который лежит со всеми исходниками. Современные компиляторы далеко ушли: ключи поменялись, синтаксис тоже. Такие древние хаки MS-компилятора с видимостью переменных как:
for(int i=0;i<COUNT;++i) {}; printf("%d\n",i);

уже не работают =(
64-битный компилятор в Win10 не работает, поэтому получится собирать только i386 версии :)

Если кому интересно — напишу попозже.

Кстати, winlogon и Co там тоже нет, так что мне непонятно, как люди хотят готовый ISO…
без всяких чудо-скриптов из папки tools

А вот это уже интересно. Там же настройка среды и прочая фиготень.
На форчане не были?
Нет, там не сижу.

Компилятор интересуют только переменные окружения. Задача скриптов выполнить какие-то действия, необходимые для сборки (разослать письма о запуске сборки, позвать signtool для импорта ключей и т.д.). Если нужно просто собрать, то эта вся обвязка не нужна.

Выдернул переменные среды:
build_env.cmd
@echo off
set ROOT=!!! SET HERE PATH TO SRC ROOT, LIKE D:\nt5src\XPSP1 !!!


set 386=1
set BATCH_NMAKE=1
set BINPLACE_EXCLUDE_FILE=%ROOT%\NT\tools\symbad.txt
set BINPLACE_FLAGS=-xa -:LOGPDB
set BINPLACE_LOG=%ROOT%\binaries.x86fre\build_logs\binplace.log
set BINPLACE_PLACEFILE_DEFAULT=%ROOT%\NT\public\sdk\lib\placefil.txt
set BUILD_DEFAULT=daytona -e -E -w -nmake -i
set BUILD_DEFAULT_TARGETS=-x86
set BUILD_MAKE_PROGRAM=nmake.exe
set BUILD_PATH=%ROOT%\NT\tools\x86;%ROOT%\NT\tools\x86\perl\bin;%ROOT%\NT\tools;%ROOT%\WINDOWS\system32;%ROOT%\WINDOWS;%ROOT%\WINDOWS\system32\wbem;%ROOT%\NT\tools\x86\managed\urt\v1.0.3705;%ROOT%\NT\tools\x86\managed\sdk\bin
set BUILD_POST_PROCESS={Checkout Public Changes}%ROOT%\NT\tools\edit_public.cmd
set BUILD_PRODUCT=NT
set BUILD_PRODUCT_VER=500
set COMPRESS_PDBS=1
set COPYCMD=/Y
set FilterDir=%ROOT%\filtered
set FP_NO_HOST_CHECK=NO
set INIT=%ROOT%\NT\developer\buildmaster
set MANAGED_TOOL_PATH=%ROOT%\NT\tools\x86\managed
set MSWNET=%ROOT%\NT\developer\buildmaster
set NO_PDB_PATHS=1
set NTBBT=1
set NTDBGFILES=1
set NTDBGFILES_PRIVATE=1
set NTDEBUG=ntsdnodbg
set NTDEBUGTYPE=windbg
set NTMAKEENV=%ROOT%\NT\Tools
set NTPROJECTS=public
set NUMBER_OF_PROCESSORS=8
set OFFICIAL_BUILD_MACHINE=PRIMARY
set OS=Windows_NT
set OS_BUILDNUMBER=2600
set Path=%ROOT%\NT\tools\x86;%ROOT%\NT\tools\x86\perl\bin;%ROOT%\NT\tools;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32\wbem;%ROOT%\NT\tools\x86\managed\urt\v1.0.3705;%ROOT%\NT\tools\x86\managed\sdk\bin;%Path%
set PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
set PERL5LIB=%ROOT%\NT\tools\x86\perl\site\lib;%ROOT%\NT\tools\x86\perl\lib
set PREFAST_ROOT=%ROOT%\NT\tools\x86\prefast\
set RazzleScriptName=razzle
set RazzleToolPath=%ROOT%\NT\tools
set SDCONFIG=sd.ini
set SDDIFF=windiff.exe
set SDXROOT=%ROOT%\NT
set SESSIONNAME=Console
set SIGNTOOL_SIGN=/a /uw /r "Microsoft Test Root Authority" /d "Microsoft Windows TEST" /du "http://ntbld"
set STAMPINF_DATE=07/01/2001
set STAMPINF_VERSION=5.1.2535.0
set SvcPackDir=%ROOT%\svcpack
set _BuildArch=x86
set _BuildBins=binaries in: %ROOT%\binaries.x86fre
set _BuildBranch=Main
set _BuildOpt=full opt
set _BuildType=fre
set _BuildWTitle=Build Window: x86/fre/full opt/binaries in: %ROOT%\binaries.x86fre
set _CL_=/Ztmp
set _LINK_=/tmp
set _ML_=/Zvc6
set _NTBINDIR=%ROOT%\NT
set _NTDRIVE=
set _NTFILTER=%ROOT%\filtered.x86fre
set _NTPOSTBLD=%ROOT%\svcpack.x86fre
set _NTROOT=%ROOT%\NT
set _NTTREE=%ROOT%\binaries.x86fre
set _NTUSER=%USERNAME%
set _NTx86TREE=%ROOT%\binaries.x86fre
set __BUILDMACHINE__=Main

title %_BuildWTitle%

А дальше тривиально. К примеру, сборка Диспетчера задач. Запускаем cmd.exe, а дальше:
building taskmgr
Z:\YOUR_PATH\NT>build_env.cmd

Z:\YOUR_PATH\NT>cd shell\applets\taskmgr

Z:\YOUR_PATH\NT\shell\applets\taskmgr>nmake

Microsoft (R) Program Maintenance Utility Version 7.00.8882
Copyright (C) Microsoft Corp 1988-2000. All rights reserved.

BUILD: Compile and Link for i386
cl -nologo /Tp -Ii386\ -I. -I. -I..\inc -IZ:\YOUR_PATH\NT\public\internal\Windows\inc -IZ:\YOUR_PATH\NT\Shell\inc -IZ:\YOUR_PATH\NT\public\internal\TermSrv\inc -IZ:\YOUR_PATH\NT\public\internal\DS\inc -Iobj\i386 -IZ:\YOUR_PATH\NT\Shell\inc -IZ:\YOUR_PATH\NT\Shell\inc\obj\i386 -IZ:\YOUR_PATH\NT\public\internal\Shell\inc -IZ:\YOUR_PATH\NT\public\oak\inc -IZ:\YOUR_PATH\NT\public\sdk\inc -IZ:\YOUR_PATH\NT\public\sdk\inc\crt -D_X86_=1 -Di386=1 -DSTD_CALL -DCONDITION_HANDLING=1 -DNT_UP=1 -DNT_INST=0 -DWIN32=100 -D_NT1X_=100 -DWINNT=1 -D_WIN32_WINNT=0x0501 /DWINVER=0x0501 -D_WIN32_IE=0x0600 -DDEVL=1 -DOFFICIAL_BUILD=1 -D__BUILDMACHINE__=Main -DFPO=1 -DNDEBUG -D_DLL=1 -DWINNT -DUSE_MIRRORING -DSECURITY_WIN32 /DDELAYLOAD_VERSION=0x0200 /c /Zel /Zp8 /Gy /W4 /WX /WX /Gz /QIfdiv- /QIf /G6 /Gi- /Gm- /GX- /GR- /GF -Z7 /Oxs /Oy -Z7 -FIZ:\YOUR_PATH\NT\public\sdk\inc\warning.h /Yltaskmgr /Ycprecomp.h /Fpobj\i386\precomp.pch /Fo"Z:\YOUR_PATH\NT\shell\applets\taskmgr\obj\i386\precomp.obj"

#include "precomp.h"

pch_hdr.src
rc -l 409 -DSXS_ASSEMBLY_NAME="""WindowsShell""" -DSXS_ASSEMBLY_VERSION="""1.0.0.0""" -DSXS_ASSEMBLY_LANGUAGE="""0000""" -DSXS_PROCESSOR_ARCHITECTURE="""x86""" -DSXS_TARGET="""taskmgr.exe""" -DSYSTEM_COMPATIBLE_ASSEMBLY_NAME="""Microsoft.Windows.SystemCompatible""" -DLSYSTEM_COMPATIBLE_ASSEMBLY_NAME=L"""Microsoft.Windows.SystemCompatible""" -z "MS Sans Serif,Helv/MS Shell Dlg" -DSXS_MANIFEST_OBJ1="\"obj/i386/WindowsShell.man\"" -r -fo obj\i386\taskmgr.tmp -D_X86_=1 -Di386=1 -DSTD_CALL -DCONDITION_HANDLING=1 -DNT_UP=1 -DNT_INST=0 -DWIN32=100 -D_NT1X_=100 -DWINNT=1 -D_WIN32_WINNT=0x0501 /DWINVER=0x0501 -D_WIN32_IE=0x0600 -DDEVL=1 -DOFFICIAL_BUILD=1 -D__BUILDMACHINE__=Main -DFPO=1 -DNDEBUG -D_DLL=1 -DWINNT -DUSE_MIRRORING -DSECURITY_WIN32 /DDELAYLOAD_VERSION=0x0200 -I. -I..\inc -IZ:\YOUR_PATH\NT\public\internal\Windows\inc -IZ:\YOUR_PATH\NT\Shell\inc -IZ:\YOUR_PATH\NT\public\internal\TermSrv\inc -IZ:\YOUR_PATH\NT\public\internal\DS\inc -Iobj\i386 -IZ:\YOUR_PATH\NT\Shell\inc -IZ:\YOUR_PATH\NT\Shell\inc\obj\i386 -IZ:\YOUR_PATH\NT\public\internal\Shell\inc -IZ:\YOUR_PATH\NT\public\oak\inc -IZ:\YOUR_PATH\NT\public\sdk\inc -IZ:\YOUR_PATH\NT\public\sdk\inc\crt .\taskmgr.rc
preprocessor.exe -o obj\i386\WindowsShell.man -i .\WindowsShell.manifest -DSXS_ASSEMBLY_NAME="\"WindowsShell\"" -DSXS_ASSEMBLY_VERSION="\"1.0.0.0\"" -DSXS_ASSEMBLY_LANGUAGE="\"0000\"" -DSXS_PROCESSOR_ARCHITECTURE="\"x86\"" -DSXS_TARGET="\"taskmgr.exe\"" -DSYSTEM_COMPATIBLE_ASSEMBLY_NAME="\"Microsoft.Windows.SystemCompatible\"" -DLSYSTEM_COMPATIBLE_ASSEMBLY_NAME=L"\"Microsoft.Windows.SystemCompatible\""
FusionManifestValidator /b /s:appschema.xml /m:obj\i386\WindowsShell.man

Z:\TEMP_PATH\Temp\nm570B.tmp
.\taskmgr.rc
Скопировано файлов: 1.
cl -nologo -Ii386\ -I. -I. -I..\inc -IZ:\YOUR_PATH\NT\public\internal\Windows\inc -IZ:\YOUR_PATH\NT\Shell\inc -IZ:\YOUR_PATH\NT\public\internal\TermSrv\inc -IZ:\YOUR_PATH\NT\public\internal\DS\inc -Iobj\i386 -IZ:\YOUR_PATH\NT\Shell\inc -IZ:\YOUR_PATH\NT\Shell\inc\obj\i386 -IZ:\YOUR_PATH\NT\public\internal\Shell\inc -IZ:\YOUR_PATH\NT\public\oak\inc -IZ:\YOUR_PATH\NT\public\sdk\inc -IZ:\YOUR_PATH\NT\public\sdk\inc\crt -D_X86_=1 -Di386=1 -DSTD_CALL -DCONDITION_HANDLING=1 -DNT_UP=1 -DNT_INST=0 -DWIN32=100 -D_NT1X_=100 -DWINNT=1 -D_WIN32_WINNT=0x0501 /DWINVER=0x0501 -D_WIN32_IE=0x0600 -DDEVL=1 -DOFFICIAL_BUILD=1 -D__BUILDMACHINE__=Main -DFPO=1 -DNDEBUG -D_DLL=1 -DWINNT -DUSE_MIRRORING -DSECURITY_WIN32 /DDELAYLOAD_VERSION=0x0200 /c /Zel /Zp8 /Gy /W4 /WX /WX /Gz /QIfdiv- /QIf /G6 /Gi- /Gm- /GX- /GR- /GF -Z7 /Oxs /Oy -Z7 -FIZ:\YOUR_PATH\NT\public\sdk\inc\warning.h /Yuprecomp.h /Fpobj\i386\precomp.pch .\main.cpp .\perfpage.cpp .\netpage.cpp .\procpage.cpp .\ptrarray.cpp .\taskpage.cpp .\debug.cpp .\trayicon.cpp .\userdlgs.cpp .\userpage.cpp
main.cpp
perfpage.cpp
netpage.cpp
procpage.cpp
ptrarray.cpp
taskpage.cpp
debug.cpp
trayicon.cpp
userdlgs.cpp
userpage.cpp
Generating Code...
link -out:obj\i386\taskmgr.exe -machine:ix86 @Z:\TEMP_PATH\Temp\nm595E.tmp
Microsoft (R) Incremental Linker Version 7.00.9210
Copyright (C) Microsoft Corporation. All rights reserved.

-merge:.CRT=.data
-MERGE:_PAGE=PAGE
-MERGE:_TEXT=.text
-SECTION:INIT,d
-OPT:REF
-OPT:ICF
-IGNORE:4010,4037,4039,4065,4070,4078,4087,4089,4198,4221
-INCREMENTAL:NO
-FULLBUILD
/release
-NODEFAULTLIB
/WX
-debug:FULL
-debugtype:cv
-version:5.1
-osversion:5.1
-debug:full
-debugtype:cv,fixup
/opt:nowin98
-STACK:0x40000,0x1000
-PDBPATH:NONE
-merge:.rdata=.text
/delayload:wtsapi32.dll
/delayload:winsta.dll
/delayload:msgina.dll
/delayload:utildll.dll
/delayload:ole32.dll
/tsaware
-subsystem:windows,4.0
-base:@Z:\YOUR_PATH\NT\Tools\coffbase.txt,usermode
-entry:ModuleEntry
obj\i386\precomp.obj
obj\i386\taskmgr.res
obj\i386\main.obj
obj\i386\perfpage.obj
obj\i386\netpage.obj
obj\i386\procpage.obj
obj\i386\ptrarray.obj
obj\i386\taskpage.obj
obj\i386\debug.obj
obj\i386\trayicon.obj
obj\i386\userdlgs.obj
obj\i386\userpage.obj
Z:\YOUR_PATH\NT\public\internal\Base\lib\i386\kernel32dloadhandler.lib
Z:\YOUR_PATH\NT\public\sdk\lib\i386\advapi32.lib
Z:\YOUR_PATH\NT\public\sdk\lib\i386\kernel32.lib
Z:\YOUR_PATH\NT\public\sdk\lib\i386\gdi32.lib
Z:\YOUR_PATH\NT\public\sdk\lib\i386\user32.lib
Z:\YOUR_PATH\NT\public\sdk\lib\i386\int64.lib
Z:\YOUR_PATH\NT\public\sdk\lib\i386\ntdll.lib
Z:\YOUR_PATH\NT\public\sdk\lib\i386\iphlpapi.lib
Z:\YOUR_PATH\NT\public\sdk\lib\i386\comctl32.lib
Z:\YOUR_PATH\NT\public\sdk\lib\i386\htmlhelp.lib
Z:\YOUR_PATH\NT\public\sdk\lib\i386\mpr.lib
Z:\YOUR_PATH\NT\public\internal\Windows\lib\i386\user32p.lib
Z:\YOUR_PATH\NT\public\sdk\lib\i386\uuid.lib
Z:\YOUR_PATH\NT\public\sdk\lib\i386\version.lib
Z:\YOUR_PATH\NT\public\internal\Shell\lib\i386\shlwapip.lib
Z:\YOUR_PATH\NT\public\internal\Shell\lib\i386\shell32p.lib
Z:\YOUR_PATH\NT\public\sdk\lib\i386\ntdll.lib
Z:\YOUR_PATH\NT\public\sdk\lib\i386\secur32.lib
Z:\YOUR_PATH\NT\public\sdk\lib\i386\wtsapi32.lib
Z:\YOUR_PATH\NT\public\sdk\lib\i386\winsta.lib
Z:\YOUR_PATH\NT\public\internal\DS\lib\i386\msgina.lib
Z:\YOUR_PATH\NT\Shell\lib\obj\i386\secutil.lib
Z:\YOUR_PATH\NT\Shell\lib\obj\i386\stock.lib
Z:\YOUR_PATH\NT\public\internal\TermSrv\lib\i386\utildll.lib
Z:\YOUR_PATH\NT\public\sdk\lib\i386\ole32.lib
Z:\YOUR_PATH\NT\public\sdk\lib\i386\vdmdbg.lib
Z:\YOUR_PATH\NT\public\sdk\lib\i386\kernl32p.lib
/tmp
compact /c /q obj\i386\taskmgr.pdb

echo.

binplace Z:\YOUR_PATH\NT\shell\applets\taskmgr\obj\i386\taskmgr.exe



Стоит учесть, что сборка компонента не подразумевает сборку зависимостей и их придется собрать самостоятельно. Иногда не хватает каких-то .h-файлов — значит они генерируется при сборке другого компонента. Иногда надо вручную создать папку obj\i386 (для сборки 32-битной версии компонента). К примеру для сборки shimgvw.dll потребовалось предварительно собрать для shell несколько библиотек и руками перенести пару файлов. Возможно, надо еще поколдовать с целями make depend и install, чтобы было поменьше ручной работы. Но, как показывает практика, таким образом можно собрать все, только нужно совсем немного ручных действий. Так удалось собрать почти все, включая такие крупные компоненты, как графическое ядро (win32k.sys).

Для того, чтобы собирались DLL, надо добавить еще одну переменную окружения MAKEDLL, иначе сборка библиотеки будет проходить успешно, но сама .dll собираться не будет.
В целом иерархия такова: в файлах dirs содержатся пути до компонентов. Внутри директории компонента лежит либо makefile, либо еще один dirs, который указывает, где лежат makefile для его сборки.

До сборки с MUI и подписью драйверов (а там есть ключ для подписи драйверов в тестовой сборке. Для подписи драйверов в релизной сборке у них есть отдельный сервер, которого, конечно, в архиве нет :-) я еще не добрался. Может потом…

Играясь с переменными окружения, можно добиться и отладочной сборки, и под другие архитектуры (но стоит учесть, что 64-битный вложенный компилятор на современных ОС не запускается, а современные компиляторы не поддерживают ключи, с которыми должны собираться компоненты).

Гипотетически, можно набросать простой скрипт (bat/perl/python), который будет рекурсивно обходить файлы dirs и собирать компоненты в том порядке, в котором они там перечислены. Сверху приправить подписью драйверов, компиляцией MUI и упаковкой в cab. Тогда на выходе будут готовые компоненты.
Стоит учесть, что сборка компонента не подразумевает сборку зависимостей и их придется собрать самостоятельно.

Вооот. А с оригинальной средой говорят build /d (с ключом могу ошибиться) вполне себе собирает зависимости. Хотя лично я сначала запустил сборку всего дистрибутива (пусть с ошибками), а потом запускал сборку отдельных компонентов.
Ну по ошибкам компиляции будет явно видно какие компоненты нужны. дальше достаточно скомпилировать их — это не сложно (и их немного, обычно). Можно и незамысловатый скрипт написать (добавил в предыдущий комментарий).
Кстати, winlogon и Co там тоже нет, так что мне непонятно, как люди хотят готовый ISO…


Текущий план у товарищей с 4chan взять winlogon из слитых исходников win2000 и допилить его до состояния чтобы xp с ним работала. Еще смотрят в сторону sunlogon, исходники которого есть, но там прямо совсем минимальная функциональность.

В пень десятку, семерка лучше! А если пропатчат ХР до устранения багов, скажем, SMB1 (разве что там сам протокол уязвим), то будет ещё лучше.

По ссылке только немножечко драйверов и сторонний софт под открытыми лицензиями типа bash и openssh. Маловато для "открытой ОС".

Чтобы получить MacOS, кроме xnu, немногих открытых драйверов и баша нужно еще очень много всего. Практически весь UI там проприетарный, куча драйверов проприетарная и так далее. Из тех кусочков, что по вышеупомянутой ссылке, вы MacOS не соберете и на маке не запустите, а утверждение «MacOS открытая ОС» — это просто-напросто неправда.

В принципе согласен, но тогда и Линукс не свободный на 100%, и Андроид тоже — в них в обоих есть закрытые драйвера и бинарные блобы. Но если рассматривать свободность не в бинарном виде, а в виде непрерывной шкалы, то любой Андроид и Линукс даст фору MacOS...

Из тех кусочков, что по вышеупомянутой ссылке, вы MacOS не соберете и на маке не запустите

Собрать ядро и запустить можно:
kernelshaman.blogspot.com/search/label/XNU
Сможете пересобрать ядро Windows из открытых Майкрософтом исходников?
Сможете полностью собрать Андроид с гугловыми приложениями и драйверами?

В любом случае ваше утверждение не соответствует действительности:
«По ссылке только немножечко драйверов и сторонний софт».
Почему про открытое ядро macOS вы решили умолчать?
Сможете пересобрать ядро Windows из открытых Майкрософтом исходников?

Я на ядре WRK вполне себе запускался в своё время. Там конечно была куча прекомпилированных файлов, но основа ядра вполне себе открытая.
Мой предыдущий комментарий не заметили?
Проще не замечать, да.

О боже, кто-то сподобился собрать это "ядро" и получил жалкое подобие левой руки FreeBSD, это неопровержимо доказывает, что макос — открытая система. Вам самому не смешно? Апелляция к Windows в этом контексте выглядит ещё смешнее, а прошивок на базе AOSP существует миллион, в том числе от того же Хуавея, который вообще "в гугле забанен". А то, что выложил Apple — это издевательство.

Лучше бы утёк весь репозиторий, чтобы сразу с историей версий ))
На экзелабе проскочила инфа, что исходники висты тоже давно слиты. Только в паблик не выкидывают. А XP выкинули, потому что с них уже поиметь нечего.
Только в паблик не выкидывают.

Не нравятся мне такие держатели.
В сеть утекли исходные коды операционной системы Windows XP и Server 2003
Скоро в Сколково «изобретут» чиста российскую передовую ОС.
В оригинальном сливе Win2k3.7z 16.06.2012. Внутри cab файлы дата 26.02.2003.
В оригинальном сливе XPS1.7z то же самое, внутри cab дата 02.09.2002
в скором времени:
Linux Subsystem for Windows vs Windows Subsystem for Linux
А где бы их качнуть? Сам не знаю зачем, но так, на всякий случай.
НЛО прилетело и опубликовало эту надпись здесь
Кто там писал открытое письмо в МС о передаче исходников 7ки в фонд СПО? я так понимаю вам не долго ждать осталось :)

А почему нет-то? Я тоже компилировал исходники NT4 & W2k — там многого недоставала, но было интересно собрать тот же taskmgr с экспериментальными флагами ))))
Еще обратил внимание на неоднородность кода. Где-то — чистый С, где-то С++, где-то программы написанные на NT API. И вообще очень поразил очень грамотный подход к организации структуры кода и его сборке (там действительно были инкрементальные сборки за 100500 лет до Гугла и его bazel).
Вот с чем беда реально — это с тестированием кода… Но это тяжкое наследие крестов

а что не так с тестированием в «крестах». Я просто на крестах пишу, тестирую написанное, через google test framework например, и никаких таких проблем не вижу что бы можно было говорить про тяжелое наследие, связанное с яп. Может быть я конечно новичёк (пишу на ++ 3 года, это на самом деле мало для любого сложнее питона, имхо) — но тем не менее не понятно, объясните :)

Потому что сейчас культура юнит тестирования устаканилось. И по сути в каждом плюс-минус современном языке поддержка тестирования есть или на уровне языка, или на уровне стандартных библиотек, или есть какие-то общепринятые методики, которые не вызывают вопросов. А вот с с++ ничего такого не было. Да и ориентация на приложения с GUI — юнит тесты для интерфейса? Наверное, можно, но что-то не слышал про такое.

юнит тесты для интерфейса

Для веба используется Selenium. Не юнит конечно, но вполне себе тестирование.

Селениум — это не то (это действительно про Веб), есть отдельные ДОРОГУЩИЕ комплексы, которые позволяют проводить тестирование GUI интерфейсов (там какие-то хитрые макросы записываются, с привязкой к, Господи, забыл, как это в винде называется — короче, дескрипторы окон и элементов). Но это как бы очень сильно отличается от юнит-тестирования кода (как это выглядит сейчас)…
p.s. минус не мой

В общем-то уже запускали, с использованием EFI загрузчика из утекшей бета версии Vista.

Вот, спасибо за новость! Я, помню лет пятнадцать назад где-то с неделю провозился с отображением «NonTearing» видео картинки в окне на мониторе (ну чтоб с развёрткой монитора синхронизировать но без полноэкранного DirectX режима). Я таки добился отличного результата, но мне всегда было любопытно, что там под капотом у GetScanLine, WaitForVerticalBlank и DrawDibDraw, и вот теперь (судя по скриншоту), кажется, я удовлетворю таки своё любопытство.
Хорошо бы в Kodi этот код добавить. У них по умолчанию идёт именно не полноэкранный режим, развёрнутый на всё окно, из-за чего иногда происходит сбой синхронизации.
Содержит игры Hearts (на C++), Reversi, Solitare!

А pinball? Может, наконец, найдется?
Нет, Cinematronics.

Возможно, подзаголовок игры — «Space Cadet» — вызвал у вас ассоциации со Space Quest от Sierra ;-)

Ура это круто! Дай бог что б кто то доработал и выпустил ХП под современное железо. Это было круто прикруто! Я всей душой ненавижу карявую десятку. Кто довёл до ума это прям мечта!

я подозреваю что микрософт посмотрел на эту непонятную мешанину с и с++ win XP, с кусками еще наверно из DOS, и начисто переписал винду.
Читал всякие анонимные посты о том что longhorn был попыткой все переписать с нуля (да еще и на managed ядре). Как многие знают — не взлетело. В итоге взяли исходники xp и сделали все на их основе, хотя эксперименты с managed ядром не бросали еще лет 10.

Проблема винды в том что ее нельзя переписать с нуля. Можно переписать userspace, но ядро все равно будет тянуться из времен NT ибо без обратной совместимости никуда.

Вот как раз ядро переписать можно, ибо программы в подавляющем большинстве к нему обращаются примерно никогда и кода в нем мало. Что, собственно, время от времени и происходит. Отчего старые драйвера, антивирусы, и прочее глубоко лезущее в систему ПО ломается от сервиспака.
А юзерспейс только дописывать, потому как совместимость не на уровне исходного кода, а бинарная.

Скорее наоборот — Longhorn был попыткой натянуть на XP все фишки Висты (и даже больше, по планам), получив новую ОС на старом ядре и сэкономив время на разработку. А уже потом пилить новую версию ядра для проекта Blackcomb (будущая Windows 7). Но не срослось…
Немного уточню про момент существования longhorn'а до висты — тот самый longhorn прожил где-то до сборки 4084. После этого (5001 и далее) все было начато сначала и уже началась история vista, просто до какого-то момента под тем же названием.
маловероятно — он часто бывает, что баги, уязвимости… общие для всех версий г… окон
Я декомпилил ядро десятки, куча функций в ASM вообще не отличалась от Win2000.
ASM имеется в виду декомпилированное представление. А исходники были на обычном C. То есть даже в десятке есть куча унаследованного кода на C.
Что-то сильно сомневаюсь. Скорее наоборот 90% исходников совпадает
на васме/клабе и еще некоторых форумах тусуется группа (или это один сумасшедший), выкладывающий «сборки ХР 2020». Только какой смысл в этом, если современные программы не будут работать на ХР (в большинстве).
Конечно, большинству обывателей кроме браузера ничего и не надо, но если брать другой софт — то нужно искать древние версии и прочие костыли.
тоже мечтаю об этом, но увы… с поддержкой современного железа и больше 4 Гб оперативы была бы суперсистема
Так поддерживалось больше 4 Гб оперативы на XP 64. Сидел на такой некоторое время. С железом тоже проблем не возникало. А вот все последующие винды настолько не понравились, что забил я в итоге на винду и ушёл к чертям на Linux Mint. Он сейчас больше на винду похож, чем нынешняя винда.
поддержка ХР 64 закончилась ещё раньше, чем обычной ХР, там даже sp3 не было… А тут можно было бы относительно актуальную версию сделать с обновлениями от Embedded версии до 2019 года…
поддержка ХР 64 закончилась ещё раньше, чем обычной ХР

Да вроде нет, всё так же было. А ещё был финт с установкой обновлений от 2003 сервера, у которого поддержка была несколько дольше.
SP3 не было из-за того, что для XP64 за основу взята win2003, а не клиентская XP. Сервис-паки у них разные; xp64 SP2 был ближе к xp-шному SP3.
Чтобы сообщество могло обеспечить поддержку современного железа, нужны не исходники XP, а исходники драйверов этого самого железа, чтоб их можно было под XP портировать. Но увы — тут всё совсем плохо. Для для «открытых» систем типа RPi драйвера наполовину состоят из блобов, и производители железа скорее обанкротятся, чем согласятся открыть их исходники.
Ну есть еще вариант допилить ядро XP так, чтобы под ним работали драйвера от современной винды :)
Чем такое «допиленное ядро XP» будет отличаться от современной винды?
Ну винда это же не только ядро. Вопрос стоял в поддержке нового железа на XP. Формально я вижу два пути: сделать драйвера под железо для XP или доделать XP так, чтобы использовать готовые драйвера.
При это я отлично осознаю, что второй путь тернист на столько, что никто в здравом уме этим заниматься не захочет :)
Есть и третий путь: «использовать новую винду и говорить, что это доделанная XP».
Где граница между вторым путём и третьим, я не понимаю.
В новой винде будет все новое, а в XP с допиленным ядром, все кроме ядра и драйверов будет старое :) Я согласен с тем, что затея — так себе.
Этот слив — просто подарок для военщины и спецслужб. Не в плане поиска бэкдоров, а в плане гарантии их отсутствия. Можно скомпилировать и установить на офисные ПК секретарш генеральш МО.
Военщина и спецслужбы всегда использовали сертифицированную версию виндов, которая и так была исследована Атласом (соответствие исходников и бинарников тоже проверялось).
ФСТЭК'у абсолютно точно дают доступ к полным исходникам. Мало того — не знаю как сейчас, но во времена XP сертифицированные ФСТЭК'ом дистрибутивы и апдейты они сами собирали насколько я наслышан.
Ух ты! И как это в переходах ещё не продают диски с этими исходниками?
Для меня это тоже большая загадка. Могу предположить что майкрософт дает это делать ФСТЭК'у только на жестко залоченных компьютерах в московском офисе самого майкрософта.
Ну вот, исходников Kernel Patch Protection (в девичестве Patch Guard) опять нет ((
А собственно о чём это я, он появился в SP1, а утёк голдовый релиз.
Я читал что в этих исходниках как раз sp1, разве нет? Там просто нет некоторых совсем sensitive вещей по типу WPA.
Ну, эти исходники датируются 2003 годом максимум, а KPP появился в 2005. То есть SP1 тут для 32 бит, это ближе к релизу x64. Суть в том, что тут нет даже тех функций, в которых вызывается KPP. В WRK, к примеру, не парились с их пыпиливанием, а просто положили заглушку с пустой функцией (и 150кб отладочной инфы).
Вообще только из исходников можно почерпнуть маленькое тайное знание, что если запустить Task Manager, на клавиатуре зажать клавишу «Control», и удерживая её, вы