Pull to refresh

Comments 396

UFO just landed and posted this here
Ну так правильно. Какой смысл в ReactOS, если она не будет лицензионно чистой? Те, кому плевать на лицензии, всегда могут поставить крякнутую винду. Это тривиально. А вот легальная, свободная альтернатива — это уже намного сложнее, и интереснее.
UFO just landed and posted this here
На предприятиях куча специфического софта, написанного под ранние версии винды. Переписывать его нет никакого смысла — «работает — не трогай» (да и недешевое/небыстрое это занятие). А вот запасы старого железа не безграничны. Можно конечно возразить типа «виртуалки и все такое» — но нет, виртуалки плохо дружат с производственным оборудованием. Так что ХР-подобная ОС, которая дружит с новым железом нужна.

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

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

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

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

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

UFO just landed and posted this here
А в чём разница, через какое соединение железка работает с компом, если на компе управляющий софт и без него оная железка лишь железка?

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

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


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


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

UFO just landed and posted this here
компами с чипами риалтека не работают чпу

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


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

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


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

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

UFO just landed and posted this here
Именно подобный

Звучит как плохопрожареная дичь, атакующая в филей…
Скорее всего, случайная корреляция. Наиболее частая причина сбоев последовательного порта — это разные опорные частоты. Для МК даже приходилось специально искать неровные кварцы, чтобы стабильная передача была не на одной-двух скоростях из возможных.
В старых компах (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, емнип, автосогласования не умеет.

Знаете, общался я с «какими инженерами Самого Сименса». Либо они считают русских инженеров идиотами, либо моя инженерная квалификация выше. Общались по английски.
UFO just landed and posted this here
С итальянцами я тоже общался. У заказчика была проблема с линией по выпечке кондитерских изделий.
Впечатление хуже, чем от инженеров Сименса.
UFO just landed and posted this here
Когда два парных алюмниевых профиля у одного из которых тощина на 0,1 мм официально меньше, чем у другого, то кроме как вопросов «нафига так-то» не возникает.

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

> медаппарат от сименса
> замена матери на другое поколение
Вообще-то, в медтехнике запрещено менять железо на что-то другое.
UFO just landed and posted this here
Разумеется, нет. Но если у вас был прибор условно с Dell 100 — то вам будут этот Dell 100 чинить, пока Dell производит детали. А если окажется что Dell их перестал производить — скорее всего и гарантия на ваш прибор кончилась. Соответственно, вам не приколхозят к нему Dell 105 — а скажут купить новый, хотя он вполне может ничем от старого не отличаться.
UFO just landed and posted this here
Бизнес- и медицинские продукты — это несколько разные области. Медицина — это т.н. «регулируемая отрасль», наряду с телекомом и военкой.
Понятно, что очень многое зависит от страны клиента и принятого там уровня пофигизма. Когда я работал в телекоме — нам нужно было установить апдейт нашей системы у одного крупного провайдера. Проблема была в подписях, которые нужно было собрать для официального изменения версии. И тогда один из их (!) инженеров предложил «гениальное» решение — «вы изменения внесите, а версию не меняйте». И так — 12 раз подряд, пока не заработало.
Смысла в Linux нет никакого, всегда быстрее взять взломанный Unix чем прилить свой кривой. /sarcasm
Смысл в ReactOS еще и в том, что она открытая и можно тем или иным способом проверить что там нет бэкдоров.

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


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

>pdb файлы с отладочной информацией давал
Не на все. Например, atmfd.dll. В котором столько уязвимостей было, что пришлось его выпилить.
«Обезжиренное зло»(С)Доктор Зло из кф Остин Поверз
А сами Вы компилировать ничего не будете.

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

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

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

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


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

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


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

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

все так, к сожалению

UFO just landed and posted this here
переименование локальной переменной

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


типа абсолютного пути самого компилятора и стандартных заголовков, или например 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 о том, что дизассемблирование запрещено?

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

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

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


Как минимум стоит убрать ссылки пока их вместе со всем постом не убрало нло.
Не получится: 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 это другой файл, не имеет отношения к статье.
Понятие не имею. Он же зашифрован на открытие. Даже файлы не посмотришь.

Как выяснилось пароль internaldev.

Мусор. Куча BIN-файлов, большинство забито нулевыми байтами, в остальных какая-то фигня, видимо, понадёрганная кусками из всяких программ.

Вообще уже была утечка кодов нт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? Я думал, она написала все остальное…
Dinkumware раньше вроде как пилили стандартную библиотеку, но сейчас похоже что сама Microsoft занимается STL. Вообще, Microsoft сейчас много внимания уделяет C++, не то что было 10+ лет назад. Большая часть C++20 уже поддерживается (особенно в грядущем обновлении 16.8, что выйдет в октябре-ноябре), и походу в первой половине следующего года поддержка будет уже близко к полной.
А не NT build?

а это не одно и то же ?

Оказывается, используется razzle.cmd, buildx.cmd /z, postbuild.cmd
UFO just landed and posted this here

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

Там нашли огромное количество багов как в компиляторе, ассемблере и линковщике от 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, внезапно был расформирован, а его продукты заменены сторонними.
Так, те makefile, которые есть это явно не GNU make.
Мопед не мой, я посмотрел картинки (жаль, человек не сделал pwd), но название прямо указывает.

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

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

Заголовок спойлера
Я считаю что сейчас сила именно в поддержке, в постоянной актуальности систем. Что толку от ХР, хоть полностью ее копируйте, если она не запустится на 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 и с определёнными условиями (есть ли такое железо, указана ли загрузка таких модулей).

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

Это часть UEFI стандарта. Не уберут.
UFO just landed and posted this here
Ничего. Все нормальные прошивки 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.

UFO just landed and posted this here
В данном случае есть вся документация на signtool и stackechange))

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

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

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


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

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

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

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

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


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

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

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

