sysnative что это за папка windows 7
990x.top
Простой компьютерный блог для души)
Sysnative — что это за папка windows 10?
Приветствую. В данном материале постараемся разобраться с директорией Sysnative — зачем нужна, какую выполняет роль в системе.
Sysnative — что это за папка Windows 10?
Sysnative — папка, которая указывает операционной системе предоставить доступ 32-битному приложению к 64-битным библиотекам.
Данная директория непростая, вы ее можете не увидеть, когда она на самом деле — присутствует. Причина — каталог виден только 32-битным приложениям. Если у вас операционная система 64-битная, то программа Проводник — тоже 64-битная, поэтому папку эту не видит.
Из чего можно сделать вывод: SysNative является в некотором смысле невидимой, использование которой просто говорит операционной системе — неважно какая программа, но ей нужно предоставить 64-битные библиотеки, а не перенаправлять в 32-битный вариант библиотек (каталог SysWOW64).
Sysnative — можно ли удалить?
Оказывается что удалять нельзя, судя по информации из интернета.
Папку Sysnative как и System32, SysWOW64 — трогать нельзя. Весить Sysnative может пару гигабайт и это вполне нормальное явление.
Источник сообщения.
При желании почистить OS Windows от мусорных файлов используйте только безопасные методы, например: Win + R > команда cleanmgr > выбираем системный диск > отмечаем галочки мусорные данные для удаления и чистим систему.
Заключение
Sysnative что это за папка windows 7
Куда девается свободное место в службах удаленных рабочих столов
Описываю классическую ситуацию. Есть RDS ферма, которая состоит из двух посредников (RD Connection Broker) и 15-20 хостов RDSH, к котором непосредственно подключаются удаленные пользователи. В большинстве случаев, пользователи имеют перемещаемые профили. Все хорошо, все работает, но случается момент, что появляется еще пара сотен юзеров, например, из-за расширения компании или поглощения другой, это не важно. На ваших узлах, становится катастрофически не хватать свободного места. Если у вас виртуальные машины, то тут проще можно расширить ресурсы, при наличии места на датасторах, в случае с физическими серверами сложнее, так как расширять существующие RAID массивы, очень геморройная вещь, да и места на СХД, может так же не хватать. Да и расширять до бесконечности вы не можете. Плюс за счет того, что профили перемещаемые, то вы должны умножить новое дисковое пространство на количество ваших узлов, вот такая математика.
Давайте посмотрим, что вы можете предпринять для оптимизации, без расширения дискового пространства. Первым делом мы с вами воспользуемся утилитами, которые позволят посмотреть, чем конкретно заняты ваши жесткие диски. Тут утилит много, я могу выделить бесплатную WinDirStat или платную TreeSize.Установка WinDirStat, очень тривиальная, я не буду ее приводить. После инсталляции запускаем утилиту. На первом экране WinDirStat, попросит вас выбрать локальный диск или каталог для сканирования файлов. В моем примере на Remote Desktop Session Host хосте, один диск C:\, его я и выбирая.
У вас начнется сканирование вашего локального диска, на предмет того, чем он занят. Вы увидите забавных пакменов.
Как видим, у меня самым объемным является папка Users, второй папка Windows 45 ГБ. С правой стороны вы увидите столбец по форматам, там сразу можно выделить MP4 или MSI, видно сколько они занимают. Ниже разноцветные квадраты, это так выглядят все типы файлов на жестком диске в этой утилите.
Открыв папку профили, вы сразу видите самые объемные из них, смотрите, чем они заняты и проводите зачистку, с визгами и орами от пользователей. Но тут никак больше.
Очистка папки Windows от мусора
Далее мы посмотрим, почему папка Windows занимает 45 ГБ, что очень странно. Открыв более подробное описание, мы с вами видим, что 70% папки Windows на моем хосте RDS фермы, занимают три папки:
Что такое и как очистить папку Installer
Как видите у меня папка Windows Installer занимает много места, это аж 15 ГБ. Если открыть ее содержимое, то вы увидите GUID номера, ваших программ.
Если более детально капнуть в папку Windows Installer, то тут в основном лежат файлы msp, это пакеты обновления, MSI и MST файлы.
Хочу отметить, что папка Installer, по умолчанию скрыта, и для ее отображения, вы должны включить скрытые файлы и папки в Windows.
Можно ли удалить папку Windows Installer?
Напоминаю, что в папке C:\Windows\Installer лежат инсталляторы программ, которые используются для их правильного удаления, восстановления. Простой пример, когда вы заходите в панель управления Windows, то на большинстве программ вы видите эти статусы.
Простой пример из жизни, один из моих приятелей удалил содержимое Installer, в итоге получил ситуацию, что когда ему нужно было удалить Microsoft Office и поставить новую версию, он получил ошибку, что этого сделать нельзя.
Так, что если Windows Installer занимает много места, не стоит ее сразу полностью удалять, к этому делу нужно отнестись, очень избирательно. Как мы поняли, она точно нужна и отвечает за ваши программы, но парадокс операционной системы Windows в том, что когда вы удалил какую-то программу, ее инсталлятор, останется лежать в данной папке, в виде мусора и занимать дисковое пространство, вам ведь это не нужно. Так что приступам к ее чистке.
Как правильно очистить папку windows installer
Перед всеми нашими манипуляциями, вы должны обязательно выполнить вот что:
Для того, чтобы правильно очистить каталог C:\Windows\Installer, можно воспользоваться бесплатной утилитой PatchCleaner.
Как работает PatchCleaner. Операционная система Windows содержит список текущих установщиков и патчей, к которым можно получить доступ через вызовы WMI ( Инструментарий управления Windows ). PatchCleaner получает этот список известных файлов msi/msp и сравнивает их со всеми файлами msi/msp, которые находятся в каталоге c:\Windows\Installer. Все, что находится в папке, но не в списке, представленном окнами, считается сиротскими файлами и помечено для перемещения или удаления.
Принимаем лицензионное соглашение «I Agree»
Указываем для каких пользователей будет устанавливаться PatchCleaner.
Установка PatchCleaner завершена, запускаем ее.
После запуска, утилита проведет сканирование. У вас будет два показателя:
По пути Move Loction, будет делаться резервная копия, на всякий случай, можете при желании изменить данный путь.
Нажав на кнопку «details», вы увидите более подробный список, устаревших пакетов msp, прочитать к каким программам, они относились.
Чтобы запустить процесс освобождения дискового пространства на ферме RDS и уменьшить размер папки C:\Windows\Installer, нажмите кнопку «Move».
Вас спросят, хотите ли вы этого, нажимаем yes
Все уменьшение папки Installer выполнено.
Видим, что больше в системе нет устаревших файлов.
В папке с резервной копией, теперь лежат ваши устаревшие файлы.
Если вы не хотите производить чистку Windows Installer, или просто боитесь это делать, но располагаете в системе другим, дополнительным диском, на котором есть свободное место, то можете перенести C:\Windows\Installer на него, для этого можно воспользоваться символическими ссылками, мы их уже использовали когда переносили OST файл в Outlook.
Предположим у меня есть еще диск E:\, и на нем есть 100 гб свободного места и я бы хотел на него перенести системную папку, для этого открываем командную строку с правами администратора и вводим команду, но перед этим ОБЯЗАТЕЛЬНО, скопируйте C:\Windows\Installer в E:\Installer.
Теперь если вы зайдете в каталог C:\Windows\Installer, то увидите на папке стрелочку в левом углу, это означает, что это символическая ссылка, ведущая в другое место. Надеюсь с папкой Installer мы разобрались, и очистили часть места на RDS ферме.
Что такое и как очистить папку ServiceProfiles
Я нашел ответ от разработчика Windows, что делал эту службу кэширования, его зовутNiklas Borson, вот что он отвечал, на вопрос, почему на RDS ферме, папка ServiceProfiles имеет большой размер.
Кэширование происходит, чтобы разгрузить центральный процессор от постоянного обращения, тем самым сэкономив производительность.
В свою очередь, вы можете сделать bat файл вот с таким содержимым, и удалять файлы старше 30 дней из папки ServiceProfiles. Скрипт останавливает две службы:
net stop FontCache && net stop FontCache3.0.0.0
net start FontCache && net start FontCache3.0.0.0
Что такое и как очистить папку WinSxS
Очистка папки WinSxS в Windows 10, 8 и Windows 7
Продолжаем с вами производить очистку в папке Windows, от всевозможного хлама, и на очереди у нас с вами папка WinSXS, выше я написал, что из себя представляет данная папка. Как видите утилита WinDirStat, показывает что WinSxS, занимает 7,2 гб, для этой папки, это размер в пределах нормы, но если вы у себя видите, здесь 10-15 гб и более, то это повод задуматься над ее очисткой.
Есть распространенный миф о гигантских размерах этой папки, что на самом деле не совсем так. Дело в том, что подавляющее большинство содержимого папки WinSxS является «жесткими ссылками», а Проводник и файловые менеджеры это не учитывают. Реальный вес этой папки гораздо меньше, чем пишется в ее свойствах.
Можно ли удалить папку winsxs
Саму папку удалять конечно же не стоит, а вот правильно ее почистить, это правильное решение. Ранее я вам рассказывал про встроенную утилиту в Windows, под названием cleanmgr (Очистка диска). Там запустив утилиту у вас появлялся мастер «Параметры чистки диска», в котором, чтобы была произведена очистка папки winsxs, нужно было выбрать пункт «Очистка обновлений Windows».
Если вы любите все делать из консоли, то вот вам пример очистки папки WinSxS в Windows 10. Запускаем командную строку от имени администратора и вводим команду:
Папка хранилища компонентов будет проанализирована и вы увидите сообщение о необходимости ее очистки, вы увидите ее размер.
Для операционной системы Windows 8.1 или Windows Server 2012 R2, подойдет команда:
Автоматическая очистка резервных копий обновлений в WinSxS
Помимо очистки содержимого данной папки вручную, вы можете воспользоваться планировщиком заданий Windows, для того, чтобы это происходило автоматически.
Папка WinSxS — зачем она нужна и можно ли ее удалить?
Содержание
Содержание
С необходимостью очистки системного диска сталкивается практически каждый пользователь. Со временем системные файлы занимают все больше памяти, и это может привести к различным проблемам вплоть до нестабильной работы системы. Папка WinSxS является одной из первых директорий, на которую обращают внимание пользователи, а все из-за ее размера. Что это за папка? Можно ли безопасно очистить или удалить WinSxS, и как это правильно сделать?
Что это за папка и для чего она нужна
WinSxS — служебная папка, которая появилась еще в Windows Vista, и присутствует во всех последующих версиях операционной системы. Полный путь к папке: C:\Windows\WinSxS. Увидеть ее можно, если включить отображение скрытых файлов и папок в параметрах папок (вкладка «Вид»).
Здесь хранятся файлы обновлений, конфигурационные данные, резервные копии файлов. Это каталог хранилища компонентов Windows. Именно благодаря ему пользователь может откатить практически любые изменения системы. Например, если вышло очередное забагованное обновление или эти самые изменения чем-то не понравились. Содержимое WinSxS используется в откате операционной системы к первоначальным настройкам, а также необходимо для работы Windows.
Учитывая специфику каталога, со временем он будет интенсивно расширяться.
Сколько места может занимать содержимое папки WinSxS
Обновления приходят регулярно, тем более сам пользователь часто вносит различные изменения в работу операционной системы. Если оптимизация каталога ранее не проводилась, или же процедура выполнялась давно, то размер папки легко может превысить отметки в 20 ГБ, но здесь есть один нюанс.
В папке WinSxS используются жесткие ссылки на файлы других каталогов. Иными словами, Проводник или файловые менеджеры в расчетах учитывают именно полный размер файла, хотя, по факту, его здесь нет, и место не занято.
Отсюда возникает и другой вопрос. Какой размер этой папки считается нормальным, и когда нужно всерьез задуматься об оптимизации содержимого?
Если папка WinSxS занимает свыше 10 ГБ памяти, то чистка практически наверняка нужна.
С другой стороны, освободить место можно и при более скромных объемах.
Можно ли удалить папку WinSxS или ее содержимое?
Да, удалить можно вообще любую системную папку или файл. Правда, в этом случае последствия не заставят себя ждать: уже при следующем включении или перезагрузке Windows может не запуститься, а большинство способов восстановления окажутся бесполезными.
Другие возможные последствия удаления отдельных файлов папки WinSxS:
Удалять саму папку WinSxS или ее содержимое, как и любой другой системной директории, настоятельно не рекомендуется, но это не означает, что пользователю нужно смириться с ситуацией. Есть возможность уменьшить занимаемый ею объем памяти.
Как очистить папку WinSxS: способы и инструкции
Начнем с того, что не нужно заходить в эту папку и вручную удалять не понравившиеся файлы. Для этого существуют другие инструменты. Преимущество описанных далее методов в том, что во время оптимизации происходит очистка неиспользуемых файлов. Иными словами, происходит безопасное удаление мусора, который просто захламляет систему. Инструменты используют различные алгоритмы, поэтому эффективность методов также отличается.
Встроенное средство очистки дисков в Windows
Это самый простой и безопасный метод, который направлен на удаление неиспользуемых обновлений. Внутренняя оптимизация содержимого не происходит, поэтому, если стоит цель освободить как можно больше места на системном диске, лучше использовать другие способы. С другой стороны, это самый простой способ, которым может воспользоваться любой пользователь.
Инструкция по использованию встроенного средства очистки дисков в Windows.
Если каталог WinSxS ранее не чистился или чистился давно, то при помощи данного метода получится освободить от нескольких сотен мегабайт до пары гигабайт места.
Этот метод актуален для ОС Windows 8.1 и Windows 10. В Windows 7 данной опции изначально нет, но она появится при установке пакета обновлений KB2852386.
Утилита DISM.exe
Этот метод предполагает использование консоли. Его эффективность выше, и в результате можно освободить больше места.
Инструкция по использованию утилиты DISM.exe для очистки папки WinSxS.
Но это еще не все, что можно сделать при помощи утилиты DISM.exe. Другие полезные действия перечислены ниже.
Теперь можно полюбоваться результатом, еще раз вызвав команду Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore и сравнив результат с первым анализом. Кстати, данная команда не поддерживается в Windows 7.
В приведенном примере результат незначительный, что объясняется недавней глубокой чисткой системы, но он все-таки есть.
Планировщик задач
Многие пользователи забывают об огромных возможностях оптимизации, которые дает Планировщик задач Windows. Он будет полезен и в нашем случае.
Чтобы очистить папку WinSxS при помощи планировщика задач, нужно выполнить следующий порядок действий.
Преимущество метода в том, что пользователь может настроить автоматическую очистку папки WinSxS по расписанию и забыть о проблеме. Для этого нужно кликнуть правой клавишей мыши на задаче «StartComponentCleanup», выбрав пункт «Свойства», вкладку «Триггеры», а здесь настроить расписание процедуры.
Удаление неиспользуемых компонентов
Этот метод предназначен для продвинутых пользователей. Удаление компонентов может повлиять на стабильность работы системы.
В этом случае мы будем очищать неактивные компоненты. В будущем, при необходимости, их возможно восстановить.
Посмотреть активные и неактивные компоненты Windows можно в разделе «Программы и компоненты», который находится по здесь: Панель управления\Программы\Программы и компоненты. Интересующий пункт находится в левой части окна.
Наиболее популярными вариантами очистки директории являются первые два метода, о которых снято много видеороликов для YouTube.
Воспользовавшись предложенными в статье способами, можно уменьшить размер WinSxS. Результат зависит от выбранного способа и того, как часто пользователь выполняет очистку системы от мусора. Как правило, интерес к папке WinSxS возникает при необходимости освобождения места на системном диске. А том, как это сделать можно прочитать здесь.
Windows: достучаться до железа
Меня всегда интересовало низкоуровневое программирование – общаться напрямую с оборудованием, жонглировать регистрами, детально разбираться как что устроено. Увы, современные операционные системы максимально изолируют железо от пользователя, и просто так в физическую память или регистры устройств что-то записать нельзя. Точнее я так думал, а на самом деле оказалось, что чуть ли не каждый производитель железа так делает!
В чём суть, капитан?
Режимы работы x86 процессора
В «Ring 3» программам запрещены потенциально опасные действия, такие как доступ к I/O портам и физической памяти. По логике разработчиков, настолько низкоуровневый доступ обычным программам не нужен. Доступ к этим возможностям имеют только операционная система и её компоненты (службы и драйверы). И всё бы ничего, но однажды я наткнулся на программу RW Everything:
RW Everything действительно читает и пишет практически всё
Смотрим последний установленный драйвер через OSR Driver Loader
Прокси-драйвера
В итоге получается обходной манёвр – всё, что программе запрещено делать, разработчик вынес в драйвер, программа устанавливает драйвер в систему и уже через него программа делает, что хочет! Более того – выяснилось, что RW Everything далеко не единственная программа, которая так делает. Таких программ не просто много, они буквально повсюду. У меня возникло ощущение, что каждый уважающий себя производитель железа имеет подобный драйвер:
Софт для обновления BIOS (Asrock, Gigabyte, HP, Dell, AMI, Intel, Insyde…)
Софт для разгона и конфигурации железа (AMD, Intel, ASUS, ASRock, Gigabyte)
Софт для просмотра сведений о железе (CPU-Z, GPU-Z, AIDA64)
Софт для обновления PCI устройств (Nvidia, Asmedia)
Во многих из них практически та же самая модель поведения – драйвер получает команды по типу «считай-ка вот этот физический адрес», а основная логика – в пользовательском софте. Ниже в табличке я собрал некоторые прокси-драйвера и их возможности:
Результаты краткого анализа пары десятков драйверов. Могут быть ошибки!
Mem – чтение / запись физической памяти
PCI – чтение / запись PCI Configuration Space
I/O – чтение / запись портов I/O
Alloc – аллокация и освобождение физической памяти
Map – прямая трансляция физического адреса в вирутальный
MSR – чтение / запись x86 MSR (Model Specific Register)
Жёлтым обозначены возможности, которых явно нет, но их можно использовать через другие (чтение или маппинг памяти). Мой фаворит из этого списка – AsrDrv101 от ASRock. Он устроен наиболее просто и обладает просто огромным списком возможностей, включая даже функцию поиска шаблона по физической памяти (!!)
Неполный перечень возможностей AsrDrv101
Чтение / запись RAM
Чтение / запись PCI Configuration Space
Чтение / запись MSR (Model-Specific Register)
Чтение / запись CR (Control Register)
Чтение TSC (Time Stamp Counter)
Чтение PMC (Performance Monitoring Counter)
Alloc / Free физической памяти
Поиск по физической памяти
Через Python в дебри
Конечно же я захотел сделать свой небольшой «тулкит» для различных исследований и экспериментов на базе такого драйвера. Причём на Python, мне уж очень нравится, как просто выглядит реализация сложных вещей на этом языке.
Первым делом нужно установить драйвер в систему и запустить его. Делаем «как положено» и сначала кладём драйвер (нужной разрядности!) в System32:
Раньше в похожих ситуациях я извращался с папкой %WINDIR%\Sysnative, но почему-то на моей текущей системе такого алиаса не оказалось, хотя Python 32-битный. (по идее, на 64-битных системах обращения 32-битных программ к папке System32 перенаправляются в папку SysWOW64, и чтобы положить файлик именно в System32, нужно обращаться по имени Sysnative).
Затем регистрируем драйвер в системе и запускаем его:
А дальше запущенный драйвер создаёт виртуальный файл (кстати, та самая колонка «имя» в таблице с анализом дров), через запросы к которому и осуществляются дальнейшие действия:
И ещё одна полезная программа для ползания по системе, WinObj
Тоже ничего особенного, открываем файл и делаем ему IoCtl:
В конечном итоге я «подсмотрел», как это делают другие программы. Выяснилось, что большинство либо не заморачиваются, либо просто ищут запущенные процессы с тем же именем. Но одна из исследованных программ имела кардинально другой подход, который я себе и перенял. Вместо того, чтобы переживать по количеству ссылок на файл, просто на каждый запрос открываем и закрываем файл! А если файла нет, значит кто-то остановил драйвер и пытаемся его перезапустить:
А дальше просто реверсим драйвер и реализуем все нужные нам вызовы:
Легко и непринуждённо в пару команд читаем физическую память
PCI Express Config Space
Чтение и запись PCI Config Space
Но через этот метод доступны только 0x100 байт конфигурационного пространства, в то время как в стандарте PCI Express размер Config Space у устройств может быть достигать 0x1000 байт! И полноценно вычитать их можно только обращением к PCI Extended Config Space, которая замаплена где-то в адресном пространстве, обычно чуть пониже BIOS:
Адресное пространство современного x86 компа, 0-4 ГБ
На чипсетах Intel (ну, в их большинстве) указатель на эту область адресного пространства можно взять из конфига PCI устройства 0:0:0 по смещению 0x60, подробнее описано в даташитах:
У AMD я такого не нашёл (наверняка есть, плохо искал), но сам факт неуниверсальности пнул меня в сторону поиска другого решения. Погуглив стандарты, я обнаружил, что указатель на эту область передаётся системе через ACPI таблицу MCFG
А сами ACPI таблицы можно найти через запись RSDP, поискав её сигнатуру по адресам 0xE0000-0xFFFFF, а затем распарсив табличку RSDT. Отлично, здесь нам и пригодится функционал поиска по памяти. Получаем нечто такое:
На всякий случай оставляем вариант для чипсетов Intel
Всё, теперь осталось при необходимости заменить чтение PCI Express Config Space через драйвер на чтение через память. Теперь-то разгуляемся!
Читаем BIOS
В качестве примера применения нашего «тулкита», попробуем набросать скрипт чтения BIOS. Он должен быть «замаплен» где-то в конце 32-битного адресного пространства, потому что компьютер начинает его исполнение с адреса 0xFFFFFFF0. Обычно в ПК стоит флеш-память объёмом 4-16 МБ, поэтому будем «сканировать» адресное пространство с адреса 0xFF000000, как только найдём что-нибудь непустое, будем считать, что тут начался BIOS:
В результате получаем:
Вот так в 10 строчек мы считали BIOS
Но подождите-ка, получилось всего 6 мегабайт, а должно быть 4 или 8 что-то не сходится. А вот так, у чипсетов Intel в адресное пространство мапится не вся флешка BIOS, а только один её регион. И чтобы считать всё остальное, нужно уже использовать SPI интерфейс.
Не беда, лезем в даташит, выясняем, что SPI интерфейс висит на PCI Express:
И для его использования, нужно взаимодействовать с регистрами в BAR0 MMIO по алгоритму:
Задать адрес для чтения в BIOS_FADDR
Задать параметры команды в BIOS_HSFTS_CTL
Прочитать данные из BIOS_FDATA
Пилим новый скрипт для чтения через чипсет:
Немного помучившись, получаем ответ от SSD на команду идентификации
А если написать свой драйвер?
Зайдя на страницу с кодом драйвера, вы сразу наткнетесь на предупреждение:
Точнее я так думал, до вот этой статьи, глаз зацепился за крайне интересный абзац:
Драйвер из статьи действительно подписан, и действительно неким китайским ключом:
Как оказалось, сведения о подписи можно просто посмотреть в свойствах.. А я в HEX изучал
Немного поиска этого имени в гугле, и я натыкаюсь на вот эту ссылку, откуда узнаю, что:
есть давно утёкшие и отозванные ключи для подписи драйверов
малварщики по всему миру используют это для создания вирусни
Несколько минут мучений с гугл-переводчиком на телефоне, и мне удалось разобраться в этой утилите и подписать драйвер одним из утекших ключей (который довольно легко отыскался в китайском поисковике):
И в самом деле, китайская азбука
И точно так же, как и AsrDrv101, драйвер удалось без проблем запустить!
А вот и наш драйвер запустился
Из чего делаю вывод, что старая идея с написанием своего драйвера вполне себе годная. Как раз не хватает функции маппинга памяти. Но да ладно, оставлю как TODO.
Выводы?
Так вот, при включении этой опции, некоторые драйвера (в том числе RW Everything и китайско-подписанный chipsec_hlpr) перестают запускаться:
Тем не менее, рассмотренный пример утилиты на базе AsrDrv работает: