waqur: (Default)
На днях в прошивке Intel Management Engine нашёлся баг, который позволяет обойти аутентификацию в их корпоративных решениях для удалённого управления серверами и рабочими станциями. Короче говоря, можно удалённо рулить сервером или ноутбуком без предоставления пароля/ключа, если в публичный интернет открыты TCP-порты 16992/16993.

Intel ME известен корпоративным пользователям под большим набором маркетинговых имён (AMT, ISM, SBT, IPMI, vPro) и представляет собой выделенный 32-битный сопроцессор, позволяющий, к примеру, удалённо войти в BIOS или удалённо пробросить ISO-образ с последующей переустановкой операционной системы. С аппаратной точки зрения, Intel ME является посредником между сетевым интерфейсом и процессором, и к тому же имеет прямой доступ ко всей оперативной памяти системы: https://www.slideshare.net/codeblue_jp/igor-skochinsky-enpub

Подозрения о том, что Intel ME — это бэкдор для NSA и других аналогичных организаций, существуют давно. Для каждого из этих подозрений существует правдоподобное оправдание от Intel, и теория заговора.

1) Intel ME присутствует даже в чипсетах сугубо клиентских материнских плат и ноутбуков, и даже там он постоянно включён, и отключить его никак нельзя (в системе с неактивным Intel ME сработает watchdog timer чипсета через 30 минут после загрузки, или около того). Plausible deniability от Intel сводится к технологии Intel Anti-Theft, и к управлению вентиляторами. Conspiracy theory сводится к тому, что даже на клиентских системах есть пароли и AES-ключи, которые можно собирать из оперативной памяти. Или от процессора, который выполняет AES-NI инструкции, и, в принципе, знает ключи.

2) Встроенное программное обеспечение для Intel ME хранится в флеш-памяти в сжатом и зашифрованном виде, а выделенный для Intel ME регион в ОЗУ — прозрачно шифруется самим сопроцессором (хотя и программно недоступен для центрального процессора), так что даже охлаждение планок памяти жидким азотом и чтение на другой системе не позволит заглянуть внутрь. Plausible deniability от Intel сводится к наличию DRM-технологий (Protected Audio/Video Path) на этой платформе, а также к тому, что она может быть содержать программную реализацию TPM (Trusted Platform Module). Conspiracy theory сводится к тому, что код, собирающий всякие интересные артефакты из ОЗУ, должен быть защищён от любопытных глаз исследователей.

3) Intel ME имеет доступ к фреймбуферу (видит и может менять то, что отображается пользователю на экране). Для этой функции ему порой нужна поддержка со стороны ОС (если видеокарта не встроенная, а дискретная). Plausible deniability от Intel: Active Management Technology (удалённое управление), а также Protected Transaction Display (ввод PIN-кода для интернет-банка мышиными кликами по рандомизированной экранной PIN-клавиатуре, так чтобы хостовый CPU и вирусы, выполняющиеся на нём, не знали цифр, которые отображаются на экране). Также нужно для DRM (показывать дешифрованное видео прямо на экран, в обход CPU). Conspiracy theory: подглядывание за пользователем.

4) Intel ME и сетевой контроллер остаются включёнными даже тогда, когда основной процессор выключен (режим питания soft-off). Plausible deniability от Intel сводится к технологии Wake-on-LAN. Conspiracy theory сводится к тому, что пока компьютер "как бы выключен", этот сопроцессор может спокойно передавать "куда следует" секретики, собранные за день.

5) Intel ME включается в разрыв между сетевым контроллером и процессором. Plausible deniability от Intel сводится к технологии System Defense (низкоуровневой неотключаемый файерволл для дебилов, которые снесут или отключат файерволл в ОС и нахватаются вирусов), а также всё к тому же AMT и vPro. Также существует технология Intel EEE (Energy Efficient Ethernet), которая позволяет, например, открыть слушающий TCP сокет и отправить CPU спать до появления первого клиентского подключения. Conspiracy theory сводится к тому, что таким способом собранные данные можно сливать не "в наглую" (например, передавая трафик на неизвестный IP-адрес, который кто-то запишет wireshark'ом или tcpdump'ом и устроит скандал) а похитрее (например, в виде колебаний задержек при отправке исходящих пакетов, которые можно измерить на оборудовании вашего интернет-провайдера). При этом, можно предположить, что колебания задержек входящих пакетов на исходящих TCP-сессиях могут быть использованы для встречной передачи команд контроллеру Intel ME.

Подытожим:

