Как стать автором
Поиск
Написать публикацию
Обновить
0
@maximgoodmanread⁠-⁠only

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

Отправить сообщение

Введение в ELF-файлы в Linux: понимание и анализ

Время на прочтение11 мин
Количество просмотров113K
Есть в мире вещи, которые мы принимаем как нечто само собой разумеющееся, хотя они являются истинными шедеврами. Одними из таких вещей являются утилиты Linux, такие, как ls и ps. Хотя они обычно воспринимаются как простые, это оказывается далеко не так, если мы заглянем внутрь. И таким же оказывается ELF, Executable and Linkable Format. Формат файлов, который используется повсеместно, но мало кто его понимает. Это краткое руководство поможет вам достичь понимания.



Прочтя это руководство, вы изучите:

  • Зачем нужен формат ELF и для каких типов файлов он используется
  • Структуру файла ELF и детали его формата
  • Как читать и анализировать бинарное содержимое файла ELF
  • Какие инструменты используются для анализа бинарных файлов
Читать дальше →

Основы по GNU Make

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров7.2K

GNU Make - это консольная утилита, которая запускает другие консольные утилиты в желаемой последовательности согласно скрипту. Только и всего.

В этом тексте я показал, как можно организовать самостоятельно написанные make скрипты для микроконтроллерных проектов.

Читать далее

Ты решаешь LeetCode неправильно. Как пройти любое собеседование в BigTech?

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров52K

Привет! Я ex. Разработчик из VK, сейчас принял оффер от Ozon'a, и за последний месяц я прошел собеседования в 4х бигтех компаниях: Ozon, Avito, Wildberries и T-Bank и везде дошел до финалов/офферов. Пообщавшись во многих группах, посвященных Go-разработке, я понял, что много умных ребят готовясь к собесам не имеют четкой системы подготовки, и из-за этого заваливают технические собесы в компании. Не претендуя на истину в последней инстанции, предлагаю свою методику подготовки к собесам, которая помогла мне и моим знакомым подготовиться к техническим собесам во все популярные ру-бигтехи.

Читать далее

Чем хорош Emacs, или Полезные советы современным приложениям от 50-летнего редактора

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров9.9K

Когда я только начал использовать Emacs, то он мне показался довольно странным. У меня возникали вопросы вроде: «Почему окна в нём называются фреймами, а вкладки — окнами?» и «Что вообще значит C-x C-s

Но я всё же на него подсел, так как это внушало мне чувство индивидуальности, а уже со временем пришло понимание преимуществ и практичности архитектуры Emacs. Он прост, но невероятно удобен.

И в современных реалиях мне кажется странным, что другие приложения не похожи на него, ведь у этого 50-летнего текстового редактора можно многому поучиться.
Читать дальше →

Магия SSH

Время на прочтение11 мин
Количество просмотров538K
С SSH многие знакомы давно, но, как и я, не все подозревают о том, какие возможности таятся за этими магическими тремя буквами. Хотел бы поделиться своим небольшим опытом использования SSH для решения различных административных задач.

Оглавление:

1) Local TCP forwarding
2) Remote TCP forwarding
3) TCP forwarding chain через несколько узлов
4) TCP forwarding ssh-соединения
5) SSH VPN Tunnel
6) Коротко о беспарольном доступе
7) Спасибо (ссылки)
Читать дальше →

Основы Ansible, без которых ваши плейбуки — комок слипшихся макарон, часть 3

Время на прочтение13 мин
Количество просмотров50K

В этой части мы перестаём говорить о простом и приятном и начинаем говорить о трудном. Переменные в Ansible: scope, precedence, рекурсивная интерполяция. Для тех, кто дочитает до конца, маленький бонус: упрощённая таблица приоритетов, с которой можно жить. Предыдущие части: 1, 2.


Обычно рассказ про переменные в Ансибл начинают с чего-то очень простенького, что создаёт у читателя иллюзию, что переменные в Ансибл — это как в любом другом языке программирования. Мутабельные или немутабельные, локальные и глобальные. Это не так.


Это не так.


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


Обратите внимание — я сказал "значения", потому что "переменные" — это всего лишь имена к значениям. У переменных свой глубокий внутренний мир, и про него во второй части.

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

Rust в ядре Linux: лекарство или яд? Споры о будущем

Время на прочтение4 мин
Количество просмотров13K


