Как стать автором
Обновить

Комментарии 412

Меня зовут Андрей Артемьев, я работаю в Microsoft над ядром ОС Windows 10, ранее я работал над Windows 10x (WCOS), XBox, Windows Phone и Microsoft Edge.

Вопрос не по сути статьи, но всё же: вы работаете в российском отделении Майкрософт?
Мой вопрос вот в чём: ведётся ли в России в Майкрософт реальная разработка продуктов или же местное отделение занимается только продажами и сопровождением?
Я работаю в Редмонде, США. Я могу ошибаться, но насколько знаю ведётся, но не в таких количествах как в штаб-квартире. Подробности лучше узнать у тех кто там сейчас работает.

Ведётся, например я работаю в Москве и занимаюсь проектом Azure Notification Hubs.

Андрей, а скажите — сколько (примерно) процентов мощности компьютера тратится на бесполезную для пользователя работу (сбор и отправка телеметрии и т.п.).
И насколько возросла эта величина при переходе Windows 7 -> Windows 10?
Такими данными я не располагаю. Телеметрия играет важную роль, потому как по ней мы можем видеть статистику регрессий и ошибок, которые оперативно устраняем. По телеметрии можно сказать какая функциональность более популярна, какая менее и отсюда видеть дальнейшее развитие Windows. Выгода для пользователя от телеметрии отсрочена по времени, потому как в будущих обновлениях он получит более стабильную и быструю ОС.
Новый функционал скорее всего будет иметь ошибки, потому как любому софту нужно пройти проверку временем.
Телеметрия не должна занимать большой объём ресурсов, так что если у вас комп работает медленно, то проблема скорее всего в другом и нужно самостоятельно делать диагностику компьютера, но это уже отдельная тема. Если вы можете воспроизвести проблему, то:
  1. Нажмите WinKey+F
  2. Опишите как воспроизвести проблему, по английски желательно
  3. На 4м шаге (Add More Details) нажмите «Recreate my problem» — и воспроизведите проблему.
  4. Теперь Submit. К нам в систему придёт уведомление вместе с диагностической информацией.
НЛО прилетело и опубликовало эту надпись здесь
потому как в будущих обновлениях он получит более стабильную и быструю ОС.

Заплатив за это своей приватностью и безопасностью.

Так ведь и не получит же. Каждая следующая ОС и медленнее, и нестабильнее.
потому как в будущих обновлениях он получит более стабильную и быструю ОС.

Так ведь и не получит же. Каждая следующая ОС и медленнее, и нестабильнее.


После WinXP была существенная регрессия в WinVista и небольшая регрессия в Win8.0
С тех пор наблюдаю только рост стабильности. По всем WinVista -> Win7 -> Win8.1 -> Win10
По поводу «роста стабильности» — сравните количество жалоб на проблемы после очередного обновления Win10 с количеством жалоб после обновления XP/Win7.

И скорость безусловно падает, но это происходит со всеми версиями без исключения. Те, кто говорит о более высокой скорости новой версии, или сравнивают свежеустановленную с замусоренной, или попутно с обновлением системы обновили и железо, или столкнулись со специфической конфигурацией железа/софта, в которой старая система была сильно неоптимальной.
По поводу «роста стабильности» — сравните количество жалоб на проблемы после очередного обновления Win10 с количеством жалоб после обновления XP/Win7.


Жалоб где? В интернете?
В связи со значительно большим охватом аудитории интеретом в 2002 (WinXP вышла) и в 2015 (год выпуска Win10)?

И скорость безусловно падает, но это происходит со всеми версиями без исключения.


Не всегда.

Еще на довольно старом железе был удивлен более высокой скоростью работы WinXP по сравнению Win95. Хотя на большем количестве железа — было наоборот.

Ну а конкретно сейчас WinVista -> Win7 -> Win10 — скорость однозначно выше.
На том же железе.
В том числе и для свежеустановленного.
Проверено неоднократно.

или столкнулись со специфической конфигурацией железа/софта, в которой старая система была сильно неоптимальной.

Послушайте, этим можно любые домыслы оправдать.
Железо самое обычное, типовое.
И — разное. На разном желез проверено.
Жалобы на XP продолжались до конца первой декады, пока для нее более-менее регулярно выходили обновления.

Каким образом Вы измеряли скорость работы системы? Очень интересно, как можно получить ускорение при объективном увеличении и объема модулей, и количества выполняемых операций, и количества слоев абстракции. А в Win10 добавился еще и гипервизор.

Почему у меня результаты всегда и везде строго обратные?
Почему у меня результаты всегда и везде строго обратные?

Если железо изначально недостаточное — то почему бы и нет.
Я всегда любил хорошее железо.
Что такое «хорошее железо»? Если значимые для производительности функции железа поддерживаются обеими версиями системы, за счет чего более тяжелая и сложная система может работать быстрее?

В Вашем случае, скорее всего, имело место отсутствие полноценной поддержки прежними выпусками системы каких-то аппаратных свойств железа. Такое сравнение очевидно некорректно.
Если значимые для производительности функции железа поддерживаются обеими версиями системы, за счет чего более тяжелая и сложная система может работать быстрее?


За счет оптимизации.
Например, не секрет, что процедура загрузки ОС Windows существенно переработана.
Она переработана в основном в плане зависимостей, чтобы GUI и возможность регистрации пользователя становились доступными раньше. Загрузка и инициализация к этому моменту не завершаются — они продолжаются заметное время после входа в систему. Чудес не бывает. :)
Она переработана в основном в плане зависимостей, чтобы GUI и возможность регистрации пользователя становились доступными раньше. Загрузка и инициализация к этому моменту не завершаются — они продолжаются заметное время после входа в систему. Чудес не бывает. :)


Ну то есть вы и сами заметили где именно произведено улушчение комфорта для нас с вами?
В плане загрузки я «улучшения комфорта» не заметил. Если в ранних версиях нужно было сперва подождать завершения загрузки, а затем сразу же начинать полноценно работать, то в более поздних можно войти в систему сразу же, как только отобразится стартовый экран, но сразу полноценно работать в общем случае невозможно, поскольку продолжающаяся загрузка создает изрядные задержки.
В плане загрузки я «улучшения комфорта» не заметил. Если в ранних версиях нужно было сперва подождать завершения загрузки, а затем сразу же начинать полноценно работать, то в более поздних можно войти в систему сразу же, как только отобразится стартовый экран, но сразу полноценно работать в общем случае невозможно, поскольку продолжающаяся загрузка создает изрядные задержки.


А я вообще не выключаю.
В новых версиях великолепно работает просыпание.

Я тоже не выключаю. Но мы говорили не о своих собственных предпочтениях, а об объективных свойствах систем.
Я тоже не выключаю. Но мы говорили не о своих собственных предпочтениях, а об объективных свойствах систем.


Мы говорим об удобстве для конечного пользователя.
Сделали асинхронную загрузку — молодцы, стало комфортнее. Сделали хороший сон — молодцы, стало комфортнее.

Я совсем не ожидаю, что из Винды выкинут весь старый код и перепишут все с нуля.
Лично я пока говорил исключительно о скорости работы (в данном случае — загрузки). Вы плавно перевели стрелки на удобство для пользователя. Удобнее стало только в том, что непрерывное время ожидания полной готовности системы разбилось на интервалы, между которыми стало возможно что-то делать. Чуда не произошло — общее время загрузки закономерно растет от версии к версии.
НЛО прилетело и опубликовало эту надпись здесь
Но бесит не это, бесит то, что нельзя посмотреть логи(журналы) и выяснить — что стало причиной пробуждения. И никакие мануалы на technet не дают ответа на этот вопрос…
Я не уверен, всегда ли это получается, но я находил причину просыпания из гибернации ноута HP. Виновником было что-то связанное со звуком Realtek. Только не помню в подробностях, но способ нашел путем гугления. И был журнал, в котором видно, что в такое-то время Realtek пробудил ноут.
Очень интересно, как можно получить ускорение при объективном увеличении и объема модулей, и количества выполняемых операций, и количества слоев абстракции. А в Win10 добавился еще и гипервизор.

Так же как и в любом другом ПО — переписав узкие места.
Самое большое торможение, как правило, в довольно небольшом количестве мест кода.
Узкие места, как правило, влияют лишь на отдельные параметры производительности. Какие именно глобальные узкие места были в 2k, XP, 7 или 8, и в каких версиях они были переписаны?
Какие именно глобальные узкие места были в 2k, XP, 7 или 8, и в каких версиях они были переписаны?

Это вопрос к разработчику — он как раз автор статьи, может, знает.

Я наблюдаю только следствия.
И где именно запятую в коде поставили разработчики MS знать не могу.

Узкое место вин10 — проводник. Попробуйте походить по папкам в вин 10 и вин хр. в ХР папки открываются моментально, в 10 есть задержка.
И это место становится всё уже и уже.
То же с поиском. Двадцать лет прошло, а поиск всё ещё работает тупым перебором файлов на диске. Есть какая-то индексация, которая почему-то не работает, или мне ни разу не удалось её нормально запустить.

Узкое место вин10 — проводник. Попробуйте походить по папкам в вин 10 и вин хр.


Я писал только про улучшения по скорости WinVista -> Win7 -> Win8.1 -> Win10.

WinXP заведомо исключил, ибо она существенно попроще по интерфейсу.
НЛО прилетело и опубликовало эту надпись здесь
В Win10 полно узких мест. Например, откройте страницу установленных приложений (Apps and Features) и начните в поле поиска набирать что-нибудь, начинающееся на «w» или «v». По динамике перестройки списка видно, какое чудовищное количество операций при этом выполняется.
Я помню в свойствах VPN соединения нельзя было отключить в 10ке «Default gateway», когда она только вышла и весь трафик шёл через VPN. Какими-то хитрыми правками реестра кажется отключалось, но чинить это вроде бы микрософт не собирался… и объявил это фичей.
Хотя может быть передумал уже

Кажется начиная с Windows 8.0 VPN можно создать с помощью PowerShell. Там можно указать опцию SplitTunneling и трафик будет делиться.

НЛО прилетело и опубликовало эту надпись здесь
Вы действительно не понимаете, что подобные оптимизации дают «органолептически ощутимый» эффект только на многопоточных и высоконагруженных приложениях, или просто больше было не на что сослаться? :)
НЛО прилетело и опубликовало эту надпись здесь
Я эти книги читаю регулярно. А еще я делаю системный софт и драйверы ядра. Это дает мне возможность видеть, что практически все оптимизации касаются глубоко внутренних алгоритмов, без чего высоконагруженные системы не в состоянии эффективно справляться со своими задачами.