UFO just landed and posted this here
Очень от серии ноутбуков зависит. Есть более дорогие, и сделанные для людей, а есть бюджетные — чтобы страдать при обслуживании или апгрейде.

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

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

Эх, значит мне просто повезло с теми несколькими ноутами. Спасибо за примеры.
UFO just landed and posted this here
Со всеми этими цифровыми подписями на драйвера, я даже собственный код на собственном компьютере запускать не имею права!

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

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

мне такой способ не известен

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

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

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

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

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

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

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

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

Что, всё настолько плохо, что там теперь Certificate Pinning и они не примут самоподписанный сертификат, если свой CA запихать в Trusted Root CA Store?
UFO just landed and posted this here
У ядра свой корневой сертификат. Если добавить самоподписанный сертификат в CA, то оболочка согласится установить этот драйвер, не ругаясь неприличными словами. Но при попытке загрузить этот драйвер ядро всё равно проверит сертификат, обнаружит, что он левый, и откажется его грузить. (Насколько я помню, это в Висте появилось, в 64-битной версии.)
UFO just landed and posted this here
Разве? Я попробовал сейчас в виртуалке с XP x64 поставить самоподписанный драйвер, он установился и загрузился. Или это с каким-то обновлением прилетало?
UFO just landed and posted this here
У меня SP2, последний.
Защиту системных файлов не исследовал, это в любом случае уже какой-то другой механизм, не имеющий отношения (во всяком случае прямого) к обязательности подписывания драйверов.
Там 100-и компонентов… Это надолго))
Где они публично расскажут, что получили незаконный доступ к чужим исходникам?
Почему этот доступ незаконный?
Это сейчас вопрос на полном серьезе?
Потому что исходник такой же объект авторского права, как свежее кинцо.
Винда вовсе не опенсорс, автоматом дающий право на какой бы то ни было доступ к исходникам, так что посмотреть их, это как рип с рутрекера.
Это вопрос на полном серьёзе и твой комментарий и аналогия с медиа-продукцией не убедили меня в том, что просмотр исходного кода может быть незаконным, если не ты сам его добыл незаконным способом. Для медиа существуют свои отдельные регуляции. Более того, даже в случае медиаконтента, его потребление не является незаконным в случае пиратства, незаконно (зависит от юрисдикции, но в целом, так) распространение.
Хотя я тоже считаю, что скачивание из открытых источников и изучение в целях самообразования утекших исходников не является незаконным, но отчёт от 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, которая разрешает воспроизводить в личных целях любое правомерно обнародованное аудиовизуальное произведение (и не только), но с некоторыми ограничениями (например, на концерте или в кинозале записывать без согласия правообладателя нельзя).
UFO just landed and posted this here

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

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

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

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