В мире разработки программного обеспечения, особенно в области системного программирования, языки C и Rust занимают особое место. C, как проверенный временем язык, десятилетиями служил основой для создания операционных систем, включая Linux. Однако с появлением Rust, который позиционируется как более безопасный и современный ЯП, начались жаркие споры о том, стоит ли переписывать части ядра Linux на Rust или оставить всё как есть. Дискуссия вышла на новый уровень, когда разработчики Linux начали активно сопротивляться внедрению Rust. Кристоф Хеллвиг даже сравнил нововведение с «раковой опухолью». Что стоит за этим противостоянием, и почему Rust вызывает такие полярные мнения?
Читать дальше →

Простой шлюз в сеть Интернет на nftables в ОС Astra Linux Special Edition

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров7.6K

Новая система фильтрации пакетов, фреймворк nftables, работает, начиная с версии Debian 10 Buster. ОС Astra Linux Special Edition (ALSE) основана на Debian и его пакетной базе, поддерживает nftables, начиная с версии 1.7.4.

Для помощи в миграции с Netfilter к nftables я настроил тестовый стенд, который реализует основные базовые задачи для SOHO (Small Office/Home Office) или небольшого предприятия. Эту конфигурацию можно взять за основу при создании своей или использовать все, как есть.

Читать далее

Запросто собираем базу данных при помощи команд Linux

Время на прочтение6 мин
Количество просмотров14K

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

Читать далее

GIMP Script-Fu Первый Дан. Работа, Печать, Отладка

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1K

GIMP Script-Fu Первый Дан. Работа,Печать,Отладка.

Работа с консолью Script-fu и универсальная функция печати.

Читать далее

Как написать свой первый модуль ядра Linux

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров19K

Linux Kernel — это, пожалуй, один из самых распространённых (и, возможно, до сих пор недооценённых) программных продуктов в мире. Он является основой всех дистрибутивов Linux (что очевидно), но на этом его роль не заканчивается. Ядро также работает на множестве встроенных устройств практически повсюду. У вас есть микроволновка? Скорее всего, она работает на ядре Linux. Посудомоечная машина? Тоже. Если у вас достаточно средств на автомобиль Tesla, вы даже сможете найти несколько багов, исправить их и отправить патч в код Model S или Model X на GitHub. А что насчёт схем, которые не позволяют Международной космической станции сойти с орбиты и врезаться в Землю? Конечно, и там тоже Linux. Ядро легковесное — значит, отлично работает даже в условиях невесомости.

В этой статье напишем свой первый модуль ядра под Linux

Читать далее

3X-UI: Shadowsocks-2022 & XRay (XTLS) сервер с простой настройкой и приятным интерфейсом

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров566K

В серии предыдущих статей я описывал, почему повсеместно используемые VPN- и прокси-протоколы такие как OpenVPN и L2TP очень уязвимы к выявлению и могут быть легко заблокированы цензорами при желании, обозревал существующие гораздо более надежные протоколы обхода блокировок, клиенты для них, а также описывал настройку сервера двух видов для всего этого.

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

Поэтому сегодня мы поговорим об установке и использовании графической панели 3X-UI для сервера X-Ray с поддержкой всего того, что умеет X-Ray: Shadowsocks-2022, VLESS с XTLS и т.д.

Читать далее

Проксируем OpenVPN через Shadowsocks или чиним OpenVPN во время блокировок

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров48K

В данной статье рассмотрим как настроить существующее подключение к OpenVPN серверу, которое могло или может перестать работать, через shadowsocks (Outline VPN) туннель на OpenWRT любых версий с помощью openvpn-openssl и shadowsocks-libev.

Понадобятся:

Существующий сервер OpenVPN и настроенный клиент на OpenWRT

Конфиг shadowsocks (Outline) вашего либо чужого сервера.

Свободные 650кб памяти в роутере

Читать далее

Большое руководство по сетям и шифрованию трафика в Linux (часть 1)

Уровень сложностиСредний
Время на прочтение23 мин
Количество просмотров27K

Приветствую вас, читатели Хабра! В этой статье я бы хотел уделить внимание такой вещи как шифрование трафика на Linux системах. Наверно каждый из нас прекрасно понимает, насколько важна защита нашей приватности. Ведь в эпоху когда многие компании собирают данные, а иногда хакеры могут перехватить наш трафик, это становится особенно важно. Просто необходимо позаботиться о безопасности своих данных. Например, быть уверенным, что какая-либо корпоративная сеть не прослушивается злоумышленниками. Информационная безопасность сегодня — это не просто мода, а насущная необходимость. Постоянно растет киберпреступность, и защита трафика от перехвата — это основной аспект цифровой жизни человека или бизнеса.

В рамках этой статьи мы рассмотрим основные методы шифрования, которые можно использовать в Linux, и разберем как их внедрить. Мы попытаемся разобраться как работает криптография на уровне протоколов, как работает сеть в Linux, что такое сквозное шифрование и виртуальные частные сети.

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

