#%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%BD%D1%8B%D0%B5_%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2%D1%8B

2025-10-25

[Перевод] Как memory maps (mmap) обеспечивают в 25 раз более быстрый доступ к файлам в Go

Команда Go for Devs подготовила перевод статьи о том, как memory maps (mmap) обеспечивают молниеносный доступ к файлам в Go. Автор показывает, что замена обычного чтения и записи на работу с памятью может ускорить программу в 25 раз — и объясняет, почему это почти магия, но с нюансами.

habr.com/ru/articles/960120/

#Go #mmap #производительность #память #файлы #Unix #системные_вызовы #оптимизация #Varnish_Cache #io_uring

2025-04-24

Системные вызовы Linux, которые должен знать каждый разработчик

Многие разработчики работают в Linux-среде, но не всегда глубоко понимают, как взаимодействие с ОС происходит на низком уровне. На собеседованиях всё чаще спрашивают про системные вызовы Linux. В этой статье мы рассмотрим, какие вызовы встречаются чаще всего и как они работают.

habr.com/ru/companies/beget/ar

#системные_вызовы #собеседование_в_it #операционные_системы #Системные_вызовы_Linux #вопросы_на_собеседовании

2025-01-31

[Перевод] Операционная система в 1 000 строк кода (часть 4)

Перед вами четвёртая часть серии, посвящённой написанию собственной ОС. Здесь мы реализуем и запустим собственный исполняемый файл в пространстве пользователя, а также системные вызовы для вывода символов на экран и их считывания при вводе на клавиатуре. Навигация по вышедшим частям Часть 1 Часть 2 Часть 3 Часть 4 < — вы здесь

habr.com/ru/companies/ruvds/ar

#ruvds_перевод #программирование #операционные_системы #разработка_ос #qemu #системные_вызовы #режим_пользователя

2024-12-24

[Перевод] Как избегать типичных ошибок при встраивании ассемблерных вставок: подборка правил

Ассемблерные вставки, используемые компиляторами GCC и Clang, опосредуют взаимодействие высокоуровневых и низкоуровневых языков программирования. Это тонкая и коварная штука. Многие попадают в расставленные здесь капканы, зачастую совершенно неожиданно для себя. В сущности, ключевое слово asm можно перевести на C и C++ как unsafe . Почти в любых руководствах по встроенному ассемблеру, в том числе, и на ужасной странице ibilio , которая десятилетиями попадает в самый верх поисковой выдачи, неисправимо фигурируют фундаментальные серьёзные ошибки, а примеры в большинстве своём некорректны . Наиболее опасно, что эти примеры обычно приводят к ожидаемым результатам! Ситуация плачевная. Эта статья — не руководство, а подборка элементарных правил, которые помогут вам избежать самых распространённых ошибок либо отловить их при ревью кода. Здесь мы сосредоточимся сугубо на расширенном , а не на базовом ассемблере , а правила в этих версиях отличаются. На первом пишут любые инструкции, относящиеся к встроенному ассемблеру, с ограничениями или затираемыми. То есть, имеем токен : в обрамлении asm . Базовый ассемблер — тупой инструмент, который используется сравнительно нечасто, в основном в самом верху файла с кодом или в “голых” функциях . Поэтому злоупотребления базовым ассемблером на практике маловероятны.

habr.com/ru/articles/869544/

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

2024-09-23

[Перевод] Ассемблер для программистов на языках высокого уровня: условные конструкции

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

habr.com/ru/companies/ruvds/ar

#ассемблер #x8664 #язык_ассемблера #системные_вызовы #условные_конструкции #ruvds_перевод

2024-09-18

[Перевод] Ассемблер для программистов на языках высокого уровня: Hello World

Если вы начинали изучение программирования с JavaScript, Rust, C или любого другого высокоуровневого языка, то ассемблерный код может показаться вам непонятным или даже пугающим. Рассмотрим следующий код: section .data
msg db "Hello, World!"

section .text
global _start

_start:
mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, 13
syscall

mov rax, 60
mov rdi, 0
syscall К счастью, по второй строке мы можем понять, что он делает. Здесь нет ничего привычного нам: мы не видим ни условных операторов, ни циклов, нет никакого способа создавать функции… Да даже у переменных нет имён! С чего же вообще начать? Это небольшое введение предназначено для того, чтобы познакомить имеющих опыт в программировании с миром ассемблера. Мы обсудим основы языка и сопоставим их с конструкциями высокоуровневого программирования. Завершив прочтение этого руководства, вы сможете ориентироваться в ассемблерном коде, будете знать, где искать информацию, и даже сможете самостоятельно писать простые программы.

