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

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

https://habr.com/ru/companies/beget/articles/903650/

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

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

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

Хабр

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

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

https://habr.com/ru/companies/ruvds/articles/877474/

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

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

Перед вами четвёртая часть серии, посвящённой написанию собственной ОС. Здесь мы реализуем и запустим собственный исполняемый файл в пространстве пользователя, а также системные вызовы для вывода...

Хабр

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

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

https://habr.com/ru/articles/869544/

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

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

Ассемблерные вставки, используемые компиляторами GCC и Clang, опосредуют взаимодействие высокоуровневых и низкоуровневых языков программирования. Это тонкая и коварная штука. Многие попадают в...

Хабр

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

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

https://habr.com/ru/companies/ruvds/articles/845308/

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

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

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

Хабр

[Перевод] Ассемблер для программистов на языках высокого уровня: 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 К счастью, по второй строке мы можем понять, что он делает. Здесь нет ничего привычного нам: мы не видим ни условных операторов, ни циклов, нет никакого способа создавать функции… Да даже у переменных нет имён! С чего же вообще начать? Это небольшое введение предназначено для того, чтобы познакомить имеющих опыт в программировании с миром ассемблера. Мы обсудим основы языка и сопоставим их с конструкциями высокоуровневого программирования. Завершив прочтение этого руководства, вы сможете ориентироваться в ассемблерном коде, будете знать, где искать информацию, и даже сможете самостоятельно писать простые программы.

https://habr.com/ru/companies/ruvds/articles/844324/

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

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

Если вы начинали изучение программирования с JavaScript, Rust, C или любого другого высокоуровневого языка, то ассемблерный код может показаться вам непонятным или даже пугающим. Рассмотрим следующий...

Хабр

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

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

https://habr.com/ru/companies/ruvds/articles/808399/

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

Анатомия Hello World на языке C

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

Хабр

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

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

https://habr.com/ru/articles/794326/

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

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

Предыдущая: Глава 3. Таблицы страниц Примечание. Авторы рекомендуют читать книгу вместе с исходным текстом xv6 . Авторы подготовили и лабораторные работы по xv6 . Xv6 работает на RISC-V, поэтому для...

Хабр

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

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

https://habr.com/ru/articles/791058/

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

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

Операционная система выполняет несколько процессов одновременно. ОС распределяет время работы с ресурсами компьютера между процессами. ОС даст каждому процессу шанс на выполнение, даже если число...

Хабр

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

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

https://habr.com/ru/companies/pt/articles/789014/

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

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

Приветствую всех любителей изучать новое. Меня зовут Рома, и я занимаюсь исследованием безопасности ОС Linux в экспертной лаборатории PT Expert Security Center . В рамках инициативы нашей компании по...

Хабр

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

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

https://habr.com/ru/articles/789478/

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

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

Xv6 Глава 1: Интерфейсы операционной системы Операционная система делит компьютер между несколькими программами так, что программы выполняются одновременно. Операционная система абстрагирует работу с...

Хабр