1) Я не до такой степени параноик, чтобы менять встроенную прошивку на coreboot, рискуя превратить материнскую плату в бесполезный кусок текстолита; к тому же я не уверен, что это как-то поможет. Однако я не пользуюсь встроенными сетевыми контроллерами от Intel с 2015 года, чего и вам советую. Выбирайте дискретную сетевую карту поэкзотичнее, прошивка Intel ME — это примерно 2 мегабайта, а ведь там ещё должен поместиться весь этот SSL, VNC-сервер, DRM, файерволл и предполагаемый шпионский хлам (а также урезанная версия Java). Да и попытка пообщаться с сетевой картой требует перепрограммирования регистров её контроллера и контроллера DMA, что не останется незамеченным для CPU. Ну разве когда CPU в режиме soft-off, но тогда и сетевая карта в soft-off.

2) Сам факт нахождения первых уязвимостей в Intel ME позволяет предположить, что кто-то всерьёз заинтересовался этим вопросом, возможно расшифровал прошивку Intel ME. Способы есть. Вполне естественно, что люди интересуются, ведь если кто-то заложил в платформу такие вкусняшки — не пропадать же им втуне. Да и в конечном итоге неважно, написан ли соответствующий софт или нет; важно лишь, что железо позволяет.

Обсуждение на Hacker News:
https://news.ycombinator.com/item?id=14241241

Update от 2017-08-29: существует способ отключить Intel ME:
https://waqur.dreamwidth.org/130735.html
waqur: (Default)
Как проникнуть в защищённую сеть организации, которая изолирована от интернета?

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

Но вот незадача: в последних версиях Windows по умолчанию отключено автоматическое выполнение файла autorun.inf с флешек, да и с чего вы взяли, что у них там в конторе вообще Windows?

Те, кто имел дело с самоделкинской платой Arduino Leonardo, знают, что она умеет эмулировать любое USB-устройство. Например, флешку. Или клавиатуру (разумеется, без клавиш — такую, которая сразу после подачи питания начинает что-то виртуально "набирать", например WinKey+R, "cmd", Enter, "format C:", Enter, Y, Enter). Или USB-хаб, куда виртуально подключены флешка и клавиатура. Так что подавление выполнения файла autorun.inf не поможет.

Но как же быть с Mac OS и Linux? Ну, например, можно попытаться включить Num Lock через PowerShell (о чём винда уведомит клавиатуру), и если не получилось — то это, наверное, не Windows. А если не получилось через setleds(1) — тогда это, наверное, не Linux.

https://www.elie.net/blog/security/what-are-malicious-usb-keys-and-how-to-create-a-realistic-one
waqur: (Евро)
Обозреватели Arstechica жалуются, что новейший процессор от Intel (Kaby Lake, i7-7700K) по тестам не быстрее предыдущего (Skylake, i7-6700K):
http://arstechnica.com/gadgets/2017/01/intel-core-i7-7700k-kaby-lake-review/
Он чуть лучше гонится, потому что зубную-пасту-вместо-нормального-термоинтерфейса под крышкой процессора наконец-то исправили, ну а так — то же самое.

Если кто не знает или не помнит, Intel в этом году впервые дала пас в своей знаменитой "стратегии tick-tock": переход с 14нм на более тонкий техпроцесс (tick) был задержан на год из-за технологической неготовности. Взамен были обещаны архитектурные улучшения (ещё один tock), но как видим, увы.

Картинка для привлечения внимания: Механизм трансляции виртуальных адресов в физические в процессорах Intel: 64-битный режим, гостевая ОС в условиях аппаратной виртуализации (источник).

waqur: (Евро)
После перехода Windows на UEFI-загрузку старые интерфейсы BIOS, такие как int 13h (доступ к диску) и int 10h (управление экраном), казалось бы, могут быть наконец отправлены на пенсию (кроме случаев, когда загрузка происходит в режиме совместимости и в firmware вашего компьютера активизирован модуль CSM). Для вывода текста есть console I/O protocol, для переключения видеорежимов и блитирования есть graphics output protocol, также в UEFI существуют протоколы для считывания EDID-данных с дисплея (в т.ч. родного разрешения LCD матрицы), для доступа к диску и тому подобного.

Однако все эти новые UEFI протоколы становятся недоступными после вызова ExitBootServices() в процессе загрузки платформы, в контексте UEFI-загрузчика (например, такого как BOOTMGR.EFI). Не вызывать эту функцию нельзя, потому что иначе UEFI-загрузчик не перейдёт с CPL=3 на CPL=0, т.е. не возьмёт процессор под свой полный контроль и не сможет передать управление ядру.