Читать далее

Надежный обход блокировок в 2024: протоколы, клиенты и настройка сервера от простого к сложному

Уровень сложностиСредний
Время на прочтение46 мин
Количество просмотров357K

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

Вы, наверняка, помните отличный цикл статей на Хабре в прошлом году от пользователя MiraclePtr, который рассказывал о разных методах блокировок, о разных методах обхода блокировок, о разных клиентах и серверах для обходов блокировок, и о разных способах их настройки (раз, два, три, четыре, пять, шесть, семь, восемь, десять, десять, и вроде были еще другие), и можете спросить, а зачем еще одна? Есть две основные причины для этого.

Читать далее

Как SpaceX использует GPU для обсчёта ракетных двигателей

Время на прочтение7 мин
Количество просмотров26K
image Илон Маск врывается в автомобильную и космическую индустрию с Tesla и SpaceX. Интересно, что первая полностью отказывается от двигателей внутреннего сгорания, в то время, как вторая наоборот, пытается изобрести новые технологии для сжигания топлива и осуществить пилотируемый полёт на Марс.

На последней конференции GPU Technology Conference, организованной компанией Nvidia, мы узнали, что доставка группы людей на Марс и обратно – задача непростая. Одна из проблем такой миссии – необходимость в большом и эффективном ракетном двигателе, который сможет доставить много материала на орбиту, — так объяснил нам Адам Лихтл, директор исследовательской группы SpaceX. С командой из нескольких десятков программистов он пытается справиться со сложной задачей улучшить симуляцию сгорания внутри ракетного двигателя. Для укорачивания полётов к Марсу также нужен большой двигатель.
Читать дальше →

Знакомство с межпроцессным взаимодействием на Linux

Время на прочтение11 мин
Количество просмотров225K
Межпроцессное взаимодействие (Inter-process communication (IPC)) — это набор методов для обмена данными между потоками процессов. Процессы могут быть запущены как на одном и том же компьютере, так и на разных, соединенных сетью. IPC бывают нескольких типов: «сигнал», «сокет», «семафор», «файл», «сообщение»…

В данной статье я хочу рассмотреть всего 3 типа IPC:
  1. именованный канал
  2. разделенная память
  3. семафор
Отступление: данная статья является учебной и расчитана на людей, только еще вступающих на путь системного программирования. Ее главный замысел — познакомиться с различными способами взаимодействия между процессами на POSIX-совместимой ОС.
Читать дальше →

Разрабатываем Nix в России

Время на прочтение4 мин
Количество просмотров3.1K

Спринт — особый формат мероприятий, который разработчики Nix и NixOS придумали, чтобы собираться вместе и вместе работать на проектами.

Что-то вроде хакатона, но без элемента соревновательности. Следующий спринт, если всё получится, пройдёт в Казани в августе. Здесь начало истории...

Читать далее

Числа и байты: как работает память в Linux?

Уровень сложностиСложный
Время на прочтение27 мин
Количество просмотров28K
image

Часть первая: физическая память


При создании операционных систем всегда уделяется внимание работе с памятью. Память — это компонент компьютера, где хранятся программы и данные, и без нее современные компьютеры не могли бы функционировать. Важной единицей хранения данных в памяти является бит, который может принимать два значения: 0 или 1. Память состоит из ячеек, каждая из которых имеет свой адрес. Ячейки могут содержать различное количество битов, и количество адресуемых ячеек зависит от количества бит в адресе.

Также память включает в себя оперативное запоминающее устройство (ОЗУ) или RAM, где можно записывать и считывать информацию. Существует статическая ОЗУ (SRAM) и динамическая ОЗУ (DRAM), различающиеся в том, как хранится информация. В SRAM информация сохраняется до выключения питания, в то время как в DRAM используются транзисторы и конденсаторы, что позволяет хранить данные, но требует их периодического обновления. Разные типы ОЗУ имеют свои преимущества и недостатки, и выбор зависит от конкретных потребностей.

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

Но что такое физическая память, как она работает в Linux? Что такое сегментация, утечки памяти и некие «страницы»?

Все, что вы хотели знать, но боялись спросить о памяти пингвина — читайте здесь и сейчас!
Читать дальше →

Компоненты среды рабочего стола | Linux

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров15K

Всех приветствую, читатели Хабра! Решил попробовать себя в роли знатока-писателя и освятить для вас такую тему, как “Компоненты среды рабочего стола”, чтобы больше людей, хотя-бы в основе, понимали, что там происходит в системе такого, благодаря чему мы можем, не тыкаясь в консоли, с ней взаимодействовать.

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

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность