BufWriter<Master<'_>> – Telegram
BufWriter<Master<'_>>
105 subscribers
451 photos
28 videos
34 files
1.7K links
https://www.patreon.com/alxe_master

Видео/статьи. Конспект и мои вольные комментарии по инженерии. тут только то, что считаю полезным для себя или других =)

#os, #cloud, #rust, #golang, #python, #javaScript, #cpp, etc
Download Telegram
== CPU limits and aggressive throttling in Kubernetes
https://medium.com/omio-engineering/cpu-limits-and-aggressive-throttling-in-kubernetes-c5b20bd8a718
- A primer on containers & kubernetes
- How CPU request and limit is implemented
- How CPU limit works in multi-core environments
- How do you monitor CPU throttling
- How do you recover
== Что такое быстрая USB зарядка и как она работает в современных смартфонах?
https://youtu.be/zoTYmZZWIeo

Очень толковый видос, очень много для себя узнал.

- делители напряжения для детекта режимов заряда.
- и что главное ток определяет сам смартфон а не зарядка.
- зарядка является ограничителем максимального тока
= USB PD
- USB Direct Charge
- а эппл в ЮСБ-Ц использует еще 2 сигнальных провода для того что бы сам ноут мог бы управлять током и напряжением
- самсунг наоборот использует другие 2 пина. веселуха

== Как работает DC-DC преобразователь напряжения с накопительным дросселем - Buck Converter?
https://youtu.be/Ly-rezvQI5U
== Частота, тайминги, ранги, каналы, чипы. Самый полный гайд.
https://youtu.be/1Chc21etvqI
14-15-14-34 = это колличество тактов
tCL - tRCD - tRP - tRAS
tCL - задержка между выбором столбца и началом передачи данных
tCRD - задержка между активацией строки и выбором столбца
tRP - задержка на зарядку строки командой precharge и активацией новой строки
tRAS задержка между активацией строки и срабатывание команды на подзарядку PRECHARGE

SAMSUNG B-DIE самый раскачиваемый чип памяти

двухранговая память это по факту два виртуальных модулей на одной плате - 10%-20% быстрей. дороже. не гонится

T-TOPOLOGY (параллельная адресация) - лучше работают с 4мя модулями, хуже с двумя
DAISY-CHAIN (последовательная адресация) - лучше с двумя и хуже с 4мя модулями

действительно самый полный гайд что находил)
== Inductive bias и нейронные сети
https://telegra.ph/Inductive-bias-i-nejronnye-seti-1-11-09

Inductive bias — это априорные знания о природе данных, которые человек некоторым образом вкладывает в модель машинного обучения.

сделать модель без inductive bias в принципе невозможно
== От RS232 до USB
https://youtu.be/46mumUSiIXA
- RS232 четкие значения напряжения для нуля и единицы. до 15метров
- RS422 дифференциальная пара, имеет значение только разница потенциалов. до 5км.
- USB-- до 127 устройств . полудуплекс
- USB 2.0 увеличена скорсть
- USB 3.0 Полный дуплекс!
- USB-C более продуманная версия и более технологичная чем 3.0

== RS232. Теория
https://youtu.be/BTDYAvUEFV8
Forwarded from Tech Talk
В США рассекретили документ от ноября 2020 года о том, какой доступ к каким мессенджерам имеет ФБР. iMessage и Whatsapp выдают больше всего, причем iMessage выдает расшифрованные бэкапы сообщений из iCloud (если они там есть), зато Whatsapp делится информацией о новых действиях в нужных аккаунтах почти в реальном времени.

▪️Signal: содержания сообщений не предоставляет, предоставляет дату регистрации аккаунта и когда пользователь в последний раз соединялся.
▪️Telegram: содержания сообщений не предоставляет, информацию по решению суда не выдает. В документе есть ссылка на политику Telegram, что он может выдать IP-адрес и номер телефона по расследованиям подтвержденных случаев терроризма.
▪️Viber: содержания сообщений не предоставляет, предоставляет номер телефона и IP-адрес на момент регистрации, по запросу предоставляет метаданные (какой номер телефона на какой когда писал и звонил).
▪️iMessage: содержание сообщений предоставляет "ограничено" (что это значит, в документе не объясняют). Предоставляет основную информацию о пользователе. По ордеру на обыск выдает бэкапы iCloud. Если пользователь бэкапит iMessage в iCloud, то выдает и этот бэкап сообщений iMessage (они в облаке зашифрованы, но у Apple есть ключи). При этом Apple, в отличие от Whatsapp, не предоставляет pen register - это когда ФБР почти в реальном времени получает новую информацию о действиях пользователя в аккаунте.
▪️Whatsapp: содержание сообщений можно получить, если у пользователя iPhone и архив Whatsapp бэкапится в iCloud (то есть выдает фактически Apple). Предоставляет основную информацию о пользователе. По решению суда представляет список заблокированных аккаунте пользователей. По ордеру на обыск представляет адресную книгу. При этом предоставляет pen register (фактически, такой вариант прослушки на уровне метаданных) - сообщает о новых действиях в нужном аккаунте с задержкой в 15 минут, то есть кто кому когда писал и звонил.

Еще в таблице есть информация про Line, Threema, Wechat и Wickr, но это уже сами почитайте) Интересно, что у всех мессенджеров вроде почти одинаковое шифрование (кроме Telegram, дада), но метаданные все выдают по-разному.

https://propertyofthepeople.org/document-detail/?doc-id=21114562
BufWriter<Master<'_>>
== Whonix: руководство для начинающих https://habr.com/ru/company/alexhost/blog/532980/
== КАК РАБОТАЕТ ПАМЯТЬ КОМПЬЮТЕРА
https://youtu.be/Wh22_O8jXVQ

- байтовая адресация
- словестная адресация (специализированные устройства, не для общих масс)

размер регистра определяет максимальный адрес в ОЗУ

отрицательное число: -5
1) 5
= 0101
2) добавляем бит знака
= 1101
3) инвертируем все кроме знакового бита
= 1010
4) добавляем единицу
-5 = 1011
5) оставшиеся биты будут заполнены битами знака
= 11111011 (для слова в 1 байт)

== КАК РАБОТАЮТ СИСТЕМЫ СЧИСЛЕНИЯ
https://youtu.be/kG_ipMygRUc


хороший канал, кстати говоря https://www.youtube.com/channel/UCIn6hza5Ai119FJnLMJzECQ
== КАК РАБОТАЕТ КЭШ ПРОЦЕССОРА
https://youtu.be/7n_8cOBpQrg

полный обьем кэша вычисляется как сумма
1) ПОЛЕЗНЫЙ размер кэша
2) СЛУЖЕБНЫЕ данные
полезный размер = 128 байт
32 х 4 + 4 х 4 = 144 байта

кэш прямого отображения = каждая строка ОЗУ соответствует определенной строке в КЭШ памяти. поделив сегменты ОЗУ на количество строк в кэше. очень быстро становится понятно соотвествие кэша и ОЗУ
+ быстрый поиск
= тег (старшая часть адреса) + индекс строки + смещение

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

полностью ассоциативный кэш
- низкая производительный

кэшконтроллер должен сам предсказывать и загружать автоматически из ОЗУ в кэш

LRU - last recently used (заменяются те данные которые дольше всех лежат без дела)
MFU - most frequently used (заменяются те что только что использовались)
LFU - least frequently used (заменяются данные которые используются реже всех)

несколько маленьких кэшей лучше одного большого

L1 и L2 пренадлежит каждому ядру ЦПУ поотдельности.

L3 делится между всеми ядрами

архитектуры L2:
- inclusive (дублирование с Л1) озу -> L2 -> L1 (копирует)
- exclusive (не дублируется) озу -> L2 -> L1 -> L2 (возвращает то что переполнилось)

если L3 inclusive - то можно не искать. если Exclusive - то искать надо

inclusive хранит МЕНЬШЕ данных. но быстрей

exclusive хранит БОЛЬШЕ данных. но медленней

!!! большие типы данных читаются быстрей всех
НО больше кэшмиссов (так как забьются кэши бестрей)

И лучше иметь массив который полностью помещается в кэш.

выбор типа всегда трейдофф и баланс

РАСШИРЕНИЕ ЧИСЛЕННОГО ТИПА
- явное или неявное (компилятором) приведение типов до машинного слова

Когерентность кэша
- совпадает ли копия в кэше с копией в ОЗУ

механизмы когерентности описываются правилами и протоколами в каждом из ЦПУ
S - shared
I - invalid
M - modified
= MSI протокол
E - exclusive
= MESI протокол
O - owned
= MOESI протокол
F - Forward (вместо Owned)
= MESIF
== КАК РАБОТАЕТ ПРОЦЕССОР
https://youtu.be/k9wK2FThEsk

разрядность = размер машинного слова = количество памяти которым опирируется процессор за раз

регистры - маленькие быстрые ячейки памяти прямо в процессоре

максимальный размер регистра = разрядность

регистры
- специального назначение
- общего назначения (переменные, параметры, временное хранилище)

AH=8 AL=8
AX=16
EAX=32
RAX=64

сегментные регистры SS CS DS ...

регистры для работы со стеком BP, CP, ...

флаговые регистры FLAGS...

указатель команд (instruction pointer) IP

регистры могут ПЕРЕПОЛНЯТЬСЯ !!!

БИОС
- найти первое ПЗУ
- найти нулевой сектор
- загрузить команду в ЦПУ
- передать управление команде

работа с трансляцией адресов
1) режим реальных адресов = 16бит
2) защищенный = 32бит
3) 64 разрядный

ИЛИ
1) режим реальных адресов + защищенный = legacy mode = 32бит
2) 64 разрядный + режим совместимости = long mode = 64бит

уровни привелегий
0 - привелегированный - ОС
1
2
3 - юзерспейс - прикладные программы

вся ОЗУ поделена на сегменты!

логический адрес = адрес начала сегмента + смещение в сегменте

в режиме реальных адресов = 2^20 = 1мб
физический адрес = адрес начала << 4 + смещение

в защищенном режиме
происходит виртуализация адреса !

логический адрес = селектор дескриптора + смещение в сегменте

селектор дескриптора (16бит) = уровень привелегий + таблица + индекс строки в таблице

таблица это структура = индекс + начальний адрес сегмента + уровень привелегий + размер сегмента

виртуальная память = страничная организация памяти.
- Каталог таблиц страниц,
- таблица страниц
- страница

64ьитный режим
- ОТКЛЮЧЕНА СИГМЕНТАЦИЯ
- есть ограничение на адресацию физической 2^52 и виртуальной памяти 2^48. изза ограничений ОС и процессоров

программа получает логический адрес
и в зависимости от режима памяти транслируется сразу в физический адрес или в виртуальный а затем в физический

получив сигнал процессор генерирует прерывание и обрабатывается обработчиком прерывания

типы прерывания
- исключение
- программный
- аппаратный

не все ОС разрешают вызывать программам прерывания напрямую
== КАК РАБОТАЕТ СТЕК
https://youtu.be/MXoMuymbfo8
SP (stack pointer) указатель вершины
BP (base pointer) адрес начала фрейма

push - поместить на вершину
pop - извлечь из вершины

push 3
pop AX - кладет на AX значение из вершины. смещает вершину ниже

jmp - просто прыгает внужную строку кода
call - перед прыжком заносит в регистр адресс возврата
ret - возвращается обратно по адресу который положил call

фрейм - место в стеке

вызов функции
- пролог (сохранение данных ДО старта функции, создание нового стэка)
- call proc
- push bp
- mov bp, sp
- код
- push 4
- push 5.5
- ....
- эпилог (возврат обратно в родительский стэк)
- mov sp, bp
- pop bp
- ret

Передача параметров функции (stdcall)
- передаются в стэк параметры в обратном порядке
- push 3 # arg[2]
- push 2 # arg[1]
- push 1 # arg[0]
- call fn
- push bp
- mov bp, sp
- mov ax, [bp + 4]
- mov bx, [bp + 6]
- mov cx, [bp + 8]
- передать можно через
- стэк
- регистры
- глобальные переменные (нельзя вызывать себя рекурсивно)

область локальных переменных - стэковый кадр (фрейм)