Вопросы, помеченные тегом «system-calls»

Системный вызов используется программами для запроса служб из ядра операционной системы.
avatar
Kailash gogineni
12 августа 2021 в 00:57
219
1

Gem5 не работает при выполнении скрипта Python

Я пытаюсь выполнить простой скрипт Python и передать параметры командной строки, чтобы просто добавить числа в gem5 Команда: sudo ./build/X86/gem5.opt configs/example/se.py --cmd /usr/bin/python3 --options "sum.py 3 4" исходный код sum.py: import...
avatar
xmllmx
5 августа 2021 в 09:20
29
0

Почему имя accept4, а не accept1, как и epoll_create1 для epoll_create?

Я знаю, что accept4 является расширенной функцией accept под Linux. Мне просто интересно: Why is the name accept4 rather than accept1, just as epoll_create1 for epoll_create?
avatar
beardeadclown
3 августа 2021 в 16:32
46
0

Сканировать точки доступа с помощью wireless.h

Я пытаюсь понять, как работает беспроводная связь в Linux, и внедрить простое сканирование точек доступа. Пока это мой код: #include <stdio.h> #include <string.h> #include <linux/wireless.h> #include <sys/ioctl.h> #include...
avatar
zack
2 августа 2021 в 03:14
35
0

Как я могу использовать getrlimit для получения nproc обычного пользователя в программе c

[root@api ~]# ulimit -u 3766 [zack@api ~]$ ulimit -u 5000 Я не могу получить nproc Зака, используя setuid(zackid) в программе, почему? [root@api dbhome]# ./a zack UID:1000 EUID:1000 GID:1000 RLIMIT_NPROC cur:3766 // still root's nproc
avatar
Tayab
31 июля 2021 в 21:43
102
0

Системный вызов NtLoadDriver выдает код ошибки C0000258