Это заголовок хайповый или в сливе действительно есть исходники ОС, а не только одной подсистемы 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
UFO just landed and posted this here
Не, это настройки проводника, если верить содержимому

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
Да их там вагон. И ни одного файла с их реализацией.
image
Вобщем, научился собирать любой компонент без всяких чудо-скриптов из папки tools и на своей системе без самой Windows XP. Правда компилятор придется использовать тот, который лежит со всеми исходниками. Современные компиляторы далеко ушли: ключи поменялись, синтаксис тоже. Такие древние хаки MS-компилятора с видимостью переменных как:
for(int i=0;i<COUNT;++i) {}; printf("%d\n",i);

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

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

Кстати, winlogon и Co там тоже нет, так что мне непонятно, как люди хотят готовый ISO…
UFO just landed and posted this here
Нет, там не сижу.

Компилятор интересуют только переменные окружения. Задача скриптов выполнить какие-то действия, необходимые для сборки (разослать письма о запуске сборки, позвать 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. Тогда на выходе будут готовые компоненты.
UFO just landed and posted this here
Ну по ошибкам компиляции будет явно видно какие компоненты нужны. дальше достаточно скомпилировать их — это не сложно (и их немного, обычно). Можно и незамысловатый скрипт написать (добавил в предыдущий комментарий).
Кстати, winlogon и Co там тоже нет, так что мне непонятно, как люди хотят готовый ISO…


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

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

Мне лично интересны исходники Directx 12 для ray tracing.

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

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

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

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

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

В любом случае ваше утверждение не соответствует действительности:
«По ссылке только немножечко драйверов и сторонний софт».
Почему про открытое ядро macOS вы решили умолчать?
UFO just landed and posted this here
Так и тут — ядро открытое, множество драйверов открыто.
UFO just landed and posted this here
Мой предыдущий комментарий не заметили?
Проще не замечать, да.

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

UFO just landed and posted this here
На экзелабе проскочила инфа, что исходники висты тоже давно слиты. Только в паблик не выкидывают. А XP выкинули, потому что с них уже поиметь нечего.
UFO just landed and posted this here
В сеть утекли исходные коды операционной системы 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 — юнит тесты для интерфейса? Наверное, можно, но что-то не слышал про такое.

UFO just landed and posted this here

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

Ну что, кто первый запустит XP в UEFI или kexec'ом?

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

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

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

Его отдельная компания пилила. Кажется, Sierra.

Нет, 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, просто до какого-то момента под тем же названием.
UFO just landed and posted this here
маловероятно — он часто бывает, что баги, уязвимости… общие для всех версий г… окон
UFO just landed and posted this here
UFO just landed and posted this here
Что-то сильно сомневаюсь. Скорее наоборот 90% исходников совпадает
на васме/клабе и еще некоторых форумах тусуется группа (или это один сумасшедший), выкладывающий «сборки ХР 2020». Только какой смысл в этом, если современные программы не будут работать на ХР (в большинстве).
Конечно, большинству обывателей кроме браузера ничего и не надо, но если брать другой софт — то нужно искать древние версии и прочие костыли.
UFO just landed and posted this here
Так поддерживалось больше 4 Гб оперативы на XP 64. Сидел на такой некоторое время. С железом тоже проблем не возникало. А вот все последующие винды настолько не понравились, что забил я в итоге на винду и ушёл к чертям на Linux Mint. Он сейчас больше на винду похож, чем нынешняя винда.
UFO just landed and posted this here
UFO just landed and posted this here
SP3 не было из-за того, что для XP64 за основу взята win2003, а не клиентская XP. Сервис-паки у них разные; xp64 SP2 был ближе к xp-шному SP3.
Чтобы сообщество могло обеспечить поддержку современного железа, нужны не исходники XP, а исходники драйверов этого самого железа, чтоб их можно было под XP портировать. Но увы — тут всё совсем плохо. Для для «открытых» систем типа RPi драйвера наполовину состоят из блобов, и производители железа скорее обанкротятся, чем согласятся открыть их исходники.
Ну есть еще вариант допилить ядро XP так, чтобы под ним работали драйвера от современной винды :)
UFO just landed and posted this here
Чем такое «допиленное ядро XP» будет отличаться от современной винды?
Ну винда это же не только ядро. Вопрос стоял в поддержке нового железа на XP. Формально я вижу два пути: сделать драйвера под железо для XP или доделать XP так, чтобы использовать готовые драйвера.
При это я отлично осознаю, что второй путь тернист на столько, что никто в здравом уме этим заниматься не захочет :)
Есть и третий путь: «использовать новую винду и говорить, что это доделанная XP».
Где граница между вторым путём и третьим, я не понимаю.
В новой винде будет все новое, а в XP с допиленным ядром, все кроме ядра и драйверов будет старое :) Я согласен с тем, что затея — так себе.
Этот слив — просто подарок для военщины и спецслужб. Не в плане поиска бэкдоров, а в плане гарантии их отсутствия. Можно скомпилировать и установить на офисные ПК секретарш генеральш МО.
Военщина и спецслужбы всегда использовали сертифицированную версию виндов, которая и так была исследована Атласом (соответствие исходников и бинарников тоже проверялось).
И что, давали исходники военщинам Китая, Ирана и России?
Ага, еще и сами платили за исследования :)
ФСТЭК'у абсолютно точно дают доступ к полным исходникам. Мало того — не знаю как сейчас, но во времена XP сертифицированные ФСТЭК'ом дистрибутивы и апдейты они сами собирали насколько я наслышан.
Ух ты! И как это в переходах ещё не продают диски с этими исходниками?
Для меня это тоже большая загадка. Могу предположить что майкрософт дает это делать ФСТЭК'у только на жестко залоченных компьютерах в московском офисе самого майкрософта.
UFO just landed and posted this here
UFO just landed and posted this here
Я читал что в этих исходниках как раз sp1, разве нет? Там просто нет некоторых совсем sensitive вещей по типу WPA.
UFO just landed and posted this here
Вообще только из исходников можно почерпнуть маленькое тайное знание, что если запустить Task Manager, на клавиатуре зажать клавишу «Control», и удерживая её, выбрать в меню File->Run New Task, то вместо диалога «Create New Task» запустится командная строка cmd (причём сразу с привилегиями администратора и без диалога UAC). Практическая польза невелика, но забавно.
Видимо по ходу разработки шелл время от времени отваливался, так что разработчик оставил себе возможность запускать приложения даже при отсутствующем диалоге. Это работает до сих пор и в десятке и вроде как недокументировано.
практическая пользя велика — задолбаешься вводить «cmd.exe» и вручную вешать галочку «От админа». А если запускать от не-админ пользователя — тоже от админа стартанется? Если да это брешь
Ну просто я отсюда редко когда что запускаю, так как ровно тот же диалог через Win+R запускается, а для того, чтобы запустить процесс с правами админа надо просто контрол с шифтом зажать (что документировано). Но если диспетчер задач уже под рукой и нужна командная строка — то да, удобно.
Я не думаю что там брешь, поскольку Task Manager сам по себе с админ правами запущен (и UAC отрабатывает), а при зажатом контроле внутри там cmd просто через CreateProcess запускается, что вполне себе легитимно.
А если запускать от не-админ пользователя — тоже от админа стартанется?
Нет.