А ведь SVGA-драйверу Windows нужно уметь переключать видеорежимы не только во время загрузки, а ещё и например когда пользователь меняет настройки рабочего стола. Поэтому драйвер VIDEOPRT.SYS содержит полнофункциональный эмулятор процессора, с пошаговым исполнением 16-разрядных команд из обработчика int 10h (который переключает видеорежимы, получает EDID-информацию от монитора, осуществляет suspend/resume видеокарты и т.п. — всё это посредством команд IN/OUT, причём разных команд для разных моделей видеокарт; соответствующий 16-разрядный код предоставляет сама видеокарта через option rom).

Таким образом, UEFI firmware должно при инициализации платформы проинсталлировать 16-разрядный код VBE SHIM по адресу 0xC0000, защитить этот регион памяти от записи и так далее (пример, как это делается, можно посмотреть в TianoCore). Ни UEFI firmware, ни Windows никогда не переключают процессор в 16-разрядный режим для прямого выполнения этого кода, но 16-разрядный код по-прежнему остаётся обязательной частью UEFI-платформы, в роли такого себе байткода виртуальной машины.

Когда-то давно, во времена NT 4.0, Windows просто приостанавливала многозадачность, выключала страничную адресацию, запрещала прерывания и помолясь переведя процессор в 16-битный режим, делала прямой вызов BIOS(*). Очевидно, что в эпоху многоядерных процессоров (ядра которых могут активно слать IPI друг другу) и 64-битности, такой финт может закончиться летальным исходом, поэтому в современных версиях Windows драйвер минипорта VGA содержит вышеупомянутый эмулятор, откуда он и перекочевал на UEFI-платформу. В отличие от семёрки и последующих версий, виста при загрузке (во время демонстрации логотипа) ещё и переключается в адовый VGA-режим 680x480 с 16 цветами и планарной видеопамятью по адресу 0xA0000 (где плоскости переключаются через порты VGA-контроллера); редкая комбинация UEFI-прошивки и прошивки видеокарты способна выдержать такое издевательство. Ну а Windows XP/2003 отличается в этом смысле как от предыдущих, так и от последующих версий Windows — она не содержит эмулятор как NT 6.x, но и не делает прямых вызовов BIOS как NT 4; вместо этого она выполняет код VESA BIOS Extensions в режиме виртуального 8086 (т.е. задействует аппаратную эмуляцию 16-битного кода, доступную только когда процессор находится в 32-битном защищённом режиме).

FreeBSD тоже содержит эмулятор 16-битного кода BIOS в драйвере vesa(4), для той же цели — переключение видеорежимов на заранее неизвестной видеокарте после загрузки ядра. Этот драйвер работоспобен в 32-битных и 64-битных ядрах, но только в BIOS/CSM режиме (в режиме UEFI драйвер vesa недоступен, а переключение видеорежимов делается только в загрузчике через UEFI GOP протокол).

Linux не содержит такого эмулятора и может переключать видеорежимы (на заранее неизвестной видеокарте) только до загрузки ядра.




* В ту эпоху такие прямые вызовы BIOS с глобальным остановом всей системы делались отнюдь не только при переключении видеорежимов. Анекдот про Билла Гейтса, который обещает показать, что такое многозадачность в Windows, но только после того, как доформатирует дискету, взялся именно оттуда.
waqur: (Евро)
Intel S3700 200 Gb — четыре года, полёт нормальный.

Intel S3500 480 Gb — два года, полёт нормальный.

Kingston SSDNow 512 Gb — примерно через 60 дней непрерывной работы исчезает с шины SATA. Этот эффект подтверждён не менее трёх раз. После выключения-включения — появляется опять. Изоляция (возможно глючной) прошивки контроллера от TRIM-команд и поддающихся сжатию данных с помощью шифрующего слоя geli не помогает. В общем — consumer only устройство, рассчитанное на регулярный power cycling. Такое даже в не каждый ноутбук можно поставить.
waqur: (Евро)
Материнская плата ASUS P10S-I отличается какой-то беспрецедентной тормознутостью в режиме CSM (16-разрядный BIOS в UEFI-системах).

Операционная система MFSBSD, которой под VMware нужно 30 секунд, чтобы загрузиться, на этой материнской плате загружается примерно полчаса. Полностью установленная FreeBSD из десяти минут, требуемых на загрузку, девять проводит в 16-разрядном режиме.

Такое ощущение, что оказался в 1996 году и загружаешь сервер с дискеты.

UPD: Оказалось, что проблема была в медленном выводе текста на консоль. В FreeBSD 11 загрузчик починили, чтобы он реже обновлял на экране эту крутящуюся палочку (twiddle), и тормоза при загрузке исчезли.
waqur: (Евро)
Вся эта история с противостоянием Apple и ФБР по поводу взлома телефона террориста из Сан-Бернардино с самого начала казалась мне какой-то пиар-туфтой.

Если ФБР ничего не мешает изъять жёсткий диск, защищённый TrueCrypt'ом, сделать с него копию или несколько копий, и далее на специальном оборудовании дрючить мастер-блок шифрованного тома полным перебором паролей,

тогда в чём проблема снять дамп постоянной флеш-памяти телефона, перенести его в эмулятор, и перебирать внутри эмулятора все эти PIN-коды, и после каждой такой "полной и окончательной блокировки телефона в эмуляторе" возвращаться к начальному состоянию эмулятора?

Любая криптографическая система, состояние которой можно скопировать, защитима только высокой энтропией ключа (т.е. тремя условиями, которые обязательно должны выполняться одновременно: большой длиной пароля, обширным алфавитом, и равномерным распределением символов), короче, это не про телефоны с PIN-кодами разблокировки.

К тому же, непонятно зачем было ФБРовцам якобы требовать от Apple разработать системное обновление, снимающее ограничение на количество попыток ввода PIN-кода, если они могли просто истребовать мастер-ключ для подписи системных обновлений вместе с полными исходными кодами iOS через national security letter или search warrant with gag order и далее нанять каких-то индусов для разработки этого самого обновления. Никто бы и не пикнул.

Как по мне, всё это больше похоже на какой-то "цирк на дротi", придуманный пиарщиками, с целью поднять имидж компании Apple в пост-Сноуденском мире. Типа, валяйте, хомячки, закупайтесь ябблофонами и делитесь всеми вашими секретиками. По-моему, самоочевидно, что не может быть и речи о криптографической защите пользовательских данных на платформе, где существует мастер-ключ для подписи автоматически устанавливаемых обновлений, или где для доступа к данным пользователи вводят низкоэнтропийные пароли.
waqur: (Евро)
Инженер из Гугла по имени Benson Leung (которому работодатель платит только за то, что он тестирует совместимость всевозможных китайских USB-кабелей с Хромбуками, и оставляет отзывы на Амазоне) умудрился найти такой кабель, с помощью которого сжёг свой лэптоп и два логических анализатора (это устройство вроде осциллографа, только лучше приспособленное для анализа цифровых сигналов).

Если кто не знает, в стандарте USB сейчас самый писк моды — это USB 3.1 type C gen 2. Чудо-кабель, который решает проблемы всех предыдущих поколений: симметричный разъём (не нужно переворачивать при подключении), очень высокая скорость передачи данных (10 gbit/s, подключай хоть монитор), плюс передача мощности по тому же кабелю до 100 Вт (при этом провода не толщиной с палец, разработчики нового стандарта подняли напряжение до 20 Вольт — хотя и не всегда, там теперь хитрый протокол согласования напряжения между хостом и устройством). Некоторые наивные души надеются, что этот новый тип USB-разъёма станет стандартным разъёмом питания/зарядки для ноутбуков, как в своё время Micro-USB для смартфонов: 100 Вт для ноутбука достаточно.

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

А в целом, милый вышел стандарт, согласитесь. Раньше из-за говённого USB-кабеля устройство лишь не работало (тогда вы просто выбрасывали кабель и брали следующий), а сейчас устройство может ещё и сгореть особо насильственным способом.
waqur: (Евро)
Купил новый монитор — NEC EA 193Mi. IPS-матрица, 19", 5:4, LED-подсветка.

Производитель уже не знает, чем заманить покупателя — придумали какой-то "эко-режим". Наклейка Energy Star Ally; прошивка показывает в меню монитора, сколько килограммов выбросов CO2 в атмосферу удалось сэкономить, все дела. Только есть небольшая проблема: когда оно включено, картинка на мониторе заваливается либо в чёрные цвета, либо в белые. Особо хорошо это видно в TFT test, который умеет показывать шкалу оттенков серого от 0% до 100% с шагом 2%. Какие настройки не поставь (яркость, контрастность, яркость подсветки LED, глубина чёрного) — будут неразличимы оттенки либо с нижней стороны шкалы, либо с верхней. Впрочем, отключение всей этой "экологии" на удивление быстро решает проблему. Всё евросоюзовское регулирование энергопотребления мониторов — такой же бред, как и недавний автомобильный скандал с занижением выбросов CO2 на тестовом стенде. Вместо того, чтобы чмырить очкариков-технарей, занялись бы лучше наведением порядка с беженцами, идиоты.

