All streams
Search
Write a publication
Pull to refresh
4
0.3

Пользователь IDA Pro

Send message

Да, в плане именно программирования автоматизация довольно скучна, но на то свои причины — уже упомянутая выше ответственность и часто невозможность отладки сырой программы непосредственно на железе (повредить можно). Отсюда и простота языков — поведение программы должно хорошо представляться и проигрываться в голове.
Сразу после выпуска, в начале нулевых, довелось поработать пару лет в автоматизации зданий, поначалу «программирование как в PowerPoint» после С и ассемблеров казалось игрушечным, задачи решались с наскока, а потом в результате моей мелкой ошибки (задал не ту полярность входу) морозом порвало теплообменник (и это я ещё в «несерьёзном» ответвлении работал. У «взрослых» знакомых на «технологии» бывали и помасштабней вещи — гидроудар в магистральном трубопроводе, случайный пуск пенообразователя, в считанные секунды выдающего целое озеро итд). Весьма консервативная область в общем — не усложняй, не абстрагируй, проверяй, перепроверяй.

У NAND на чтение и на запись адресация абсолютно одинакова. Никаких предварительных действий (вроде открытия банка у DRAM) нет.

Более развёрнуто: 6400 Мбит/с у LPDDR5 и 2400 Мбит/с у DDR4 — НЕ скорости чтения/записи массива целиком (в таком случае DDR4 была бы медленнее SATA дисков с их 6 Гбит/с, но мы на практике знаем что это совсем не так), а скорость в одиночной линии данных, коих будет параллельно 16/32/64/128. Вон и в статье есть расчёт скорости в МБайт/с для dual channel DDR4 и quad channel LPDDR5, и в обоих случаях скорости порядка десятков ГБайт/с.

Извиняюсь, но 5G быстрее LPDDR4 примерно так же, как миллион долларов больше скорости света, т.к та «всего 300 тысяч».

Судя по имени, нику, году и самому стилю, «Dejan с форума» — тот самый Dejan Kaljevic (разблокировка Нокий, извлечение ключей из SIM, да много всего, легендарная личность в определённых кругах, мир его праху).

Более того, на x86 без поддержки ABM (добавляющей инструкцию LZCNT) оно «под капотом» сначала вычисляет как раз то, что нам нужно (инструкцией BSR, выдающей номер самого старшего единичного бита), а затем вычитает результат из полной разрядности (тут тонкость, вместо SUB используется XOR, важно для оптимизации дальше) чтобы вернуть количество ведущих нулей. Вот такое:
int log2 = 31 ^ __builtin_clz(someval);
с оптимизацией -O2 даёт «голую» BSR — вычисление искомого результата в одну инструкцию.

Примечание: на многих других популярных архитектурах (ARM, PowerPC) всё наоборот — есть CLZ в одну инструкцию, но нет аналога BSR, там выйдет логарифм в две инструкции (что тоже неплохо).

Есть «советский след»! Модель ЦАП («d/a-wandler» в блок-схеме): К572ПА1А

Повторю вопрос: какой «местный закон» нарушили пользователи и сайты, попавшие под побочное действие «ковровой» блокировки и с кем им нужно «сотрудничать» чтобы всё работало?

Качал, никаких проблем. Если вы имеете в виду истории о штрафах за скачивание пиратских фильмов, то это в Германии (да и там, насколько понял, оштрафовать получается только на основании того, что от вашего torrent-клиента идёт раздача нелегального контента. Просмотр с какой-нибудь HDрезки под это не подвести). И опять же, штраф за конкретное заведомо маргинальное действие не выглядит эквивалентным созданию помех всем без разбора.

С кем нужно соглашаться сотрудничать сайту, попутно попавшему под «ковровую» блокировку? Либо простому пользователю, у которого «перестало открываться»?


Для сравнения простой показатель в стиле duck typing: за 10+ лет жизни в ЕС я так и не узнал ни названий, ни самих фактов существования местных аналогов РКН, не было поводов.

Каким боком GDPR подобен российским блокировкам??
Единственное заметное (как пользователю) изменение после введения GDPR — на многих сайтах при первом посещении стали выскакивать настройки cookies. В РФ же в приезд в прошлом году регулярно что-нибудь вполне безобидное молча не грузилось с десктопа, но работало через мобильного провайдера, а что-то — только через VPN.

Цены на жильё — idealista.com например.
Личный опыт: прошлая квартира с одной спальней в доме 19 века в 7 минутах ходьбы от Plaza Mayor (одна из двух центральных площадей) — 900€. Нынешняя с двумя спальнями в доме 20 века чуть дальше, в 15 минутах от той же площади — 1100€.
Оптика 600Мбит/с плюс два мобильных с 25ГБ на каждый — 60€ за пакет.

Мда, ожидал каких-то технических подробностей реализации защит, а вместо этого — «внутри специальный чип».
Ещё бросилось в глаза: DataTraveler 2000 внешне — полная копия старого Apricorn Aegis (который ещё USB 2.0), это аутсорс? В таком случае будет понятно отсутствие деталей реализации.

Минусом в центре когда-то и Sony грешила (БП видеокамер например), это скорее такой vendor lock чтобы БП покупали у них.

Это понятно, можно взять разницы между уставками и текущими значениями для всех квартир, как-то оценить нагрузку на ТП («как-то» потому что факторов больше — да хоть открытые окна) и выдать ему уставки, и работать оно будет (если оценка не занижена. Если завышена — даже не заметите, оконечные контроллеры компенсируют). Мысль была о том, что с точки зрения ТП все эти поквартирные процессы постольку поскольку, у него один выход, один вход и падение температуры между ними, суммирующее все поквартирные процессы (включая все виды теплопотерь). Простое управление периодом включения котла с обратной связью по температуре вернувшейся из объекта воды сработает как минимум не хуже, имея меньше внешних зависимостей.
Что дают теплопункту температуры всех квартир (с которыми можно и связь потерять) сверх доступной прямо в его стенах температуры обратной воды (готовый усреднённый показатель нагрузки от всех квартир)?

Да там и раньше больше маркетинговой славы было. А на деле например «солить» хэш пароля пользователя додумались только в десятой серии.

Bare metal, BootROM. Ждать загрузки ОС после каждого перезагружающего шага было бы уже слишком.
Под описанную схему попадают например почти все современные смартфоны (не считая «чайнафонов», в которых просто не тратят время на включение secure boot), никаких общих решений нет (иначе уже бы все их взломали и трубили об этом). Из общего: достать новый «пустой» процессор, слить из него тот mask ROM, изучать на предмет уязвимостей.

Пожалуй самый ненормальный способ вывода данных из устройства в моей практике: несколько байт кода запускались в полностью неизвестном окружении, можно было либо вернуться в вызывающий код (который продолжит отвечать на команды), либо устроить fault, приводящий к перезагрузке устройства (на счастье очень быстрой) и видимому снаружи переподключению USB — ну чем не способ вывода одного бита? Автоматизируем (в цикле патчим шеллкод на «отправку» очередного бита, загружаем, проверяем переподключение/продолжение, всё по новой), запускаем, узнаём (из LR, это был ARM) из каких адресов нас вызывают. Дальше задаём «чтение» куска вызывающего кода и ложимся спать. Наутро смотрим в результат, узнаём адрес функции отправки по USB и через неё уже «лихо» читаем всё остальное.

Information

Rating
2,361-st
Registered
Activity