habr.com/ru/companies/ruvds/ar

#ассемблер #hello_world #x8664 #язык_ассемблера #системные_вызовы #ruvds_перевод

2024-04-17

[Перевод] Анатомия Hello World на языке C

Эта статья посвящена программе Hello World, написанной на C. Это максимальный уровень, на который можно добраться с языком высокого уровня, не беспокоясь при этом о том, что конкретно язык делает в интерпретаторе/компиляторе/JIT перед выполнением программы. Изначально я хотел написать статью так, чтобы она была понятна любому, умеющему кодить, но теперь думаю, что читателю полезно иметь хотя бы некоторые знания по C или ассемблеру.

habr.com/ru/companies/ruvds/ar

#ruvds_переводы #стандартная_библиотека #системные_вызовы #дизассемблер #компиляция

2024-02-16

[Перевод] Xv6: учебная Unix-подобная ОС. Глава 4: Прерывания и системные вызовы

Глава расскажет, как xv6 обрабатывает прерывания на RISC-V и о хитростях виртуальной памяти: как использовать ошибки доступа к страницам, чтобы оптимизировать работу ОС. Глава расскажет о копировании страниц при записи, ленивой выдаче страниц, выдаче страниц по необходимости и сбросе страниц на диск.

habr.com/ru/articles/794326/

#xv6 #операционная_система #прерывания #исключения #системные_вызовы #ядро #таблицы_страниц #виртуальная_память #copyonwrite #riscv

2024-02-02

[Перевод] Xv6: учебная Unix-подобная ОС. Глава 2. Устройство операционной системы

Операционная система выполняет несколько процессов одновременно. ОС распределяет время работы с ресурсами компьютера между процессами. ОС даст каждому процессу шанс на выполнение, даже если число процессов больше числа процессоров. ОС изолирует процессы друг от друга так, что ошибка в одном процессе не нарушит работу других. ОС позволяет процессам взаимодействовать - обмениваться данными и работать совместно. Глава 2 рассказывает, как xv6 выполняет эти требования, о процессах xv6 и как xv6 запускает первый процесс.

habr.com/ru/articles/791058/

#xv6 #riscv #операционная_система #процесс #ядро #виртуальная_память #безопасность #монолитное_ядро #микроядро #системные_вызовы

2024-01-29

Учимся понимать события подсистемы аудита Linux

Приветствую всех любителей изучать новое. Меня зовут Рома, и я занимаюсь исследованием безопасности ОС Linux в экспертной лаборатории PT Expert Security Center . В рамках инициативы нашей компании по обмену экспертными знаниями с сообществом я расскажу вам об известной многим администраторам системе журналирования в Linux-подобных ОС — подсистеме аудита Linux (auditd). При должной настройке она позволяет получать полную информацию о действиях, выполняемых в операционной системе. Специалистам по информационной безопасности полезно уметь расшифровывать и обрабатывать события auditd для отслеживания потенциально вредоносной активности. В связи с этим нам потребовалось организовать для них экспертную поддержку в системе мониторинга событий ИБ и управления инцидентами MaxPatrol SIEM . Подробнее

habr.com/ru/companies/pt/artic

#linux #kernel #siem #audit #man #security_expert_community #системные_вызовы #syscall

2024-01-27

[Перевод] Xv6 Глава 1: Интерфейсы операционной системы

Эта книга рассказывает о принципах работы операционных систем на примере xv6. Операционная система xv6 реализует базовый интерфейс, который Кен Томпсон и Деннис Ритчи предложили в операционной системе Unix, и подражает внутреннему устройству Unix. Комбинации простейших механизмов Unix дают удивительную свободу действий. Современные операционные системы признали успех Unix и реализуют похожие интерфейсы - BSD, Linux, macOS, Solaris, и даже Microsoft Windows. Изучение xv6 поможет понять работу и других операционных систем.

habr.com/ru/articles/789478/

#xv6 #операционная_система #unix #системные_вызовы #файловая_система #процесс #вводвывод #shell #каналы #ядро

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst