Вопрос или проблема
Недавно я узнал о DOSBox-X. Это, по сути, несколько менее ужасная версия в основном заброшенного DOSBox.
Сейчас он у меня установлен внутри виртуальной машины Windows 10 на моем ПК с Windows 10. Это единственный компьютер, который у меня есть. Если бы я мог себе это позволить и у меня было бы место, я бы настроил настоящий классический ПК и не связывался бы с эмуляторами.
Каждый раз, когда я хочу поиграть в своем “ящике ностальгии”, я сначала должен запустить виртуальную машину Windows 10. Затем ждать, пока она полностью загрузится. Потом переключаться на нее, запускать DOSBox-X внутри нее, и наконец начинать использовать. Полноэкранный режим и “Alt-tab” между этим и программами на хост-ОС либо крайне непрактичны, либо невозможны. Это, по сути, чертовски утомительно.
Конечно, было бы вполне технически возможно установить DOSBox-X на хост-ОС вместо этого. Тогда это (вероятно) позволило бы мне “Alt-tab” между запущенной в полноэкранном режиме программой и программами на хост-ОС. Отлично.
Но есть одна проблема: безопасность. Просто доверять DOSBox-X с самого начала — это большое дело для меня, но потом вы явно читаете это на их собственном сайте:
DOSBox-X не может претендовать на то, чтобы быть “безопасным” приложением. Он содержит много кода, предназначенного для производительности, а не для безопасности. Могут быть уязвимости, ошибки и недостатки в эмуляции, которые могут позволить злонамеренным DOS-исполняемым файлам внутри вызвать проблемы или использовать ошибки в эмуляторе, чтобы нанести ущерб. Нет гарантии полного контейнирования DOSBox-X гостевой операционной системы или приложения.
Если безопасность является приоритетом, то:
Не используйте DOSBox-X на безопасной системе.
Источник: https://github.com/joncampbell123/dosbox-x/blob/master/README.md#software-security-comments
Это, хоть и честно, не повышает мою склонность доверять ему на моей основной ОС.
Вы, вероятно, не осознаете, насколько это важно для меня. На самом деле, хотя я конкретно спрашиваю о DOSBox-X в данном случае, этот вопрос можно было бы сделать гораздо более общим. Каждая программа, которую я запускаю на своей хост-ОС, — это полнейший кошмар безопасности, ожидающий своего часа. Тикающая бомба. Но все программы, которые я запускаю на ней, логически должны работать там; они не могут работать в виртуальной машине по логическим причинам.
Как разумно справляться с подобными вещами? Я знаю о “Sandboxie”, но он никогда не вызывал у меня уверенности. Интересно, почему этой функции нет в самой Windows. Должно быть возможно “изолировать” отдельные программы, работая при этом на реальной ОС и не иметь дело с медленными и громоздкими виртуальными машинами. Иронично, но я не доверяю Sandboxie!
Боюсь, что ответ будет: “вы должны доверять людям в жизни, иначе не сможете функционировать”. Хотя это верно, это не помогает мне чувствовать себя в большей безопасности. У меня есть много личных и ценных данных, которые я действительно не хочу, чтобы утекли или были украдены.
Вам следует использовать Windows Sandbox. “Интересно, почему этой функции нет в самой Windows.”. На самом деле, она существует уже несколько лет и называется Windows Sandbox. Я запускаю DOSBox-X из Windows Sandbox, и это работает очень хорошо.
Чтобы установить Sandbox
-
- Подтвердите виртуализацию UEFI/BIOS для материнской платы. Проверьте это, открыв Диспетчер задач, перейдите на вкладку “Производительность”, затем в правом нижнем углу найдите “Виртуализация: Включена”.
-
- Включите Windows Sandbox из консоли Admin PowerShell:
Enable-WindowsOptionalFeature –FeatureName “Containers-DisposableClientVM” -All -Online -NoRestart
- Включите Windows Sandbox из консоли Admin PowerShell:
Вам нужно будет перезагрузиться. Sandbox абсолютно безопасен и открывается за считанные секунды. Вы можете дополнительно использовать файл .wsb
для настройки Sandbox (откорректируйте адрес D:\0\MySandbox, который я использую, под ваши нужды) и стартовый скрипт, положите туда что угодно.
У вас есть несколько вариантов установить DOSBox-X. Обратите внимание в моем .wsb
, что я храню общую папку как доступную для чтения и записи (записанную как <ReadOnly>false</ReadOnly>
). Это папка, в которой находится мой .wsb
. Я устанавливаю свой DOSBox-X в эту область чтения и записи, т.е. я устанавливаю в C:\Users\WDAGUtilityAccount\Desktop\MySandbox\MyPrograms
, что является папкой на хосте рядом с моими скриптами настройки Sandbox. Таким образом, мой DOSBox-X (или другие приложения) и их настройки сохраняются между перезагрузками Sandbox.
В качестве альтернативы, вы можете использовать Chocolatey, чтобы получить DOSBox-X внутри Sandbox (вы можете вставить эти строки в ваш стартовый скрипт):
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
choco install DOSBox-X -y
MySandbox.wsb (вы должны изменить путь D:\0\MySandbox под себя, иначе он будет жаловаться, после установки вы можете просто дважды щелкнуть на MySandbox.wsb, чтобы запустить Sandbox:
<Configuration>
<VGpu>Enable</VGpu>
<Networking>Enable</Networking>
<ClipboardRedirection>Enable</ClipboardRedirection>
<ProtectedClient>Enable</ProtectedClient>
<PrinterRedirection>Enable</PrinterRedirection>
<MemoryInMB>0</MemoryInMB>
<MappedFolders>
<MappedFolder>
<HostFolder>D:\0\MySandbox</HostFolder>
<ReadOnly>false</ReadOnly>
</MappedFolder>
<MappedFolder>
<HostFolder>C:\Users</HostFolder>
<ReadOnly>true</ReadOnly>
</MappedFolder>
</MappedFolders>
<LogonCommand>
<Command>C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -sta -WindowStyle Hidden -noprofile -executionpolicy unrestricted -file "C:\Users\WDAGUtilityAccount\Desktop\MySandbox\MySandboxStartup.ps1" </Command>
</LogonCommand>
</Configuration>
Ответ или решение
Удобные и безопасные способы запуска DOSBox-X
Запуск DOSBox-X внутри виртуальной машины — это хороший способ изоляции, но этот процесс может быть неудобным из-за необходимости ждать загрузки операционной системы и отсутствия возможности легко переключаться между приложениями. Чтобы улучшить вашу ситуацию, стоит рассмотреть использование Windows Sandbox, который предоставляет более удобную и безопасную среду для запуска DOSBox-X.
Что такое Windows Sandbox?
Windows Sandbox — это функция, встроенная в Windows 10 и более поздние версии, позволяющая запускать приложения в изолированной среде. Это решение значительно упрощает процесс и минимизирует риски, связанные с безопасностью, поскольку Windows Sandbox предоставляет защиту от потенциально вредоносных программ.
Как настроить Windows Sandbox
-
Проверьте поддержку виртуализации:
- Откройте Диспетчер задач (Task Manager).
- Перейдите на вкладку «Производительность» (Performance) и убедитесь, что функция «Виртуализация» (Virtualization) включена.
-
Включите Windows Sandbox:
- Откройте PowerShell с правами администратора и выполните следующую команду:
Enable-WindowsOptionalFeature –FeatureName "Containers-DisposableClientVM" -All -Online -NoRestart
- После выполнения команды перезагрузите компьютер.
- Откройте PowerShell с правами администратора и выполните следующую команду:
Настройка DOSBox-X в Windows Sandbox
Для удобного запуска и использования DOSBox-X в Windows Sandbox следуйте этим шагам:
-
Создайте файл конфигурации .wsb:
- Создайте файл
MySandbox.wsb
с следующим содержимым, предварительно обновив путь к вашей папке, чтобы он соответствовал вашей системе:
<Configuration> <VGpu>Enable</VGpu> <Networking>Enable</Networking> <ClipboardRedirection>Enable</ClipboardRedirection> <ProtectedClient>Enable</ProtectedClient> <MemoryInMB>0</MemoryInMB> <MappedFolders> <MappedFolder> <HostFolder>D:\0\MySandbox</HostFolder> <ReadOnly>false</ReadOnly> </MappedFolder> <MappedFolder> <HostFolder>C:\Users</HostFolder> <ReadOnly>true</ReadOnly> </MappedFolder> </MappedFolders> <LogonCommand> <Command>C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -sta -WindowStyle Hidden -noprofile -executionpolicy unrestricted -file "C:\Users\WDAGUtilityAccount\Desktop\MySandbox\MySandboxStartup.ps1"</Command> </LogonCommand> </Configuration>
- Создайте файл
-
Установка DOSBox-X:
- Вы можете установить DOSBox-X вручную в папку, настроенную в предыдущем шаге, или использовать Chocolatey для автоматической установки. Для установки DOSBox-X через Chocolatey добавьте следующие строки в ваш скрипт и выполните его при запуске Windows Sandbox:
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1')) choco install DOSBox-X -y
Заключение
Использование Windows Sandbox для запуска DOSBox-X представляет собой более удобный и безопасный способ работы с программами, которые могут представлять риск для вашей основной операционной системы. Это решение позволяет вам легко переключаться между приложениями без необходимости дожидаться загрузки виртуальной машины, сохраняя при этом необходимый уровень безопасности.
Не забывайте, что даже в изолированной среде, как Windows Sandbox, всегда полезно следить за безопасностью и обновлять используемое программное обеспечение.