Comments 412
Меня зовут Андрей Артемьев, я работаю в Microsoft над ядром ОС Windows 10, ранее я работал над Windows 10x (WCOS), XBox, Windows Phone и Microsoft Edge.
Вопрос не по сути статьи, но всё же: вы работаете в российском отделении Майкрософт?
Мой вопрос вот в чём: ведётся ли в России в Майкрософт реальная разработка продуктов или же местное отделение занимается только продажами и сопровождением?
И насколько возросла эта величина при переходе Windows 7 -> Windows 10?
Новый функционал скорее всего будет иметь ошибки, потому как любому софту нужно пройти проверку временем.
Телеметрия не должна занимать большой объём ресурсов, так что если у вас комп работает медленно, то проблема скорее всего в другом и нужно самостоятельно делать диагностику компьютера, но это уже отдельная тема. Если вы можете воспроизвести проблему, то:
- Нажмите WinKey+F
- Опишите как воспроизвести проблему, по английски желательно
- На 4м шаге (Add More Details) нажмите «Recreate my problem» — и воспроизведите проблему.
- Теперь Submit. К нам в систему придёт уведомление вместе с диагностической информацией.
потому как в будущих обновлениях он получит более стабильную и быструю ОС.
Заплатив за это своей приватностью и безопасностью.
Так ведь и не получит же. Каждая следующая ОС и медленнее, и нестабильнее.
потому как в будущих обновлениях он получит более стабильную и быструю ОС.
Так ведь и не получит же. Каждая следующая ОС и медленнее, и нестабильнее.
После WinXP была существенная регрессия в WinVista и небольшая регрессия в Win8.0
С тех пор наблюдаю только рост стабильности. По всем WinVista -> Win7 -> Win8.1 -> Win10
И скорость безусловно падает, но это происходит со всеми версиями без исключения. Те, кто говорит о более высокой скорости новой версии, или сравнивают свежеустановленную с замусоренной, или попутно с обновлением системы обновили и железо, или столкнулись со специфической конфигурацией железа/софта, в которой старая система была сильно неоптимальной.
По поводу «роста стабильности» — сравните количество жалоб на проблемы после очередного обновления Win10 с количеством жалоб после обновления XP/Win7.
Жалоб где? В интернете?
В связи со значительно большим охватом аудитории интеретом в 2002 (WinXP вышла) и в 2015 (год выпуска Win10)?
И скорость безусловно падает, но это происходит со всеми версиями без исключения.
Не всегда.
Еще на довольно старом железе был удивлен более высокой скоростью работы WinXP по сравнению Win95. Хотя на большем количестве железа — было наоборот.
Ну а конкретно сейчас WinVista -> Win7 -> Win10 — скорость однозначно выше.
На том же железе.
В том числе и для свежеустановленного.
Проверено неоднократно.
или столкнулись со специфической конфигурацией железа/софта, в которой старая система была сильно неоптимальной.
Послушайте, этим можно любые домыслы оправдать.
Железо самое обычное, типовое.
И — разное. На разном желез проверено.
Каким образом Вы измеряли скорость работы системы? Очень интересно, как можно получить ускорение при объективном увеличении и объема модулей, и количества выполняемых операций, и количества слоев абстракции. А в Win10 добавился еще и гипервизор.
Почему у меня результаты всегда и везде строго обратные?
Почему у меня результаты всегда и везде строго обратные?
Если железо изначально недостаточное — то почему бы и нет.
Я всегда любил хорошее железо.
В Вашем случае, скорее всего, имело место отсутствие полноценной поддержки прежними выпусками системы каких-то аппаратных свойств железа. Такое сравнение очевидно некорректно.
Если значимые для производительности функции железа поддерживаются обеими версиями системы, за счет чего более тяжелая и сложная система может работать быстрее?
За счет оптимизации.
Например, не секрет, что процедура загрузки ОС Windows существенно переработана.
Она переработана в основном в плане зависимостей, чтобы GUI и возможность регистрации пользователя становились доступными раньше. Загрузка и инициализация к этому моменту не завершаются — они продолжаются заметное время после входа в систему. Чудес не бывает. :)
Ну то есть вы и сами заметили где именно произведено улушчение комфорта для нас с вами?
В плане загрузки я «улучшения комфорта» не заметил. Если в ранних версиях нужно было сперва подождать завершения загрузки, а затем сразу же начинать полноценно работать, то в более поздних можно войти в систему сразу же, как только отобразится стартовый экран, но сразу полноценно работать в общем случае невозможно, поскольку продолжающаяся загрузка создает изрядные задержки.
А я вообще не выключаю.
В новых версиях великолепно работает просыпание.
Я тоже не выключаю. Но мы говорили не о своих собственных предпочтениях, а об объективных свойствах систем.
Мы говорим об удобстве для конечного пользователя.
Сделали асинхронную загрузку — молодцы, стало комфортнее. Сделали хороший сон — молодцы, стало комфортнее.
Я совсем не ожидаю, что из Винды выкинут весь старый код и перепишут все с нуля.
Очень интересно, как можно получить ускорение при объективном увеличении и объема модулей, и количества выполняемых операций, и количества слоев абстракции. А в Win10 добавился еще и гипервизор.
Так же как и в любом другом ПО — переписав узкие места.
Самое большое торможение, как правило, в довольно небольшом количестве мест кода.
Какие именно глобальные узкие места были в 2k, XP, 7 или 8, и в каких версиях они были переписаны?
Это вопрос к разработчику — он как раз автор статьи, может, знает.
Я наблюдаю только следствия.
И где именно запятую в коде поставили разработчики MS знать не могу.
Узкое место вин10 — проводник. Попробуйте походить по папкам в вин 10 и вин хр. в ХР папки открываются моментально, в 10 есть задержка.
И это место становится всё уже и уже.
То же с поиском. Двадцать лет прошло, а поиск всё ещё работает тупым перебором файлов на диске. Есть какая-то индексация, которая почему-то не работает, или мне ни разу не удалось её нормально запустить.
Узкое место вин10 — проводник. Попробуйте походить по папкам в вин 10 и вин хр.
Я писал только про улучшения по скорости WinVista -> Win7 -> Win8.1 -> Win10.
WinXP заведомо исключил, ибо она существенно попроще по интерфейсу.
Хотя может быть передумал уже
Практически во всех остальных системных компонентах (в первую очередь в GUI) используется код от плохого до ужасного (чем выше по уровню — тем хуже). Он там может изящно выглядеть, быть очень объектно- или событийно-ориентированным, но объем и накладные расходы там чудовищны. И никто не будет его оптимизировать, поскольку убедить пользователей почаще менять железо гораздо проще.
Тоесть если оставить ядро, а гуй сменить на самопальный, то работать в целом будет лучше, чем на старой системе и быстрее, чем на новой?
А в Win10 добавился еще и гипервизор.
Зачем его запускать, если он не нужен?
Внутриядерный гипервизор (Patch Guard, Device Guard и т.п.) не спрашивает, когда ему запускаться. :)
Если их код отрабатывает за то время, что меньше пользовательской реакции — то этого вы и не заметите.
А уж тем более при аппаратной поддержке, которая давно имеется.
По поводу «роста стабильности» — сравните количество жалоб на проблемы после очередного обновления Win10 с количеством жалоб после обновления XP/Win7
Ой, а поделитесь пожалуйста этой статистикой. Никогда ранее не общался с ответственным за это человеком.
А то обычно в интернете только газификация луж в стиле: «вот раньше технари решали все проблемы сами, а сейчас инфантильные меллиниалы выросли и только в твиттер гадят о своих проблемах».
Хотелось бы видеть объективные цифры из багтреккеров.
Known bugs были под каждым патчем начиная с 2003 винды. Это норма при разработке ПО. Просто это никогда не считалось новостью.
Но сейчас блоггер — это же профессия, и важна частота и громкость написания заголовков, а не погружение в тему (например сравнительный анализ исправленных/известных проблем по сравнению с тем же месяцем прошлого года. Но новости из этого будет высосать совсем сложно, потому что сильных отклонений не будет).
А стало больше сообщений о глобальных ошибках, приводящих к серьезным ограничениям в работе системы, отчего пользователям приходится в срочном порядке делать откат или переустановку. И, если раньше это происходило в основном после согласия пользователя на установку обновления, то теперь пользователь, оставив вечером на столе нормально работающий компьютер, утром может обнаружить вместо него тыкву.
Если MS взял на себя право устанавливать пользователю обновления не только без его явного согласия, но и против его явного несогласия — ему неплохо бы взять на себя заодно и обязанность по устранению всех возникших проблем своими силами. А то ведь выгоду получает прежде всего MS, а проблемы целиком ложатся на пользователей.
Телеметрия должна быть отключаемая. А еще лучше делать отдельные тестовые сборки с телеметрией и удалить ее из обычных.Действительно, существует же debug версия Windows.
Выгода для пользователя от телеметрии отсрочена по времени, потому как в будущих обновлениях он получит более стабильную и быструю ОС.
Разница между нажатием кнопки «Послать отчёт об ошибке» и «посылаем в фоне всё, до чего можем дотянуться» очевидна, правда? Причем, первый вариант был/есть во всех версиях Windows, а вот второй появился массово только в Windows 10 и его добавили некоторые обновления для 7 и 8.х. Стало быть, вопрос очевиден: зачем оно тут? Вопрос риторический, ибо и так понятно зачем.
И я в курсе за лень/нежелание пользователей сообщать об ошибках. Про это уже была тут статья от другого работника M$. Но ведь у M$ и так достаточно большой штат тестеров. Неужели настали тяжелые времена и нужно сократить расходы на тестеров, задействуя бесплатно обычных пользователей?
1. В 2013 всё пучком.
2. Сокращение попадают в аккурат с выходом 10, что как бы намекает.
Когда в обновлении ОС имеются потенциально опасные изменения, они включаются не сразу, а постепенно. Такие изменения выглядят примерно так:
if (Features::TheNewFeatureEnabled()) {
// new code
} else {
// old code
}
Если новый код работал нормально у небольшой фокус-группы, он постепенно распространяется на всё большее число машин. Если всё хорошо, то в следующем обновлении старый код вместе с if-конструкцией удаляется. Так что телеметрия это не только маркетинговые данные, к слову я не знаю всё содержание телеметрии.
Если будете испытывать такую проблему то будем признательны если нажмёте Win+F, заполните описание проблемы и нажмёте кнопочку воспроизвести проблему, а после воспроизведение — submit.
При сборке большого проекта (очень много файлов было), если он был включен — у меня сборка занимала минут 30, без него 10.
i5, Haswell, Ram 32Gb, SSD evo860
Может быть архитектура процессора была не нова, и на более современных эффект его влияния был бы меньше.
Много раз было так, что я тратил кучу времени на поиск непонятной проблемы в работе софта, а оказывалось, что это Антивирус после запуска блокировал DLL, после чего программа тупа висела и ничего не делала, что там делал Антивирус одному ему известно.
А пробовали включать каталоги с программой в исключения?
А пробовали найти где добавляются исключения?
-Все параметры
-Обновление и безопасность
-Безопасность виндовс
-Защита от вирусов и угроз
(в этом месте для чего-то открывается новое окно настроек
-Управление настройками
-крутим глубоко вниз
-добавление или удаление исключений
-добавить исключение.
Ну, такой, интуитивно понятный путь. И знаю я его только потому что раз пятьдесят за последний месяц приходилось туда заходить на разных компьютерах.
И, да, через время исключения странным образом могут пропасть. Не отследил зависимости, пока продолжаю наблюдение.
И, да, через время исключения странным образом могут пропасть. Не отследил зависимости, пока продолжаю наблюдение.
ОС Windows единая для всех типов пользователей.
А большинство пользователей — уровней «домохозяйки». От них убрали, и это совершенно правильно, подальше, чтобы те сами себе не навредили.
Для IT-шника не есть проблема поднастроить ОС под себя. Он же специалист?
Некоторое ПО умеет само добавлять исключения в Defender.
Например, ПО семейства JetBrains IDE.
Посему, полагаю, добавку исключений можно реализовать и скриптом. Меню для этого не нужно.
А еще есть Group Policy
А еще бывает, когда приложение падает именно на процедуре закрывания окна/окон — тогда пользователю вообще никак не видно, что оно завершается аварийно, и он долго может считать, что все завершилось корректно, и начнет что-то подозревать лишь после того, как базы успеют побиться безвозвратно.
У меня новый макбук. На нем стоит Windows 10.
Нечестивец, грешник.
Чем меньше в системе сомнительного софта, тем безопаснее и стабильнее работает система, так что лучше ничего не ставить вместо дефендера.
Если приходится дело иметь с виндой, то лучше держать ее в виртуалке/облаке и не хранить в ней приватную информацию, пароли, ключи.
Подскажите, где можно про это прочитать?
На моей Windows 10 LTSC программа DoNotSpy не устранила регулярные вылазки системы в сеть. Особенно в играх раздражало, когда на ровном месте пинг взлетает до 300 и ты не понимаешь, что происходит. Пришлось вручную отключать "Службу оптимизации доставки" и еще несколько служб.
6. Обновление Программное обеспечение периодически проверяет наличие системных обновлений и обновлений для приложений, а также скачивает и устанавливает их для вас. Вы можете получать обновления только от Microsoft или через авторизованные источники, и Microsoft может потребоваться обновить вашу систему, чтобы предоставить вам эти обновления. Принимая условия настоящего соглашения, вы даете согласие на получение автоматических обновлений такого типа без каких-либо дополнительных уведомлений.
Это разве не может трактоваться как «Я разрешаю ОС ставить автоматом обновления», при этом явного запрета на отключения нету. Или как это работает?
Ну, вообще нет. Я ведь не получаю обновления ни от кого, кроме как от микрософт. А то, что микрософт меня не требует обновить систему по какой-либо причине, так это ж разве моя вина? Может у моего компа нет интернета, или связь какая-то ограниченная. Не проходят пакеты с приказом обновиться и всё тут.
Правильно. Но я не юрист, я говорю с позиции здравого смысла. А с юридической стороны здравый смысл далеко не на первом месте.
Кстати, очень помогло удаление папки \Users\%username%\AppData\Roaming\Microsoft\Windows\Recent и создание вместо неё файла с таким же именем с аттрибутом readonly.
Или, скажем, стандартное приложение «Фотографии», весящее 350 МБ, открывающееся 15 секунд (а мне же просто фотку глянуть!) и по функциональности, как бы помягче, далеко от IrfanView весом в 23 МБ.
далеко от IrfanView, а просто пропась между ними

В качестве электролита в танталовых конденсаторах используется диоксид марганца. Данный оксид является твёрдотельным полупроводниковым материалом.
Меня сбило изображение отдельной детали.
1) Вин 10, два аккаунта пользователей — А (главный с паролем) и Б (без пароля).
1.1) Пользователь аккаунта Б выключает компютер.
Вопрос: как пользователю А включить свой компьютер, чтобы сразу же не попасть в аккаунт Б?
1.2) Пользователь А выключает компьютер.
Пользователь Б включает компьютер и логинится в аккаунт Б.
Вопрос: каким хреном под аккаунтом А запускаются приложения из автостарта, без захода в этот аккаунт?
2) Почему иногда при включении своего компьютера, винда выдает какое-то говно-окно, с полностью не нужной инфой, блокирую доступ к аккаунту, пока я не разберусь с говном в окне? В настройках снят флажок с «Показывать новинки винды».
3) Почему в Вин10 присутствуют баги еще с ХР(как минимум в оболочке)?
4) Что по мнению Майкрософт должно происходить на начальном экране логина при нажатии на кнопку Win на клавиатуре? Открываться шторка чтобы попасть на ввод пароля/пина, нет? )
5) Почему Вин 10 может включить Мой Персональный Компьютер для обновления, но выключить не может? Т.е. компьютер может так проработать без присмотра несколько месяцев…
- О них не знают
- Они низкоприоритетные и на них пока не выделяют ресурсы
- Это фича ))
Можешь мне написать про эти баги и я обращу на них внимание тех кто занимается ими.
— На панели задач иногда «зависает» контекстное меню — весит пока в него не кликнешь.
— Иногда пропадает один из языков раскладки до перезагрузки(эксклюзив Вин10).
P.S. Вообще, уже приловчился жить с ними и всего сразу и не напишу. Да и Вин10 последним временем не плохо себя ведет.
— Иногда пропадает один из языков раскладки до перезагрузки(эксклюзив Вин10).
А иногда появляется лишняя раскладка, какая-нибудь азербайджанская, и это при том, что сам языковой пакет азербайджанского языка в системе не установлен.
Например, из последних что вылезли, бывает иногда какое-то окно ведет себя как «Поверх всех окон», хотя в нем такого функционала нету, и клики по другим окнам не активируют их.
Модальное окно?
Странно что это кто-то решил форсировать это окно каждому пользователю, прерывая вход в аккаунт.
Первый раз я подумал что произошло что-то серьезное так как раньше таких окон не было замечено.
Подгорело уже когда уже была снята галка «Показывать нововведния» и когда надо было что-то по-быстрому посмотреть на компе, а Майкрософт решил что мне надо сначала узнать о нововведениях в винде ))
Фидбек Хаба нету у меня, но надо бы отправить фич-риквест.
Но несколько раз замечал компьютер утром включенным в дни обновлений.
Кстати, как определить что включает комп?
Когда-то устанавливал какую-то программу и она делала как-то так что комп после отправки в сон включался обратно автоматически. Но програма давно удалена, задача из планировщика тоже.
Кстати, как определить что включает комп?
powercfg -lastwake
О чем это говорит?
Ноутбук периодически включается сам. И это грустно, когда он в закрытом состоянии. Ещё грустнее станет, если это произойдёт когда он будет в сумке.
Винда, используя ваши учётные данные которые она запомнила, сама запустит под вашей учёткой программы, которые были запущенный в прошлый раз. Неважно что вас рядом может и не быть.

А по поводу 1.1 Помню я делал пароль юзеру Б и включал опцию «не требовать пароль при входе» тогда хоть юзер Б и логинился автоматически, но и я в случае чего мог при включении компа зажать кнопку шифт и тогда автовход не срабатывал, нужно было ткнуть мышкой в нужного юзера. Но такое ощущение что в последних сборках десятки эта фича перестала работать.
включал опцию «не требовать пароль при входе»Эту опцию удалили в последних билдах. Впрочем, удалили из GUI, через реестр всё осталось. Ну и, справедливости ради, это реально небезопасная штука, когда пароль лежит на харде. Как и всякие сторонние утилиты типа EncryptedRunAs (поскольку это «encrypted» вскрывается).
Если том смонтирован, то доступен всем.
Так вот когда я по RDP захожу на сервер с кредами локального админа — я на раздел попасть не могу из своей сессии — раздел при этом доступен SQL серверу полностью и приложение работает нормально, раздел расшифровывается одним из сотрудников и запускает серверное приложение.
Действительно, в битлокер можно добавить SID Protector. Но он нужен для только разблокировки тома.
Зато локальный админ, как правило, имеет возможность переназначить права и получить доступ. По идее, терминальная сессия не должна это как-то ограничивать
это реально небезопасная штука, когда пароль лежит на хардеИ пусть себе лежит, он и так на мониторе написан, на всякий случай. Безопасность обеспечивается групповыми политиками.
Эту опцию удалили в последних билдах
1909, только что проверил, всё на месте, вызывается через control userpasswords2
2) Почему иногда при включении своего компьютера, винда выдает какое-то говно-окно, с полностью не нужной инфой, блокирую доступ к аккаунту, пока я не разберусь с говном в окне?
Без обид, но это классический «подземный стук».
«Дорогие учёные. У меня который год в подполе происходит подземный стук. Объясните, пожалуйста, как он происходит».
¯\_(ツ)_/¯
ps.
они есть и полупроводниковые
ps2.
это для ответа выше
Конденсаторы бывают из металлизированных плёнок или рулонов (стопок) фольги с диэлектриком (пластик, керамика, слюда), резисторы — углеродистыми или металлоксидными. Полупроводниковых среди них — мизерная доля.
А на картинке какой-то глупый дизайнер "электронные компоненты" назвал по своему хотению "semiconductor" (полупроводниковыми).
P.S. по теме статьи — посмотрите, как далеко упрятали смену переключателя языка ввода в "индусском коде" win10 против winXP (3 клика в интуитивно понятных местах Ru-En):
"Изменение сочетания клавиш для изменения языка ввода в Windows 10
С выходом каждой новой версии Windows 10 шаги, необходимые для смены сочетания клавиш немного меняются. В первом разделе инструкции пошагово о смене в последних версиях — Windows 10 1903 May 2019 Update и предыдущих, 1809 и 1803. Шаги для того, чтобы поменять клавиши для изменения языка ввода Windows 10 будут следующими:
В Windows 10 1903 и 1809 откройте Параметры (клавиши Win+I) — Устройства — Ввод. В Windows 10 1803 — Параметры — Время и язык — регион и язык.
Нажмите по пункту Дополнительные параметры клавиатуры ближе к концу страницы настроек. Открыть дополнительные параметры клавиатуры.
В следующем окне нажмите Параметры языковой панели. Открыть параметры языковой панели.
Перейдите на вкладку «Переключение клавиатуры» и нажмите «Сменить сочетание клавиш». Изменение параметров переключения клавиатуры.
Укажите нужное сочетание клавиш для переключения языка ввода и примените настройки."
При этом сам диалог настроек выглядит очень похожим на Windows XP, но запрятан как "смерть Кащея".
Это не только с языком. Попробуйте вручную ввести айпи компьютера. В икспи окно подключения можно было вызвать кликнув на значке соединения в трее.
В вин10 же нужно:
-Пкм на значке,
-выбрать центр управления сетями
- тыкнуть на нужное подключение, либо зайти дальше в изменение параметров адаптера и тыкнуть там.
Меня давно интересует вопрос, почему с каждой версией винды, настройки уходят куда-то вглубь? Они и так разбросаны где попало, а тут ещё и по разному называются каждый раз.
Панель управления… Почему панель управления всё неудобнее и неудобнее? Создаётся впечатление, что МС планомерно избавляется от неё. Таки вопрос — почему и зачем?
В вин10 в панель управления можно попасть… Не просто туда попасть. Открываем пуск, отстаём огромный список с огромными значками, дальше вспоминаем "панель управления", это служебное, спец возможности, или администрирование? Или может стандартные? Потыкали по всем папочкам, нашли. Вид по категориям, ну совсем не удобен.
За вид со значками менеджеров-программистов, которые это "пропустили в реализацию", стоит как минимум уволить, а как максимум сжечь на костре. Скажите, почему нельзя было сделать нормальную сортировку по имени? А не это убожество с построчной сортировкой.
Если правильно помню, когда-то был возможен вид таблицей, зачем это убрали?
А кто дизайнер меню пуск? Вообще, проводились когда-нибудь опросы, мол, на сколько удобнее стало пользоваться пуском?
Это всё можно исправить сторонними утилитами, м в этом проблема. Винду во все времена после установки приходилось допиливать до нормальной работоспособности.
В 10 многое стало проще, например установка драйверов — это божественно — установил ос, включил интернет, всё, драйвера сами ставятся. Почему нельзя такие улучшения делать в системе в целом?
Очень хотелось бы услышать ответ разработчиков.
В вин10 в панель управления можно попасть… Не просто туда попасть.
<win+r>
control
Так-то можно и все нужные настройки через <win+r> открывать, но это костыли.
Вот, если бы её можно было в пуск впилить, туда, где шестерёнка «параметры», это таки удобнее.
"Панель управления" планомерно выпиливается из системы. На смену приходит "шестеренка". С каждой версией винды там се больше параметров и ИМХО структурированы они лучше чем в панели управления. К тому же есть поиск опций, если не помните в каком она разделе.
Это прекрасно, что панель выпиливаются, а на смену ей грядут "всё настройки в одном месте".
Проблема в том, что шестерёнка работает ну очень криво и медленно и не удобно, а панель всё глубже и неудобнее.
Есть тысячи твикеров для виндовс, в них настройки расположены понятно и удобно. Почему МС не наймет наконец десять тысяч первого сотрудника, которым будет разработчик ui?
В России сотни людей, готовых забесплатно слать багрепорты и тестировать новые фичи, предлагать полезные улучшения, но воз и ныне там. Вместо полезных функций и удобного интерфейса мы имеем то, что имеем.
«Для вашего удобства мы убрали руль, а педали газ и тормоз поменяли местами».
В России сотни людей, готовых забесплатно слать багрепорты и тестировать новые фичи, предлагать полезные улучшения, но воз и ныне там. Вместо полезных функций и удобного интерфейса мы имеем то, что имеем.Нажмите Win+F. Или у вас тоже не нажимается, как и у меня?
Я могу даже написать программу, в которой будут все нужные мне ярлыки, но это не выход, когда приходится работать на компьютере, где нет программы, ярлыков, юсб и интернета. Зачем усложнять то, что и так работало раньше? Захотели больших изменений, ну сделали так, чтобы было удобнее, люди сами перейдут на новые настройки, а про архаичную панель управления забудут.
А тут новые настройки убоги, часть из них всё равно отправляет на окна приложений панели управления, часть из них запрятана (кстати, только сейчас понял, это наверное для того, чтобы люди научились пользоваться поиском настроек).
У Вас, скорее всего, еще более ранняя версия, впоследствии обновленная до 1809.

нет этой кнопки
открывает новомодные параметры. Я помню, когда-то давно там была кнопка панели управления. Только я ставлю альтернативный пуск вместо этого… подобия, так сказать, поэтому контекстное меню недоступно.
Возможно, где-то есть скрытая настройка, чтобы открывать по этой ссылке старую панель, но в панели десятки нет пунктов Display, Location and Other Sensors, Notification Area Icons, Parental Control, Performance Information and Tools, Personalization.
В вин10 в панель управления можно попасть… Не просто туда попасть. Открываем пуск, отстаём огромный список с огромными значками, дальше вспоминаем «панель управления», это служебное, спец возможности, или администрирование? Или может стандартные? Потыкали по всем папочкам, нашли.
Использую для этого Win+R -> control -> Enter.
P.S. я буду обновлять комменты
ЛКМ значок языка — настройки языка — «выберите метод ввода...» — «сочетания клавиш...»
меня больше подбешивают не самые короткие пути к более используемым компонентам — «центр управления сетями» и «устройства и принтеры», к которым раньше был доступ в два клика из раскрывающегося меню
хорошо, что пока на них можно делать ярлыки из панели управления и таскать с собой на флэшке
Это всё прекрасно. Допустим, в виндовс семь, можно по правому клику на значок языка сразу попасть в это окно. и это было удобно:

И что мы видим сейчас?
"гениайльные" уй-дизайнеры микрософт показывают нам окно на весь экран, в котором в самом верху стоит смена языка, добавление языка. Я ведь каждый день по несколько раз меняю язык системы и закачиваю новые…
В очередной раз из быстрых настроек того, что нужно, мы лазим по лабиринтам "параметров". И самое главное — где гарантия, что
ЛКМ значок языка — настройки языка — «выберите метод ввода...» — «сочетания клавиш...»
будет находиться там же в следующей версии системы? С тенденцией запихивать самые удобные настройки поглубже, скорее всего путь изменится.
Почему в винде до сих пор нет переключения языка например по capslock?
В плане работы клавиатуры, допустим, то, что сотни тысяч пользователей из россии открывают пуск и набирают, допустим «зфште», или «цщкв», потом удаляют введённое, меняют раскладку и заново пишут, но уже на нужном языке. Вот это вот всё отслеживается? есть у нас шанс, что винда когда-нибудь начнёт понимать, что не единой раскладкой живут пользователи и что можно включить возможность в поиске использовать и альтернативную раскладку, как это делается, допустим, в гугле, да и много где ещё?
По поводу переключения клавиатуры. С капсом никогда не заморачивался, а вот переключаться по левому и правому контрл — нашёл для себя очень удобным.
Представьте ситуацию: я подключаюсь к удалённому компьютеру через тимвьювер, на удалённом через рдп подключаюсь к серверу, на сервере в браузере запускаю веб интерфейс esxi и в нём захожу на виртуальную машину. (не спрашивайте зачем это, просто как пример) И от ввода текста мне становится грустно, ибо в лучшем случае символы вводиться не будут, пока на всех машинах не выставить одну и ту же раскладку, а в худшем будет вводиться какая-то фигня из непонятных символов, или один символ на все клавиши. Можно, конечно ставить хуки, писать свой софт, или использовать чужой. Эту проблему я решил с помощью пунто свитчера, но таки очень хотелось бы более гибких настроек по назначению клавиш.
Почему нельзя разрешить пользователю менять раскладку по капсу, или по кнопке Ё? Или на один язык переключаться левым контрл, а на другой — правым.
Возможность переключения по `(ё) присутствует.
Новомодные настройки — устройства — ввод — дополнительные параметры клавиатуры — сочетания клавиш для языков ввода.
Выбрать пункт «Переключить язык ввода» и по нажатию на «сменить сочетание клавиш» появится искомое.
Потенциально, можно переключаться на конкретные языки по хоткеям, но из-за убогих возможностей по настройке доступны только варианты (модификатор)+([`1-0]), что неудобно. Особенно при привыкании переключения по разным контролам.
Может быть у них дойдут руки до модернизации этой части интерфейса, но будет это нескоро, судя по стабильности сборок 1809 и 1903(на последнюю я несколько раз пытался обновиться с 1803, но обновление всегда зависало по непонятным причинам).
1903 Переключения по Ё нет. Только по ctrl+Ё. Но и оно у меня не заработало, возможно, что-то блокирует.
Но таки хотелось бы по разным контролам переключаться, так как разные клавиши на разный язык — это сильно логичнее и меньше ошибок при наборе.
Вот как выглядит у меня данный диалог. Win 10 1909 build 18363.535
Проверил, переключение МЕЖДУ раскладками по Ё работает, без разницы на модификаторы.

Впрочем, жить без ё не очень интересно, так что я не вижу этот вариант жизнеспособным (а другой человек может увидеть).
Посмотрите, возможно у вас какие-то хуки стоят, что не позволяют переключаться по одному нажатию на клавишу Ё.
А вот переключение на конкретную раскладку, увы, тут все очень плохо.
Теоретически, текущий вариант удобен, если у тебя много (более двух) языков. Но для двух языков — мне удобнее левый и правый контрол для явного переключения на конкретный.
Фактически, это единственная причина установки punto switcher, к которому за годы привык, но пользуюсь лишь одной фичей.
Написал программу, которая переключает язык по левому и правому контрл. Теперь можно будет обойтись без пунтосвитчера.
Спасибо ТСу за толчок в нужном направлении.
Вопрос к реально пользующемуся этой функцией. Переключение по шифту, или другие способы нужно встраивать, или контрл будет достаточно?
Реально есть статистика что какая-то ощутимая масса пользователей пользуется этой кнопкой?
Не знаю ни одного человека кто пользовался бы капсом, ну кроме как для написания юмористических комментариев в стиле «СРОЧНОСДЕЛАТЬЕЩЁВЧЕРАБЛДЖ1111»
З.Ы. Кнопкой капслок пользуюсь, — иногда капчу надо вводить большими буквами или пароли. Но добавить этот вариант переключения языков для большей настраиваемости и удобства Windows для разных людей было бы хорошо.
Не знаю ни одного человека кто пользовался бы капсомЗначит, не знаете людей с ограниченными возможностями. Там на капс много чего завязано.
Впрочем, я сам о таких вещах не задумывался, пока не довелось поучаствовать в разработке приложения, популярного у слабовидящих. Оказалось, что даже банальная недоступность строчки текста в интерфейсе с клавиатуры — уже серьёзно, люди испытывают реальное неудобство, не могут отправить этот текст на озвучку скринридеру.
А Сtrl+Shift+стрелка — Shift+F3 для каждого слова — это сильно сложнее капслока.
— И почему это было сделано не по умолчанию дцать лет назад…
А давайте попросим и CtrlShitEsc не на диспетчер задач, да и Win тож на своё…
А давайте не будем трогать CtrlShiftEsc.
У меня недавно был забавненький глюк — explorer хитро здох и после логина не отрисовывались значки на рабочем столе.
При запуске диспетчера задач из консоли в безопасном режиме с поддержкой командной строки тот тоже вешался при попытке открыть контекстное меню любого процесса.
Отсюда можно сделать вывод, что диспетчер задач уже не торт, раз уж его можно так легко положить. Систему пришлось переустанавливать(
>>> Смотрите LowLevelKeyboardHook, чтобы добавить такой функционал.
Смотрите линукс, там это сделано.
А для себя сделайте клавишу Enter, через Ctrl-Del через LowLevelKeyboardHook, посмотрите откуда требования происходят.
Не отвлекаясь от печатания можно нажатием мизинца по Ctrl+Shift быстро сменить язык.
А Shift+Caps или Caps прожимать мизинцем ещё удобнее — у меня так переключение настроено, Shift+Caps — русская раскладка, Caps — английская. Очень удобно тем, что не надо знать, какая раскладка стоит сейчас, чтобы включить нужную.
Ну и индикатор Caps у меня светится когда русская раскладка включена, удобно.
Linux, да. Причём это даже настраивается штатно в панели управления, а не в конфигах.
Почему только по CapsLock? Почему не требовать от винды какой-нибудь дичи вроде LShift+LCtrl+LAlt+RAlt+RCtrl+RShift+Reset?
Нет такой фичи? Выпустите свой продукт! Если он действительно будет нужен пользователям — вы озолотитесь.
Вон, человек выше комментарием, написал что он переключает с помощью RCtrl. Значит есть стороне решение.
А не торопятся, потому что незачем. Будет как с блокнотом. Пока ничего не делали, была группа пользователей, которая ныла что блокнотом не занимаются. А когда внесли изменения в блокнот, то появилась другая группа пользователей, которая начала ныть что есть более важные вещи, а MS блокнотом занимается.
Текущая ситуация позволяет выбрать 2 исторически сложившихся варианта. Все остальное делается сторонним ПО.
А что там в блокноте улучшили за последние 10 лет? Поддержку юникода? Так это не фича, а неизбежный переход на х64
А вы можете написать статью о сообщениях в виндовс? Мне интересно, как происходит слаженная работа всех компонентов интерфейса. Ведь нажатие на кнопку это по сути отправка объекту "кнопка" сообщения sendmessage, верно?
Только сообщение кнопке отправить легко, а что происходит, когда юзер меняет ширину столбца, или показывает/скрывает столбцы, изменяет вид папок проводника. Где про это можно почитать подробнее?
Есть программа InqSoft Window Scanner — она позволяет посылать произвольные сообщения, может вам пригодиться когда будете изучать этот вопрос (если конечно захотитие))
Да, пользовался ей активно. Ещё spycapture, она, похоже уже мертва, как и многое из программ, которыми пользовался давным давно, когда познавал мир виндовс. Делал автоматические установщики, потом на делфи писал перехват клавиатуры, назначение горячих клавиш и отправку сообщений в окна.
Я только недавно осознал, как эти сообщения работают, что те два параметра, в которых я отправлял коды клавиш, могут также содержать указатели и посылать окнам гораздо больше, чем пара байт. Вот это и хочется изучить. Тем более, есть программы/интерфейсы, в которых кнопки отличаются от обычных и не определяются через сканер InqSoft, но как-то они ведь работают.
Например, винда сильно уменьшает время хранения буферов (на запись) метаданных для Removable Media.
А еще про разницу между Fixed Media и Removable Media. К примеру USB флэшка может быть Removable или Fixed, это всего лишь 1 бит в конфигурации устройства. Хотя USB устройство и так подразумевает возможность извлечения, но винда резко меняет поведение если устройство объявляет себя Removable, при том что USB HDD (Fixed Media) вполне себе нормально живут.
Кстати SATA устройства тоже могут быть извлекаемые (eSATA), но через API далеко не просто докопаться внешнее это устройство или внутреннее. Да, даже версию USB у флэшки выше 2.0 не узнать через стандартный API, она всегда возвращается 2.0.
И почему я могу читать-писать сектора у дисковых устройств своей прогой, но никак не могу подключить свой обработчик файловой системы без подписанного драйвера?
Windows запрещает загружать не подписанные драйвера. Вы пробовали эти команды, они для тестирования, а не для продакшена:
bcdedit -set loadoptions DISABLE_INTEGRITY_CHECKS
bcdedit -set TESTSIGNING ON
Попробуй-ка быстро удалить тысячи файлов, а вот не получится потому что винда должна сбросить метаданные на диск много раз для КАЖДОГО файла. Хочу гибкости в настройке поведения буферизации через API!
А зачем винда для добавления драйверов требует сперва извлечь все файлы драйверов на диск, а потом их КОПИРУЕТ к себе вместо переноса. А ведь каждый драйвер можно было бы прямо целым CAB файлом подключать и хранить, что резко бы уменьшило количество файлов на диске и соответственно количество дисковых операций.
без подписанного драйвера
Если что — обращайтесь, подпишу бесплатно ;)
(правда, с некоторыми нюансами, которые не позволяют применять это в продакшене, но и отключать у себя на машине проверку подписи больше не придётся, так что, если это что-то самописное для личных нужд, то вполне вариант)
У вас есть сертификат, или вы знаете какую-то тайну?
Информация несколько лет гуляет в полупривате, например, таким макаром подписывается некоторый взломанный софт, где защиту разработчик размещает в драйвере. В принципе, уже есть даже однокнопочная утилита, которая лепит такую подпись, просто всё это не вываливается на каждом углу, чтобы не дразнить гусей и не помогать вирмейкерам (привет антивирусу Panda, который несколько лет назад после такого трюка переставал детектить даже хорошо известное ему вирье). Антивирусные продукты могут реагировать нервно по принципу «повреждённая подпись вызывает больше вопросов, чем даже полное отсутствие подписи», поэтому в продакшен не годится.
Хотя, скорее всего, Microsoft знает про это, но не может исправить, потому что (моё предположение) пойдёт лесом обратная совместимость. Интересно было бы, конечно, написать хорошую статью с разбором уязвимости и посмотреть, как вендор начнёт выкручиваться, но скиллов понять, как оно работает, у меня не хватает.
там будет USB_DEVICE_SPEED enumeration
К тому же USB_DEVICE_SPEED максимум показывает USB 3.0, а как же USB 3.1 Gen2 или USB 3.2 Gen 1x1, 1x2, 2x1, 2x2?
Я пользуюсь STORAGE_ADAPTER_DESCRIPTOR, где есть BusType, BusMajorVersion и BusMinorVersion, который всегда показывает USB 2.0
Вообще, адресовать такую статью «студентам технических специальностей» по мне преступление. А после фразы «Материнскую плату можно рассматривать как колонию микроконтроллеров которые общаются между собой через шины и через них циркулируют данные от подключенных устройств к процессору и обратно» захотелось убивать. Завершил разрыв мозга притянутая к уровню радиоэлементов архитектур клиент-сервер и уровень виртуальной машины вместе с Hyper-V.
Корпоративная солидарность не позволяет мне критиковать коллег по цеху (пусть и из лагеря условных союзников), не не могу не напомнит одну цитатку Курта Воннегута.
Если ученый не умеет популярно объяснить восьмилетнему ребенку, чем он занимается, значит, он шарлатан.
Думаю, она относится не только к ученым, но и к любым людям, считающих себя специалистом в какой-либо отрасли. Так вот — ваш текст с трудом понимает 40-летний системщик (и многое в нем считает неправильным по разным причинам), а уж восьмилетнего ребенка или думающего «студента технических специальностей» он просто раздавит.
А если уж нарисовали биполярный транзистор, то писать надо про MS-DOS, io.sys.
Вы не понимаете почему в этой статье про клавиатуру написано так мало?
Неакадемичность изложения?
И, конечно, нет никакой «колонии микроконтроллеров» на материнской плате. Все же микроконтроллер — это некоторое процеcсорное и программируемое устройство. А на материнской плате есть «колония контроллеров ввода-вывода» — они имеют крайне мало общего с продукцией Microchip, Atmel, ST-Microelectronics и им подобным. Хотя бы потому, что не содержат в подавляющем своем большинстве вычислительного ядра. Если где и есть микроконтроллер, так только непосредственно в самой клавиатуре (особенно Китайцы очень любят ставить контроллеры общего назначения в свои мега-клавиатуры с подсветкой) или мыши.
Неакадемичность можно только приветствовать. Но ведь фактическая точность от академичности текста зависеть не должна. Электронные компоненты имеют свое деление. А вы даже не удосужились на него посмотреть. Резисторы и конденсаторы (которые начиная со школы изучаются как пассивные элементы) приравнять к полупроводникам… Да еще и обосновать это тем, что «в составе микросхем же они есть» — это уже не «неакадемичность».
В итоге получилось то, что получилось. Некоторая статья о клавиатуре и Windows в которой мешанина из крайне спорных фактов. Возможно, те кто совсем не в теме что-то из нее и почерпнут. Только именно это и страшно. Странно изложенные факты, прошедшие в голове неспециалиста собственное осмысление и интерпретацию породят такую кучу кучу сложновыводимых мифов, что даже думать страшно.
И одно дело когда подобная чушь идет от маркетологов и прочих менеджеров, и совсем другое когда от человека, который «работает в Microsoft над ядром ОС Windows 10». Все же фактическая точность обязательно должна быть.
Впрочем, могу и похвалить. Мне понравился ваш подход и попытка объяснить разницу между режимом ядра и режимом пользователя. Вот тут есть камень предкновения для очень многих программистов (включая тех, кто считает себя системщиками). Увы, но боюсь даже это понятно мне, но не «широкой публике». Но подход именно в этой части однозначно правильный.
Настройки безопасности/изоляции ядра/контроль целостности памяти.
Windows Defender Application Control and virtualization-based protection of code integrity
Не будучи экспертом в теме радиоэлектроники скажу, что насколько я знаю не только порты ввода-вывода обладают прошиваемыми контроллерами, как минимум чип с UEFI (BIOS) содержит прошивку. Такой большой чип как Южный мост (называйте как хотите, хоть PCH) навряд ли не содержит никакой прошивки. Принципиальные различия между чипами человек разберёт если захочет погружаться в эту тему. Для общего понимания работы машины достаточно и такого объяснения. Между прочим я нигде не утверждал, что конденсатор это полупроводник.
Академический подход к тому что я опишу в нескольких статьях это обособленное изучение предметов в списке ниже в течение 5 лет в надежде что человек сам соберёт их в общую картину:
- математика
- физика от азов до электродинамики
- электротехника
- электроприборы
- язык С и алгоритмы
- операционные системы
- системное программирование
- математическая логика
- теория игр
- системный анализ
- другие предметы
для того чтобы 90% выпускников следующие 10 лет писали web-приложения, мобильные приложения, пользовательские программы или делали управленческую карьеру. Это неэффективное распоряжение временем, зато академически точно.
Я примерно знаю как устроен мой автомобиль, хоть и не механик. Мне этого достаточно чтобы понимать что могло в нём поломаться, как решать споры с автосервисом, что имеет смысл докупать. После моих статей люди будут понимать как ПК работает в общем и целом. Страшного тут ничего нету — как только человек начнёт вникать в выбранную область мифы развеятся.
Вам трудно угодить, спасибо за похвалу.
Ведь некоторые думают что если использовать VPN в месте поближе к сервису, то пинг через него обязательно уменьшится.
Про внутреннее устройство мостов знает только их производитель. Я не производитель — потому не знаю. Но имею все основания предполагать, что никакой даже скрытой от конечного пользователя прошивки там нет. Там железная логика. Впрочем, притянуть за уши, конечно можно. Железная логика такого уровня давно разрабатывается на языках HDL (hardware description languges). Так что если объединять пассивные компоненты и полупроводники (картинку смотрим — там и резисторы с конденсаторами обведены рамочкой Semiconductor Devices), то в принципе можно сказать что и мосты — одна сплошная прошивка. Но по факту любой мост — всего-то окно в памяти (регистры даже на x86/x64 уже дикое legacy и это правильно) и набор каналов прерываний и прямого доступа к памяти.
Ну и про устройство автомобиля. Лук — он многослойный. Один слой как педали нажимать и руль крутить, другой — бензин и омывайку заливать, третьи — предохранители и эксплуатационные жидкости (масло), а дальше системы питания и выхлопа, подвески, дифференциалы, а если надо глубже, то химия, материаловедение… Вы в заголовке очень глубоко замахнулись. Но у меня после прочтения осталось стойкое ощущение, что вы путаете масло ГУР, двигателя и коробки передач. Формально все это масло. Все они моторные. Но обобщать их… Не правильно, что ли.
После старта питания. Еще до запуска CPU, работает куча контроллеров. Подготавливающие всё для запуска CPU.
Нет в мостах никакой железной логики.
Ух… Т.е. вы хотите сказать, что в мостах работает программа которая умудряется поставлять данные процессорам, работающим на гигагерцах? Т.е. контроллер внутри моста быстрее самого процессора?
По контроллерам. Хорошо MEI или ее аналог. Принято. Я, к слову, писал о «выделенном процессоре рядом» на котором исполняется часть кода из микросхемы памяти с UEFI BIOS. Один найден и засчитан. А еще? Один на кучу совсем не тянет.
Допустим, в ноутбуках есть мультиконтроллер. Может ли (и должен ли) он работать до старта ЦПУ я не знаю. Но, допустим, может. Два. На геймерских платах местами попадаются контроллеры, отвечающие за подсветку (не могу пруф найти — но вроде даже здесь кто-то с ним ковырялся). Три. Уже куча? Ну ладно. Пусть будет куча и каждый со своей прошивкой.
Нет, конечно можно найти микросхему EEPROM в которой хранятся VID/PID для USB хаба. Наверное, можно сказать что и там работает какая-то прошивка.
Хорошо. Пусть будет так. Пусть будет толпа контроллеров. Почти убедили.
В более старых материнках чипы тоже не полагались на программную реализацию?
Наверное в том, что контроллеры написанные на языках HDL не имеют как такового вычислительного ядра. Все же именно наличие отдельного блока ALU, и как минимум пары регистров и есть отличительный признак вычислительной системы. Тут же четко прописанный автомат состояний.
Мы же не называем железный ткацкий станок программируемым устройством. По крайней мере до тех пор, пока он не оснащен съемным барабаном с программой, позволяющей менять последовательность петель. Аналогия примерно такая же. Да, когда-то это разрабатывалось на языках HDL, но и «однопрограммный» станок кто-то когда-то проектировал. Наверное как-то так.

Плюс ниже него еще контроллер прямого доступа к памяти 8237
Под процессором стоит контроллер Intel 8259 — семейство программируемых контроллеров прерывания
И еще есть Intel 8253 — микросхема программируемого трёхканального таймера и счётчика интервалов — это в общем тоже программируемый контроллер, хотя и не такой мощный как предыдущие.
А контроллером может быть любое достаточно простое управляющее устройство — конечный автомат, к примеру контроллер питания
— Super I/O есть не только в ноутбуках.
— Прошивки есть в самом CPU и они обновляются. Потому как x86 Intel внутри содержит RISC процессор.
По этой аналогии во многих чипах не просто железная логика. Там свой CPU с RAM и прошивкой (звук, сеть, sata и т.д. )
Взять скажем сетевую карту. Как без CPU сделать TCP Offload?
В SSD или HDD есть контроллер. И память. И микропрограмма. И нужна она для самых разных функций. При этом, собственно упаковкой данных в интерфейс в нем занимается выделенный аппаратный блок. Слишком не те скорости.
Но контроллер SATA (если он именно контроллер SATA, а не железный RAID) — по сути банальный мультиплексор, хоть и усложненный буфером данных и рядом DMA'шных каналов. И памятью, его рулит отнюдь не микроконтроллер в «классическом» понимании этого слова.
Посмотрите так любимый многими STM32. ARM отдельно, а контроллеры USB (что хоста, что устройства), MMC, TFT LCD — отдельные IP блоки, которые доступны только через окно в памяти. Я не знаю в деталях внутреннее устройство этих блоков, но если верить структурным схемам в документации то нет там никакой отдельной программы. Типичные цифровые автоматы с жесткой логикой работы.
Что до микрокода… Поверьте, тут все не так однозначно (с) Иначе та же Spectre не наделала бы столько шума. Не все и не всегда им можно исправить.
То что контроллер никак не виден программно, со стороны программиста через код CPU, не означает что это не контроллер со своим ALU.
А дальше вопрос ее наличия или отсутствия — скорее вопрос веры. Я, изучавший конструирование цифровых автоматов, склонен считать что ее там нет. Видя регистры управления и зная подаваемые сигналы тактирования я могу представить как именно реализован такой автомат без ALU. Но, вполне естественно, не могу быть в этом уверенным на все 100 процентов.
По звуку. Даже «широко известная в узких кругах» микросхема кодека SGTL5000 по документации содержит в себе DSP, отвечающий за цифровую фильтрацию и работу алгоритмов автоматического регулирования уровня записи (ALC). Возможно, там реально DSP. А может быть и нет. Я такому раскладу не удивлюсь. Что до «крабов» — то я тоже склонен считать, что эффекты типа «стадион» или «ванная комната» это работа драйвера и использование CPU. Впрочем, AWE32 в свое время содержала богатый DSP. Но ведь это уже периферия. К тому же довольно жестко специфичная.
Т.е. вы хотите сказать, что в мостах работает программа которая умудряется поставлять данные процессорам, работающим на гигагерцах? Т.е. контроллер внутри моста быстрее самого процессора?Частота процессора — гагагерцы, а частота системной шины какая?
И мост же остался только южный, всё действительно высокочастотное давно в процессоре.
Конечно. Системная память в случае северного моста — это очень низкоскоростное устройство. Можно лагать почем зря. Или контроллер интегрированного дисплея (который должен получать фреймбуфер из системной памяти) может быть не просто медленным, а просто супер медленным. Любого контроллера хватит, чтоб эти вещи окучить.
Сарказм: выключен
Надо к Intel на поклон идти. И смотреть документацию на тот же PCH. Возможно и есть там что-то. Но точно не основное. А мосты и раньше были всего-то объединением на одном чипе горки развесных контроллеров и шинных интерфейсов. Не думаю что и сегодня ситуация резко поменялась. По сути там те же «развесные» корневые хабы для PCI/PCIe, контроллеры SATA/USB и все такое.