Ещё одна подобная глупость — "режим улучшения времени отклика" матрицы, который по-умолчанию включён. Лично мне *VA- и IPS-матрицы кажутся достаточно быстрыми даже в играх, но есть гурманы, которые вроде как могут различить разницу с TN-матрицами в двойном слепом тесте. Это фича для них. OK, визуально это проявляется так: когда крутишь чёрный текст на белом фоне (как в Word'е) — вроде всё нормально, а как только цвета немного меняются (например, фон становится бежевым, как на Hacker News) — при прокрутке за буквами тянется мерзкий белый шлейф. Напрягает конкретно. Слава б-гу, я нашёл как отключить это безобразие.

Выводы? Лучшее — враг хорошего, overengineering — зло. Если все дополнительные фишки, прибамбасы и свистоперделки на корню отключить — вроде нормальный монитор. NEC'у нужно уволить весь R&D отдел, а для поддержки старого кода оставить одного 60-летнего дедушку, который в общении с маркетинговым отделом использует только одно слово: "запрещено". Эволюция мониторов закончилась, а дополнительные попытки что-либо "изобретать" только портят ситуацию.
waqur: (Евро)
Фонд Raspberry Pi выпустил первый (официальный) touch-дисплей к этому девайсу, $60:
https://www.raspberrypi.org/blog/the-eagerly-awaited-raspberry-pi-display/

Идея забавная, но как по мне, лучше было сделать нормальный планшет на той же broadcom-платформе, что и "серверная" версия Raspberry Pi. Не обладающий состоянием планшет, который загружает операционную систему с SD-карты и держит на ней все пользовательские данные. На SD-карту можно поставить свою ОС, сделать снэпшот, вернуть снэпшот, завести несколько SD-карт для разных пользователей и так далее. По сути, перенос открытой архитектуры ПК на планшеты. Очевидно, к тому идёт. Это ещё не потребительское устройство такого класса, но уже действующий прототип.
waqur: (Евро)
В разных интернетах можно начитаться всевозможных глупостей о том, что максимальная длина кабеля шины I2C не должна превышать нескольких метров, а то прям ой-ой-ой, вы превысите лимит на ёмкость шины в 400 пикофарад, начнётся жуткий crosstalk и все ваши девайсики перестанут работать, и вообще эта шина годится только для обмена данными в пределах одной печатной платы, так что бегом в мазагин покупать дифференциальный драйвер / буфер шины I2C, кабель с индивидуально экранированными жилами для тёплого лампового звука, развязывающие конденсаторы с электролитом из соплей девственницы, а лучше всё вместе и подороже.
https://www.raspberrypi.org/forums/viewtopic.php?t=82049
http://electronics.stackexchange.com/questions/106265/maximum-i2c-bus-length
http://www.picaxeforum.co.uk/showthread.php?22174-I2C-over-twisted-pair

На самом деле, всё это враки. Тесты показывают, что I2C отлично работает по обычной неэкранированной 8-жильной витой паре длиной 20 метров, на полной скорости в 100 кГц, безо всяких буферов, драйверов, экстэндеров, конденсаторов и прочих глупостей.

Детали теста, если кому-то захочется повторить )
waqur: (Евро)
Фонд Raspberry Pi анонсировал выход второй версии компьютера-размером-с-кредитную-карту Raspberry Pi.

Изменения: ARM v7 вместо ARM v6, 4 ядра вместо одного, чуть выше тактовая частота, вдвое больше памяти и та же цена, $35.

Что самое интересное — анонсирована поддержка Windows 10: "The Raspberry Pi 2-compatible version of Windows 10 will be available free of charge to makers".

http://www.raspberrypi.org/raspberry-pi-2-on-sale/
http://blogs.windows.com/buildingapps/2015/02/02/windows-10-coming-to-raspberry-pi-2/

На это будет интересно посмотреть. Первая Raspberry Pi показывала производительность на уровне Pentium II (не считая GPU-ускоренной 3D-графики и H.264). Новая будет в полтора раза быстрее на одно ядро, это где-то на уровне Pentium III. Маловато для NT 6.x.
waqur: (Евро)
На Hacker News и вообще в интернетах англоязычные юзеры развели плач Ярославны по поводу того, что Google отказалась от исправления уязвимости в WebView 4.3, спихнув эту заботу на вендоров Android-платформы (Samsung и так далее). В мире более миллиарда уязвимых Android-телефонов.

