
Комментарии 63
Неужели "энтузиаст" открыл для себя "Windows 7 Embedded"? Или не открыл?
Не открыл. В эмбеддед можно программы запускать имея только файлы программы, а тут этот самый главный функционал порезан энтузиастом...
Программы надо писать на Delphi, у них самодостаточный рантайм без редистов :)
На Дельфях тоже можно писать килобайтные проги с GUI. Только пару рантаймовых DLLок придётся таскать с собой, почти на 1,5 метра (на момент D7).
А если взять D5 с KOL, то там пустая формочка займёт 15Кб без рантаймов (и ещё дополнительно пожмётся UPX, если размер совсем критичен).
При этом Delphi 5 - минимально комфортная версия для программирования, т.к. это самая низкая версия, где есть сборка мусора и динамические массивы, чтобы не забивать себе голову ручным управлением памятью.
Слабо верится в VCL менее 15кб... Ну да ладно, я ниже 6 дело не имел в своё время. Хотя, вроде как был казус с Delphi for Windows на 3.11, но о тех временах я уже смутно помню, слишком много времени прошло.
При этом Delphi 5 - минимально комфортная версия для программирования, т.к. это самая низкая версия, где есть сборка мусора
Или вы языком ошиблись, или называете «сборкой мусора» совсем не то, что так называет всё остальное человечество. Настоящей сборки мусора в дельфях ни в 5, ни в 7, ни в XE не было. И я весьма удивлюсь, если появилась в современных версиях.
Видимо имеется ввиду автоматический AddRef/Release у реализации IUnknown
Я, конечно, за давностью лет подзабыл, но разве автоматический AddRef/Release у реализации IUnknown не появился ещё в Delphi 3 в 1997-м году, вместе с, собственно, IUnknown?
Надо TInterfacedObject использовать, либо писать бойлерплейт под эти AddRef/Release в своем классе. Потому что IUnknown это всего лишь интерфейс (без собственно самОй реализации).
А потом на них будет триггериться Windows Defender. К счастью, он здесь выпилен )
Эх, если бы они его еще шерить могли между собой, а не таскать внутри бинарников... Вот как Qt-приложения в Linux. А не как в Windows - каждая утилитка весь Qt6 за собой тягает
Так этот вариант тоже возможен в дельфе - просто в проекте указывается что необходимо использовать внешние bpl, которые вполне могут лежать к примеру в windows/system32 и быть доступны всему софту написанному на дельфе. В итоге сами экзешники маленькие и используют внешние библиотеки компонентов.
В Linux это можно только благодаря opensource - пакеты для дистрибутива компилируются специально под этот дистрибутив. А на Windows с DLL вышел полный провал: программы, скомпилированные разными разработчиками, хотят чуть-чуть разные версии библиотек, а это тот случай, когда чуть-чуть не считается. DLL должна быть полностью идентичной, чтобы её расшарить. Но всё ещё хуже: чексумм в них нет. Идентичность библиотеки проверяется только по её метаданным. То есть можно так нарукожопить приложение, что в нём всё будет работать, а вот чужое приложение начнёт падать из-за того, что ты установил это. В нулевые мы такого насмотрелись.
В Rust ушли от DLL в сторону "всё пихай в EXEшник" и я считаю правильно сделали. У этого тоже есть плюсы: не использованный функционал библиотеки будет при сборке выкинут.
А на Windows с DLL вышел полный провал
Нууу, я и в линуксе достаточно часто попадал под ад зависимостей.
В Linux это можно только благодаря opensource - пакеты для дистрибутива компилируются специально под этот дистрибутив.
Дада, собираешь такой обычный, скажем, MC, а он тянет через 10 зависимостей readln версии на 2 ниже того, что есть у системы да и в принципе не нужен, но почему-то указан в зависимостях. И почему-то не хочет работать с системным, ему нужен именно этот. А он, сволочь такая, всенепременно хочет прописаться именно в систему. Ну и как называть этих погромистов после этого? Названия прог и компонентов указал просто для примера, не конкретно эти но постоянно сталкивался с подобными разными вещами. Поэтому я за установку голого ядра и сборку мира с версиями установленной версии системы. Но потом херак и кто-то обновил репу, закрыв какие-то уязвимости и вот опять всё расползается по швам... Уж лучше таскать свои DLL в папке программы, тем более порядок поиска нужных DLL у винды строго регламентирован.
Как верно подметили выше, есть галка build with runtime packages. Но использовать не очень удобно, т.к. при изменении модуля, принадлежащего используемому пакету надо перекомпилировать этот пакет и все пакеты, от него зависящие.
Ну так то и в эмбеддед можно порезать запуск внешних прог, будет работать только то, что в образе. Можно намутить всякие киоскные решения, которые восстанавливают работоспособность за несколько секунд через ресет, как роутеры.
Давно это было, но минимальный образ W7E у меня был где-то около 1-1,5Гб.
Из системы пришлось удалить большинство системных компонентов. ОС запускается, но для работы даже базовых программ нужно вручную добавлять недостающие файлы.
Сборка для запуска архиватора, который ужимает любой файл до семи байт?
всего лишь 49 дискет
Отлично! Окошки рисуются, ничего не работает. Достижение) Чем ему WinPE не угодил?
Энтузиаст по имени @cupespresso поделился, что сумел сократить размер операционной системы Windows 7 (x86) до 796 КБ. Отличительная особенность от остальных образов заключается в том, что это всего лишь скриншот операционной системы, но это незначительные мелочи. Для запуска системы, необходимо скачать и установить оригинальный образ Windows 7.
Скрытый текст