Пробовал DVI-ADD на более новом чипсете — не завелось.
AsRock вообще молодцы. Когда начинали, были самым дешёвым во всех смыслах производителем, как сейчас BioStar — экономили на спичках, ставили самые дешёвые компоненты, хотя ещё были дочкой ASUS. И первыми выходили из строя. Потом резко изменили стиль, перестали экономить на компонентах и стали выпускать материнки с нестандартной разводкой и функциональностью. В том числе, по-моему, DVI-ADD впервые появились именно у них.
При этом цена осталась вполне привлекательной на фоне увлёкшихся фантиками ASUS и Gigabyte. Также МП Asrock всегда лучше укомплектованы при меньшей цене, а некоторые решения уникальны.
У меня сложилось впечатление, что в определённый период AsRock получила ощутимую поддержку от кого-то из грандов индустрии, возможно, стала производственным полигоном Intel (HP, Dell). Достаточно взглянуть на ассортимент серверных платформ AsRock, чтобы в этом убедиться. Неоткуда третьеразрядному производителю взять достаточно инженерных ресурсов для разработки и поддержки такого широкого спектра инженерно-ёмкой продукции.
Данный DVI-D адаптер устанавливается в слот для видеокарт PCI Express x16… Максимальным разрешением, которое поддерживает DVI-D адаптер D2823-A11 является 1920 х 1200 точек с частотой обновления 60 Гц.
В рамках обозначенной темы, важен интерфейс. В данном случае это (если верить нтернету) PCI-e x16. И в варианте с мостом, и в варианте с PCH этот интерфейс уходит непосредственно с CPU. Смеху для можно посчитать пропускную способность 1920х1200х3(RGB888 — 24 бита)х60 — почти 400 мегабайт в секунду.
Я думаю, что вопрос о микроконтроллере, способном ворочать данными с такими скоростями будет неуместен. Конечно и безусловно тут исключительно жесткая логика. Ну, и еще раз — в случае с PCH это не единственные данные, которые гуляют между CPU и PCH.
Валяется плата от материнки AsRock, типа HDMI ADD, на которой из активных элементов присутствует только три буферных транзистора. Конечно возможно, что на этой материнке есть какой-нибудь грязный аппаратный хак типа как на телефонах Motorola аналоговые наушники подключались к разъёму mini-usb или на некоторых ноутбуках через комплектный переходник с vga разъёма выводился компонентный сигнал на телевизор. Но не вижу в этом смысла, проще было поставить на материнку hdmi разъём, а не городить переходной слот.
Включив режим телепата могу предположить, что то, что вы считаете за транзисторы на деле является защитой от статики (ESR), а HDMI'шные дифпары уходят прямо со слота PCI-e. Там же по классике есть и I2C для DDC канала. Возможно, BIOS если считывает правильные данные DDC просто включает на эти пары HDMI сигналы. Почему при таком раскладе просто не поставить слот — не знаю. Видимо были на то свои причины. Но еще раз — это предположение в режиме телепата. Не более того.
В абсолютном большинстве ПК по всему миру, в данный момент в MB вставляется только один контроллер — видеокарта.
В ноутбуках вообще всё интегрировано.
Так что между MotherBoard для Intel 80286 и современной, огромная пропасть.
Я реально рад тому, что статья Ваша пришлась аудитории хабра по вкусу. Впрочем, судя по комментариям, вопросы скорtе не по самой статье, а по работе (в) Microsoft.
Прошу прощения, если по комментариям сложилось впечатление что я на вас наезжаю. Право слово — и в мыслях не было. Все, о чем я хотел попросить — это чуть больше внимания к деталям. Только это и ничего больше.
А где вас можно послушать? Очень интересно.
Питер? Не часто там бываю =(
Но деятельность таки планирую менять. Или даже место работы.
А это ничего страшного. Даже банальные, или мелкие для вас вещи, могут быть откровением для кого-то с горящими красными глазами. А в документации на понятном языке, можно давать ссылки на статьи на непонятном, это мотивирует читать правильные и актуальные источники)
Я сам долго и с трудом собираюсь что-то написать, тоже всё кажется обычным, но люди потом читают и даже что-то пишут в ответ, некоторым даже нравится. Но дальше чем развернутый пост вконтактике, или на каком-то форуме раз в год, это редко выходит. Зато через года натыкаться на свои посты и перечитывать достаточно интересно. Так что пишите =)
Ваш комментарий понравился, но резисторы и конденсаторы вполне можно причислить к полупроводникам. Дело в том, что Вы пишите о резисторах и конденсаторах из курса электротехники, а автор говорит о резисторах и конденсаторах из курса интегральной схемотехники, то есть это резисторы и конденсаторы в интегральном исполнении на полупроводниковой подложке. Более подробно можете посмотреть например в пособии Миндеевой Аллы Алексеевны "Микросхемотехника"
Если мы спускаемся на уровень компонентов и ключей, то разумно все же пользоваться терминологией именно этого уровня. Более того в разное время были мало того что разные методики формирования полупроводников на кристалле, так еще и пассив не всегда был чисто полупроводниковым. Сейчас не вспомню, но была отличная статья вроде как от Analog Devices и историей микросхемостроения. От сборок до наших дней. Там много было интересного. И про пассив в кристалле, и про MEMS, и про полупроводники. Если вспомню где я ее видел — пристегну ссылку. Довольно давно дело было. Да и здесь, на хабре есть отличные статьи от amartology Они, конечно, не совсем об этом, но разные поколения микросхем в них прекрасно различимы. Всегда приятно его почитать.
На самом деле можно еще ниже. Я удивляю новоиспеченных системщиков рисуя им логические элементы, триггеры, регистры и прочие элементы на электромагнитных реле. Да и тут были статьи про построение компьютера на реле. Потом лампы. Их незаслуженно забыли, но ключи на них крайне простые и интуитивно понятные. Силно проще и понятней тех же транзисторов. Много интересного есть в самых нижних слоях компьютерных систем. Не меньше чем в верхних.
P.S. Спасибо за теплые слова)
Особенно красиво выглядят полупроводниковые резисторы и конденсаторы на иллюстрации к тексту…
https://habrastorage.org/getpro/habr/post_images/210/226/f1d/210226f1dc4ff07daee3f1c36e04c164.png
куда копать глубже по каждому уровню направление ясно.
>А можно узнать
основная работа java, для себя stm32, C, rust
Про пояснение по работе — спасибо. Однако тема настолько обширна, что накрыть ее одной статьей почти наверняка невозможно. Попытаться можно, но накрыть… Боюсь толковое описание одного только только i8042 (классический контроллер клавиатуры PC) или описание того как именно взаимодействует клавиатура USB (USB device, USB host, HID class и т.д.) с операционной системой займет не меньше, чем вся данная статья. Мне привычнее работать именно с этими слоями. И именно к их описанию у меня вопросы. Я мало что знаю про уровень ядра Windows, а тем паче про прикладной уровень в ней. Потому и стараюсь говорить только о нижнем уровне.
Но ведь и претензии не к сжатости изложения (она-то как раз понятна), а к горке фактических неточностей (которые так и хочется назвать ошибками — оно ближе к истине будет).
Я бы посмотрел...
Хм… Старая байка про математиков. Когда он спрашивает у физика «И в чем же математический смысл Вашей физической абстракции»?
На самом деле не путайте «научить восьмилетнего ребенка...» с «объяснить восьмилетнему ребенку...» Научить — безусловно нереально, а вот если не получится объяснить — значит точно что-то не так. И, к слову, названные Вами отрасли вполне объяснимы не только восьмилетнему ребенку, но и даже детсадовцам. Пробуйте. У Вас точно получится.
Понимаю, что не совсем про то, но вспомните как хорошо получалось объяснять сложные вещи простым языком Якову Исидоровичу Перельману. В 8 лет — это второкласник. Который даже таблицу умножения знает.
И что, не похоже на рассказ второкласнику про алебраическую геометрию?
Хорошо, допустим не рисовать. Допустим учу компьютер представлять как взаимодействуют тот самый лопух и камень, которым ты в него запустил. Порвется лист или просто погнется.А может его вообще от корня оторвет. Как результат будет зависеть от того камень брошен или бутылка? А если вместо лопуха будет куст розы? Это мы можем что-то взять и проверить. А компьютер вынужден считать. Вот я и учу его правильно считать такие штуки. А еще не только его, но и всех остальных, кто почему-то не может сделать что-то в мире. Вот мы, например, не будем же сажать розу вместо лопуха.
А вообще кто из нас алгебраический геометр? Вы или я? И да, быть при этом немного «лириком» — навык очень полезный.
Впрочем, если настаиваете могу согласиться что это наше с Куртом Воннегута частное мнение. Мне сложно судить о том, насколько оно применимо далеко за пределами сферы моих интересов. Хотя, конечно, надеюсь, что применимо.
Был пост про контекстное меню, которое проводит тысячи запросов к накопителю, — что это за фича?
Ещё где-то было про очистку иконок в трее для завершившихся программ.
Раскраска темной и светлой тем — это какая подсистема делает? Да и в целом последовательность от прикладной программы до «Windowing and Graphic»? Почему при тёмной теме проскакивают «вспышки» заполнения белым пространства для открывающихся окон программ.
Всё что видно на экране отрисовывается через DirectX (Windows and Graphics). То что компонует внешний вид окон и элементов управления скорее всего находится в uxthemes.dll.
У меня тоже тёмная тема и только счас обратил внимание на «вспышки». Может и баг, посмотрят.
Был пост про контекстное меню, которое проводит тысячи запросов к накопителю, — что это за фича?
В комментах к стате в блоге автора поделились ссылкой на ченжлог insider билда 19008.
We’ve done some work to improve the launch speed of the taskbar jump lists.
Но вообще, жаль нет публичного баг-трекера, где можно было бы почитать комментарии разрабочиков Windows о ходе работы над подобными багами. Думаю, многим было бы интересно почитать.
Меня зовут Андрей Артемьев, я работаю в Microsoft над ядром ОС Windows 10Было бы очень любопытно услышать от вас подтверждение или опровержение некоторых мифов связанных с разработкой Windows:
1) Правда ли, что разработка Windows ведётся в закрытой и охраняемой комнате, в которой нет доступа к интернету, и куда запрещено вносить или выносить любые запоминающие устройства?
2) Правда ли, что разработчикам запрещено исправлять баги в коде Windows без санкции высшего руководства? И может ли разработчик самовольно добавить какую-то фичу в Windows, и сказать, мол — глядите что я придумал, или за подобное его ждёт лишь наказание?
3) Правда ли, что разработчикам Windows запрещено в свободное время участвовать в OpenSource проектах, или вести собственные pet-проекты?
4) Некоторые разработчики Windows пишут статьи, или даже книги, в которых рассказывают о внутреннем устройстве Windows. Как они определяют, что можно рассказать, а что нет? Существует какое-то руководство, вроде «Как не выдать коммерческие тайны Microsoft», или просто каждая публикация перед выходом в свет проверяется компетентным сотрудником?
3) Правда ли, что разработчикам Windows запрещено в свободное время участвовать в OpenSource проектах, или вести собственные pet-проекты?
Не думаю, у того же Руссиновича я прямо сейчас вижу на Github форки свободных проектов, в которые (в свои форки) он вносит изменения, а это уже участие (эти изменения апстрим может спокойно взять себе, лицензия позволяет).
В наш открытый проект тоже однажды сотрудник MS прислал пулл-реквест.
Некоторые особо секретные компоненты вроде PatchGuard находятся в отдельных репозиториях к которым есть доступ только у ограниченного числа людей и над ними работают в помещениях с ограниченным доступом.
2. Баги фиксятся в порядке приоритета и имеющихся ресурсов, бюрократия в компании небольшая. Можно написать в отдельной ветке свою фичу в качестве эксперимента и потом показать коллегам. Она попадёт в релиз если только:
- Будет одобрена Program Manager, которые почти все бывшие программисты.
- Менеджер согласиться выделить ресурсы под реализацию. Менеджеры программисты.
- Её реализация пройдёт design-review, на котором эксперты в затронутых областях выскажут своё мнение.
- Она пройдёт code-review, т.е. изменения будут одобрены другими разработчиками. Это обязательное условие для попадания в основную ветку.
Разработка Windows дело медленное и новая фича может занять неделю как минимум и может ввести регрессии, на которые будут жаловаться другие команды, когда это изменение дойдёт до них. Так что такие вещи надо согласовывать и тщательно проверять. В компании раз в год проводятся Хакатоны и каждый месяц есть Day of Learning в которые можно поработать над своими проектами. Интересные проекты с Хакатонов нередко получают поддержку компании и почти сразу уходят в разработку.
3. Microsoft сам активно участвует в OpenSource, не думаю что такой запрет есть.
4. Я думаю они это согласовывают с соответствующим отделом, либо же исходят из имеющихся инструкий о том что есть конфиденциальность. В моём материале ничего конфиденциального нет, всё находится в открытом доступе.
А Вы слышали жалобы на настройки в панели управления, которые «скачут» по разделам от релиза к релизу? Как так?
(хотя не люблю я WinApi)
Вы, как программист, работающий над ядром ОС и понимающий внутреннюю кухню, могли бы предложить коллегам из другого отдела скорректировать подход к трансляции клавиатурного ввода.
ЗЫ: статья интересная, буду ждать еще.
Спасибо. Думаю через пару недель выйдет следующая.
Сама постановка вопроса уже вызывает вопросы. Что вы понимаете под «работает», и что означает «взаимодействие»?
Биос передал ОперационнойСистеме сформированное им ACPI (AML) и первое что делает ОС это переключается в режим SCI.
В режиме SCI код биоса «не виден» т.е. не вызываем. Хотя UEFI спецификация теоретически и поддерживает RT драйвера. Но они считаются «опасными» и потому ОС фактически не часто используются.
ОС внимательно AML прочитала и начала/стала ими руководствоваться в способах/методах взаимодействия с текущим HW.
Если ОС «захочется» она может выйти/переключиться из режима SCI в SMI, где снова будет доступен код/функциональность биоса. Что собственно и происходит при засыпании/выключении (S3/S4/S5) ОС, когда некоторым жуткоспецифическим PCIe(и не только) устройствам требуется особые настройки для «засыпания» и которые ОС не умеет «организовывать».
Специфика «legacy» не добавляет ничего особенного на вышеупомянутые процессы.
UPD самому интересны глубины ACPI, и с удовольствием послушал/попытал бы знающих коллег
AML сообщение помещается в какую-то область оперативной памяти? После чего создается прерывание (SCI это же режим обработки прерывания), так ОС узнает о сообщении?
снова будет доступен код/функциональность биоса
А как они доступны? Через IO порты? Код биоса грузится в оперативку, на него можно непосредственно передать управление? Что это код приблизительно представляет?
Если говорить о UEFI runtime services, то, насколько я смог выяснить, что Windows, что Linux используют только variable service.
Конкретно про ACPI, SCI и SMI очень подробно написано здесь: https:/stackoverflow.com/a/40586456.
Два важных момента:
- ACPI — это не исполняемый непосредственно процессором код, а байт-код, для исполнения которого в ядре ОС есть специальная виртуальная машина.
- Спецификация ACPI предписывает использовать SCI для «привлечения внимания» ОС устройствами
У CPU есть инструменты контроля кода для ОС.
Так что ОС не выполняет никакой код. ОС управляет кодом.
Можно написать код который будет работать до загрузки ОС. Но это уже будет не программа для ОС. Это будет фактически ОС.
Отличаться будут, но скорее из-за разницы компиляторов =) Машинный код для Windows, Linux или любой другой ОС в рамках одной процессорной архитектуры (x64, например) совместим. Проблема скорее в API ОС которые дёргает любая userland-программа — это элементарные вещи вроде открытия файла или даже выделения динамической памяти. Они вот отличаются от ОС к ОС.
Ну и да, как написано в этой же статье, ОС вешает на некоторые "опасные" команды свои прерывания, чтобы не позволить userland программе "залезть куда не следует". Так что да, машинный код выполняется непосредственно на процессоре, но при попытке сделать что-то не то ОС превентивно и насильно его останавливает (потому что повесила прерывания заранее).
Но сам код в вакууме ничего не может сделать. Надо взаимодействовать с внешним миром.
Ввод данных/Вывод. Это организуется через ОС.
ОС управляет ресурсами ПК. Память, диск, клавиатура, монитор, сеть и т.д.
Windows напрямую не работает с внешними устройствами, это делегируется сторонним компонентам. Для этого есть абстракция. Грубо говоря HAL.dll и драйверы устройств.
Надо исходить из такой мысли.
У нас есть железяка и нам надо решить проблему путем создания ПО.
Для этого надо кроме бизнес логики, еще написать управляющий код в внешними устройствами. Это долго, дорого, один велосипед поставлять с каждой программой.
Поэтому одни люди выпускают ОС, которая занимается управлением всего ПК.
Другие пишут драйверы для конкретных железяк.
А вы пишете программы под ОС. Которые решают бизнес задачу.
Резюмируя.
Машинный код бизнес-логики для Linux и Windows одинаковый. Но машинный код для общения с ОС разный. Потому что API ОС отличаются. Форматы исполняемых файлов различаются.
ОС не выполняет код. ОС сперва загружает с диска в память код, потом передает выполнение кода процессору (через точку входа) и дает коду в вакууме, возможность взаимодействовать с внешним миром.
Допустим, у нас есть два бинарных файла, один для Linux, другой для Windows.Код будет одинаковый. Разным будет способ вызова ОС. А вызывать придется часто — user mode это такая песочница, где без помощи ОС можно разве что чисто вычислительные задачи выполнять.
Но фактически программа выполняется через ОС, тоВсе почти так и есть. Только код (точнее его разрешенное в user mode подмножество) может выполняться на CPU сам по себе. Но, например, любое общение с периферийными устройствами (экран, клавиатура, мышь, диски, сеть, все USB устройства и т.д.) требует обращения к особым ячейкам памяти — регистрам. А в user mode это запрещено на аппаратном уровне. Т.е. вы делаете вызовы к ОС в формате который понимает ОС, а уже ОС пишет/читает регистры и делает много чего другого.
есть выполняется как бы некий двоичный код, который понимает ОС, а ОС
вызывает уже команды CPU.
Пример действий, требующих вызова ОС:
- Выделение памяти: да, у вас есть обычно от 4Гб адресного пространства, но это как разреженный массив — реальной памяти там может быть всего мегабайт 10. А попытка обращения за пределы этих 10Мб вызовет исключение — будет вызван код ОС.
- Чтение/запись файла: нет ни ассемблерных команд, ни доступных вам ячеек в памяти, которые могут вызвать операции чтения или записи. Вы подготавливаете запрос
- Вывод на экран (текста в консольном приложении, трехмерной графики).
- Получение сообщений от мыши, клавиатуры, джойстика.
- Любые операции с потоками (запуск, останов, пауза).
- Мьютексы, фьютексы, семафоры, критические секции.
Под 32х и 64х-битный режим машинный код будет разным и на одной ОС.
Он выполняется минуя ОС или через ОС? Допустим, у нас есть два бинарных файла, один для Linux, другой для Windows. В части машинного кода они будут отличаться или нет?
- Всё что программа может сделать сама — делается на процессоре напрямую, минуя ОС. Машинные коды в этой части будут одинаковыми (за исключением разных результатов работы оптимизатора, учитывающего пункт 2)
- То, что программа сама сделать не может (вывести на экран, записать на диск, прочитать с клавиатуры) — будет делаться через ОС. Обращение за этим в разных ОС — разное, поэтому машинные коды в этой части будут разными.
Когда вы в explorer.exe, Total Commander кликаете дважды на файл или запускаете его через другое приложение (Visual Studio, CMD) по расширению файла Windows понимает что это программа и начинает инициализацию всех структур данных которые в ядре описывают процесс и его ресурсы, в частности главный поток. Как только все структуры данных для главного потока проинициализированы, Image Loader начинает чтение exe файла, откуда достаётся таблица импорта функций из других dll, размер стека потока, manifest и другие данные. Находится main функция (entrypoint), указатель на неё передаётся параметром в специальную функцию и теперь поток доступен для исполнения на CPU. В какой-то момент планировщик потоков назначает его на исполнение. Из виртуальной памяти процесса выбираются машинные коды (машинные инструкции) в которые была скомпилирована функция main и вся программа для исполнения процессором.
В exe файле упакованы машинные инструкции которые просто отправляются на CPU.
Вы можете написать .exe для Windows в машинных кодах, но придется правильно сформировать заголовок и сегменты (нужные для загрузки файла ОС). Некоторые умельцы это делали на спор из консоли :D
Но фактически программа выполняется через ОС, то есть выполняется как бы некий двоичный код, который понимает ОС, а ОС вызывает уже команды CPU.
Нет.
Фактически выполняет CPU.
Большую часть времени CPU выполняет машинные команды вашей программы напрямую. ОС только определяет для вашей программы некую «песочницу», и настройки этой «песочницы» передает в CPU, после чего они применяются уже аппаратно с минимальным участием ОС.
Управление передается в ОС в частных случаях, например, когда ваша программа обращается к участку виртуальной памяти, что отсутствует физически в оперативной. Тут ОС выполняет подкачку с диска.
Получается, что пользователь в машинный кодах может писать и выполнять программы только до загрузки ОС, например, в самом начале включения компа?
Может (если отключить механизмы защиты загрузки ОС).
Тогда это будет называться операционная система или код загрузки операционной системы, а вовсе не пользовательская программа.
И бинарные исполняемые файлы это никакие не машинные коды?
То, что скомпилированно из С — это это бинарные = исполняемые = машинные для CPU (с нюансами типа специальных заголовков в файле).
То, что скомпилировано из Java — это бинарные != машинные (но это машинные для виртуальной машины Java)
Тогда это будет называться операционная система или код загрузки операционной системы, а вовсе не пользовательская программа.
Необязательно — могут быть программы и чисто утилитарного назначения, которые полагаются только на UEFI runtime services и могут быть запущены из UEFI shell без загрузки какой-либо ОС.
пинать. Я не понимаю такую вещь: возьмем исполняемый файл exe после
компиляции, например, С-кода. Говорят, получается машинный код, который
исполняется процессором. Но фактически программа выполняется через ОС, то
есть выполняется как бы некий двоичный код, который понимает ОС, а ОС
вызывает уже команды CPU. Получается, что пользователь в машинный кодах
может писать и выполнять программы только до загрузки ОС, например, в самом
начале включения компа? И бинарные исполняемые файлы это никакие не
машинные коды?
пинать. Я не понимаю такую вещь: возьмем исполняемый файл exe после
компиляции, например, С-кода. Говорят, получается машинный код, который
исполняется процессором. Но фактически программа выполняется через ОС, то
есть выполняется как бы некий двоичный код, который понимает ОС, а ОС
вызывает уже команды CPU. Получается, что пользователь в машинный кодах
может писать и выполнять программы только до загрузки ОС, например, в самом
начале включения компа? И бинарные исполняемые файлы это никакие не
машинные коды?
Можно взять готовый SBC с интегрированной arduino. Подобное этой LattePanda
Найти «PCI» слот в современных компьютерах не просто, но например PCIе бывает длстаточно часто.
Искать надо в сторону «pcie io expander», например GW16113 IO Mini-PCIe Expansion Card или ему подобное
Сейчас проще всего будет взять PCI-Express LPT контроллер (обычно есть в продаже в интернет-магазинах деталей для ЧПУ станков и 3Д принтеров) с опторазвязкой параллельного порта — так риск сжечь что-нибудь в самом компьютере будет минимальным.
Мне лично всё понятно, а значит бесполезно.
Для студента совсем не понятно. Значит тоже бесполезно.
Почему? Статья «пробегается по верхам», иногда углубляясь в ненужные детали.
Если вопрос что быстрее — аналоговая или цифровая обработка, то конечно аналоговая.
Конкретно телеметрия собирает эти данные. Вроде бы общедоступного API к телеметрии нет.
Другое дело что еще с Windows NT 4, можно собирать такие данные. Но это не телеметрия как в Windows 10.
Есть в Windows такой системный сервис SuperFetch, который собирает статистику запущенных программ чтобы согласно ней пред-загрузить в оперативку данные и бинарники которые эта конкретная программа использует. Это делается для ускорения её загрузки. Если в этот момент внезапно понадобится оперативка, то SuperFetch её быстро освободит от предзагруженных данных.
В Windows 7 добавили уведомление событиями. Но вместо того, чтобы просто устанавливать режим уведомления, зачем-то продублировали запрос создания буфера (KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION). Теперь драйверу приходится обрабатывать практически идентичные запросы по разным путям. При этом количество точек уведомления зачем-то жестко зафиксировали в количестве двух штук. Точнее, это количество формально передается параметром, но документация даже не предполагает возможности изменения в будущем, поэтому все тупо используют константу-двойку.
В Windows 10 наконец-то сделали для клиента возможность сообщать драйверу, сколько данных записано/прочитано, но зачем-то оформили это практически в отдельный протокол (Packet Streaming).
Многие свойства устройства/драйвера, традиционно передаваемые через Property Requests, что позволяло их динамически менять, теперь все чаще требуют выставлять в Property Store. Звуковая подсистема полноценно опрашивает эти свойства только после первичной установки драйвера, создавая у себя зеркало. При удалении устройства/драйвера это зеркало не очищается, и при повторной установке большинство свойств берется оттуда. Это сильно усложняет создание гибко конфигурируемых звуковых устройств (например, я недавно делал драйвер для звукового процессора, связь с которым идет по сети). Чтобы банально изменить поддерживаемые форматы, драйверу приходится хакерски лезть в зеркало свойств, перезапускать звуковые службы, и даже это не гарантирует успешного результата.
Хотелось бы чтобы этого окна вообще не было.
Один пользователь на работе вынес мозг, что ему это окно мешает.
PS В настройках копался очень долго, перепробовал массу вариантов — окошко не перестает появляться.
Не добавляет ли переключение Kernel <-> User space оверхед по времени?
И ещё, уважаемый Андрей, если вы знаете кого-то из разработки GUI — хочу передать небольшую визуальную багу:
Открываете Visual Studio (2017, 2019) -> Создаёте новый оконный проект из шаблона -> В функции CreateWindow/CreateWindowEx меняете параметры которые отвечают за x- и y-координаты окна на 0, 0 -> Запускаете.
На Window 7, 8 окно, как и ожидалось из описания CreateWindow на сайте Майкрософт, находится в левом верхнем углу экрана. А вот на Windows 10 справа будет зазор в 7 пикселей. Я уже писал о этой проблеме в сообществе Майкрософт
Да, это не критичный визуальный баг, но глаза режет. Проверял на разных ПК с Windows 10 (Pro Insider Preview и просто Pro версия) — результат одинаковый
Можно ещё обратить внимание, что максимизированное на основном дисплее окно размещается в отрицательных координатах (-8,-8)
Кстати, это ничем не отличается от поведения в Win7. Просто тогда рамка, обслуживаемая dwm, была «стеклянной» и хорошо заметной.
Так что «не баг, а фича» (ц)
Такая-себе фича. Тень же не должна быть частью окна/рамки…
Эх, теперь делать проверку на Win10 в коде…
Кстати, почему (-8, -8), если Y нормально отрабатывает. Там верхний угол — это 0 и окно никуда не уезжает
— Дизайнерам захотелось плоский интерфейс с тонкими рамочками вместо толстого стекла из Висты.
— За однопиксельную рамку тяжело схватить мышкой, если надо растянуть окно.
— Тень сделали частично внутри рамки с трёх сторон (кроме верха) — за неё можно схватить мышкой для растягивания.
— Сверху для растягивания можно хватать в пределах верхней полоски заголовка той же ширины (8px). Она непрозрачна, т.е. сверху тени внутри рамки нет.
— При максимизации заголовок окна становится визуально уже.
— У окна есть ещё тень от dwm за пределами рамки. За неё хватать уже нельзя, и её видимость меняется в зависимости от активности окна.
Всё описанное было и в Висте/Win7, только выглядело по-другому.
P.S. Зачем делать проверку на Win10, если можно просто максимизировать окно?
P.S. Зачем делать проверку на Win10, если можно просто максимизировать окно?
Я хочу управлять положением и размерами окна. Т.е. MoweWindow/SetWindowPos. Так вот, в них установка (0, 0) тоже подвержена этому глюку. И чисто с визуальной стороны это выглядит очень очень так себе… А окно не обязательно должно быть максимизировано.
Как в старинной книжке про архитектуру IBM PC.
А увидел статью из книжки для детей в 9 классе, первый раз пришедших в кабинет информатики.
Странные статьи для хабра…
подсказать, сколько правильно будет поставить виртуальную память в вин10(просто у меня 4гб оперативки а ее оч мало)узнал про Вирт.память, возможно вы знаете посоветуйте пожалуйста
Но я сильно подозреваю, что это такая масштабная и дорогая задача, что проще заложить риски. С учетом того, что в 10 местами все еще работает код года эдак 93го…
отказ от USB, WiFi, а то и всей сети в целом.
Apple делает нормальные драйвера для windows 10, не преувеличивайте, и как я сказал, мне нужна thunderbolt 3 карточка GPU для моих нужд))
Посмотрим, насколько вас хватит.
с фига ли?
Насколько я знаю, USB 3.0 и выше некисло фонит в эфир при работе, и забивает слабые сигналы сетей WLAN.
Поэтому при сканировании USB-адаптерами эфира они переключают USB в режим 2.0, а при подключении к сети — обратно в режим 3.0, если возможно (а если не возможно — продолжает работу в режиме 2.0).
Он добавил гору комментариев, из-за не академически точно сформулированных высказываний.
Если бы он прослеживал путь от нажатия кнопки на клавиатуре до появления символа в облачном Word который работает в браузере. И написал бы например «хаб» вместо «свитч», или что маршрут на 0.0.0.0 может быть только один. К взрыву комментариев добавились бы сетевеки :)
А можно получить исходники Win10, как это было с Win2k? )))
Человек, хорошо разбирающийся в аппаратной архитектуре и архитектуре ОС, не найдёт здесь ничего нового, но будет плеваться от половины текста, а неопытный, по-моему, не поймёт ничего. Мне доводилось делать такие вещи, как дизассемблирование компонентов ядра Windows, но фраза «Dll — предоставляет модель расширения функционала программы через плагины, а так же механизм для реализации читалки экрана через ловушки клавиатуры» ставит меня в тупик.
Отвратительно. Черти что и сбоку бантик. Автор перескакивает с уровня ядра на уровень регистров процессора, хотя в ядре ручное управление регистрами — мягко говоря, редкость. Какая-то непонятная вставка про микропроцессоры, в картинке про которую пять раз повторён avr, но ни разу stm. Но это не так страшно, потому что на материнской плате в общем случае нет микропроцессоров общего назначения.
В общем, автор, судя по всему, замахнулся на слишком большой кусок: может быть, он хорошо знает то, что находится внутри системной части винды, но "путь от нажатия кнопки до отображения символа" несколько… шире. К тому же, явное неумение строить связный текст вносит свой вклад в общую сумятицу.
Вообщем не суть, может быть кто-то успешно пользуется такими программами в Windows 10 и проблема где-то у меня, а не системная с Windows 10?
О работе ПК на примере Windows 10 и клавиатуры ч. 1