runas /user:exampleuser taskmgr

File -> Ctrl+«Run New Task»

C:\WINDOWS\system32>netstat /abn
Запрошенная операция требует повышения.
и без диалога UAC

Вот если бы в XP выскакивал диалог UAC, появившийся в Vista — это было бы более удивительно.
Забавно, что Build 3970 (Server 2003), датируется 24.03.2003, а слив на 4channel — 24.09.2020.
Разница между датами ровно 17 лет и 06 мес.
Так уже собрал кто-нибудь? XP? Плз, апдейтите пост на эту тему, чтобы постоянно все комменты не мониторить. Заранее спасибо. P.S. Сейчас ссылка на этот пост на многих ресурсах проставлена, вы в фокусе общественного внимания ))
Paint это не интересно. Вот был бы Photoshop... Интересно весь путь от торрента до .iso. (Ну, до бинарей, iso это уже дело техники).

Лично мне просто любопытно, сколько времени у сообщества это займёт. Я давно читал одного манагера из мелкософта, который выступал в том ключе, что, мол, дадим мы вам сорцы, и что вы с ними делать будете? У нас там 100500 команд занимаются только билдом, употели, бедняжки. (Не помню только, это про офис или винды говорилось). Так что, мы лучше сами побилдим для вас, блаблабла. Моя ставка — меньше недели. Кто меньше? )
UFO just landed and posted this here

А в чем цель того проекта была ?

UFO just landed and posted this here
Сообщество слёзно молило о Presto, и в итоге его получило (хоть и не тем путём, что хотелось бы). Результатов пока что-то не видно.
UFO just landed and posted this here
Лично мне просто любопытно, сколько времени у сообщества это займёт. Я давно читал одного манагера из мелкософта, который выступал в том ключе, что, мол, дадим мы вам сорцы, и что вы с ними делать будете? У нас там 100500 команд занимаются только билдом, употели, бедняжки. (Не помню только, это про офис или винды говорилось). Так что, мы лучше сами побилдим для вас, блаблабла. Моя ставка — меньше недели. Кто меньше? )

Так. Новости плохие, новости хорошие.
Хорошие — толковый инженер меньше, чем за месяц найдет способ собрать 90% исходного кода из указанной утечки. Найдет тулинги соответствующие, надет возможность запустить сборку.
Плохая новость. Первая — исходники там не полные. Как обычно, в утечках не хватает нескольких критичных деталей, которые не позволяют собрать полный дистрибутив. Но опять же — 90% софта собирается. А файлы, которых не хватает — можно взять из офдистриба. Вторая — время сборки достаточно большое. Ну, пускай, условная неделя. И это получится набор артефактов (DLL, EXE собранные). Не ISO. До ISO довести — еще нужно подумать головой, найти официальный способ собранное запаковать. Но даже в виде DLL/EXE бОльшую часть можно запустить. Третье — то, что Вы соберете — может быть не полностью функционально (например, флаги какие-то надо проставить), не полностью совместимо с официальной сборкой (например, из-за того, что использовали другой компилятор). Короче, надо тестировать, чтобы получить именно полноценную рабочую сборку.

>время сборки достаточно большое

Это типо шутка? 1 час сборка занимет, ядро linux за 40 минут собирается, chrome за 6 часов. Через github actions или colab можно за 10 минут собрать. На epyc наверное и того меньше.

Что за детский сад?


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

Спасибо, но там говорилось, что у MS есть целая ферма и 12 часов — это у них фундаментальная константа. Получается, что на машине разраба (пускай и современной) все дерево будет собираться over 12 часов. А неделя — извините, да, я загнул, просто с запасом взял )))) Как следующая временная веха после "суток"

Дабавьте nvme диск и эти 12 часов превращаются в полчаса. То же было с ядром linux.

Пруфы будут? Именно по сборке винды?
И, да, ядро линукса меня не особо интересует. Тут речь про всю ОСь, а не про ядро

Вы понимете, что 60 ГБ исходников Chrome собираются за 6 часов на моем компе? Вы вообще похоже не разбираетесь. Ну это ж просто смешно.
Наглядно, но не убедительно.
Как узнать, что скомпилировавшиеся файлы — это вся винда целиком? И что все они работоспособны?
UFO just landed and posted this here
Там в конце собирается (пока что нет) ISO.
Сборка занимает 3 часа на компе с Windows XP youtu.be/8IyW-bwGQTQ
Как вы думаете, сколько времени это будет на моем 960 Pro на PCI Express 3.0?
UFO just landed and posted this here
Оно упирается в cl.exe. Старый.
Если под «неделя» подразумевалась моя версия, я имел в виду не время сборки (во-первых, я понятия не имею, какое оно может/должно быть, во-вторых, наверно от железа зависит, в-третьих вопрос кажется мне малоинтересным), а время, за которое сообщество, цитирую gecube, «найдет способ собрать 90% исходного кода из указанной утечки». (У него хорошо получилось сформулировать, только он написал про одного толкового инженера, а я имел в виду общий результат).
Спасибо за развёрнутый ответ!
В Твиттере был скриншот, собрали ядро.

Но надо понимать, что это исходники то ли «голой» XP, то ли SP1. По функциональности до SP3 там далеко.
UFO just landed and posted this here

Возможно, в исходниках можно будет подсмотреть закрытые сетевые протоколы, и это поможет, наконец, полноценно перенести их в Линукс.

UFO just landed and posted this here

Наверное, имеется в виду, что в Linux отстающие реализации Samba и NTFS (да, это не сетевой протокол, но тем не менее).

Только реализация из 2003 слабо поможет реализации современных фич. Разве что отдельные мелкие ньюансы пофиксить…

Какие такие фичи добавились в NTFS после 2003?
UFO just landed and posted this here

Для сообщества гораздо больший интерес представляет самба. Точнее, имплементация AD.

Да? А что именно из Active Directory еще не сделано?

Леса, например.
Не то чтобы они были essential, но для включения в действительно крупную компанию, построенную вокруг AD — несколько мешает.

UFO just landed and posted this here
Интересно как после этой утечки, будут обстоять дела с драйверами NTFS?

так же как и раньше, очевидно. Кодом из утечки пользоваться нельзя, можно вдохновиться алгоритмами оттуда, но по ходу — вышла уже 10ка и там есть своя специфика, по которой настоящие сурцы не помогут

В оболочках 6.0~6.3 и 10 пропал целый ряд функций, которые были в 5.1 SP2/SP3 «из коробки», вот мои любимые:
  1. Проводник → Сервис → Свойства папки (Панель управления — Свойства папки) → Типы файлов → (НЕТ) AudioCD; (НЕТ) DVD и прочее (HKCR\InternetShortcut и HKCR\ConferenceLink и др.) — этого нет ни у NirSoft`овском FileTypesMan, ни у простенькой панели управления Types, уже не помню, чьего производства. Например, удалили какой-нибудь сторонний DVD-видеопроигрыватель из системы — теперь двойным кликом содержимое DVD-диска не увидишь (хороший способ приучить пользоваться контекстным меню) — В XP решалось в «Типы файлов», а начиная с висты и далее — только колупаясь в реестре или искать-качать готовый фикс.reg. А вот старый добрый File Type Manager 2 Фрэнка Уорсли понимает и AudioCD (Multimedia) и DVD, вот только изменить их ассоциацию почему-то не позволяет, NirSoft`овский хоть типы «Папка» (Папка с файлами), «Drive» поддерживает, но это ведь не всё;
  2. Беспроводные сети (конкретного адаптера) — в XP было наилучшее решение. В 7-ке ещё хуже, чем в висте (окошко с сетями хотя бы не закрывалось), а в 10 окончантельно разочаровало, более того, даже простое PPPoE соединение теперь через «Сетевые подключения» устанавливать стало труднее (раньше было просто — «два раза Enter»)!
  3. Кто поймёт под спойлером эти строки файла desktop.ini, тот меня поймёт.
    [ExtShellFolderViews]
    {BE098140-A513-11D0-A3A4-00C04FD706EC}={BE098140-A513-11D0-A3A4-00C04FD706EC}

    [{BE098140-A513-11D0-A3A4-00C04FD706EC}]
    IconArea_Image=Background.bmp
    IconArea_Text=0x0005EF32
    IconArea_TextBackground=0x00561000
  4. Профили оборудования (если вдруг винда перестанет запускаться после выбора «поломанного профиля», можно загрузиться с аварийного, если тот был предварительно создан – не раз эта фича спасала (и длительное восстановление системы не требовалось), жалко, что не всегда — уж лучше б каждый ControlSet был отдельным физическим файлом. Теоретически, можно создать символическую ссылку в кусте SYSTEM с именем ControlSet№№№, ссылающийся на другой файл, вот только как сделать так, чтоб этот куст загружался сразу же после Boot (соответственно в разделе CurrentControlSet\Control\hivelist этот файл уже станет указываться, и если этот файл куста случайно повредить, то файл «system32\config\system» останется целым)?
  5. Пользовательские столбцы свойств для «Табличного вида» проводника добавлялись сторонними приложениями.
    Ещё одна странность: к примеру, в куче mp3 файлов заполнен тег «Поэты» (авторы слов песни) он же «Lyricist(s)», но в висте, и вплоть до 10-тки этого столбца в проводник добавить не удосужились! Т.е. ради сортировки по этому тэгу нужно использовать либо проигрыватель, либо другой файловый менеджер, а может даже и вовсе другую оболочку.
    Хотя, к ID3 у меня отдельная претензия
    лучше б разделяли значения новой строкой (0A: line feed или в связке с 0D), вместо ";" и "/"

Кстати, ещё на SP2`й висте работает твик с цветами сжатых и зашифрованных файлов/папок (когда тема с обратным контрастом, можно избавиться от синего цвета на тёмном фоне), и не только в диалогах «Открыть/Сохранить файл/в папку» но и в обычном режиме проводника! А, ещё «Центр управления сетями и общим доступом» в висте более информативен. Ой… что-то меня на висту унесло, забыв, чтó нужно ещё нужно содрать с XP`шки (неужели оболочка висты оказалась мне более привлекательной?)…

Other news