Надеюсь, вы все в добром здравии Я пишу загрузчик драйверов, который использует системные вызовы для большей части своей функциональности в качестве хобби (на C#, просто чтобы было понятно) Я реализовал более двух десятков системных вызовов, и все они работают должным...
avatar
Supreet Singh
30 июля 2021 в 17:53
204
1

В чем разница между os.Stdout и syscall.Stdout?

Я пытался работать с ForkExec(), но у меня не получилось. Есть ли разница между syscall.Stdout и os.Stdout? Вот небольшой пример кода, который я пытаюсь запустить. command := "/usr/bin/echo" args := []string{"Hello there."} attr := new(syscall.ProcAttr) attr.Env =...
avatar
OBaselga
30 июля 2021 в 10:27
39
0

Можно ли прочитать файл и сохранить буфер непосредственно в общую память?

На самом деле, я пишу приложение C в Linux, которое должно читать из дескриптора файла, а затем сохранять буфер чтения в общей памяти между процессами. Я пробовал это: while(1) { if(read (chRPMSG, data_buff[data_buff_it], SIZE_MSG) < 0) exit(0); else...
avatar
DimanNe
26 июля 2021 в 18:58
160
2

Почему strace игнорирует некоторые системные вызовы (случайно) в зависимости от среды/ядра?

Если я скомпилирую следующую программу: $ cat main.cpp && g++ main.cpp #include <time.h> int main() { struct timespec ts; return clock_gettime(CLOCK_MONOTONIC, &ts); } , а затем запустить его под strace в «стандартной» Kubuntu, я получаю это:...
avatar
Shubham Johri
23 июля 2021 в 16:31
88
1

BPF: Как установить значение прыжка как значение, хранящееся в аккумуляторе?

Я работаю с seccomp BPF, и мне нужно установить значения перехода (jt/jf/<15536555985746>) оператора перехода (условный переход/переход всегда) в качестве значения, хранящегося в аккумуляторе. Это возможно? У меня есть подозрение, что это не так, потому что...
avatar
GetRektBoy724
20 июля 2021 в 11:31
120
1

Marshal.GetDelegateForFunctionPointer возвращает нарушение доступа к памяти

Я пытаюсь использовать Marshal.GetDelegateForFunctionPointer для выполнения заглушки системного вызова LdrLoadDll, которую я получаю с диска с помощью моего кода, код использует Marshal.AllocHGlobal, а позже изменил защиту памяти на RWX (здесь заглушка системного...
avatar
KG26
17 июля 2021 в 19:20
31
0

Стек бинарных вызовов программы Gem5

Я пытаюсь использовать флаг отладки с gem5.opt (X86 isa), который называется Stack, с помощью команды build/X86/gem5.opt --debug-flag=Stack. Проблема, которую я не получаю от этого флага. Причина, по которой я хотел использовать его, заключается в том, чтобы...
avatar
KG26
16 июля 2021 в 17:40
267
0

Как я могу найти реализации системных вызовов чтения ядра Linux?

Я пытаюсь понять системный вызов чтения в ядре Linux из следующего исходного кода: https://github.com/torvalds/linux/tree/35e43538af8fd2cb39d58caca1134a87db173f75/fs<34420825101028><34082542021> Начиная с: (Я нашел эту функцию в...
avatar
gemini
15 июля 2021 в 07:46
87
0

как получить текущий рабочий каталог в функции ловушки при перехвате системного вызова в модуле ядра Linux?

Я пытался записать открытые файлы с помощью перехвата системного вызова openat. Но есть проблема: параметр filename из openat является относительным путем, чтобы получить абсолютный путь, мне нужно найти текущий рабочий путь. Я пробовал несколько способов,...
avatar
kontravolta
13 июля 2021 в 16:14
83
2

Просмотр того, как ОС обрабатывает системные вызовы Windows

Я пытаюсь выяснить, как выполняются системные вызовы в ядре. Есть ли какое-нибудь хорошее объяснение того, что именно происходит в ядре, когда встречается инструкция "syscall"? Как их просмотреть? обратные вызовы режима ядра и возможно документирование некоторых...
avatar
zeval
13 июля 2021 в 15:40
64
1

Понимание разветвления внутри цикла for

Я изучаю многопроцессорность в Python, и у меня возникли проблемы с визуализацией os.fork() в уме. Я получаю общие случаи, которые разбросаны по веб-сайту, но мне действительно трудно с этим. Код выглядит следующим образом: import os for i in range(2): pid1 =...
avatar
dw x
13 июля 2021 в 12:54
65
0

Перехватчик точки трассировки ядра занимает меньше времени, если системный вызов происходит чаще

Я написал модуль ядра для перехвата системных вызовов с помощью raw_tracepoint. Чтобы измерить время, затрачиваемое обработчиком точек трассировки, я написал пользовательскую программу для генерации системных вызовов и использования printk() в модуле ядра для вывода...
avatar
b0red
8 июля 2021 в 16:35
63
1

Прерывание для системного вызова?

Эй, ребята, просто хотел подтвердить, что я правильно понимаю, как вызывается системный вызов. Поэтому, если программе требуется доступ к функциям ядра, она загружает номер системного вызова в регистр и вызывает программное прерывание (в linux 0x80). Затем NVIC (или...
avatar
KG26
2 июля 2021 в 19:15
60
0

Просмотр инструкций trap системным вызовом gem5

Я использую инструмент gem5, чтобы найти инструкции ловушки. Я пытаюсь использовать простую программу C для выполнения на gem5 и найти все инструкции ловушки. Вот мой код C: #include <stdio.h> #include <string.h> int main () { FILE *fp; char c[] =...
avatar
Yuta Nakamura
30 июня 2021 в 06:08
37
0

различение системного вызова в пользовательской программе

У меня есть код hello world ниже #include <stdio.h> int main() { printf("hello world\n"); return 0; } Я компилирую следующим образом: wllvm helloworld.c Вот ссылка на репозиторий wllvm. Потом делаю strace, получаю кучу системных вызовов, которых нет в...
avatar
nantitv
29 июня 2021 в 21:59
101
1

Включить CONFIG MODIFY_LDT SYSCALL в Ubuntu на докер-машине

Я использую Ubuntu 20 в докере на Mac OS. Я хотел бы включить системный вызов modify_ldt на нем. После выполнения следующей команды он говорит, что это не так. zcat /proc/config.gz|grep "MODIFY_LDT" # CONFIG_MODIFY_LDT_SYSCALL is not set Есть ли способ включить...