Shelled

Материал из Неолурк, народный Lurkmore
Перейти к навигации Перейти к поиску

Shelled (надмозг. Оболочечный, алсо Панцирный) — попытка сумрачного гения скрестить ужа с ежом, а именно: заменить нативную, пропитанную потом и кровью индусов оболочку Windows (`explorer.exe`) на хипстерский новодел, написанный на C# и (внимание!) HTML/CSS/JavaScript. Да, анон, ты не ослышался. Теперь твой рабочий стол, панель задач и пуск — это буквально веб-страничка, крутящаяся внутри движка WebView2 (читай: Chromium).

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

Рабочий стол счастливого пользователя Shelled. Снизу — закос под macOS, сверху — иконки, внутри — Chrome, посередине — пустота и тлен.

Суть[править]

Испокон веков, еще со времен Windows 95, юзеры мечтали выпилить ненавистный Проводник. Причины разнились: от желания сэкономить 5 мегабайт оперативной памяти на Celeron 300A до банального эстетства и желания, чтобы как в кино про хакеров. История помнит мастодонтов вроде LiteStep, Aston Shell, Blackbox и прочих Cairo, которые действительно были написаны на C++ и работали напрямую с WinAPI.

Но на дворе 2025 год (по лору исходников), и писать на плюсах нынче моветон. Поэтому разработчик с ником crosschainer решил, что лучшая идея для создания легковесной оболочки — это засунуть в автозагрузку .NET 8 и движок браузера Edge. Идея заключается в разделении ответственности: есть Core (бэкенд на C#), который дергает системные API, и есть UI (фронтенд), который просто рисует кнопочки на HTML.

Разработчик утверждает, что `explorer.exe` — это жирный монстр, тянущий за собой легаси-код времен царя Гороха, всякие там интеграции с OneDrive, поиск, телеметрию и прочий мусор. Shelled же, по его заверениям, потребляет всего около 100 МБ оперативки (смех в зале), запускается мгновенно и позволяет сверстать интерфейс ОС так, как твоей душе угодно, лишь бы ты умел в CSS.

Процесс окирпичивания[править]

В отличие от установки обычных программ, где ты жмешь Далее -> Далее -> Я согласен продать душу, установка Shelled — это отдельный квест на проверку наличия стальных яиц.

Есть два пути:

  1. Путь ссыкла (Development Mode): Ты запускаешь `myshell-bootstrap.exe` поверх обычного Проводника. Получаешь странный гибрид, где поверх твоей панели задач рисуется еще одна, веб-версия. Позволяет потыкать палочкой, убедиться, что оно глючит, и закрыть от греха подальше.
  2. Путь самурая (Shell Replacement): Тут начинается веселье. Тебе предлагают залезть в Священный Реестр по адресу `HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon` и заменить значение ключа `Shell` с родного `explorer.exe` на путь к бинарнику Shelled.

⚠️ Shelled is experimental and can completely replace the normal Windows desktop. If you are not comfortable recovering from a broken shell…

Разработчик честно предупреждает: Сделай бэкап, глупец!. Но кто же читает README? В итоге, после перезагрузки юзер видит черный экран (потому что WebView2 не прогрузился, или .NET не той версии, или фаза Луны не та), и начинается увлекательная игра Запусти `regedit` через Диспетчер задач, который еще надо умудриться вызвать.

Для особо одаренных в коде предусмотрен Panic mode (`--panic`), который пытается вернуть всё как было, но мы-то знаем, что в критической ситуации паника — это единственное состояние самого пользователя.

Функционал (или его отсутствие)[править]

На данный момент (версия 0.1.0, судя по логам) Shelled умеет делать ровно три вещи:

  • Показывать обои (и то, если повезет с Virtual Host Mapping).
  • Рисовать панель задач, которая выглядит как Linux-дистрибутив средней паршивости.
  • Запускать `notepad.exe` быстрее, чем ты успеешь сказать зачем я это установил.

Чего нет и, возможно, не будет:

  • Системного трея. Того самого, где живут твой антивирус, Discord и настройки громкости. Вернее, он как бы есть в коде (`TrayHostWin32`), но работает через создание скрытого окна-ловушки сообщений, и совместимость с реальным софтом там на уровне может быть.
  • Нормального файлового менеджера. Вместо него предлагается использовать… тот же Explorer, но как отдельное приложение, или вообще консоль.
  • Стабильности. Весь UI — это веб-страница. Если скрипт JS упадет с ошибкой `undefined is not a function`, у тебя упадет весь рабочий стол. Буквально.

Зато есть Workspaces (виртуальные рабочие столы), реализованные через скрытие/показ окон (`ShowWindow(SW_HIDE)`). Это, конечно, невероятная инновация, которой в Windows 10/11 нет (на самом деле есть, но красноглазикам виднее).

Внутренности[править]

Если заглянуть в кишки проекта, можно найти много интересного. Архитектура построена на том, что C# выступает в роли сервера, а HTML/JS — в роли клиента.

  • `Shell.Core`: Тут живет вся логика. Слежка за окнами, хоткеи (да, они перехватывают Win-клавишу), управление процессами.
  • `Shell.Adapters.Win32`: Слой, где происходит магия P/Invoke. Тонны кода, импортирующего функции из `user32.dll` и `shell32.dll`, чтобы хоть как-то заставить винду подчиняться.
  • `Shell.Bridge.WebView`: Мост, прокидывающий события из винды в JS.
  • `Shell.UI.Web`: Собственно, сам фронтенд. `npm install`, `sass`, все дела. Твой рабочий стол теперь зависит от `node_modules` весом в полгигабайта.

Примечательно, что автор также замечен в разработке блокчейн-проектов на Python (Xian Network). Видимо, майнить прямо в оболочке рабочего стола — это следующая киллер-фича (шутка, но в каждой шутке…).

Драма в комментариях[править]

Как и любой проект, посягающий на святое (реестр), Shelled вызывает бурление говн.

TheOldWarrior: Вы серьезно? Вы даже не сказали людям сделать бэкап ветки HKLM! Вы убиваете системы людей! Это безответственно!
Chris: Чувак, там написано Experimental. Если ты стер себе винду, это естественный отбор. Общество должно заново научиться брать ответственность за свои действия.

Отдельный лулз доставляет тот факт, что замена оболочки происходит на уровне `HKEY_CURRENT_USER`, но паникеры все равно кричат про `HKLM` и смерть всей системы для всех пользователей.

Зачем это нужно?[править]

  1. Понты. Скриншот рабочего стола с Shelled можно выложить на r/unixporn (с подписью It’s actually Windows lol) и собрать карму.
  2. Кастомизация. Если ты веб-разработчик, ты можешь сверстать себе панель задач на Flexbox или Grid, добавить анимации на CSS и чувствовать себя богом.
  3. Скорость (спорно). Да, сам `explorer.exe` жирный. Но заменять его на Chromium — это как лечить ожирение поеданием тортов, потому что торты вкуснее хлеба. Хотя автор утверждает, что RAM usage падает. Верим на слово (нет).

Итог[править]

Проект амбициозный, смелый и абсолютно бесполезный для 99 % населения планеты. Но для оставшегося 1 %, который любит компилировать ядра по ночам и переписывать конфиги, это глоток свежего воздуха в душном мире Windows.

Ставить на рабочую машину? Ни в коем случае.

Потыкать на виртуалке? Однозначно да, just for lulz.

03ef4f7db0cccdf39bf013566aed31bd.jpg Системы, без которых машина просто откажется работать
СистемыAndroidDOSFreeBSDHaikuЛинуксMenuetOSMacOS (OS X) / Хакинтош / iOSOS/2ReactOSWindows / ВиндаРусОСФантом ОСUnixHarmony OSWindows vs. LinuxАстра ЛинуксMATEKaiOSChimbalixIOS 18WinGetThe Amnesic Incognito Live SystemTemple OSGrapheneOSKernel.orgWindows 3.11
СредыGNOMEGNU EmacsKDEЛинус Торвальдс vs x86 64SELinuxWindows UpdateИгры из репозиториевТерминалОптимизация WindowsПасьянс КосынкаEnd of 10Windows AeroАптаймОтечественные операционные системы в образованииPurble PlaceWindows vs Linux, Халяль или ХарамDKMSЯдро Linux
ЛюдиБалмерГенерал ФейлорПоттерингСтоллманТорвальдсФолькердингРуслан КармановRealme (компания)AnduinOSОболочка операционной системы
Дистрибутивы LinuxArchDebianFedoraFinnixGentooLFSUbuntu (BolgenOS) • СлакаUncom OSTiny10Tiny11Дешёвые ключи для WindowsLinux MintVirtualBoxManjaroДесктоп
Версии виндыWindows 95Windows 98Windows 2000Windows XPWindows VistaWindows 7Windows 8Windows 10Windows 11Windows Phone 7Windows Phone 8ГовносборкиWindows MEWindows ШкольникГрафики в Windows CalculatorKasperskyOSQuick machine recoveryBypassNROCtrl+Shift+Win+BLiquorixСмена обоев рабочего столаAUR
ПользователиАдминБздун • Виндузятник • КрасноглазикЛинуксоидЯблочникФайл подкачкиСпермопроблемыDistro hoppingLinux на сервере
Площадки/s/LORru macru.os.cmpstoplinux.org.ruНеофициальная Windows Вики
Мемы/dev/null • BSD, not LSD • GIFGNOME vs. KDEMac vs. PCOS-tanrm -rfSystem32TRUE-DEATH-PRIMITIVE-LINUX-MITOLLWindows vs LinuxБубенВендекапецГномикиДаунгрейдЕсли бы…Ждём ебилдовКЛБМаздайПатчить KDE2 под FreeBSDПереустановка WindowsПриборчикРаспечатать лицензию на ЛинуксTuxТупые свитчерыФениксНе работай под рутомБлокировка Windows в РоссииОСВзлом Windows через MetasploitЭффект ПьюдипаяTempleOS (аниме)
Достойные упоминанияAmigaСтарая копипаста:ШindowsЛинуксоидное ХанжествоСкотный Двор имени Линуса Торвальдса