https://community.rapid7.com/community/metasploit/blog/2015/01/11/google-no-longer-provides-patches-for-webview-jelly-bean-and-prior
https://news.ycombinator.com/item?id=8943126

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

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

Ребята, вы же сами отдали свою свободу, когда купили такой телефон, над программной частью которого у вас нет полного контроля, как на ПК. Вы проголосовали за этот порядок вещей своим долларом. Ну вот, дивный новый мир курируемых приложений и залоченных операционных систем построен. Заброшенных и небезопасных устройств на нём большинство, причём сделать в каждом конкретном случае ничего нельзя, кроме как подбросить ещё немного баксов в эту топку абсурда — this is by design. Так чего ж вы хотите?
waqur: (Евро)
Практика показывает, что силовые диоды Шоттки, такие как 122NQ030, очень хорошо работают в UPS-системах. Можно собрать систему, где будет много пар "батарея — зарядное устройство", работающих на общую шину, к которой подключён мощный инвертор, или несколько инверторов при необходимости.

Батареи работают не последовательно и не параллельно, а как бы независимо на заряд и как бы одновременно на разряд. В любой момент времени, разряжается та батарея, на которой максимальное напряжение.

Достоинства:
– Между батареями не текут выравнивающие токи, как в классических схемах с параллельным включением.
– Не нужны безумно-мощные зарядные устройства. Можно использовать много маленьких, по одному на каждую батарейку.
– Разница в возрасте батарей не имеет значения.
– Небольшие различия в начальной ёмкости батарей не увеличиваются со временем, как в схемах с последовательным включением и зарядкой всего массива (нет "разбегания" батарей, система находится в состоянии устойчивого равновесия)
– Небольшая разница в настройке зарядных устройств не имеет значения.
– В отличие от схем с последовательным подключением, например, 4х 12V-батарей на 48V-инвертор, система устойчива к частичным отказам.
– Система допускает постепенный апгрейд, в т.ч. нечётное количество батарей.

Недостатки:
– На p-n переходе диода Шоттки происходит падение напряжения примерно на 0.4 Вольта, что снижает КПД системы примерно на 3%.
– При нагрузке в 100А на диоде будет рассеиваться 40Вт мощности, а диоды Шоттки имеют положительную обратную связь по температуре (thermal runaway). Поэтому, такому диоду нужен радиатор, и чем больше — тем лучше. Оставшийся от процессора вполне подойдёт для большинства случаев.
waqur: (Евро)
Архитектура параллельных вычислений на видеокарте NVIDIA CUDA — это нечто.

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

Отладчика вообще нет. Отладочная печать изнутри "вычислительных ядер" возможна, но printf-буфер быстро переполняется, поэтому объём вычислений при включённой отладочной печати надо искусственно сокращать. И вообще CUDA printf — асинхронный механизм, поэтому, как правило, всё успевает гавкнуться ещё до того, как поступит соответствующая телеметрия.

Весь CUDA-код работает с физической памятью видеокарты, так что достаточно чуть-чуть промахнуться с указателями и вы повредите что-то там очень важное для firmware, хранимое в GDDR5. Текстуры? Связанные списки динамической кучи? PTX JIT зону? А пёс его знает! Симптоматически это выглядит так: ваша прога отработала и успешно вышла, вся система минут десять работает нормально, и тут Firefox чего-то внезапно призадумался... экран погас... зажёгся... погас... BSOD! (код ошибки: драйвер видеокарты всё время циклически падает, три попытки его перезапустить были неудачными) Перезагрузка. И так раз 50 за день.

cuda-memcheck.exe разумеется не видит ничего подозрительного.

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

Также регулярные синие экраны могут быть по причине kernels, которые слишком долго выполняются. Не успела видеокарта вычислить весь grid за две секунды — лови BSOD. К счастью, эти таймауты отключаются через реестр Windows. (Впрочем, более правильно будет разбить большой grid на много маленьких.)

Интересен также машинный код для видеокарты, который можно получить с помощью cuobjdump.exe:
* Все инструкции фиксированной ширины, 8 байт.
* Некоторые инструкции принимают сразу по пять операндов. Часть операндов передаётся по модулю или со знаком минус.
* Инструкций много, поэтому некоторые мнемоники состоят из частей — например RRO.EX2, MUFU.LG2, ISETP.EQ.XOR, F2I.S32.F32.CEIL. Есть и обычные — MOV32I, SHL, FMUL, BRA, EXIT.
* Для инструкций поддерживаются префиксы — биты в регистре флагов. Если бит не установлен, инструкция пропускается при выполнении. Это всё нужно для избежания лишних ветвлений, т.к. они вызывают branch divergence — SIMT-процессор, который мог бы выполнять одну инструкцию с 32-х кратным параллелизмом, временно переходит в режим обычного скалярного процессора.
* Для некоторых сложных встроенных функций, например sincospif и atan2f, нет машинных инструкций — они вычисляются через элементарную арифметику, численные методы см. в $CUDA_PATH/include/math_functions.h
В общем, классическая VLIW-микроархитектура, "почти микрокод", которая гораздо ближе к Itanium, чем к amd64.
waqur: (Евро)
Что интересно — в списке шпионских гаджетов от NSA
http://habrahabr.ru/post/209746/
(если взять подмножество одноплатных компьютеров)
постоянно встречаются FPGA.

Например, JUNIORMINT, TRINITY и даже совсем крошечная MAESTRO-II в обязательном порядке содержат ПЛИС, объём оперативной памяти которой вчетверо превышает объём конвенциональной оперативной памяти на борту.

Что это? Какая-то новая технология распознавания голоса?
waqur: (Евро)
http://lkcl.net/reports/ssd_analysis.html

Современный SSD представляет собой комбинацию флеш-памяти, большого ОЗУ, ионистора и контроллера. Ресурс флеш-памяти — количество циклов стирания до отказа ячейки — может колебаться типично в пределах 1000-10000 (а цена при этом — трёхкратно). Соответственно, платим в три раза меньше — в 10 раз чаще покупаем новый диск.

Однако не флеш-памятью единой жив SSD. Хилый ионистор, который ещё и может потерять ёмкость после нескольких лет службы, делает невозможным сброс кэша из встроенного ОЗУ во встроенную флеш-память в случае внезапной потери питания. (А синхронная запись всех входящих данных во флеш-память убьёт скорость стократно, так уже давно никто не делает.) В общем, наблюдаемые извне эффекты таковы: если у диска при внезапной потере электропитания происходит массовая потеря недавно записанных данных — тогда у него негодный ионистор.

Идея проста: устроить стресс-тест на несколько дней, где раз в 8-25 секунд грубо прерывается питание устройства (через реле под контроллем программы), а основная нагрузка на SSD — это параллельная запись сырых блоков (чтобы журналируемая файловая система не путалась под ногами) с последующим чтением и подсчётом расхождений.

Практика показывает, что бывают SSD вообще без ионисторов. Разумеется, у них в таком тесте вся поверхность очень быстро покрывается бэдблоками. Некоторые особенно глупые диски могут даже покоцать своё firmware, записав на издохе заряда пару пользовательских блоков поверх сервисной области. Разумеется, после этого они уже не включатся. (Очевидный результат экономии на одной микросхеме флеш-памяти.) А вот Intel на ионисторах не экономит — даже самые дешёвые устройства, где используется недолговечная флеш-память, за несколько дней пыток не потеряли ни одного байта.

Разумеется, всё это неважно, если такой диск ставится в ляптоп со своей большой батарейкой.
waqur: (Евро)
Linkedin делится опытом: для графовой базы данных, находящейся целиком в ОЗУ сервера, и работающей в NUMA-окружении, выгодно отключать zone reclaim. Полезно для снижения задержки на обработку запроса:



http://engineering.linkedin.com/performance/optimizing-linux-memory-management-low-latency-high-throughput-databases

Немного пояснений для тех, кто в танке:
1) Вся БД в ОЗУ, чтений много больше чем записей, скорость работы диска не важна в данном случае — всё упирается в скорость работы памяти
2) NUMA — это когда вся память в системе сгруппирована по процессорам (ядрам), и каждому процессору быстрее обращаться к своей памяти, чем к чужой.
3) Поэтому ядерный аллокатор страничной памяти стремится выделить память в той зоне, где находится текущий процессор, а планировщик задач ядра стремится назначать потоку по возможности один и тот же процессор.
4) Из практики известно, что жёсткое закрепление потоков за процессорами (thread affinity) в NUMA среде может дать выигрыш по скорости порядка 25-30%. Ну а в случае каких-то патологических версий ядра — в 2-3 раза.
5) Инженегры ведра линупса опять чё-то перемудрили — они наваяли неведомую хрень под названием NUMA zone reclaim, которая чё-то творит в фоне со страничной зоной каждого процессора: крутит спинлоки, гоняет туда-сюда IPIшки и так далее. Какая польза от всей этой кипучей деятельности — совершенно непонятно, но известно наверняка, что её отключение приводит к росту производительности работы с ОЗУ. Например, на графовых БД — на порядок.

