В Linux стандартными средствами можно использовать часть оперативной памяти как диск. Для этого требуется указать тип монтирования tmpfs в команде mount
mount -t tmpfs -o size=5G tmpfs /mnt/ram
Теперь путь /mnt/ram можно использовать как обычный каталог. Для чего это может быть нужно?
▫️ Скорость работы с таким каталогом выше чем многие SSD и тем более HDD.
▫️ Если у вас очень быстрый SSD на NVMe M.2 то такой способ особо не прибавит вам скорости, но поможет сохранить ресурс SSD когда требуется обрабатывать очень много мелких файлов и оперативка позволяет выделить нужный объем.
▫️ Оперативка это энергозависимая память, поэтому выключении питания все файлы безвозвратно теряются. Такой "non persistent" каталог гарантирует удаление временных файлов.
Я написал небольшой скрипт для условного теста и сравнения скорости копирования файлов между SSD и RAM.
Вот мои результаты:
Single File Size: 30.0Gb
ssd > ssd: 0:00:12.850 / 2.3Gb/s
sdd > ram: 0:00:06.453 / 4.6Gb/s
ram > ram: 0:00:06.995 / 4.3Gb/s
ram > sdd: 0:00:06.217 / 4.8Gb/s
Dir size: 32.7Gb, File count: 11127
ssd > ssd: 0:00:15.063 / 2.2Gb/s
sdd > ram: 0:00:08.486 / 3.9Gb/s
ram > ram: 0:00:08.032 / 4.1Gb/s
ram > sdd: 0:00:07.026 / 4.7Gb/s
Скрипт для теста ↗️
На моём железе прирост скорости ~2x. Плюс экономия ресурса SSD.
В Windows такой фишки по умолчанию нет, но обязательно найдутся аналогичные решения
#linux#triks
Как патчить ядро Linux: подробное руководство
#Linux
Всем привет, это Тимур. Сейчас в YADRO я разрабатываю сетевую операционную систему для коммутаторов KORNFELD. В ходе этого проекта летом я получил сложную задачу: реализовать установку опции PROTO_DOWN для Ethernet-интерфейсов в ядре Linux. «Из коробки» ядро поддерживает эту опцию только для vxlan и macvlan-интерфейсов, а для Ethernet поддержка определяется драйвером сетевого устройства.
В статье я подробно расскажу о той части задачи, что касается непосредственно ядра Linux. На реализацию требования я потратил много сил, времени и хочу, чтобы мой опыт остался в сообществе. Постараюсь максимально подробно объяснить каждый шаг, чтобы вы смогли построить собственный процесс разработки на этой основе, даже если никогда не занимались разработкой для ядра. Статья будет полезна не только программистам, но и любителям Linux, так как в большей степени она посвящена тонкостям работы с этой ОС, а не программированию.
Ссылка на статью
• Операционная система Linux, а точнее, ее ядро, является основой для огромного числа дистрибутивов. Выбор подходящего дистрибутива – задача, требующая понимания их ключевых различий, философии и целевой аудитории.
• На хабре была опубликована хорошая статья, которая преследует цель предоставить структурированный обзор наиболее значимых дистрибутивов и их семейств, осветить их сильные и слабые стороны, а также помочь в формировании критериев для осознанного выбора. Материал содержит тонну полезных ссылок для осознанного подхода к выбору и дальнейшему изучению мира Linux.
➡️https://habr.com/ru/articles/908986/
#Linux
👩💻 Создаем свой загрузочный диск Linux.
• Если у вас есть потребность в создании собственного загрузочного образа Linux, чтобы всегда иметь под рукой флешку с готовой к работе системой, то я рекомендую изучить данную статью.
• Тут описывается, как создать собственный загрузочный диск Linux, добавить в него только нужные программы и убрать все лишнее. Полученный образ у автора занял менее 25 Мб. Образ позволяет быстро загружаться, работать в текстовом режиме, создавать, редактировать, удалять файлы на разных файловых системах, имеет поддержку русского языка. За основу взят Debian.
➡️https://habr.com/ru/articles/709528/
#Linux
• На прошлой неделе я делился с вами ссылкой на бесплатный курс по изучению Linux, который вам очень понравился (судя по реакциям и репостам). Так вот, после этой публикации мне написал один из подписчиков и поделился ссылкой на очень полезный блог одного автора, который написал большое кол-во книг по изучению Linux и опубликовал их совершенно бесплатно. Книги написаны на английском языке, а некоторые из них опубликованы в бородатом году, но там много тем, которые являются актуальными. Так что забирайте по ссылочке ниже и изучайте:
➡️https://linux-training.be
#Linux
👩💻 Большое руководство по сетям и шифрованию трафика в Linux.
• На хабре есть очень крутое руководство, которое состоит из двух частей и содержит информацию по теме шифрования трафика в Linux системах. Если в коротко, то мы рассмотрим основные методы шифрования, которые можно использовать в Linux, и разберем, как их внедрить. Мы попытаемся разобраться, как работает криптография на уровне протоколов, как работает сеть в Linux, что такое сквозное шифрование и виртуальные частные сети.
➡️Часть 1 [23 min];
➡️Часть 2 [16 min].
#Linux
👩💻Если не можете выбрать подходящий Linux дистрибутив, то вот вам полностью бесплатный сервис, который позволяет прямо в браузере затестить различные версии операционных систем. Тут даже есть богатый выбор графических оболочек, а общее кол-во доступных систем переваливает за 70!
➡️https://distrosea.com/
• Кстати, судя по Reddit, проект поддерживается только одним человеком. Достойно уважения 👍
#Linux
• Turnkey Linux - отличный проект, который содержит огромное кол-во дистрибутивов на базе Linux с преднастроенным набором ПО (на выбор). Самое главное: сервис бесплатный, имеет открытый исходный код и более 100 готовых решений.
• В общем и целом, если нужен готовый образ под определенные нужды, то загляните сюда. Да, вы можете всё сделать самостоятельно (скачать отдельно нужный образ, настроить ПО и т.д.), но тут всё уже сделали за вас:
➡️https://www.turnkeylinux.org
#Linux
• Полезный репозиторий, который содержит огромную коллекцию ссылок, связанных с безопасностью ядра Linux и эксплуатацией уязвимостей:
- Books.
- Techniques:
➡Exploitation;
➡Protection Bypasses.
- Vulnerabilities:
➡Info-leaks;
➡LPE;
➡RCE;
➡Other.
- Finding Bugs.
- Defensive.
- Exploits.
- Tools:
➡Fuzzers;
➡Assorted.
- Practice:
➡Workshops;
➡CTF Tasks;
➡Other Tasks;
➡Playgrounds;
➡Infrastructure.
➡️https://github.com/xairy/linux-kernel-exploitation
• В качестве дополнения рекомендую обратить внимание на материал, который описывает ядро Linux и его внутреннее устройство:
➡Первые шаги после декомпрессии ядра — описывает первые шаги в ядре.
➡Начальная обработка прерываний и исключений — описывает инициализацию начальных прерываний и начального обработчика ошибки страницы.
➡Последние приготовления перед точкой входа в ядро — описывает последние приготовления перед вызовом start_kernel.
➡Точка входа в ядро — описывает первые шаги в общем коде ядра.
➡Продолжение архитектурно-зависимой инициализации — описывает архитектурно-зависимую инициализацию.
➡Архитектурно-зависимая инициализация, снова... — описывает продолжение процесса архитектурно-зависимой инициализации.
➡Конец архитектурно-зависимой инициализации, почти... — описывает конец setup_arch.
➡Инициализация RCU — описывает инициализацию RCU.
➡Конец инициализации — последняя часть об инициализации ядра Linux.
#Linux
• Смотрите какая крутая библиотека команд, однострочников и шпаргалок для линуксоидов. На самом деле, данному ресурсу уже много лет, но я решил напомнить о нем, так как библиотека постоянно обновляется авторами и содержит тонну полезной информации, как для начинающих, так и для опытных специалистов.
• На текущий момент времени приложение содержит 6686 страниц информации по 22 основным категориям:
➡One-liners;
➡System information;
➡System control;
➡Users & Groups;
➡Files & Folders;
➡Input;
➡Printing;
➡JSON;
➡Network;
➡Search & Find;
➡GIT;
➡SSH;
➡Video & Audio;
➡Package manager;
➡Hacking tools;
➡Terminal games;
➡Crypto currencies;
➡VIM Texteditor;
➡Emacs Texteditor;
➡Nano Texteditor;
➡Pico Texteditor;
➡Micro Texteditor.
• Здесь собраны все основные команды, которые разбиты по разделам и используются при работе с UNIX-подобными системами. К примеру для работы с файлами, папками, сетью и т.д. А может вы ищите хакерские примочки? Пожалуйста!
• Исходный код открыт, а еще есть приложение приложение на Android, которое можно скачать с GitHub или F-Droid. Пользуйтесь!
#linux
• Linux в роли серверной ОС привыкли считать гарантией надёжности и безопасности, он популярен у компаний и обычных пользователей. Однако никакая система не является полностью непроницаемой для атак. С учётом эволюционирующих киберугроз администраторы серверов должны принимать проактивные меры для защиты своих систем от атак и вовремя закрывать уязвимости.
• По ссылкам ниже можно найти очень полезный материал, который содержит рекомендации для тех, кто только начинает заниматься администрированием и защитой Linux-серверов и планирует изучить базовые техники создания укреплённой линукс-среды, устойчивой к различным угрозам:
➡Hardening Linux Servers Against Threats and Attacks.
➡40 Linux Server Hardening Security Tips [2024 edition].
➡Linux Hardening Guide.
#Linux
• Нашел очень крутой ресурс по основам Linux для начинающих. Вся соль в том, что материал представлен в виде мини-курсов, которые содержат уроки с заданиями. Если приступаете к решению задач, то сервис проверит ваши ответы автоматически. Доступно множество тем для изучения:
➡Командная строка;
➡Работа с текстом;
➡Управление пользователями;
➡Управление процессами;
➡Файловая система;
➡Ядро Linux;
➡Логирование;
➡Сети и многое другое...
➡️https://linuxjourney.com
#Linux