Ждем того кто сократит до нуля байт
Круто, но недостаточно.
Я тут создал мульти образ всех версий винды, включая не вышедшие и мне удалось сжать это образ до 0 бит.
Для работы, правда, требуются системные файлы, но всё же
Интересный факт: обоина рабочего стола KolibriOS может весить как она сама.
сумел сократить размер операционной системы Windows 7 (x86) до 69 Мб. Однако это экспериментальная версия, которая не предназначена для повседневного использования. Для запуска приложений необходимы дополнительные системные файлы.
Анекдот в тему:
На работу собеседуют секретаря-машинистку.
— С какой скоростью вы печатаете?
— 1200 знаков в минуту.
— Ого, впечатляет.
— Да, но такая фигня получается... ¯\_(ツ)_/¯
/sarcasm
Очередная васян-сборка /s
Действительно запустилось на Oracle VM virtualbox. Если ковыряться в обаазе, один из его файловпри извлечении весил бы ~170 Мб, другой (видимо, диск С:\) около 800 Мб. Но будучи незаполненными в виде образа для vm, в сумме весят действительно 69-70 Мб. Там около 260 ключевых файлов, необходимых для успешной загрузки Винды и отрисовки окон.
Из работающего там - Run (выполнить), кнопка и меню Пуск (в максимально урезанном виде), работает время на панели задач и запускается проводник (включая некоторые иконки). Больше ничего не работает, даже втоц классической "теме" (голых окнах) значки на кнопках действий с программой отображаются как буквы (то же самое с функциями с проводником и многим другим, включая всё меню пуск.
Интересно, что некоторые базовые действия всё же функционируют, например, выход (блокировка единственного юзера- админа). Причём отображается красивая светящаяся обводка (рамка фото) юзера. Судя по всему, это внедрено полностью в winlogon.exe. Также работает перезагрузка. Вход в систему невероятно быстрый ))), как и завершение работы.
Но реального применения этому особо нет, разве что если вернуть часть нужных функций и засунуть в какое-нибудь нетребовательное IoT diy-устройство с минимальным объёмом памяти. И то сомнительно. Но всяко прикольно!
Новость 2135 года
"AGI представил сборку человека состоящую из 12 хромосом. Однако это экспериментальная версия, которая не предназначена для повседневного использования. Для выполнения работы необходимы дополнительные системные хромосомы."
Это здорово, но где ты был лет 10 назад, когда это было так актуально?
Когда то, году в 2002 я Win95 резал до 45Мб, и там все что мне нужно было работало! Ибо HDD у меня был всего 80Мб так что важен был каждый мегабайт. Помню некоторые файлы не нужны были после установки драйверов, можно было без последствий потереть папку INF))
Да, даблспейс он для парней с крепкими нервами, но у меня не было выбора. NLite появился сильно позже.
Когда то, году в 2002 я Win95 резал до 45Мб, и там все что мне нужно было работало!
Урезать Вин95 до 45Мб, это не была задачка со звёздочкой, это делалось снятием галочек с системных компонент в Панели управления :)
У меня есть XP на 75 Мб, ставил, кроме проводника там ничем пользоваться нельзя, на такой случай проще загрузиться с флешки каким-то PE. Иначе в чем смысл?
Правильнее сказать, что энтузиаст представил минимальную сборку Windows 7, при которой запускается GUI.
GUI является приложением-надстройкой над ОС, которое требуется для взаимодействия с пользователем. Его тоже можно выкинуть. Вместо этого добавить драйверы светодиода и кнопки. После загрузки ОС выведет на экран светодиода сообщение "Система загружена", а пользователь закроет его кнопкой "ОК".
Энтузиаст представил образ Windows 7 размером 69 МБ