IBM кстати отключает эту ерунду на своих гипервизорах:
http://pic.dhe.ibm.com/infocenter/lnxinfo/v3r0m0/index.jsp?topic=%2Fliaat%2Fliaattunsetzonereclaim.htm

PostgreSQL'щики тоже давно заметили какой-то подвох с этой бодягой:
http://frosty-postgres.blogspot.com/2012/08/postgresql-numa-and-zone-reclaim-mode.html

Что-то неладное творится с этим NUMA zone reclaim в связке с ZFS-кэшем в ОЗУ (ARC) — deadlocks: https://github.com/zfsonlinux/zfs/issues/1000

Также народ жалуется, что даже обычные сервера (file/email/web server) от этой фигни тормозят безбожно:
http://us.generation-nt.com/answer/default-zone-reclaim-mode-1-numa-kernel-bad-file-email-web-servers-help-200325161.html


FreeBSD имеет поддержку NUMA в том смысле, что ядерный аллокатор страничной памяти стремится выделить её в той же зоне, где находится в настоящий момент запрашивающий поток. Но если локальная зона опустела — тогда страница просто выделяется из чужой зоны — FreeBSD не предпринимает никаких попыток гонять данные между страницами в фоне, с тем, чтобы они были поближе к своим процессорам: http://svnweb.freebsd.org/base?view=revision&revision=210550

Однако некоторые архитекторы FreeBSD (например Константин Белоусов), считают, что даже такой минимализм — это лишнее: http://samag.ru/archive/article/1225 (вероятно потому, что всё это трюкачество без одновременного трюкачества с маской аффинности — пустая трата времени). В целом, забавно наблюдать, как на форумах вопли "когда вы уже запилите полную поддержку NUMA?" плавно сменились благодарностями, что её нет и не будет.

spiPhone

2013-09-28 01:55 pm
waqur: (Евро)
В последних моделях смартфонов достаточно точные акселлерометры, чтобы на основе данных от них можно было декодировать клавиши, нажатые пользователем на рядом расположенной клавиатуре.

Об этом идёт речь в исследовании Philip Marquardt, Arunabh Verma, Henry Carter и
Patrick Traynor, сделанном в Georgia Institute of Technology:
http://www.cc.gatech.edu/~traynor/papers/traynor-ccs11.pdf



Сначала предложенную систему нужно обучить, чтобы она запомнила индивидуальные особенности сейсмических микроколебаний, связанных с нажатием каждой клавиши, а затем она уже начинает угадывать ваши нажатия. Точность угадывания отдельных букв около 25%, слов со словарём — 46%.

Похожий метод, основанный на анализе акустических (а не сейсмических) данных даёт точность 78% (для букв).

Технология распознавания — прогнать raw data через feature extraction, а затем вектор фич подать на вход обучаемой нейронной сети. "We calculate time-domain features including root mean square (rms), skewness, variance, and kurtosis and combine those with spectral and cepstral features" — скромничают авторы.

С повышением качества акселлерометров и микрофонов, увеличением частоты дискретизации обоих сенсоров, усовершенствованием технологии экстракции фич (где KL-transform, кстати?), думаю, точность только поднимется.

Не обольщайтесь по поводу фазы обучения — достаточно научиться надёжно отличать клавиши друг от друга, а шифр простой замены — это лёгкая добыча, его вскрывают статистическим криптоанализом уже лет двести.
waqur: (Евро)
Бэн Хокс пытается сделать реверс-инженеринг формата обновлений микрокода процессоров Intel.
http://inertiawar.com/microcode/

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

Вычисление хэша SHA1/SHA2 по основному массиву данных доказано тайминг-атакой, однако начальный вектор (IV) так и остался засекреченным. А хранение открытого ключа рядом с подписанным блобом можно объяснить тем, что процессор не содержит в себе весь открытый ключ, а только его fingerprint (хэш).

Хорошо, если только один. Интересно, у них там есть что-то типа NSAKey?

September 2017

S M T W T F S
     12
34567 89
10111213141516
17181920212223
24252627282930

Синдикация

RSS Atom

Автор стиля

Развернуть

No cut tags
Page generated 2017-09-21 03:26 am
Powered by Dreamwidth Studios