Comments 396
Поддержка embedded XP есть до сих пор, если что, но не для всех, конечно.
Ну и она в тыкву не превратится и не превратилась, когда срок поддержки закончится.
Если софт настолько немодифицируем — оно в интернет вряд-ли смотрит и никто не органичивает использование легальной ОС.
Ну и она в тыкву не превратится и не превратилась, когда срок поддержки закончится.
Она отказывается "дружить" с новым компьютерным железом, драйвера на которое есть только под десятку. Даже семерку порой уже не водрузить на новый компьютер.
Придет время, и все совместимое компьютерное железо превратится в тыкву по причине банального физического старения, а останется в доступе только новое. А вот железка стоимостью, на порядки превышающей стоимость самого крутого современного компьютера, сделанная в отличие от этих самых компьютеров на века, может продолжать жить, и ею надо будет как-то управлять.
А то у нас есть одна такая железка, работающая через RS-232. Компьютер, с которым она работала изначально, давно на помойке, а она продолжает работать через USB-адаптер под WinXP в виртуалке.
Через последовательный порт. И все бы хорошо, оно даже "правильного" последовательного порта не требует, довольствуется USB переходником, но управляющая программа, зараза такая, напрочь отказывается работать в виртуалке (а еще при запущенном отладчике и при установке на ту же машину некоторых средств разработки), громко вопя про попытку бедную программу взломать (точнее ругается на запуск под отладчиком, что считается ею недопустимым). А еще она почему-то "не любит" винды версии выше ХР.
А в чём разница, через какое соединение железка работает с компом, если на компе управляющий софт и без него оная железка лишь железка?
Разница в том, удастся запустить этот управляющий софт под VM, или нет.
Если, например, к железке для подключения к компьютеру прилагается плата ISA, то VM не поможет.
то VM не поможет
Зато поможет pci-isa bridge.
Собственно, ISA, кажется, до сих пор есть в компьютерах (Intel) в виде LPC. Эта штука делает то же самое, что PCI-LPC bridge, и как pci-устройство, может быть проброшена в VM. А в свою очередь, для ВМ можно эмулировать соответствующий процессор.
Разумеется, без реального устройства сложно говорить наверняка, но как минимум, видны обходные пути.
И даже если мост с платой не заработает, можно подключить плату к плисине, умеющей со стороны хоста в нормальный pci-e.
Am0ralist, в общем, как раз IT'шник в лице одной пушистой морды, видит пути решения.
компами с чипами риалтека не работают чпу
Не зная, какой именно чип имеется ввиду (не звук/сеть же?), сложно гадать. Вполне возможно была кривая реализация опорной частоты, в результате чего на используемой скорости происходила рассинхронизация.
Причем, не факт, что проблема была не на стороне устройства.
Под медаппарат от сименса было немного не так, но там тоже замена матери привела к тому, что несколько дней их инженеры долбились и в итоге вроде как привезли такую же мать из-за границы.
А вот за закупку и производство таких чудес — вообще надо банкротить принудительно, чтоб неповадно было.
вы виртуалки под каждую такую магию шаманить будете?
А это обязательно, особенно, если проблема решается заменой мелкого устройства-посредника на более совместимый вариант?
Собственно, ответ и будет ответом на ваш вопрос.
Именно подобный
Звучит как плохопрожареная дичь, атакующая в филей…
Скорее всего, случайная корреляция. Наиболее частая причина сбоев последовательного порта — это разные опорные частоты. Для МК даже приходилось специально искать неровные кварцы, чтобы стабильная передача была не на одной-двух скоростях из возможных.
В старых компах (PCI) uart'ы могли тактироваться от системного источника с n×33,3(3), в компах поновее (PCI-e) — 100МГц. Ни то, ни другое к стандартной сетке толком не приводится.
Потому если порты не снабжены своим собственным кварцем и генератором, то стабильность работы, сами понимаете, оставляет желать лучшего.
На практике…
Увы.
вы сейчас про сименс или про коммерческую лабораторию
Про производителей и потребителей тивоизации. Будь они хоть карманными фирмами лично президента.
До инженерного подхода в повсеместной разработке нам ещё далеко…
Всеми лапами за. И хвостом.
Промстандарты, как бы, отлично документированы. И тот же Сименс, покупая консьюмерское железо вместо промкомпа должен вести списки совместимости. Если инженеры вышли за пределы списков самовольно — это их косяк, конечно.
Если соблюдать стандарты и подбирать совместимое железо (а без этого не получится серийного производства) то ломаться на ровном месте будет нечему, и никакая процедура получения бумажек тут не может помешать, потому что работающего железа они не касается никак.
А если и так сойдет, и вообще клиент же тогда к нам опять обратится — то получаем что имеем.
Разумеется, количество геморроя сильно зависит от того, чем управляет этот компьютер — планированием татуировок на фото (Class I) или NFC-программатором кардиостимулятора (Сlass III).
То есть, вы предлагаете на удешевленную плату (Realtek вместо Intel), из которой для удешевления выкинули кварц и генератор, поставить отдельным корпусом синтезатор частоты? )
Этот может и ошибаться, но оно так не должно работать.
Вы забыли про погрешность.
Синтезатор может быть выполнен на простом делителе. ФАПЧ, кажется, приказала долго жить с аналоговыми умножителями частоты?
И если используется системный генератор, то все упирается в его реальную частоту. А RS 232/485, емнип, автосогласования не умеет.
Впечатление хуже, чем от инженеров Сименса.
> замена матери на другое поколение
Вообще-то, в медтехнике запрещено менять железо на что-то другое.
Понятно, что очень многое зависит от страны клиента и принятого там уровня пофигизма. Когда я работал в телекоме — нам нужно было установить апдейт нашей системы у одного крупного провайдера. Проблема была в подписях, которые нужно было собрать для официального изменения версии. И тогда один из их (!) инженеров предложил «гениальное» решение — «вы изменения внесите, а версию не меняйте». И так — 12 раз подряд, пока не заработало.
Винду тоже в теории можно проверить на наличие бекдоров. У них есть программы, по которым можно получить доступ к исходникам. Это, конечно, не отвечает на вопрос — а действительно ли конкретные бинарно были скомпилированы именно из этих исходников. Но это же справедливо и до реактос. А сами Вы компилировать ничего не будете.
А ещё… ещё мелкософт pdb файлы с отладочной информацией давал. Так что, да, они — корпорация зла, но не абсолютного ))))
Не на все. Например, atmfd.dll. В котором столько уязвимостей было, что пришлось его выпилить.
А сами Вы компилировать ничего не будете.
Можно подумать это тривиальный процесс для исходников такого уровня
В это очень мало верится. Потому что на окончательный бинарный код влияют библиотеки, магические константы, и флаги компиляции (всякие оптимизации и все такое). Да и теория повторяемых (бинарно!!!) сборок стала зарождаться совсем недавно.
Потому что на окончательный бинарный код влияют библиотеки, магические константы, и флаги компиляции (всякие оптимизации и все такое).
Их тоже можно повторить, для этого требуют точные инструкции.
Да и теория повторяемых (бинарно!!!) сборок стала зарождаться совсем недавно.
Недавно — это когда? Рассказ от Сергея Кубушина, как софт для игровых автоматов проверяла соответствующая комиссия в США и требовала повторяемости результата, для чего им пришлось подпилить GCC и оторвать у него генерацию таймштампов — это 2000 или 2001. И им не нужна была какая-то "теория", им достаточно было нескольких простых действий. И это только тот случай, что мне лично знаком, а наверняка это делали и раньше.
Если вы про "теорию" имели в виду обеспечить повторяемость между разными компиляторами — по-моему, это сейчас нереально. А вот убрать явно мешающие элементы в виде таймштампов и укротить абсолютные пути (или предписать конкретные при сборке), убрать параллельную сборку — это вещи, которые грамотный программист ловит за пять минут спокойного раздумья.
Вот что интересно в этом плане в связи именно с Windows — насколько на результат сборки будут влиять принудительные апдейты 10ки...
Предполагаю, что влиять на генерируемый машкод могут и более тонкие факторы, типа абсолютного пути самого компилятора и стандартных заголовков, или например hostname.
все так, к сожалению
переименование локальной переменной
Это изменение кода. Всё законно, даже если парадоксально.
типа абсолютного пути самого компилятора и стандартных заголовков, или например hostname.
Вообще как раз где-то в начале 2000-х Linux мир озаботился проблемой проверки зависимости сборки пакетов от ряда факторов, включая порядок установки зависимостей (были плачи на это), корректности исполнения настроечных пакетов и т.п.; как результат, например, была порождена OBS. Этот подход, или его клоны для более странных дистрибутивов, сейчас основной, и подходы типа "пересобираем с нуля раз в сутки, а если что поменялось без объяснения — ищем причину" приняты, соответственно, сильно больше десяти лет. И влияние hostname и пути к компилятору исключено тоже очень давно. Фирма, где я работал 2008-2014, делала свой дистрибутив, и этот процесс я наблюдал в подробностях (работали как раз через OBS).
(Уточнение: если путь к компилятору означает путь к libgcc_s или аналогу — то разница, конечно, будет. В RedHat devtoolsets это пришлось специально отрабатывать, вместе с версией стандартной библиотеки C++.)
Да, подход OBS означает наличие сборочного контейнера (ещё в до-докеровские времена, это может быть и простой chroot). Но это доступно в Unix мире ещё с конца 80-х, и потому проблемы не составляет.
www.cs.cmu.edu/~rdriley/487/papers/Thompson_1984_ReflectionsonTrustingTrust.pdf
Я говорю не о законе, а о реальности. Да, по закону чтение скорее всего запрещено, и поэтому говорить об этом нельзя,
Если чтение исходников запрещено значит они что-то скрывают, вполне возможно что-то плохое и/или незаконное
Напомните, какой закон нивелирует пункт EULA о том, что дизассемблирование запрещено?
Они утверждали, что код с требуемой функциональностью можно написать только одним способом, так что совпадение было неминуемо.
Вот не думаю, что они совсем не подсматривают
Можно даже и подсматривать, но при этом подсматриваюший должен написать спецификацию (что и как делать), а кодер уже может по этой спецификации сделать свою реализацию. Если кодер не будет в контакте с подсматривающим, то это вполне законно, в том смысле что кодера никак не привлечь (если не нарушены другие вещи, типа патентов) — а вот подсматривающий может получить по ушам, если, к примеру, он под NDA.
Материал, возможно, будет дополняться.
Как минимум стоит убрать ссылки пока их вместе со всем постом не убрало нло.
Также убрал эту ссылку в статье, дабы НЛО не сердилось))
в торренте прикол. там лежит архив windows_xp_source.rar (не тот, что в статье). а в текстовом файле пишут, что это исходники xp, а может и не исходники, потому что файл запаролен. :) как говорится, пилите шура...
Еще какие-то видео есть, их не качал даже.
Вообще уже была утечка кодов нт4 и w2k когда-то давно. Вот опять… можно попробовать найти все и проследить историю развития системы.
Вы точно смотрели его исходники? Ознакомьтесь, что такое native api. Не поленился, посмотрел — там используется классический message loop с использованием GetMessage, TranslateMessage, DispatchMessage ((LPMSG)&msg) и вообще вся работа с окнами весьма стандартна.
Во-вторых, опираться для написания ОСи на компилятор с закрытым кодом опасно.
!?!? Аргументы какие-то детские.
Во-первых, Gcc не лучший. Тогда уж лучший clang и llvm
Во-вторых, разрабы cl.exe — сама мелкософт. Лучше уж зависеть от продукта соседнего отдела, чем непонятно от чего.
В третьих, я попросту не помню включений гцц туда
В четвёртых, у операционной системы, ядра оси, драйверов свой тулкит для сборки. MSBUILD. И его можно даже бесплатно посмотреть в составе того же NTDDK, w2kddk или других ddk.
Эээ… Вот проект компиляции ядра 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 — сама мелкософтКомпилятор разрабатывается самой Microsoft. Работа Edison Design Group задействована только в той части что отвечает за IntelliSense, то есть только в редакторе кода, по части подсветки синтаксиса и автодополнения кода. По этой причине, некоторые вещи, которые на самом деле не поддерживаются компилятором, подсвечиваются в редакторе, и наоборот.
Нет. en.wikipedia.org/wiki/Edison_Design_Group
А не NT build?
а это не одно и то же ?
Там нашли огромное количество багов как в компиляторе, ассемблере и линковщике от llvm, так и в ядре linux (в основном, только благодаря статическому анализату в llvm).На сколько я понимаю, во-многом сложности сборки ядра Linux при помощи LLVM/Clang были связаны с тем, что при разработке ядра активно используются нестандартные расширения GCC.
Разработчики Clang пытаются поддерживать расширения как GCC, так и MSVC. Но так как это всё же сильно разные компиляторы, совместимость не идеальная. То что было написано изначально под GCC или MSVC, весьма вероятно что вероятно не соберётся под Clang, просто из-за небольших различий в строгости компиляторов, трактовке каких-то тонких моментов в стандарте, или разницей в реализации каких-то (нужных проекту) нестандартных расширений. Но это не значит, что Clang хуже GCC или MSVC. Если писать код изначально только под Clang, то он наверняка потом не соберётся как надо под GCC или MSVC.
А компиляция одних исходников разными компиляторами очень полезна как раз для нахождения сложных ошибок. Сам все проекты под железо обязательно делаю максимально кроссплатформенными с одновременным написанием эмулятора под 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 разрабатывает компилятор для МЦСТ».
Исторически, компилятор Си у Microsoft появился ещё до Windows 1.0, а компилятор Фортрана — ещё до MS-DOS.
Было бы очень странно, если бы отдел компиляторов, стоявший у истоков Microsoft, внезапно был расформирован, а его продукты заменены сторонними.
В сеть утекли исходные коды операционной системы Windows XP и Server 2003
Самый большой недостаток линукса для меня сейчас — в его неподдержке со стороны производителей десктопного железа, да, может все заработать идеально, но когда покупаешь ноутбук с сенсорным экраном и сканером отпечатков, и этот ноутбук выпущен 2 месяца назад, собран на последней логике (к примеру Интел 10ххх), там даже 10ка 1809 уже не работает, не видит контроллер диска, только на 1909+ версии завелось (у друга была история).
Ну во-первых, можно отключить проверку подписей.Штатными средствами нормально не отключить. Можно наверно сломать-подпатчить, но как тогда с апдейтами?
Во-вторых, можно получить Exended Validation сертификат и подписать…Вот так простому юзеру пойти и получить? Да и не хочу я ничего получать, я хочу чтобы мой компьютер исполнял тот код, который я запускаю! без всяких препонов и сертификатов.
Просто предъявите своему компьютеру документ, что вы это вы, который он сможет распознать, иначе ваш протест выглядит как отказ предъявить паспорт на погран контроле в аэропорту.
Нет, я ещё помню системы, где программу или драйвер можно было просто набрать в блокноте, скомпилировать и запустить. Если чужая программа работает не так, как хочешь — не проблема, в один тык открывается отладка, что нам не нравится — забиваем нопами, чего не хватает — дописываем. И даже вылет программы — не конец, если приаттачиться и аккуратно внести правки на ходу — процесс может продолжить работу и даст сохранить данные.
А теперь оказывается что на своём компе я не хозяин, а гость — и запускаться на компе будет не то, чему я доверяю, а то что одобрил какой-то дядька, выдающий сертификаты… Куда «не положено» не лезь, всевозможным зондам и «телеметриям» доступ в сеть не закрывай, за отключение автообновлений M$ подаст в суд.
На линуксе и сейчас так можно. Надо поправить драйвер? Просто берёте и делаете это. А если исправление полезно не только вам — отправляете в апстрим, дальше и другие люди с таким же устройством будут спокойно им пользоваться.
SecureBoot
Можно просто выключить.
И она монолитная же. Те драйверы, что в ядре не обязательно ведут себя как модули ядра
Што?
Часть драйверов вкомпиливается и в стандартных, но тут разницы особой нет, кроме одного случая — всё, что собрано прямо в ядро, будет загружено обязательно. Остальное — после монтирования rootfs и с определёнными условиями (есть ли такое железо, указана ли загрузка таких модулей).
На текущий момент эта функция в BIOS отсутствует.
Через пару лет будут выпускаться motherboard в которых будет отсутствовать возможность отключения SecureBoot и загрузки своих ключей.
>загрузки своих ключей
Это часть UEFI стандарта. Не уберут.
www.phoronix.com/scan.php?page=news_item&px=AMD-PPIN-Processor-ID-Linux
SecureBoot работает и в linux.И что мешает подписать ядро + загнать свой ключ в прошивку?
Никто не мешает вам работать на своем собсвенном компе под управление своего собственного кода. А я как разработчик хочу знать как именно вы используете разработанное мной оборудование и ПО и кто вы собствено такой. Если вы не хотите раскрывать свою личность, я не хочу чтобы вы использовали мое ПО.
Вы бы заплатили за «Windows с ответственностью» $2000 вместо $200?
Мой бизнес — разработка ПО и предоставление услуг хорошим на мой взгляд людям. Я несу ответсвенность за качество предоставляемых услуг в соответсвии с законом. Если вам нужен SLA и гарантии — я предлагаю Enterprise Support Contract и страховку на любой случай жизни за дополнительную плату.
Софт не оказывает услуги по эксплуатации, и автор софта тоже. Очевидно, эксплуатацией машины занимается некая организация, в ней существуют некие процессы и ответственные за эти процессы. Руководители организации обычно страхуют свою ответственность. И если кому то отрывает ногу, то это не может являться лишь следствием бага в софте. Как пример, Boing 735MAX и MCAS.
Там FDA заключила, что вред здоровью являлся следствием багов в софте.
Станет понятно, почему серьезный медицинский софт почти всегда поставляется вместе с компьютером, и мало кому среди эксплуатантов приходит в голову что-то с ним колхозить.
Вот так простому юзеру пойти и получить?
Можно сделать самоподписанный сертификат, добавить и собирать под ним ПО для себя.
Можно.
Только на экране будет постоянно гореть плашка о режиме отладки. Так было в Win8.
А в Win10 ещё и систему каждый раз надо запускать при помощи бубна (зайти в кучу менюшек и так при каждой перезагрузке).
Так весело запускать диагностический софт от машины, которому для работы нужен неподписанный драйвер (ибо софт времён WinXP) :(
Трудно представить себе более бесполезную трату времени, чем попытки изучить что-то техническое по ютубу. Ты или читаешь литературу по интересующей теме или не достигнешь ничего. По видосикам максимум можно получить поверхностное представление о предмете. Но прочесть это будет намного быстрее.
Disassembly manual в виде текста и серии фотографий IMHO удобнее, не нужно ловить нужный стоп-кадр самому. Плюс его можно без проблем распечатать. Но я в первую очередь имел в виду обучение программированию и смежные области.
Подавляющее большинство людей говорят медленно, со словами-паразитами, оговорками, паузами и мычанием, не всегда разборчиво. Видео приходится периодически ставить на паузу, чтобы в удобном для себя темпе совершить манипуляции. Всех этих недостатков у текста с иллюстрациями нет.
все так. К тому же, плотность информации текста достаточно (тем более с иллюстрациями) и там выделено главное — что очень ценно. Образцовыми мануалами считаю IBM Thinkpad Maintemance Manuals или HMM
всегда от этого страдал при сборке мебели. а видеоряд в этом плане более информативен.
Я лучше буду ловить стоп-кадр с непонятным моментом, чем искать мануал где автор не забыл про «очевидное» действие.
Кстати у видеороликов все та же проблема, автор показывает только то что считает нужным и как считает нужным.
Объясните? Если автор показывает видеоролик-инструкцию вида «Как сделать Х» без склеек то ему придется повторять все действия вплоть до мелочей, иначе выполнить действие банально не получится.
Вспоминаются уроки по андроиду от известных контор в некоторых даже законспектировать нечего, настолько они не информативны.
Обзор существующих возможностей и инструкция «как сделать конкретное действие» — все-таки разные категории туториалов.
У леновы бесят безвариантно распаяные 4ГБ. Особенно на райзенах.
Я когда-то намучался с простым перекидыванием жёсткого диска из видавшего виды Dell Inspiron (разобрать почти весь ноут, чтобы добраться до диска, прикрученного снизу к материнке, ибо крышечка на корпусе не предусмотрена для извлечения) в Dell Latitude 6-й серии(открытить отдин винт и вытащить салазки с диском).
Есть более дорогие, и сделанные для людей, а есть бюджетные — чтобы страдать при обслуживании или апгрейде.
зависимость совершенно не прямая. Поясню. Старые ThinkPad были прекрасными неубиваемыми кирпичами, но разбирались-собирались гораздо сложнее (100500 разных типов винтиков), чем какие-нибудь бюджетные Acer'ы популярных серий (типа Aspire 5520). При этом именно по ThinkPad всегда документация была в свободном доступе и я бы их HMM назвал эталонными.
Со всеми этими цифровыми подписями на драйвера, я даже собственный код на собственном компьютере запускать не имею права!
в семерке нужно отключить secure boot и подписать свой драйвер (например, во время сборки) своим же самопальным сертификатом, который установлен в системе. по крайней мере я так делал.
мне такой способ не известен
Подписанный таким макаром драйвер без всяких вопросов устанавливается и запускается системой, несмотря на то, что в его свойствах значится отозванный/истекший сертификат.
Не то чтобы это был какой-то секрет, эта штука много лет гулят по рукам (и на ру-борде даже выкладывалась), просто открыто не публикуют, а то ещё начнут всякие скрипт-кидди подписывать малварь…
А как Вы проверку сделаете валидной? Вот реально. CRL будете подкачивать из интернета при каждом установке драйвера? Или при его каждом запуске? А потом фигак — и у вас система не загружается, потому что драйвер контроллера диска устарел. Офигеть. Я уж не говорю о том, что юзер всегда может время подвинуть назад (у него пока такое право не отобрали, хотя возможно, что и зря)
С обновлениями могут прилетать свежие сертификаты и списки отозванных, дальше оно используется локально.
Но есть ньюанс… )
А вот при «древнекитайском» подписывании доступ в интернет не требуется, что позволяет отмотать системную дату на N лет назад. Что как раз даст ситуацию «подписано до отзыва».
И вполне можно разрешить работать тем драйверам, подпись которых была сделана после выпуска, но до его отзыва.
Так и сделано. Поэтому для подписывания истёкшим сертификатом используется виртуалка, в которой время отматывается назад. А пользователю такого драйвера ничего отматывать уже не нужно.
При этом, Windows прекрасно видит, что сертификат отозван и просрочен.
reactos.org/archives/public/ros-dev/2011-January/013840.html
Со всеми этими цифровыми подписями на драйвера, я даже собственный код на собственном компьютере запускать не имею права!
Что, всё настолько плохо, что там теперь Certificate Pinning и они не примут самоподписанный сертификат, если свой CA запихать в Trusted Root CA Store?
Ждём пост от pvs-studio.
Потому что исходник такой же объект авторского права, как свежее кинцо.
Винда вовсе не опенсорс, автоматом дающий право на какой бы то ни было доступ к исходникам, так что посмотреть их, это как рип с рутрекера.
Если же вы имеете в виду русское авось, дескать такая большая компания не будет обращать внимание на такую маленькую, то я лично нахожу такую практику неправильной. Как-то это несерьёзно, на мой взгляд
Вроде как цитирование разрешено.
просмотр исходного кода может быть незаконным, если не ты сам его добыл незаконным способом
А скачка и просмотр камрипа? Там тоже нарушение авторских прав совершается тем, кто его записывал, а не теми, кто скачивает и смотрит?
Последнее, а именно хранение на компьютере подобного контента, равносильно использованию (Ст. 1270 ГК РФ: «При этом запись произведения на электронном носителе, в том числе запись в память ЭВМ, также считается воспроизведением). Также, в ГК РФ отмечается, что не важно, используете ли вы такой контент, например, пиратское ПО для извлечения прибыли, или нет. То есть даже установленный на компьютере пиратский Photoshop — это нарушение закона.
habr.com/ru/company/hidemy_name/blog/403539
www.usatoday.com/story/tech/2019/12/16/can-get-arrested-streaming-illicit-movies-its-complicated/2662072001
Про Россию и применение закона в ней без комментариев.
Для проверки исходников PVS-Studio, с которой начался этот тред, — их необходимо скачать. После этого к PVS-Studio будут юридические претензии и в США, и в России.
Последнее, а именно хранение на компьютере подобного контента, равносильно использованию (Ст. 1270 ГК РФ
А как же ст. 1273? Произведение правомерно обнародовано в кинозале, кто-то неправомерно воспроизвёл его, и теперь я снова правомерно воспроизвожу его в личных целях.
Если есть исходный код, то его можно проверить на "закладки", а после скомпилировать с новым названием в качестве замены Астралинукса и мсвс… Госслужащие будут довольны...
его можно проверить на «закладки»
Конечно, достаточно поискать 'zakladka' в общем списке сурсов
Как и heartbleed, скорее случайно кто-то наткнется, чем целенаправленно найдет
Но я могу и заблуждаться :)
static
BOOL
FAR DIAMONDAPI
FDICopy (
HFDI hfdi,
char FAR *pszCabinet,
char FAR *pszCabPath,
int flags,
PFNFDINOTIFY pfnfdin,
PFNFDIDECRYPT pfnfdid,
void FAR *pvUser
)
{
return FALSE;
}
А это что?
NAME Cabinet WINDOWAPI
DESCRIPTION 'Windows Shell Application'
devblogs.microsoft.com/oldnewthing/20120109-00/?p=8643
XPSP1\NT\sdktools\restools\mui\muisetup\diamond.cpp
Module Name:
diamond.c
Abstract:
Implement File Decompression Interface -FDI- for Cabinet files.
for(int i=0;i<COUNT;++i) {}; printf("%d\n",i);
уже не работают =(
64-битный компилятор в Win10 не работает, поэтому получится собирать только i386 версии :)
Если кому интересно — напишу попозже.
Кстати, winlogon и Co там тоже нет, так что мне непонятно, как люди хотят готовый ISO…
Компилятор интересуют только переменные окружения. Задача скриптов выполнить какие-то действия, необходимые для сборки (разослать письма о запуске сборки, позвать signtool для импорта ключей и т.д.). Если нужно просто собрать, то эта вся обвязка не нужна.
Выдернул переменные среды:
@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, а дальше:
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. Тогда на выходе будут готовые компоненты.
Кстати, winlogon и Co там тоже нет, так что мне непонятно, как люди хотят готовый ISO…
Текущий план у товарищей с 4chan взять winlogon из слитых исходников win2000 и допилить его до состояния чтобы xp с ним работала. Еще смотрят в сторону sunlogon, исходники которого есть, но там прямо совсем минимальная функциональность.
В пень десятку, семерка лучше! А если пропатчат ХР до устранения багов, скажем, SMB1 (разве что там сам протокол уязвим), то будет ещё лучше.
Пусть лучше MacOS тогда ;)
По ссылке только немножечко драйверов и сторонний софт под открытыми лицензиями типа bash и openssh. Маловато для "открытой ОС".
opensource.apple.com/source/xnu/xnu-6153.141.1
en.wikipedia.org/wiki/XNU
В принципе согласен, но тогда и Линукс не свободный на 100%, и Андроид тоже — в них в обоих есть закрытые драйвера и бинарные блобы. Но если рассматривать свободность не в бинарном виде, а в виде непрерывной шкалы, то любой Андроид и Линукс даст фору MacOS...
Из тех кусочков, что по вышеупомянутой ссылке, вы MacOS не соберете и на маке не запустите
Собрать ядро и запустить можно:
kernelshaman.blogspot.com/search/label/XNU
Сможете пересобрать ядро Windows из открытых Майкрософтом исходников?
Сможете полностью собрать Андроид с гугловыми приложениями и драйверами?
В любом случае ваше утверждение не соответствует действительности:
«По ссылке только немножечко драйверов и сторонний софт».
Почему про открытое ядро macOS вы решили умолчать?
О боже, кто-то сподобился собрать это "ядро" и получил жалкое подобие левой руки FreeBSD, это неопровержимо доказывает, что макос — открытая система. Вам самому не смешно? Апелляция к Windows в этом контексте выглядит ещё смешнее, а прошивок на базе AOSP существует миллион, в том числе от того же Хуавея, который вообще "в гугле забанен". А то, что выложил Apple — это издевательство.
Скоро в Сколково «изобретут» чиста российскую передовую ОС.
Насколько они свежие?
Даты изменения файлов какие?
Linux Subsystem for Windows vs Windows Subsystem for Linux
twitter.com/NTDEV_/status/1309413434648391682
А почему нет-то? Я тоже компилировал исходники NT4 & W2k — там многого недоставала, но было интересно собрать тот же taskmgr с экспериментальными флагами ))))
Еще обратил внимание на неоднородность кода. Где-то — чистый С, где-то С++, где-то программы написанные на NT API. И вообще очень поразил очень грамотный подход к организации структуры кода и его сборке (там действительно были инкрементальные сборки за 100500 лет до Гугла и его bazel).
Вот с чем беда реально — это с тестированием кода… Но это тяжкое наследие крестов
Потому что сейчас культура юнит тестирования устаканилось. И по сути в каждом плюс-минус современном языке поддержка тестирования есть или на уровне языка, или на уровне стандартных библиотек, или есть какие-то общепринятые методики, которые не вызывают вопросов. А вот с с++ ничего такого не было. Да и ориентация на приложения с GUI — юнит тесты для интерфейса? Наверное, можно, но что-то не слышал про такое.
Селениум — это не то (это действительно про Веб), есть отдельные ДОРОГУЩИЕ комплексы, которые позволяют проводить тестирование GUI интерфейсов (там какие-то хитрые макросы записываются, с привязкой к, Господи, забыл, как это в винде называется — короче, дескрипторы окон и элементов). Но это как бы очень сильно отличается от юнит-тестирования кода (как это выглядит сейчас)…
p.s. минус не мой
В общем-то уже запускали, с использованием EFI загрузчика из утекшей бета версии Vista.
О, правда нашел вот тут: www.betaarchive.com/forum/viewtopic.php?f=61&t=39718
Читать тут: https://www.betaarchive.com/forum/viewtopic.php?t=20327&start=50
Видео тут: https://www.youtube.com/watch?v=Zjz-BgjDRQE
Содержит игры Hearts (на C++), Reversi, Solitare!
А pinball? Может, наконец, найдется?
Ура это круто! Дай бог что б кто то доработал и выпустил ХП под современное железо. Это было круто прикруто! Я всей душой ненавижу карявую десятку. Кто довёл до ума это прям мечта!
Проблема винды в том что ее нельзя переписать с нуля. Можно переписать userspace, но ядро все равно будет тянуться из времен NT ибо без обратной совместимости никуда.
Вот как раз ядро переписать можно, ибо программы в подавляющем большинстве к нему обращаются примерно никогда и кода в нем мало. Что, собственно, время от времени и происходит. Отчего старые драйвера, антивирусы, и прочее глубоко лезущее в систему ПО ломается от сервиспака.
А юзерспейс только дописывать, потому как совместимость не на уровне исходного кода, а бинарная.
Поэтому «попыткой натянуть фишки Висты» он точно не был — он существовал до Висты.
Конечно, большинству обывателей кроме браузера ничего и не надо, но если брать другой софт — то нужно искать древние версии и прочие костыли.
При это я отлично осознаю, что второй путь тернист на столько, что никто в здравом уме этим заниматься не захочет :)
Видимо по ходу разработки шелл время от времени отваливался, так что разработчик оставил себе возможность запускать приложения даже при отсутствующем диалоге. Это работает до сих пор и в десятке и вроде как недокументировано.
Я не думаю что там брешь, поскольку Task Manager сам по себе с админ правами запущен (и UAC отрабатывает), а при зажатом контроле внутри там cmd просто через CreateProcess запускается, что вполне себе легитимно.
А если запускать от не-админ пользователя — тоже от админа стартанется?Нет.
runas /user:exampleuser taskmgr
File -> Ctrl+«Run New Task»
C:\WINDOWS\system32>netstat /abn
Запрошенная операция требует повышения.
и без диалога UAC
Вот если бы в XP выскакивал диалог UAC, появившийся в Vista — это было бы более удивительно.
Разница между датами ровно 17 лет и 06 мес.
Лично мне просто любопытно, сколько времени у сообщества это займёт. Я давно читал одного манагера из мелкософта, который выступал в том ключе, что, мол, дадим мы вам сорцы, и что вы с ними делать будете? У нас там 100500 команд занимаются только билдом, употели, бедняжки. (Не помню только, это про офис или винды говорилось). Так что, мы лучше сами побилдим для вас, блаблабла. Моя ставка — меньше недели. Кто меньше? )
Лично мне просто любопытно, сколько времени у сообщества это займёт. Я давно читал одного манагера из мелкософта, который выступал в том ключе, что, мол, дадим мы вам сорцы, и что вы с ними делать будете? У нас там 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 часов. А неделя — извините, да, я загнул, просто с запасом взял )))) Как следующая временная веха после "суток"
Пруфы будут? Именно по сборке винды?
И, да, ядро линукса меня не особо интересует. Тут речь про всю ОСь, а не про ядро
Наглядно, хоть видео и ускорено.
Как вы думаете, сколько времени это будет на моем 960 Pro на PCI Express 3.0?
Но надо понимать, что это исходники то ли «голой» XP, то ли SP1. По функциональности до SP3 там далеко.
Возможно, в исходниках можно будет подсмотреть закрытые сетевые протоколы, и это поможет, наконец, полноценно перенести их в Линукс.
Наверное, имеется в виду, что в Linux отстающие реализации Samba и NTFS (да, это не сетевой протокол, но тем не менее).
Только реализация из 2003 слабо поможет реализации современных фич. Разве что отдельные мелкие ньюансы пофиксить…
так же как и раньше, очевидно. Кодом из утечки пользоваться нельзя, можно вдохновиться алгоритмами оттуда, но по ходу — вышла уже 10ка и там есть своя специфика, по которой настоящие сурцы не помогут
- Проводник → Сервис → Свойства папки (Панель управления — Свойства папки) → Типы файлов → (НЕТ) AudioCD; (НЕТ) DVD и прочее (HKCR\InternetShortcut и HKCR\ConferenceLink и др.) — этого нет ни у NirSoft`овском FileTypesMan, ни у простенькой панели управления Types, уже не помню, чьего производства. Например, удалили какой-нибудь сторонний DVD-видеопроигрыватель из системы — теперь двойным кликом содержимое DVD-диска не увидишь (хороший способ приучить пользоваться контекстным меню) — В XP решалось в «Типы файлов», а начиная с висты и далее — только колупаясь в реестре или искать-качать готовый фикс.reg. А вот старый добрый File Type Manager 2 Фрэнка Уорсли понимает и AudioCD (Multimedia) и DVD, вот только изменить их ассоциацию почему-то не позволяет, NirSoft`овский хоть типы «Папка» (Папка с файлами), «Drive» поддерживает, но это ведь не всё;
- Беспроводные сети (конкретного адаптера) — в XP было наилучшее решение. В 7-ке ещё хуже, чем в висте (окошко с сетями хотя бы не закрывалось), а в 10 окончантельно разочаровало, более того, даже простое PPPoE соединение теперь через «Сетевые подключения» устанавливать стало труднее (раньше было просто — «два раза Enter»)!
- Кто поймёт под спойлером эти строки файла 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 - Профили оборудования (если вдруг винда перестанет запускаться после выбора «поломанного профиля», можно загрузиться с аварийного, если тот был предварительно создан – не раз эта фича спасала (и длительное восстановление системы не требовалось), жалко, что не всегда — уж лучше б каждый ControlSet был отдельным физическим файлом. Теоретически, можно создать символическую ссылку в кусте SYSTEM с именем ControlSet№№№, ссылающийся на другой файл, вот только как сделать так, чтоб этот куст загружался сразу же после Boot (соответственно в разделе CurrentControlSet\Control\hivelist этот файл уже станет указываться, и если этот файл куста случайно повредить, то файл «system32\config\system» останется целым)?
- Пользовательские столбцы свойств для «Табличного вида» проводника добавлялись сторонними приложениями.
Ещё одна странность: к примеру, в куче mp3 файлов заполнен тег «Поэты» (авторы слов песни) он же «Lyricist(s)», но в висте, и вплоть до 10-тки этого столбца в проводник добавить не удосужились! Т.е. ради сортировки по этому тэгу нужно использовать либо проигрыватель, либо другой файловый менеджер, а может даже и вовсе другую оболочку.Хотя, к ID3 у меня отдельная претензиялучше б разделяли значения новой строкой (0A: line feed или в связке с 0D), вместо ";" и "/"
Кстати, ещё на SP2`й висте работает твик с цветами сжатых и зашифрованных файлов/папок (когда тема с обратным контрастом, можно избавиться от синего цвета на тёмном фоне), и не только в диалогах «Открыть/Сохранить файл/в папку» но и в обычном режиме проводника! А, ещё «Центр управления сетями и общим доступом» в висте более информативен. Ой… что-то меня на висту унесло, забыв, чтó нужно ещё нужно содрать с XP`шки (неужели оболочка висты оказалась мне более привлекательной?)…
В сеть утекли исходные коды операционной системы Windows XP и Server 2003