Основы VCS на примере Git, patch/diff

  • https://git-scm.com/ – тут крутые entry видео, документация и прочее
  • с помощью ChatGPT Deep Research можно изучить любой GitHub проект

 

patch/diff
  • Утилита patch позволяет создать код на основе diff одной версии кода от другой
  • До сих пор на kernel.org есть возможность обновить одну версию ядра на другую используя diff между последовательными версиями через утилиту patch, это позволяет не выкачивать весь код, а скачать diff и применить его через patch
  • В целом patch/diff старый допотопный способ vcs (один разраб отправлял diff другому и тот через patch мог получить версию кода разраба), сейчас при разработке ядра linux не используется в пользу git, но при этом патчи до сих пор используются, например
    • для поддержки драйвера RAID в каком то ядре поставщик может предоставлять софт в виде патча для определенной версии ядра
    • для задач безопасности, например, grsecurity, выпускающий ранее бесплатно (теперь платно) патчи безопасности для ядра и доп.


Читать дальше

Linux: работа с сетью (маршрутизация, arp, performance, etc)

 

Общее
  • Общая концепция – “net-tools deprecated, use iproute2” из-за ряда проблем с net-tools. Из крутого iproute2 позволяет с помощью netns делать в Linux полноценные vrf.


Читать дальше

Security: основная статья

Карта РФ ИБ База
Коварно ввели admin/admin, обстоятельства непреодолимой силы не позволяли обновить php, хак утилита cat и привилигерованный контейнер 🤣😁
https://disk.yandex.ru/i/Pn4ToLvOz7pMVg

Интерактивные карты кибератак в реальном времени

Пару примеров о том, что детально описано ниже, до огромной статьи.

Читать дальше

Linux: обновление приложений, ОС и драйверов в UBUNTU/Debian, установка системы

  • Аналог статьи про CentOS
  • Debian 10 в web VM: https://webvm.io/
  • (ubuntu/debian, OS loading) В ubuntu есть lifepatching, который позволяет обновить ядро и systemd без перезагрузки как системы, так и сервисов!
  • (Centos, Ubuntu) PackageKit — открытый и свободный набор приложений для обеспечения высокоуровнего интерфейса для различных пакетных менеджеров.


Читать дальше

Популярные WEB сервера и заметки о них (apache/httpd, nginx)

Сравнение можно посмотреть тут

  • nginx; tengine (alibaba nginx)
  • apache
  • iis (deprecated)
  • apache tomcat

Apache обычно используется для отдачи статики, nginx для динамики. Данный блог на apache, проблем из-за этого не было.

 

basic auth

Самая простая/базовая (очевидно) аутентификация клиента сервером. На запрос аутентификации креды отсылаются закодированными (не зашифрованными/захешированными) base64.

Читать дальше

Curl/wget разное

https://httpie.org/ – а еще есть такая “модная” альтернатива curl/wget

 

CURL

  • При генерации такого предупреждения CURL может сбрасывать соединение и по факту не докачивать файл, нужно всегда в случае файлов скачивать их с указанием –output и пути до файла (можно /dev/null)
Warning: Binary output can mess up your terminal.


Читать дальше

Linux: DPDK, HYPERSCAN, SNABB; NETMAP DNA, PFRING, XDP; hugepages

  • Хорошие таблицы, взяты отсюда https://habr.com/ru/companies/garda/articles/985596/

Производитель Модель Скорость Ключевые особенности Применение
NVIDIA BlueField-3

 

DPU

400 Gbps 16x ARM Cortex-A78,

 

аппаратный eBPF

Cloud security, Zero-Trust
Intel IPU E2000 200 Gbps Интеграция с Open vSwitch, поддержка QAT Виртуализация,

 

SDN

AMD/Xilinx Alveo SN1000 100 Gbps FPGA + ARM-ядра,

 

анализ TLS/SSL

Финансовый мониторинг
Marvell OCTEON 10

 

DPU

100 Gbps 8x ARM Neoverse N2,

 

аппаратный DPI

Телеком (5G UPF)

Программные методы Аппаратные методы
  AF_PACKET PF_RING /

 

PF_RING ZC

DPDK (PMD) DPDK (AF_XDP) FPGA SmartNIC
Скорость До 10 Gbps 10 Gbps

 

40-100 Gbps

До 200+ Gbps До 100 Gbps Многократные 100G порты (400G, 800G) До 200 Gbps

 

на порт

Задержка

 

(Latency)

Высокая Средняя

 

Низкая

Очень низкая Низкая Экстремально низкая детерминированная Очень низкая детерминированная
Сложность реализации Низкая (стандартный

 

API)

Средняя (свои драйверы и библиотеки) Высокая (выделенные ядра, управление памятью) Высокая

 

(работа с еВРЕ)

Очень

 

высокая (HDL/Verilog/V

HDL, RTL-дизайна)

Высокая (ASIC,

 

C/OpenCL)

Стоимость Бесплатно (входит в состав ОС) Бесплатно /

 

Платная

Бесплатно, но мощные CPU

 

совместимые NIC

Бесплатно Очень высокая Высокая
Ключевые особенности Простота использ-ниЯ, стандартность Улучшенная производите-ть.


Читать дальше

Linux: bash спец. символы, man, переменные (> >> $ & # ~/$HOME $USER \ | /n \t ^M $? * ; ()), redirect stdout/stderr, ALIAS, bashrc, profile; программирование в bash (полезные скрипты, получение опций в скриптах, функции, условия, циклы, case, массивы)

~ echo $SHELL
/bin/bash

bash-3.2$ echo $SHELL # MACOS
/bin/zsh
  • (ping, nmap, xargs, bash) Ping целой подсети /24 в 253 потока.



Читать дальше

Linux, работа с дисками – разделы, файлы, файловые системы в ОС, LVM (ls, lsblk, fdisk, find, rm/mdir/shred/tmpwatch, dd, synctoy, df, du, tree, iotop, parted, mkfs, mount, fstab, fsck, find, clonezilla, parted/gparted, OSFmount, ln, life cd&usb, flock, iotop/iostat/lsof, split, paste)

разное/ОПРЕДЕЛЕНИЯ

  • Основные мониторинг объекты хранения:

    1. утилизация памяти (дисков/ram/swap)
      1. 100% утилизация в df под snap/cd/dvd это нормально т.к. Snap всегда полностью утилизированы – они доступны только на read
    2. Iops (inout/output operations per second – read/write)
    3. Методы добавления места
    4.     (0) Сначала убедиться что то, что занимает место хранения это легитимные файлы (du)
    5.     (1) LVM, если используется, позволяет в сценариях необходимости добавления памяти хорош – просто добавляем к старому диску еще один новый и пользуемся
    6.     (2) Перенести часть тяжеловесных директорий со старого диска на новый и смонтировать их туда
    7.     (3) Склонировать полностью старый диск на новый более объемный
  • Все в Linux есть файл.


Читать дальше

Процессор (CPU): Architecture, Cache, QPI, Hyper-Threading, AES-NI, clock speed/cycles (MHz, GHz), Intel Compilers, NUMA, counters, temperature

Информация собрана из разных мест, часть как конспект вебинара HonorCup E=DC2 для сдачи HCNA Storage.

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


Читать дальше