Практически во всех остальных системных компонентах (в первую очередь в GUI) используется код от плохого до ужасного (чем выше по уровню — тем хуже). Он там может изящно выглядеть, быть очень объектно- или событийно-ориентированным, но объем и накладные расходы там чудовищны. И никто не будет его оптимизировать, поскольку убедить пользователей почаще менять железо гораздо проще.
НЛО прилетело и опубликовало эту надпись здесь
Когда говорят «система стала работать быстрее», в большинстве случаев имеют в виду именно GUI настольных выпусков. А они, за редким исключением, от версии к версии работают медленнее, и иллюзия ускорения чаще всего возникает благодаря одновременному обновлению железа и/или установке чистой системы взамен набитой мусором.

Тоесть если оставить ядро, а гуй сменить на самопальный, то работать в целом будет лучше, чем на старой системе и быстрее, чем на новой?

Скорее да, чем нет. Хотя и в ядре тормоза тоже добавляются, но не так оголтело, как на верхних уровнях, поскольку для оценки производительности ядерных подсистем есть множество объективных тестов, в которых тормоза сразу же становятся видны.
А в Win10 добавился еще и гипервизор.

Зачем его запускать, если он не нужен?
Внутриядерный гипервизор (Patch Guard, Device Guard и т.п.) не спрашивает, когда ему запускаться. :)
Внутриядерный гипервизор (Patch Guard, Device Guard и т.п.) не спрашивает, когда ему запускаться. :)


Если их код отрабатывает за то время, что меньше пользовательской реакции — то этого вы и не заметите.

А уж тем более при аппаратной поддержке, которая давно имеется.
В любой винде изрядное количество UI, которые и запускаются, и работают на порядки медленнее пользовательской реакции. В том числе достаточно элементарные, тормозящие по тем же причинам, что и пресловутое чтение одного и того же сотню тысяч раз подряд.
Количество пользователей Windows сильно выросло. Сейчас 1.5 миллиарда устройств на разных Windows. Аудитория пользователей становится всё более массовой и специально для массового технически не подготовленного пользователя сделали Windows Light, он же Windows 10x. С ростом пользователей растёт и количество уникальных конфигураций машин и количество жалоб.
По поводу «роста стабильности» — сравните количество жалоб на проблемы после очередного обновления Win10 с количеством жалоб после обновления XP/Win7

Ой, а поделитесь пожалуйста этой статистикой. Никогда ранее не общался с ответственным за это человеком.
А то обычно в интернете только газификация луж в стиле: «вот раньше технари решали все проблемы сами, а сейчас инфантильные меллиниалы выросли и только в твиттер гадят о своих проблемах».
Хотелось бы видеть объективные цифры из багтреккеров.
Увы, объективные цифры мне недоступны. Но сообщений типа «большое количество пользователей Windows столкнулось с проблемами в результате последнего обновления» (и соответствующих обсуждений) стало больше. Именно не отдельных проблем, а достаточно массовых.
Сообщений действительно стало больше. Но я в силу профессиональных обязанностей на протяжении последних 10-15 лет читаю список исправленных и новых проблем под каждым выпускаемым патчем и субъективно не заметил увеличения количества проблем.
Known bugs были под каждым патчем начиная с 2003 винды. Это норма при разработке ПО. Просто это никогда не считалось новостью.
Но сейчас блоггер — это же профессия, и важна частота и громкость написания заголовков, а не погружение в тему (например сравнительный анализ исправленных/известных проблем по сравнению с тем же месяцем прошлого года. Но новости из этого будет высосать совсем сложно, потому что сильных отклонений не будет).
Норма — это известные ошибки, вызывающие локальные, устранимые известными же средствами проблемы у небольшой доли пользователей.

А стало больше сообщений о глобальных ошибках, приводящих к серьезным ограничениям в работе системы, отчего пользователям приходится в срочном порядке делать откат или переустановку. И, если раньше это происходило в основном после согласия пользователя на установку обновления, то теперь пользователь, оставив вечером на столе нормально работающий компьютер, утром может обнаружить вместо него тыкву.

Если MS взял на себя право устанавливать пользователю обновления не только без его явного согласия, но и против его явного несогласия — ему неплохо бы взять на себя заодно и обязанность по устранению всех возникших проблем своими силами. А то ведь выгоду получает прежде всего MS, а проблемы целиком ложатся на пользователей.
Телеметрия должна быть отключаемая. А еще лучше делать отдельные тестовые сборки с телеметрией и удалить ее из обычных.
Действительно, существует же debug версия Windows.
Выгода для пользователя от телеметрии отсрочена по времени, потому как в будущих обновлениях он получит более стабильную и быструю ОС.

Разница между нажатием кнопки «Послать отчёт об ошибке» и «посылаем в фоне всё, до чего можем дотянуться» очевидна, правда? Причем, первый вариант был/есть во всех версиях Windows, а вот второй появился массово только в Windows 10 и его добавили некоторые обновления для 7 и 8.х. Стало быть, вопрос очевиден: зачем оно тут? Вопрос риторический, ибо и так понятно зачем.

И я в курсе за лень/нежелание пользователей сообщать об ошибках. Про это уже была тут статья от другого работника M$. Но ведь у M$ и так достаточно большой штат тестеров. Неужели настали тяжелые времена и нужно сократить расходы на тестеров, задействуя бесплатно обычных пользователей?
НЛО прилетело и опубликовало эту надпись здесь
Быстрый гуглёж на тему сокращения штата тестировщиков в M$ показывает дату от 2015 и далее. Опять же, вышеупомянутая мной статья говорит за второе полугодие 2014. Но это всё речь за внутриштатных сотрудников. А ведь были ещё и внештатные, вроде как. В любом случае:
1. В 2013 всё пучком.
2. Сокращение попадают в аккурат с выходом 10, что как бы намекает.
В мире уже почти 1 млрд Windows 10 машин, все аппаратные и программные конфигурации в тестовой лаборатории воспроизвести невозможно.

Когда в обновлении ОС имеются потенциально опасные изменения, они включаются не сразу, а постепенно. Такие изменения выглядят примерно так:
if (Features::TheNewFeatureEnabled()) {
   // new code
} else {
  // old code
}

Если новый код работал нормально у небольшой фокус-группы, он постепенно распространяется на всё большее число машин. Если всё хорошо, то в следующем обновлении старый код вместе с if-конструкцией удаляется. Так что телеметрия это не только маркетинговые данные, к слову я не знаю всё содержание телеметрии.
Ну или мне можете в личку написать о том как происходит проблема.
Телеметрию, виндовс дефендер и прочий паразитный софт можно отключить через «Пуск->Edit group policy».
Что лучше ставить вместо дефендера?
У меня новый макбук. На нем стоит Windows 10. Пока не застопил телеметрии и дефендеры вентилятор жужал как бешеный. Сейчас тишина и спокойная работа. В моем случае, например, единственный выход который нашел — ничего не ставить.
Ну вообще эти компоненты не должны создавать такую нагрузку, по крайней мере постоянно. Мне вот стрёмно без антивируса пользоваться компом.

Если будете испытывать такую проблему то будем признательны если нажмёте Win+F, заполните описание проблемы и нажмёте кнопочку воспроизвести проблему, а после воспроизведение — submit.
Мне как разработчику антивирус создает больше проблем, чем приносит пользы. Много раз было так, что я тратил кучу времени на поиск непонятной проблемы в работе софта, а оказывалось, что это Антивирус после запуска блокировал DLL, после чего программа тупа висела и ничего не делала, что там делал Антивирус одному ему известно. То же самое с Windows Defender. Свою новую прогу запустил на ноуте жены под Win10: ничего не происходит. Запускаю еще раз, еще раз… ничего не происходит… через 5 минут появилось окно. Оказалось, что какой-то Windows «Defender» в это время отправлял файл программы куда-то на проверку. Программа тупа была в подвешенном состоянии. Таких проблем в последнее время наблюдаю все больше и больше. Про свой Макбук я уже написал. Пока не поотключал все сервисы связанные с безопасностью, вентилятор жужал как пылесос.
А что программа делала если не секрет?
Программа по сути движок Хрома с оберткой под .net (CEF Chromium), в котором загружалась страница с определенного IP адресса и отображалась.
Компиляцию C++ программ в Visual Studio — defender замедляет сильно.
При сборке большого проекта (очень много файлов было), если он был включен — у меня сборка занимала минут 30, без него 10.
i5, Haswell, Ram 32Gb, SSD evo860
Может быть архитектура процессора была не нова, и на более современных эффект его влияния был бы меньше.

после компиляци в делфи, или лазарусе, ехе становится доступным не сразу. Сначала дефендер его отправляет на "диагностику", потом только разрешает запускать.

кстати, когда качаешь большой аддон к танкам от protanki, то комп может зависнуть на очень долго. Файл-то большой, пока Defender весь его проверит, пока отправит сэмпл, а при этом часть винды тупо висит в залипшем состоянии.
Вообще, если такое поведение антивируса (отправлять в облако на проверку) — дефолтное, и никаких подтверждений от пользователя не спрашивается, то это ещё большая дыра в безопасности, чем вся телеметрия вместе взятая…
С Касперским такая же неприятность вышла — когда к ним файл АНБ попал.
Много раз было так, что я тратил кучу времени на поиск непонятной проблемы в работе софта, а оказывалось, что это Антивирус после запуска блокировал DLL, после чего программа тупа висела и ничего не делала, что там делал Антивирус одному ему известно.

А пробовали включать каталоги с программой в исключения?

А пробовали найти где добавляются исключения?
-Все параметры
-Обновление и безопасность
-Безопасность виндовс
-Защита от вирусов и угроз
(в этом месте для чего-то открывается новое окно настроек
-Управление настройками
-крутим глубоко вниз
-добавление или удаление исключений
-добавить исключение.


Ну, такой, интуитивно понятный путь. И знаю я его только потому что раз пятьдесят за последний месяц приходилось туда заходить на разных компьютерах.
И, да, через время исключения странным образом могут пропасть. Не отследил зависимости, пока продолжаю наблюдение.

И, да, через время исключения странным образом могут пропасть. Не отследил зависимости, пока продолжаю наблюдение.

ОС Windows единая для всех типов пользователей.
А большинство пользователей — уровней «домохозяйки». От них убрали, и это совершенно правильно, подальше, чтобы те сами себе не навредили.

Для IT-шника не есть проблема поднастроить ОС под себя. Он же специалист?

Некоторое ПО умеет само добавлять исключения в Defender.
Например, ПО семейства JetBrains IDE.

Посему, полагаю, добавку исключений можно реализовать и скриптом. Меню для этого не нужно.

А еще есть Group Policy
По поводу «блокировал DLL» вспомнилось, что в десятках (не помню, сразу или по мере развития) за каким-то чертом отключили сообщение об аварийном завершении приложения. Если что-то вдруг внезапно и тихо закрылось, без логов не поймешь, кто виноват.

А еще бывает, когда приложение падает именно на процедуре закрывания окна/окон — тогда пользователю вообще никак не видно, что оно завершается аварийно, и он долго может считать, что все завершилось корректно, и начнет что-то подозревать лишь после того, как базы успеют побиться безвозвратно.
У меня новый макбук. На нем стоит Windows 10.

Нечестивец, грешник.

Просто я очень люблю Windows, а по долгу службы приходится иногда под Мак программки писать. Вот и приходится брать Макбук, а поверх винду ставить. Пока это единственный рабочий вариант усидеться на двух стульях.
Сторонний фаервол типа Comodo (вообще, можно любой фаервол приложений, т.е. с возможностью блокировки доступа отдельным процессам) и никаких антивирусов, браузер должен защищаться через блокировщики контента, а непроверенный софт можно просто не ставить…
>> Что лучше ставить вместо дефендера?
Чем меньше в системе сомнительного софта, тем безопаснее и стабильнее работает система, так что лучше ничего не ставить вместо дефендера.
Если приходится дело иметь с виндой, то лучше держать ее в виртуалке/облаке и не хранить в ней приватную информацию, пароли, ключи.
НЛО прилетело и опубликовало эту надпись здесь
Действительно, полностью можно отключить?
Подскажите, где можно про это прочитать?
Я использую утилиту DoNotSpy10, но не уверен, что она полностью выключает телеметрию.
Она же просто за вас включает и выключает стандартные настройки Windows. Просто не надо самому лазить по бесчисленным менюшкам. Насколько мне известно, больше она ничего не делает.
НЛО прилетело и опубликовало эту надпись здесь

На моей Windows 10 LTSC программа DoNotSpy не устранила регулярные вылазки системы в сеть. Особенно в играх раздражало, когда на ровном месте пинг взлетает до 300 и ты не понимаешь, что происходит. Пришлось вручную отключать "Службу оптимизации доставки" и еще несколько служб.

А это случайно не нарушение прав?
Одному тут пригрозили уголовным делом за отключение обновлений.
Процитирую, к чему апеллируют по ссылке
6. Обновление Программное обеспечение периодически проверяет наличие системных обновлений и обновлений для приложений, а также скачивает и устанавливает их для вас. Вы можете получать обновления только от Microsoft или через авторизованные источники, и Microsoft может потребоваться обновить вашу систему, чтобы предоставить вам эти обновления. Принимая условия настоящего соглашения, вы даете согласие на получение автоматических обновлений такого типа без каких-либо дополнительных уведомлений.

Это разве не может трактоваться как «Я разрешаю ОС ставить автоматом обновления», при этом явного запрета на отключения нету. Или как это работает?

Ну, вообще нет. Я ведь не получаю обновления ни от кого, кроме как от микрософт. А то, что микрософт меня не требует обновить систему по какой-либо причине, так это ж разве моя вина? Может у моего компа нет интернета, или связь какая-то ограниченная. Не проходят пакеты с приказом обновиться и всё тут.

Я правильно вас понял, что вы тоже считаете этот пункт не поводом для уголовного дела?

Правильно. Но я не юрист, я говорю с позиции здравого смысла. А с юридической стороны здравый смысл далеко не на первом месте.

Насколько я помню, на других ресурсах этот маразм уже разбирали. Суть в том, что это модератор, который строго говоря к Microsoft отношения не имеет, ни за что не отвечает и озвучивает лишь своё мнение, а не Microsoft'овское. Большинство людей сошлось на том, что даже с юридической точки зрения он озвучил полнеший бред.
То что он отношения к МС не имеет это и так понятно. Этот пост, вроде, даже в сми публиковали, емнип)

Тем не менее, вопрошающий забанен до сих пор.

А вот это уже тупость какая-то.
Телеметрия и подобные вещи отъедают исчезающе малую долю производительности. На порядки больше уходит из-за неоптимальной многослойности взаимодействия верхних уровней кода с нижними. Посмотрите в Process Monitor, сколько одинаковых, повторяющихся запросов к одним и тем же ресурсам делается при самых простейших операциях, начиная с подготовки PE-файла к загрузке в память. В Resource Monitor посмотрите, сколько будет считано с диска и записано на него при запуске, например, Computer Management Console и подобных средств (просто для запуска, не доходя до конкретных операций).
Почему для открытия меню Windows читает один файл сто тысяч раз
Кстати, очень помогло удаление папки \Users\%username%\AppData\Roaming\Microsoft\Windows\Recent и создание вместо неё файла с таким же именем с аттрибутом readonly.

Или, скажем, стандартное приложение «Фотографии», весящее 350 МБ, открывающееся 15 секунд (а мне же просто фотку глянуть!) и по функциональности, как бы помягче, далеко от IrfanView весом в 23 МБ.
Я бы сказал, что не
далеко от IrfanView
, а просто пропась между ними

Из встроенных програм только калькулятор не приходилось заменять. Остальное всё под замену.
Паинт тоже вне конкуренции, но с оговорками. Помню, чем-то давно его заменял, чем не помню, но как простой редактор изображений, довольно хорош. Фотошопы и гимпы сильно тяжелее.

Paint.NET клевый на замену обычному паинту.

Как раз таки нет. С паинт.нет так и не сдружился. Для простых действий он слишком сложен, а для сложных слишком прост. Я сильно обрадовался, когда паинт не стали заменять паинтнетом.

НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Резистор и конденсатор раньше не относились к полупроводниковым устройствам.
image

В качестве электролита в танталовых конденсаторах используется диоксид марганца. Данный оксид является твёрдотельным полупроводниковым материалом.

Может немного не в тему, но конденсаторы используются в платах RAM для представления нулей и единиц, где конденсатор заряжен = 1 и разряжен = 0. Из их последовательностей и формируются байты.
Действительно, конденсаторы являются частью интегральных микросхем.
Меня сбило изображение отдельной детали.
В электронике принято проводить линию раздела по активным элементам: т.е. полупроводниковые элементы это такие, в которых управление потоками энергии выполняется полупроводниковыми элементами. Конденсаторы и резисторы не входят в группу«активные элементы» независимо от их устройства и к группе «полупроводниковые элементы» не относятся.
К «полупроводниковым приборам» не относятся. А к «элементам полупроводниковых микросхем» — вполне.
Да и сейчас не относятся. Даже если входят в состав интегральной схемы и сделаны из кремния. Для их функционирования не используется специфика полупроводников: либо проводник (с каким-то удельным сопротивлением), либо изолятор (с каким-то током утечки и пробивным напряжением). А вовсе не ширина запрещенной зоны, легирование, pn-переходы и т.п.
Несколько вопросов не по теме, но по Вин 10 с надеждой получить ответ отличный от догадок:

1) Вин 10, два аккаунта пользователей — А (главный с паролем) и Б (без пароля).
1.1) Пользователь аккаунта Б выключает компютер.
Вопрос: как пользователю А включить свой компьютер, чтобы сразу же не попасть в аккаунт Б?

1.2) Пользователь А выключает компьютер.
Пользователь Б включает компьютер и логинится в аккаунт Б.
Вопрос: каким хреном под аккаунтом А запускаются приложения из автостарта, без захода в этот аккаунт?

2) Почему иногда при включении своего компьютера, винда выдает какое-то говно-окно, с полностью не нужной инфой, блокирую доступ к аккаунту, пока я не разберусь с говном в окне? В настройках снят флажок с «Показывать новинки винды».

3) Почему в Вин10 присутствуют баги еще с ХР(как минимум в оболочке)?

4) Что по мнению Майкрософт должно происходить на начальном экране логина при нажатии на кнопку Win на клавиатуре? Открываться шторка чтобы попасть на ввод пароля/пина, нет? )

5) Почему Вин 10 может включить Мой Персональный Компьютер для обновления, но выключить не может? Т.е. компьютер может так проработать без присмотра несколько месяцев…
Сразу отвечу на №3. Баги могут присуствовать по 3м причинам:
  1. О них не знают
  2. Они низкоприоритетные и на них пока не выделяют ресурсы
  3. Это фича ))

Можешь мне написать про эти баги и я обращу на них внимание тех кто занимается ими.
— Например, из последних что вылезли, бывает иногда какое-то окно ведет себя как «Поверх всех окон», хотя в нем такого функционала нету, и клики по другим окнам не активируют их.

— На панели задач иногда «зависает» контекстное меню — весит пока в него не кликнешь.

— Иногда пропадает один из языков раскладки до перезагрузки(эксклюзив Вин10).

P.S. Вообще, уже приловчился жить с ними и всего сразу и не напишу. Да и Вин10 последним временем не плохо себя ведет.
— Иногда пропадает один из языков раскладки до перезагрузки(эксклюзив Вин10).

А иногда появляется лишняя раскладка, какая-нибудь азербайджанская, и это при том, что сам языковой пакет азербайджанского языка в системе не установлен.
Подтверждаю, бывает появляется украинская. Лечится ее добавлением и удалением. Но через некоторое время опять может появится.
Вы, случайно, не в Крыму находитесь?
У меня все время такое было. Исходя из наблюдений, он появляется, если запускаешь програму с этим языковим пакетом. Например GOG на русском при включении добавлял мне отдельную рускую раскладку.
У меня при использовании удалённых рабочих столов периодически добавляется в русская раскладка для английского языка. Хорошо что лечится перезагрузкой.
Например, из последних что вылезли, бывает иногда какое-то окно ведет себя как «Поверх всех окон», хотя в нем такого функционала нету, и клики по другим окнам не активируют их.

Модальное окно?
У меня такое происходило с окном любого приложения(например Хром, Фотошоп и т.п.). По ощущениям что, если в момент открытия приложения/появления окна Х переключиться на какое-то другое, то окно Х появится поверх и не захочет перекрываться другими, пока не переключишься на него и свернешь/развернешь.
Мне кажется это поведение из-за какого-то стороннего приложения.
№2. Это окно с просьбой настроить PIN или распознавание лица? Что показывается в нём?
Это окно с нововведениями в Вин 10.

Странно что это кто-то решил форсировать это окно каждому пользователю, прерывая вход в аккаунт.
Первый раз я подумал что произошло что-то серьезное так как раньше таких окон не было замечено.
Подгорело уже когда уже была снята галка «Показывать нововведния» и когда надо было что-то по-быстрому посмотреть на компе, а Майкрософт решил что мне надо сначала узнать о нововведениях в винде ))
№4 Это как я понимаю больше про юзабилити. Тут лучше отправить предложение либо проголосовать за эту фичу. Сделать это можно через Feedback Hub, открывается через Win+F.
Да, про юзабилити. Удивило, что эксклюзивная кнопка Win не работает на этом экране, хотя я ее там инстинктивно жму.

Фидбек Хаба нету у меня, но надо бы отправить фич-риквест.
Feedback Hub идёт с WIndows, если не удалил его то открывается через Win+F.
Возможно, Feedback Hub доступно не для всех регионов, у меня не вызывается (W10/1903).
Ещё одно предположение — возможно для его корректной работы обязательна онлайн учётная запись (у меня оффлайн).
У меня на 10 Pro нет Feedback Hub. Даже в поиске не ищется. Сам не удалял.
№5. В настройках питания выставлен уход в сон после определённого времени? И для питания от сети и от батареи?
Питание от сети, макс производительность, сон через час.
Но несколько раз замечал компьютер утром включенным в дни обновлений.

Кстати, как определить что включает комп?
Когда-то устанавливал какую-то программу и она делала как-то так что комп после отправки в сон включался обратно автоматически. Но програма давно удалена, задача из планировщика тоже.
Кстати, как определить что включает комп?

powercfg -lastwake

О чем это говорит?


Ноутбук периодически включается сам. И это грустно, когда он в закрытом состоянии. Ещё грустнее станет, если это произойдёт когда он будет в сумке.

Возможно скапитаню, но что у Вас выставлено в Power Options -> Sleep -> Allow wake timers?

Только важные таймеры пробуждения.
Отключил. А как узнать что такого важного пробудило компьютер? В планировщике задача по обновлению стоит с наивысшим приоритетом, в час ночи и в 12 дня с обычным приоритетом адоб GCInvoker.
В них проблема?

По моему 1.2 возникает из за супер новой и супер удобной функции.
Винда, используя ваши учётные данные которые она запомнила, сама запустит под вашей учёткой программы, которые были запущенный в прошлый раз. Неважно что вас рядом может и не быть.
image

А по поводу 1.1 Помню я делал пароль юзеру Б и включал опцию «не требовать пароль при входе» тогда хоть юзер Б и логинился автоматически, но и я в случае чего мог при включении компа зажать кнопку шифт и тогда автовход не срабатывал, нужно было ткнуть мышкой в нужного юзера. Но такое ощущение что в последних сборках десятки эта фича перестала работать.
включал опцию «не требовать пароль при входе»
Эту опцию удалили в последних билдах. Впрочем, удалили из GUI, через реестр всё осталось. Ну и, справедливости ради, это реально небезопасная штука, когда пароль лежит на харде. Как и всякие сторонние утилиты типа EncryptedRunAs (поскольку это «encrypted» вскрывается).
НЛО прилетело и опубликовало эту надпись здесь
А Bitlocker защищает от чтения данных на диске? Он включен когда эта опция доступна?
Bitlocker защищает во время холодного хранения.
Если том смонтирован, то доступен всем.
Нет, не всем.
Прошу развернуть ответ
Есть у нас сервер бухгалтерский, два раздела, один шифрован битлокером, пароля у админов нет, есть только у бухов — там база SQL.
Так вот когда я по RDP захожу на сервер с кредами локального админа — я на раздел попасть не могу из своей сессии — раздел при этом доступен SQL серверу полностью и приложение работает нормально, раздел расшифровывается одним из сотрудников и запускает серверное приложение.
Может это NTFS подсистема?
Действительно, в битлокер можно добавить SID Protector. Но он нужен для только разблокировки тома.
BitLocker только на NTFS и можно поставить и явно видно замочек на диске и спрашивает пароль.
Если даже вы локальный админ, это вовсе не значит, что у вас автоматически есть доступ к любому файлу. Например, MSSQL автоматически переназначает права на файл базы и директорию, где он лежит, оставляя полный доступ только себе.
Зато локальный админ, как правило, имеет возможность переназначить права и получить доступ. По идее, терминальная сессия не должна это как-то ограничивать
Bitlocker в конфигурации по умолчанию (когда ключ хранится в TPM) защищает от сценария «некто загрузился с LiveCD или вытащил диск и подключил к своей машине». Если машиной пользуется один человек, то можно настроить Bitlocker на запрос пароля (тогда-то и появляется соблазн настроить автовход в систему). Но лучше таки оставить битлокеру именно функцию защиты от вышеописанных атак (т.е. он будет расшифровывать накопитель совершенно прозрачно, не запрашивая никаких паролей), а вход в учётную запись защитить паролем, который сохранять в своей голове.
это реально небезопасная штука, когда пароль лежит на харде
И пусть себе лежит, он и так на мониторе написан, на всякий случай. Безопасность обеспечивается групповыми политиками.
Эту опцию удалили в последних билдах

1909, только что проверил, всё на месте, вызывается через control userpasswords2
Инсайдерских билдах, имелось в виду. Которые между 1909 и будущей 2004.

Впрочем, я копнул глубже и выяснилось, что этот чекбокс не пропал с концами а его видимость поставили в зависимость от включённости Windows Hello.
это прискорбно
2) Почему иногда при включении своего компьютера, винда выдает какое-то говно-окно, с полностью не нужной инфой, блокирую доступ к аккаунту, пока я не разберусь с говном в окне?

Без обид, но это классический «подземный стук».
«Дорогие учёные. У меня который год в подполе происходит подземный стук. Объясните, пожалуйста, как он происходит».

¯\_(ツ)_/¯
ИМХО, суть вопроса не о причинах «подземного стука», а вообще о пользе модалок поверх логин-скрина.
№5 В смысле просто так включить? Не вывод из ждущего режима а просто включение? ПК же не работает?
1.1 Win+R --> netplwiz --> Advanced --> Secure Sign-in
если бы статья была про линукс, то наверно резисторы и конденсаторы стали бы «полупроводниковыми» или даже «проводниковыми».
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 многое стало проще, например установка драйверов — это божественно — установил ос, включил интернет, всё, драйвера сами ставятся. Почему нельзя такие улучшения делать в системе в целом?
Очень хотелось бы услышать ответ разработчиков.

Благодарю, запомню. Но это немного не то. Бывает так, что клавиатура не доступна (не подключена, далеко, темно), да и привык я мышкой работать.
Так-то можно и все нужные настройки через <win+r> открывать, но это костыли.
Вот, если бы её можно было в пуск впилить, туда, где шестерёнка «параметры», это таки удобнее.

"Панель управления" планомерно выпиливается из системы. На смену приходит "шестеренка". С каждой версией винды там се больше параметров и ИМХО структурированы они лучше чем в панели управления. К тому же есть поиск опций, если не помните в каком она разделе.

Это прекрасно, что панель выпиливаются, а на смену ей грядут "всё настройки в одном месте".
Проблема в том, что шестерёнка работает ну очень криво и медленно и не удобно, а панель всё глубже и неудобнее.
Есть тысячи твикеров для виндовс, в них настройки расположены понятно и удобно. Почему МС не наймет наконец десять тысяч первого сотрудника, которым будет разработчик ui?
В России сотни людей, готовых забесплатно слать багрепорты и тестировать новые фичи, предлагать полезные улучшения, но воз и ныне там. Вместо полезных функций и удобного интерфейса мы имеем то, что имеем.

А если помню где и хочу, чтобы там оставалось?
«Для вашего удобства мы убрали руль, а педали газ и тормоз поменяли местами».

В России сотни людей, готовых забесплатно слать багрепорты и тестировать новые фичи, предлагать полезные улучшения, но воз и ныне там. Вместо полезных функций и удобного интерфейса мы имеем то, что имеем.
Нажмите Win+F. Или у вас тоже не нажимается, как и у меня?
более того — открыв панель управления, вы можете на любом апплете щёлкнуть правой кнопкой мыши и создать на рабочем столе ярлык, который потом можно поместить в любое удобное место

Я могу даже написать программу, в которой будут все нужные мне ярлыки, но это не выход, когда приходится работать на компьютере, где нет программы, ярлыков, юсб и интернета. Зачем усложнять то, что и так работало раньше? Захотели больших изменений, ну сделали так, чтобы было удобнее, люди сами перейдут на новые настройки, а про архаичную панель управления забудут.
А тут новые настройки убоги, часть из них всё равно отправляет на окна приложений панели управления, часть из них запрятана (кстати, только сейчас понял, это наверное для того, чтобы люди научились пользоваться поиском настроек).

Пкм на Пуске, Control Panel.
Давно устарело.
«Давно» это когда? Использую 1809 только потому что не предлагает дальнейшего обновления, там все есть.
У меня сейчас самая старая из десяток — 1803, в ней Control Panel из Start Menu уже выпилена.

У Вас, скорее всего, еще более ранняя версия, впоследствии обновленная до 1809.
Сомневаюсь, что наполнение контекстного меню (не самого start menu) зависит от версии системы, с которой я обновлялся.
Так и я про контекстное (через правую кнопку) меню. И я бы тоже сомневался, если бы в стоящих передо мной четырех версиях (1803, 1809, 1903, 1909) хоть одна имела в этом меню Control Panel.

нет этой кнопки

Параметры — не оно? У знакомого на 1909 открывает старую панель управления.

открывает новомодные параметры. Я помню, когда-то давно там была кнопка панели управления. Только я ставлю альтернативный пуск вместо этого… подобия, так сказать, поэтому контекстное меню недоступно.

«Параметры» — это Settings, та самая шестеренка.

Возможно, где-то есть скрытая настройка, чтобы открывать по этой ссылке старую панель, но в панели десятки нет пунктов Display, Location and Other Sensors, Notification Area Icons, Parental Control, Performance Information and Tools, Personalization.
В вин10 в панель управления можно попасть… Не просто туда попасть. Открываем пуск, отстаём огромный список с огромными значками, дальше вспоминаем «панель управления», это служебное, спец возможности, или администрирование? Или может стандартные? Потыкали по всем папочкам, нашли.

Использую для этого Win+R -> control -> Enter.
P.S. я буду обновлять комменты
весь этот путь проходится гораздо быстрее:
ЛКМ значок языка — настройки языка — «выберите метод ввода...» — «сочетания клавиш...»

меня больше подбешивают не самые короткие пути к более используемым компонентам — «центр управления сетями» и «устройства и принтеры», к которым раньше был доступ в два клика из раскрывающегося меню
хорошо, что пока на них можно делать ярлыки из панели управления и таскать с собой на флэшке

Это всё прекрасно. Допустим, в виндовс семь, можно по правому клику на значок языка сразу попасть в это окно. и это было удобно:



И что мы видим сейчас?
"гениайльные" уй-дизайнеры микрософт показывают нам окно на весь экран, в котором в самом верху стоит смена языка, добавление языка. Я ведь каждый день по несколько раз меняю язык системы и закачиваю новые…
В очередной раз из быстрых настроек того, что нужно, мы лазим по лабиринтам "параметров". И самое главное — где гарантия, что
ЛКМ значок языка — настройки языка — «выберите метод ввода...» — «сочетания клавиш...»
будет находиться там же в следующей версии системы? С тенденцией запихивать самые удобные настройки поглубже, скорее всего путь изменится.

я понимаю ваше возмущение и разделяю его, просто поделился шорткатом

Почему в винде до сих пор нет переключения языка например по capslock?

Я уже не в первый раз про это слышу. Откуда такое требование? Смотрите LowLevelKeyboardHook, чтобы добавить такой функционал.
НЛО прилетело и опубликовало эту надпись здесь
CapsLock — это основная клавиша для взаимодействия с читалкой экрана. Её можно выключить или поменять назначение, в Интернете полно информации как это сделать без написания своей программы.
НЛО прилетело и опубликовало эту надпись здесь
За эту фичу нужно проголосовать, телеметрия не настолько интеллектуальная. Голосовать на Feedback Hub, открывается через Win+F.
А можно где-то узнать, что именно собирается телеметрией и как обрабатывается?
В плане работы клавиатуры, допустим, то, что сотни тысяч пользователей из россии открывают пуск и набирают, допустим «зфште», или «цщкв», потом удаляют введённое, меняют раскладку и заново пишут, но уже на нужном языке. Вот это вот всё отслеживается? есть у нас шанс, что винда когда-нибудь начнёт понимать, что не единой раскладкой живут пользователи и что можно включить возможность в поиске использовать и альтернативную раскладку, как это делается, допустим, в гугле, да и много где ещё?
По поводу переключения клавиатуры. С капсом никогда не заморачивался, а вот переключаться по левому и правому контрл — нашёл для себя очень удобным.
Представьте ситуацию: я подключаюсь к удалённому компьютеру через тимвьювер, на удалённом через рдп подключаюсь к серверу, на сервере в браузере запускаю веб интерфейс esxi и в нём захожу на виртуальную машину. (не спрашивайте зачем это, просто как пример) И от ввода текста мне становится грустно, ибо в лучшем случае символы вводиться не будут, пока на всех машинах не выставить одну и ту же раскладку, а в худшем будет вводиться какая-то фигня из непонятных символов, или один символ на все клавиши. Можно, конечно ставить хуки, писать свой софт, или использовать чужой. Эту проблему я решил с помощью пунто свитчера, но таки очень хотелось бы более гибких настроек по назначению клавиш.
Почему нельзя разрешить пользователю менять раскладку по капсу, или по кнопке Ё? Или на один язык переключаться левым контрл, а на другой — правым.
Win10 1909
Возможность переключения по `(ё) присутствует.
Новомодные настройки — устройства — ввод — дополнительные параметры клавиатуры — сочетания клавиш для языков ввода.
Выбрать пункт «Переключить язык ввода» и по нажатию на «сменить сочетание клавиш» появится искомое.
Потенциально, можно переключаться на конкретные языки по хоткеям, но из-за убогих возможностей по настройке доступны только варианты (модификатор)+([`1-0]), что неудобно. Особенно при привыкании переключения по разным контролам.
Может быть у них дойдут руки до модернизации этой части интерфейса, но будет это нескоро, судя по стабильности сборок 1809 и 1903(на последнюю я несколько раз пытался обновиться с 1803, но обновление всегда зависало по непонятным причинам).

1903 Переключения по Ё нет. Только по ctrl+Ё. Но и оно у меня не заработало, возможно, что-то блокирует.
Но таки хотелось бы по разным контролам переключаться, так как разные клавиши на разный язык — это сильно логичнее и меньше ошибок при наборе.

Ну вот не соглашусь с вами.
Вот как выглядит у меня данный диалог. Win 10 1909 build 18363.535
Проверил, переключение МЕЖДУ раскладками по Ё работает, без разницы на модификаторы.
image
Впрочем, жить без ё не очень интересно, так что я не вижу этот вариант жизнеспособным (а другой человек может увидеть).
Посмотрите, возможно у вас какие-то хуки стоят, что не позволяют переключаться по одному нажатию на клавишу Ё.

А вот переключение на конкретную раскладку, увы, тут все очень плохо.
Теоретически, текущий вариант удобен, если у тебя много (более двух) языков. Но для двух языков — мне удобнее левый и правый контрол для явного переключения на конкретный.
Фактически, это единственная причина установки punto switcher, к которому за годы привык, но пользуюсь лишь одной фичей.

Написал программу, которая переключает язык по левому и правому контрл. Теперь можно будет обойтись без пунтосвитчера.
Спасибо ТСу за толчок в нужном направлении.
Вопрос к реально пользующемуся этой функцией. Переключение по шифту, или другие способы нужно встраивать, или контрл будет достаточно?

вот вам образец для подражания
image
Переключения языка капсом это удобно, особенно на ноутах где в клавишу встроена лампочка, сразу видно какой язык включен.
Реально есть статистика что какая-то ощутимая масса пользователей пользуется этой кнопкой?
Не знаю ни одного человека кто пользовался бы капсом, ну кроме как для написания юмористических комментариев в стиле «СРОЧНОСДЕЛАТЬЕЩЁВЧЕРАБЛДЖ1111»
Раньше пользовался переключением Ctrl+Shift, затем перешел на Alt+Shift (при «слепом» методе печати так удобнее). А сейчас — в связи с переходом на планшет (и иногда из-за этого отсутствием физической клавиатуры) — перешел на переключение языка ввода кнопкой «Ё» (или ` в английской раскладке). Это удобнее для меня, чем нажимать две клавиши на сенсорной клавиатуре (1 клик вместо 2-ух — вполне себе экономия времени:).
З.Ы. Кнопкой капслок пользуюсь, — иногда капчу надо вводить большими буквами или пароли. Но добавить этот вариант переключения языков для большей настраиваемости и удобства Windows для разных людей было бы хорошо.
У alt-Shift есть препоганейшая особенность: половина современного софта по нажатию alt активирует хоткеи меню… как итог быстрое нажатие alt-shift и попытка ввести текст «съедает» первый символ
Не знаю ни одного человека кто пользовался бы капсом
Значит, не знаете людей с ограниченными возможностями. Там на капс много чего завязано.

Впрочем, я сам о таких вещах не задумывался, пока не довелось поучаствовать в разработке приложения, популярного у слабовидящих. Оказалось, что даже банальная недоступность строчки текста в интерфейсе с клавиатуры — уже серьёзно, люди испытывают реальное неудобство, не могут отправить этот текст на озвучку скринридеру.
Согласен, для людей с ограниченными возможностями возможно это нужно, но это ведь можно включать/отключать одним флагом в настройках. Вы думаете о людях с огр. возможностями, а подумайте об обычных людях или они сами о себе будут заботиться и использовать LowLevelKeyboardHook
При переводе приходится, потому что пишешь не как тебе хочется, а как написано в исходном документе. А там может быть и слово через слово капсом, и половина предложения — при быстрой и долгой работе палец отсохнет шифт держать.
А Сtrl+Shift+стрелка — Shift+F3 для каждого слова — это сильно сложнее капслока.
У меня переключение раскладок по CapsLock. А включение\выключение функционала CapsLock по CapsLock+LeftShift.

И почему это было сделано не по умолчанию дцать лет назад…
Вот должно быть наоборот — на кнопке написано — «CapsLock» -делает буквы большими. Хотите своё — по CapsLock+LeftShift — делаете как хотите.

А давайте попросим и CtrlShitEsc не на диспетчер задач, да и Win тож на своё…

А давайте не будем трогать CtrlShiftEsc.

Хотя Task Manager зачастую запускается уже после того, как приложение, для прибивания которого был вызван, дозакроется само.

У меня недавно был забавненький глюк — explorer хитро здох и после логина не отрисовывались значки на рабочем столе.
При запуске диспетчера задач из консоли в безопасном режиме с поддержкой командной строки тот тоже вешался при попытке открыть контекстное меню любого процесса.
Отсюда можно сделать вывод, что диспетчер задач уже не торт, раз уж его можно так легко положить. Систему пришлось переустанавливать(

Она не для всех бесполезна. Я активно ей пользуюсь по назначению, когда пишу код. Про людей с ограниченными возможностями написали выше.
Если не первый раз слышите, значит это востребовано. Это требование происходит от банального удобства. Неужели так трудно это сделать? Миллионы пользователей ежедневно выворачивают пальцы, чтобы переключить язык.
>>> Смотрите LowLevelKeyboardHook, чтобы добавить такой функционал.
Смотрите линукс, там это сделано.
А для себя сделайте клавишу Enter, через Ctrl-Del через LowLevelKeyboardHook, посмотрите откуда требования происходят.
Что там выворачивать? Не отвлекаясь от печатания можно нажатием мизинца по Ctrl+Shift быстро сменить язык.
Не отвлекаясь от печатания можно нажатием мизинца по Ctrl+Shift быстро сменить язык.

А Shift+Caps или Caps прожимать мизинцем ещё удобнее — у меня так переключение настроено, Shift+Caps — русская раскладка, Caps — английская. Очень удобно тем, что не надо знать, какая раскладка стоит сейчас, чтобы включить нужную.
Ну и индикатор Caps у меня светится когда русская раскладка включена, удобно.
Linux, да. Причём это даже настраивается штатно в панели управления, а не в конфигах.

Андрей, раз уж тут коснулись функции переключения раскладки, есть вопрос по системному сообщению WM_INPUTLANGCHANGEREQUEST, в старых версиях windows работало отлично, сейчас не применимо, т.к. множество программ (MS Office к примеру) просто зависает (не всегда) если им отправить данное сообщение. Можете прокомментировать?
Ну от себя скажу: Все сторонние решения имеют свои ограничения, например не переключают раскладку в некоторых диалоговых окнах. В трее висит программа, которая реализует эту мелкую функцию. Сама же функция очень давно есть в линуксах, и ее очень не хватает в windows, при быстром переключении между ОС это сильно напрягает. К тому же, переключение Shift+Alt иногда не срабатывает, если быстро прожать, а caps всегда под мизинцем. Ну а включение Caps через Shift+Caps уже давно реализовано, чем и пользуюсь при необходимости (это ведь всегда можно настроить, не обязательно Caps на переключение раскладки по умолчанию ставить). Для себя решил проблему маленькой программкой в автозагрузке, собранной из скрипта в AHK, но и она не всегда отрабатывает (но чаще, чем другие решения, которые я пробовал) в диалоговых окнах, и судя по вашей статье, не будет, если не будет запущена как служба от имени системы. В хабе предложение создал, если есть возможность поддержите.

Почему только по CapsLock? Почему не требовать от винды какой-нибудь дичи вроде LShift+LCtrl+LAlt+RAlt+RCtrl+RShift+Reset?


Нет такой фичи? Выпустите свой продукт! Если он действительно будет нужен пользователям — вы озолотитесь.

НЛО прилетело и опубликовало эту надпись здесь

Дичью я назвал ту комбинацию, которую сам придумал.
Переключением по RCtrl вполне может быть кому-то (вам, например) удобно. Но это не значит что эта опция обязана появиться в списке доступных. Даже не смотря на то, что часть пользователей была бы рада. Возможно этих пользователей крайне мало.

Требовать можно, в настройках винды давно можно было сделать назначение переключения языка на любую кнопку или вашу любимую комбинацию LShift+LCtrl+LAlt+RAlt+RCtrl+RShift+Reset, только вот что то в микрософте не торопятся это делать уже лет так 20.

Вон, человек выше комментарием, написал что он переключает с помощью RCtrl. Значит есть стороне решение.


А не торопятся, потому что незачем. Будет как с блокнотом. Пока ничего не делали, была группа пользователей, которая ныла что блокнотом не занимаются. А когда внесли изменения в блокнот, то появилась другая группа пользователей, которая начала ныть что есть более важные вещи, а MS блокнотом занимается.


Текущая ситуация позволяет выбрать 2 исторически сложившихся варианта. Все остальное делается сторонним ПО.

Стороннее решение не всегда можно устанавливать на удаленные чужие сервера.

А что там в блокноте улучшили за последние 10 лет? Поддержку юникода? Так это не фича, а неизбежный переход на х64

Я уже не помню. Там была какая-то мелочь от которой мне лично ни тепло, ни холодно. И тем не менее кому-то это не понравилось.

НЛО прилетело и опубликовало эту надпись здесь
Есть пунтосвитчер для Windows, который умеет и по RCtrl и другие варианты. Автозамену я в нем отключил — мне эта фича не нужна.

когда-то одним из аргументов не перехода на линукс у меня был как раз отсутствие пунтосвитчера…

Мощный аргумент. Кто-то заставляет использовать пунтосвитчер? Нет.
Кто-то вас заставляет из нас вернутся не Windows? Тоже нет.
Win+SPACE не подходит?
Статья очень интересная, спасибо. Как и ожидал большинство комментариев на тему «почему винда такая глючная» хотя автор в самом начале написал что работает над ядром, а не вот это вот всё. Ну и потом 330 000 одних только API, что же вы хотите?)
Спасибо

А вы можете написать статью о сообщениях в виндовс? Мне интересно, как происходит слаженная работа всех компонентов интерфейса. Ведь нажатие на кнопку это по сути отправка объекту "кнопка" сообщения sendmessage, верно?
Только сообщение кнопке отправить легко, а что происходит, когда юзер меняет ширину столбца, или показывает/скрывает столбцы, изменяет вид папок проводника. Где про это можно почитать подробнее?

Есть программа InqSoft Window Scanner — она позволяет посылать произвольные сообщения, может вам пригодиться когда будете изучать этот вопрос (если конечно захотитие))

Да, пользовался ей активно. Ещё spycapture, она, похоже уже мертва, как и многое из программ, которыми пользовался давным давно, когда познавал мир виндовс. Делал автоматические установщики, потом на делфи писал перехват клавиатуры, назначение горячих клавиш и отправку сообщений в окна.
Я только недавно осознал, как эти сообщения работают, что те два параметра, в которых я отправлял коды клавиш, могут также содержать указатели и посылать окнам гораздо больше, чем пара байт. Вот это и хочется изучить. Тем более, есть программы/интерфейсы, в которых кнопки отличаются от обычных и не определяются через сканер InqSoft, но как-то они ведь работают.

WM_DATA позволяет отправлять массив байт другому окну.
Об этом будет когда дойдём до того как Windows обрабатывает сообщение от клавиатуры.
НЛО прилетело и опубликовало эту надпись здесь
про клавиатурный ввод — это не очень интересно. Гораздо интереснее было бы узнать про взаимодействие драйверов дисков и файловых систем. Особенно про возможность изменения констант кэширования и буферизации.
Например, винда сильно уменьшает время хранения буферов (на запись) метаданных для 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 у текущего подключения у флэшки, то меня СОВСЕМ не радует необходимость нахождения USB ноды по букве диска.
К тому же 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
Использую для этих целей UsbTreeView показывает все данные о шине и устройстве
прога хорошая для своих целей, но мне нужно чтобы Windows сам отдавал нужную инфу через его API, вместо самостоятельной реализации низкоуровневых опросов железа.
Нда. Буквально заставил себя прочитать всю статью, чтоб потом не было комментариев в стиле «не читал, но осуждаю». Впечатление «смешались в кучу кони, люди, мечи, секиры топоры и залпы тысячи орудий слились в протяжный вой» после прочтения только усилилось. Нет, серьезно — складывается ощущение что автор хотел запутать даже тех, кто хоть что-то понимает.

Вообще, адресовать такую статью «студентам технических специальностей» по мне преступление. А после фразы «Материнскую плату можно рассматривать как колонию микроконтроллеров которые общаются между собой через шины и через них циркулируют данные от подключенных устройств к процессору и обратно» захотелось убивать. Завершил разрыв мозга притянутая к уровню радиоэлементов архитектур клиент-сервер и уровень виртуальной машины вместе с Hyper-V.

Корпоративная солидарность не позволяет мне критиковать коллег по цеху (пусть и из лагеря условных союзников), не не могу не напомнит одну цитатку Курта Воннегута.

Если ученый не умеет популярно объяснить восьмилетнему ребенку, чем он занимается, значит, он шарлатан.


Думаю, она относится не только к ученым, но и к любым людям, считающих себя специалистом в какой-либо отрасли. Так вот — ваш текст с трудом понимает 40-летний системщик (и многое в нем считает неправильным по разным причинам), а уж восьмилетнего ребенка или думающего «студента технических специальностей» он просто раздавит.
Согласен с вашей оценкой. Много текста и всё на разные темы. Про клавиатуру ничего не написали. Может быть начнём с WM_CHAR, WM_KEYDOWN, GetKeyboardState, GetAsyncKeyState?
А если уж нарисовали биполярный транзистор, то писать надо про MS-DOS, io.sys.
Хмм… Мне все понятно, многое интересно. Насчет студентов не скажу, вероятно, будет зависеть от специальности.
А можно узнать Ваш социальный статус? Вы студент? Или работаете (в какой отрасли и лучше с направлением)?
Вам непонятно как это всё соотносится друг к другу?
Вы не понимаете почему в этой статье про клавиатуру написано так мало?
Неакадемичность изложения?
Как бы вам сказать… Есть два пути. Один от кнопки на клавиатуре, через контроллер кнопок в ней, через интерфейс в ней же, через контроллер интерфейса на плате, через процессор в режиме ядра в пользовательской прикладной задаче. И только после этого что-то говорить про Windows — специфичные моменты. Или наоборот — от Windows'специфики к кнопке на клавиатуре. Если при этом хочется упомянуть виртуализацию — то пожалуйста. Но не надо ее упоминать везде по делу и без.

И, конечно, нет никакой «колонии микроконтроллеров» на материнской плате. Все же микроконтроллер — это некоторое процеcсорное и программируемое устройство. А на материнской плате есть «колония контроллеров ввода-вывода» — они имеют крайне мало общего с продукцией Microchip, Atmel, ST-Microelectronics и им подобным. Хотя бы потому, что не содержат в подавляющем своем большинстве вычислительного ядра. Если где и есть микроконтроллер, так только непосредственно в самой клавиатуре (особенно Китайцы очень любят ставить контроллеры общего назначения в свои мега-клавиатуры с подсветкой) или мыши.

Неакадемичность можно только приветствовать. Но ведь фактическая точность от академичности текста зависеть не должна. Электронные компоненты имеют свое деление. А вы даже не удосужились на него посмотреть. Резисторы и конденсаторы (которые начиная со школы изучаются как пассивные элементы) приравнять к полупроводникам… Да еще и обосновать это тем, что «в составе микросхем же они есть» — это уже не «неакадемичность».

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

И одно дело когда подобная чушь идет от маркетологов и прочих менеджеров, и совсем другое когда от человека, который «работает в Microsoft над ядром ОС Windows 10». Все же фактическая точность обязательно должна быть.

Впрочем, могу и похвалить. Мне понравился ваш подход и попытка объяснить разницу между режимом ядра и режимом пользователя. Вот тут есть камень предкновения для очень многих программистов (включая тех, кто считает себя системщиками). Увы, но боюсь даже это понятно мне, но не «широкой публике». Но подход именно в этой части однозначно правильный.
В Windows 10 применяется виртуализация, даже если явно не включать hyper-v.

Настройки безопасности/изоляции ядра/контроль целостности памяти.

Windows Defender Application Control and virtualization-based protection of code integrity
Любите вы позадираться ). Я считаю что эту тему надо объяснять именно в таком порядке.

Не будучи экспертом в теме радиоэлектроники скажу, что насколько я знаю не только порты ввода-вывода обладают прошиваемыми контроллерами, как минимум чип с UEFI (BIOS) содержит прошивку. Такой большой чип как Южный мост (называйте как хотите, хоть PCH) навряд ли не содержит никакой прошивки. Принципиальные различия между чипами человек разберёт если захочет погружаться в эту тему. Для общего понимания работы машины достаточно и такого объяснения. Между прочим я нигде не утверждал, что конденсатор это полупроводник.

Академический подход к тому что я опишу в нескольких статьях это обособленное изучение предметов в списке ниже в течение 5 лет в надежде что человек сам соберёт их в общую картину:
  • математика
  • физика от азов до электродинамики
  • электротехника
  • электроприборы
  • язык С и алгоритмы
  • операционные системы
  • системное программирование
  • математическая логика
  • теория игр
  • системный анализ
  • другие предметы

для того чтобы 90% выпускников следующие 10 лет писали web-приложения, мобильные приложения, пользовательские программы или делали управленческую карьеру. Это неэффективное распоряжение временем, зато академически точно.

Я примерно знаю как устроен мой автомобиль, хоть и не механик. Мне этого достаточно чтобы понимать что могло в нём поломаться, как решать споры с автосервисом, что имеет смысл докупать. После моих статей люди будут понимать как ПК работает в общем и целом. Страшного тут ничего нету — как только человек начнёт вникать в выбранную область мифы развеятся.

Вам трудно угодить, спасибо за похвалу.
Тогда нужно еще рассказывать про сети.
Ведь некоторые думают что если использовать VPN в месте поближе к сервису, то пинг через него обязательно уменьшится.
Чип с UEFI (BIOS) — это обычная микросхема памяти. Прошивка в ней, конечно, хранится. Но именно храниться. Исполняется она уже не на нем, а на основном процессоре или выделенном процессоре рядом. Подробности тут неоднократно CodeRush рассказывал (за что ему большое спасибо).

Про внутреннее устройство мостов знает только их производитель. Я не производитель — потому не знаю. Но имею все основания предполагать, что никакой даже скрытой от конечного пользователя прошивки там нет. Там железная логика. Впрочем, притянуть за уши, конечно можно. Железная логика такого уровня давно разрабатывается на языках HDL (hardware description languges). Так что если объединять пассивные компоненты и полупроводники (картинку смотрим — там и резисторы с конденсаторами обведены рамочкой Semiconductor Devices), то в принципе можно сказать что и мосты — одна сплошная прошивка. Но по факту любой мост — всего-то окно в памяти (регистры даже на x86/x64 уже дикое legacy и это правильно) и набор каналов прерываний и прямого доступа к памяти.

Ну и про устройство автомобиля. Лук — он многослойный. Один слой как педали нажимать и руль крутить, другой — бензин и омывайку заливать, третьи — предохранители и эксплуатационные жидкости (масло), а дальше системы питания и выхлопа, подвески, дифференциалы, а если надо глубже, то химия, материаловедение… Вы в заголовке очень глубоко замахнулись. Но у меня после прочтения осталось стойкое ощущение, что вы путаете масло ГУР, двигателя и коробки передач. Формально все это масло. Все они моторные. Но обобщать их… Не правильно, что ли.
Нет в мостах никакой железной логики. И прошивки там есть. Работающие на внутреннем CPU. Intel Management Engine

После старта питания. Еще до запуска CPU, работает куча контроллеров. Подготавливающие всё для запуска CPU.
Нет в мостах никакой железной логики.


Ух… Т.е. вы хотите сказать, что в мостах работает программа которая умудряется поставлять данные процессорам, работающим на гигагерцах? Т.е. контроллер внутри моста быстрее самого процессора?

По контроллерам. Хорошо MEI или ее аналог. Принято. Я, к слову, писал о «выделенном процессоре рядом» на котором исполняется часть кода из микросхемы памяти с UEFI BIOS. Один найден и засчитан. А еще? Один на кучу совсем не тянет.

Допустим, в ноутбуках есть мультиконтроллер. Может ли (и должен ли) он работать до старта ЦПУ я не знаю. Но, допустим, может. Два. На геймерских платах местами попадаются контроллеры, отвечающие за подсветку (не могу пруф найти — но вроде даже здесь кто-то с ним ковырялся). Три. Уже куча? Ну ладно. Пусть будет куча и каждый со своей прошивкой.

Нет, конечно можно найти микросхему EEPROM в которой хранятся VID/PID для USB хаба. Наверное, можно сказать что и там работает какая-то прошивка.

Хорошо. Пусть будет так. Пусть будет толпа контроллеров. Почти убедили.
Я прояснил для себя некоторые моменты с контроллерами. Ну а в чём по сути разница между контроллером в котором закодирован программный код и контроллером в котором вся логика работы реализована на аппаратном уровне? Я так понимаю это скорость работы и реализация.
В более старых материнках чипы тоже не полагались на программную реализацию?
А хороший вопрос, когда он задан именно так.

Наверное в том, что контроллеры написанные на языках HDL не имеют как такового вычислительного ядра. Все же именно наличие отдельного блока ALU, и как минимум пары регистров и есть отличительный признак вычислительной системы. Тут же четко прописанный автомат состояний.

Мы же не называем железный ткацкий станок программируемым устройством. По крайней мере до тех пор, пока он не оснащен съемным барабаном с программой, позволяющей менять последовательность петель. Аналогия примерно такая же. Да, когда-то это разрабатывалось на языках HDL, но и «однопрограммный» станок кто-то когда-то проектировал. Наверное как-то так.
Вот материнка из 1981го года, IBM 5150.
Все эти жуки в основном память да логика. Где там микроконтроллеры то?
Как минимум я вижу 8255 (или i8255) — микросхема контроллера программируемого параллельного интерфейа — это именно микроконтроллер.
Плюс ниже него еще контроллер прямого доступа к памяти 8237
Под процессором стоит контроллер Intel 8259 — семейство программируемых контроллеров прерывания
И еще есть Intel 8253 — микросхема программируемого трёхканального таймера и счётчика интервалов — это в общем тоже программируемый контроллер, хотя и не такой мощный как предыдущие.
все-таки я бы различал контроллер и микроконтроллер. В данном случае 8255 это не микроконтроллер, у него нет процессора и программы. Только начиная с PC AT, на материнке появляется отдельный микроконтроллер, который начинает работать еще до CPU.
А контроллером может быть любое достаточно простое управляющее устройство — конечный автомат, к примеру контроллер питания
Милые сердцу раритетные железки. К счастью, в те времена все было сильно проще. Есть процессор, которые по системному сбросу выставляет на шину адрес, а на шине по этому адресу расположена микросхема BIOS (с параллельным интерфейсом), который и начинает выполняться. А вся обвязка в виде контроллеров клавиатуры и иже с ним в виде отдельных железных микросхем подключенный к той же шине. Все просто, красиво и понятно. Не чета современным.
— Контроллерам не надо работать на частоте процессора.
— 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 не наделала бы столько шума. Не все и не всегда им можно исправить.
Spectre использует уязвимость, которая заключается в наличии самих блоков процессора (предсказания, кэширования). risc внутри cpu просто потребляет данные из этих блоков.

То что контроллер никак не виден программно, со стороны программиста через код CPU, не означает что это не контроллер со своим ALU.
Согласен. Но это точно также не обозначает автоматически наличия там ALU со своей микропрограммой.

А дальше вопрос ее наличия или отсутствия — скорее вопрос веры. Я, изучавший конструирование цифровых автоматов, склонен считать что ее там нет. Видя регистры управления и зная подаваемые сигналы тактирования я могу представить как именно реализован такой автомат без ALU. Но, вполне естественно, не могу быть в этом уверенным на все 100 процентов.
А как же быть с, например, ASM1061? Вполне себе контроллер. На некоторых материнках он и его сотоварищи используются для расширения имеющихся портов SATA. Или звуковые чипы от тех же Realtek?
По ASM1061 — я все же склонен считать, что там жесткая логика. Хотя, 20МГц кварц в обвязке безусловно на что-то намекает… И намекает сильно больше, чем «optional 64K Bytes SPI flash». Я не разработчик чипа. Потому уверенно сказать не могу.

По звуку. Даже «широко известная в узких кругах» микросхема кодека SGTL5000 по документации содержит в себе DSP, отвечающий за цифровую фильтрацию и работу алгоритмов автоматического регулирования уровня записи (ALC). Возможно, там реально DSP. А может быть и нет. Я такому раскладу не удивлюсь. Что до «крабов» — то я тоже склонен считать, что эффекты типа «стадион» или «ванная комната» это работа драйвера и использование CPU. Впрочем, AWE32 в свое время содержала богатый DSP. Но ведь это уже периферия. К тому же довольно жестко специфичная.
Т.е. вы хотите сказать, что в мостах работает программа которая умудряется поставлять данные процессорам, работающим на гигагерцах? Т.е. контроллер внутри моста быстрее самого процессора?
Частота процессора — гагагерцы, а частота системной шины какая?
И мост же остался только южный, всё действительно высокочастотное давно в процессоре.
Сарказм: включен

Конечно. Системная память в случае северного моста — это очень низкоскоростное устройство. Можно лагать почем зря. Или контроллер интегрированного дисплея (который должен получать фреймбуфер из системной памяти) может быть не просто медленным, а просто супер медленным. Любого контроллера хватит, чтоб эти вещи окучить.

Сарказм: выключен

Надо к Intel на поклон идти. И смотреть документацию на тот же PCH. Возможно и есть там что-то. Но точно не основное. А мосты и раньше были всего-то объединением на одном чипе горки развесных контроллеров и шинных интерфейсов. Не думаю что и сегодня ситуация резко поменялась. По сути там те же «развесные» корневые хабы для PCI/PCIe, контроллеры SATA/USB и все такое.
Так контроллер памяти же в процессоре, как и графика. Или мы о разном?
Контроллер, тот который обсчет делает — да, в процессоре. А сериализаторы, которые DP или HDMI формируют в PCH. Вот и получается, что фреймбуфер 60 раз в секунду должен летать между памятью (и ее контроллером в CPU) и PCH. И это не единственное, что между ними должно обмениваться.
Одно время были популярны карты DVI ADD, в которых стоял формирователь, довольно скромный по размерам чип, практически не греющийся. Встречал вообще программную реализацию — попалась плата от материнки Asrock, на которой из активных элементов было только три транзистора. На других материнках не завелась, в драйверах видео ничего особенного не нашёл, возможно, в BIOS собака порылась.
DVI_ADD
У меня подобное на чипсете Intel G45/G43 работает (до сих пор) под Windows 10, только ещё более круто — Display Port + DVI:) Обеспечивает аппаратно DirectX 10. Очень удачная материнская плата и BIOS от AsRock.
Вероятно работа под Windows 10 даже не заслуга MS — они бы точно не пошевелили пальцем, чтобы продлить жизнь устаревшему железу. Судя по всему, функциональность DVI-ADD карт чисто аппаратная и не требует поддержки со стороны драйверов. Т.е. это просто продолжение встроенного видеоядра, добавленные детали, недостающие на материнской плате. Там, судя по всему, простая быстрая программируемая логика.

Пробовал DVI-ADD на более новом чипсете — не завелось.

AsRock вообще молодцы. Когда начинали, были самым дешёвым во всех смыслах производителем, как сейчас BioStar — экономили на спичках, ставили самые дешёвые компоненты, хотя ещё были дочкой ASUS. И первыми выходили из строя. Потом резко изменили стиль, перестали экономить на компонентах и стали выпускать материнки с нестандартной разводкой и функциональностью. В том числе, по-моему, DVI-ADD впервые появились именно у них.
При этом цена осталась вполне привлекательной на фоне увлёкшихся фантиками ASUS и Gigabyte. Также МП Asrock всегда лучше укомплектованы при меньшей цене, а некоторые решения уникальны.

У меня сложилось впечатление, что в определённый период AsRock получила ощутимую поддержку от кого-то из грандов индустрии, возможно, стала производственным полигоном Intel (HP, Dell). Достаточно взглянуть на ассортимент серверных платформ AsRock, чтобы в этом убедиться. Неоткуда третьеразрядному производителю взять достаточно инженерных ресурсов для разработки и поддержки такого широкого спектра инженерно-ёмкой продукции.
К стыду своему с такими не сталкивался. Но да, речь ровно о том же. Полагаю, что на картинке часть от платы Fujitsu-Siemens D2841-A11. Вот что по нему удалось нарыть.

Данный 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.
За всем не уследишь. Но меня до сих пор терзает возможность программного вывода HDMI с PCI Express шины, одно время был актуален вывод на несколько дисплеев.
Валяется плата от материнки AsRock, типа HDMI ADD, на которой из активных элементов присутствует только три буферных транзистора. Конечно возможно, что на этой материнке есть какой-нибудь грязный аппаратный хак типа как на телефонах Motorola аналоговые наушники подключались к разъёму mini-usb или на некоторых ноутбуках через комплектный переходник с vga разъёма выводился компонентный сигнал на телевизор. Но не вижу в этом смысла, проще было поставить на материнку hdmi разъём, а не городить переходной слот.
Сложно так судить. Нужна как минимум фотография.

Включив режим телепата могу предположить, что то, что вы считаете за транзисторы на деле является защитой от статики (ESR), а HDMI'шные дифпары уходят прямо со слота PCI-e. Там же по классике есть и I2C для DDC канала. Возможно, BIOS если считывает правильные данные DDC просто включает на эти пары HDMI сигналы. Почему при таком раскладе просто не поставить слот — не знаю. Видимо были на то свои причины. Но еще раз — это предположение в режиме телепата. Не более того.
Если учесть что автор статьи ведёт речь про W10, то значит MotherBoard надо рассматривать современные.
В абсолютном большинстве ПК по всему миру, в данный момент в MB вставляется только один контроллер — видеокарта.
В ноутбуках вообще всё интегрировано.
Так что между MotherBoard для Intel 80286 и современной, огромная пропасть.
Вы разбираетесь в этой теме гораздо лучше меня, спору нет, но не можете популярно объяснить собеседнику не зарываясь в детали и не отваживая человека от себя.
Да бросьте вы. Все проще. Я и не возьмусь. Это тема не на статью, а на целую книгу. Причем книга эта будет компиляцией из документации, а потому совершенно не интересна. А про не могу объяснить… Могу. В курилке. Или в обеденный перерыв. Заранее предупредив, что часть моментов я сознательно буду сильно упрощать, но если интересно то расскажу в подробностях. Меня, к слову, об этом часто просят. Но формат вольного рассказа у офисной доски мне ближе, чем статья на хабре. До сих пор ни одной написать не смог. Не побороть мне внутреннего перфекциониста.

Я реально рад тому, что статья Ваша пришлась аудитории хабра по вкусу. Впрочем, судя по комментариям, вопросы скорtе не по самой статье, а по работе (в) Microsoft.

Прошу прощения, если по комментариям сложилось впечатление что я на вас наезжаю. Право слово — и в мыслях не было. Все, о чем я хотел попросить — это чуть больше внимания к деталям. Только это и ничего больше.

А где вас можно послушать? Очень интересно.

Приходите к нам работать. Правда у нас зарплаты такие, что разве что опыта набраться да меня послушать. Но это тема другого разговора. Шутка, конечно. Но в каждой шутке только доля шутки — остальное правда.

Питер? Не часто там бываю =(
Но деятельность таки планирую менять. Или даже место работы.

Он самый. Не знаю. Надо бы, конечно, собраться да написать хоть что-то. Но все или мелко, или слишком глобально. Или банально. Не хочется документацию переводить на русский. Тем более что старая присказка из 90-х о том, что документация бывает либо русской либо правильной актуальна и поныне.

А это ничего страшного. Даже банальные, или мелкие для вас вещи, могут быть откровением для кого-то с горящими красными глазами. А в документации на понятном языке, можно давать ссылки на статьи на непонятном, это мотивирует читать правильные и актуальные источники)
Я сам долго и с трудом собираюсь что-то написать, тоже всё кажется обычным, но люди потом читают и даже что-то пишут в ответ, некоторым даже нравится. Но дальше чем развернутый пост вконтактике, или на каком-то форуме раз в год, это редко выходит. Зато через года натыкаться на свои посты и перечитывать достаточно интересно. Так что пишите =)

Ваш комментарий понравился, но резисторы и конденсаторы вполне можно причислить к полупроводникам. Дело в том, что Вы пишите о резисторах и конденсаторах из курса электротехники, а автор говорит о резисторах и конденсаторах из курса интегральной схемотехники, то есть это резисторы и конденсаторы в интегральном исполнении на полупроводниковой подложке. Более подробно можете посмотреть например в пособии Миндеевой Аллы Алексеевны "Микросхемотехника"

Тут есть некоторый тонкий момент. Конечно, отчасти так и есть. Но лишь отчасти.

Если мы спускаемся на уровень компонентов и ключей, то разумно все же пользоваться терминологией именно этого уровня. Более того в разное время были мало того что разные методики формирования полупроводников на кристалле, так еще и пассив не всегда был чисто полупроводниковым. Сейчас не вспомню, но была отличная статья вроде как от Analog Devices и историей микросхемостроения. От сборок до наших дней. Там много было интересного. И про пассив в кристалле, и про MEMS, и про полупроводники. Если вспомню где я ее видел — пристегну ссылку. Довольно давно дело было. Да и здесь, на хабре есть отличные статьи от amartology Они, конечно, не совсем об этом, но разные поколения микросхем в них прекрасно различимы. Всегда приятно его почитать.

На самом деле можно еще ниже. Я удивляю новоиспеченных системщиков рисуя им логические элементы, триггеры, регистры и прочие элементы на электромагнитных реле. Да и тут были статьи про построение компьютера на реле. Потом лампы. Их незаслуженно забыли, но ключи на них крайне простые и интуитивно понятные. Силно проще и понятней тех же транзисторов. Много интересного есть в самых нижних слоях компьютерных систем. Не меньше чем в верхних.
Если интересно, я могу написать о разных видах элементов на кристалле, и активных, и пассивных. Про МЭМСы и оптику придется сначала покопать, а обо всем остальном я и так знаю достаточно хорошо для того, чтобы рассказывать другим людям)

P.S. Спасибо за теплые слова)
Ближайшую я уже вычитываю, и она будет во вторник, а вот дальше хочется знать, что интересно аудитории: так будет легче найти темы, чтобы получалось писать более регулярно.
:) это все гугл. Первая ссылка в гугле на semiconductor devices
нормальный пост имхо, как очень сжатая версия учебника — Цифровая схемотехника и архитектура компьютера.
куда копать глубже по каждому уровню направление ясно.

>А можно узнать
основная работа java, для себя stm32, C, rust
Без обид. Статья настолько же похожа на сжатый учебник по цифровой схемотехнике и архитектуре компьютера, насколько книжки по сексуальному воспитанию дошкольников (над которыми смеется сквозь слезы весь интернет) похожа на анатомический атлас. Впрочем, «раз звезды зажигаются — значит это кому-то нужно». Пусть будет.

Про пояснение по работе — спасибо. Однако тема настолько обширна, что накрыть ее одной статьей почти наверняка невозможно. Попытаться можно, но накрыть… Боюсь толковое описание одного только только i8042 (классический контроллер клавиатуры PC) или описание того как именно взаимодействует клавиатура USB (USB device, USB host, HID class и т.д.) с операционной системой займет не меньше, чем вся данная статья. Мне привычнее работать именно с этими слоями. И именно к их описанию у меня вопросы. Я мало что знаю про уровень ядра Windows, а тем паче про прикладной уровень в ней. Потому и стараюсь говорить только о нижнем уровне.

Но ведь и претензии не к сжатости изложения (она-то как раз понятна), а к горке фактических неточностей (которые так и хочется назвать ошибками — оно ближе к истине будет).
НЛО прилетело и опубликовало эту надпись здесь
Ребёнки бывают разные. Существуют математические спецшколы. Один знакомый ребёнок, делая уроки, объяснял бабушке решение. Бабушка, всю жизнь преподававшая вышку в вузе, сказала, что решение неправильно. Мама, заместившая бабушку на кафедре, подмигнула, а когда бабушка ушла сказала, что решение правильное, а бабушка просто с ним не сталкивалась.
НЛО прилетело и опубликовало эту надпись здесь
Я бы посмотрел...


Хм… Старая байка про математиков. Когда он спрашивает у физика «И в чем же математический смысл Вашей физической абстракции»?

На самом деле не путайте «научить восьмилетнего ребенка...» с «объяснить восьмилетнему ребенку...» Научить — безусловно нереально, а вот если не получится объяснить — значит точно что-то не так. И, к слову, названные Вами отрасли вполне объяснимы не только восьмилетнему ребенку, но и даже детсадовцам. Пробуйте. У Вас точно получится.

Понимаю, что не совсем про то, но вспомните как хорошо получалось объяснять сложные вещи простым языком Якову Исидоровичу Перельману. В 8 лет — это второкласник. Который даже таблицу умножения знает.
НЛО прилетело и опубликовало эту надпись здесь
Да ладно. Учу умные машины рисовать и строить картинки как в реальном мире. Видишь вон тот лопух? Для компьютера его форму и изгибы надо описать на языке цифр. А еще о ветре, который это лопух колышет надо тоже как-то объяснить компьютеру. Да так, чтоб результат был прямо как вон там у калитки сейчас.

И что, не похоже на рассказ второкласнику про алебраическую геометрию?
НЛО прилетело и опубликовало эту надпись здесь
Хм… А разве аналитическая геометрия занимается взаимодействием? Она же вроде только описательная (в крайнем случае простейшие перемещения по осям координат)? Далек я от математики… Простите.

Хорошо, допустим не рисовать. Допустим учу компьютер представлять как взаимодействуют тот самый лопух и камень, которым ты в него запустил. Порвется лист или просто погнется.А может его вообще от корня оторвет. Как результат будет зависеть от того камень брошен или бутылка? А если вместо лопуха будет куст розы? Это мы можем что-то взять и проверить. А компьютер вынужден считать. Вот я и учу его правильно считать такие штуки. А еще не только его, но и всех остальных, кто почему-то не может сделать что-то в мире. Вот мы, например, не будем же сажать розу вместо лопуха.

А вообще кто из нас алгебраический геометр? Вы или я? И да, быть при этом немного «лириком» — навык очень полезный.
НЛО прилетело и опубликовало эту надпись здесь
Не знаю. Возможно есть из этого правила исключения. Может по-этому нобелевскую премию по математике и не дают ;-) Но в целом, мне кажется что любой профессионал может обьяснить любому неспециалисту цели своей работы. Методы, пожалуй нет, но цели — точно. А самым образцовым вариантом не специалиста совмещенного с любопытством как раз и являются младшие школьники.

Впрочем, если настаиваете могу согласиться что это наше с Куртом Воннегута частное мнение. Мне сложно судить о том, насколько оно применимо далеко за пределами сферы моих интересов. Хотя, конечно, надеюсь, что применимо.
НЛО прилетело и опубликовало эту надпись здесь
Последнее, к слову, тоже объяснение. Правда желательно чуть более цензурно. И младшими школьниками оно принимается на ура. Отчасти именно этим объясняется популярность шоу типа «Разрушители легенд», «Наука: сделай сам», «Головоломы» и прочие. Так что вполне тянет на объяснение.
Я бы этот пост назвал как-нибудь типа «Крошка веб-разработчик к отцу пришёл...», потому что тут чувствуется явная направленность на программистов, которые страшно далеки от системного программирования.
Ну да, в основном для них — пусть хоть в общих чертах понимают, что к чему в потрохах устроено, а то ведь зачастую клепают на своем уровне так, что плакать хочется. :)
Залейте иллюстрации на хаброхранилище. Потому что вместо КДПВ у Вас голубой квадратик с текстом «bandwidth limit exceeded».
Спасибо, поправил.