Вопросы по теме 'system-calls'

Как sbrk/brk реализованы в Linux?
Я думал о том, как ядро ​​Linux реализует системные вызовы, и мне было интересно, может ли кто-нибудь дать мне общее представление о том, как работают sbrk/brk? Я просмотрел код ядра, но его так много, что я его не понимаю. Я надеялся на резюме от...
16810 просмотров
schedule 08.03.2023

Захват syscall stdout без записи в файл в C/C++
Я хочу прочитать стандартный вывод системного вызова в строку C/C++. Могу ли я сделать это без использования временного файла? Перл //without file io $output = `echo hello`; C++ //with file io system ("echo hello > tmp");...
3200 просмотров
schedule 17.04.2022

Как узнать, какой тип системного вызова используется программой
Я работаю на машине x86_64. Мое ядро ​​​​Linux также является 64-битным ядром. Поскольку существуют разные способы реализации системного вызова (int 80, syscall, sysenter), я хотел знать, какой тип системного вызова использует моя машина. Я новичок...
3617 просмотров
schedule 07.02.2024

Сомнения в механизме системных вызовов в Linux
Мы переходим от ring3 к ring0, используя int или новую инструкцию syscall / sysenter. Означает ли это, что таблицы страниц и другие вещи, которые необходимо изменить для ядра, автоматически выполняются инструкцией int или обработчик прерывания для...
491 просмотров
schedule 26.07.2023

Связь медленного системного вызова с сигналом
Я изучаю медленный системный вызов и сигналы. Для обычной системы медленный системный вызов (чтение с терминального устройства) может блокироваться навсегда. и ниже пример, возможно чтение до истечения времени ожидания через некоторое время времени....
617 просмотров
schedule 07.12.2023

Что означает int 21h в сборке?
Я новичок в изучении языка ассемблера, и мне интересно, что означает команда int 21h . Например: mov ah,01h int 21h Которая должна прочитать ключ от пользователя.
97524 просмотров
schedule 24.04.2022

epoll_wait не работает из-за EINTR, как это исправить?
Мой epoll_wait не работает из-за EINTR. Моя трассировка gdb показывает это: enter code here 221 in ../nptl/sysdeps/pthread/createthread.c (gdb) 224 in ../nptl/sysdeps/pthread/createthread.c (gdb) [New Thread 0x40988490 (LWP 3589)] 227...
9558 просмотров

Реализация функции execve (unistd.h)
Как посмотреть реализацию функции execve (под x86_64 Linux), она есть в библиотеке unistd? Я хочу этого, потому что хочу знать, как я могу вызвать внешнюю программу с помощью ассемблера, не вызывая execve. Я знаю, что есть системный вызов execve, но...
1975 просмотров
schedule 30.07.2023

Разница между nice и setpriority в unix
Я пытаюсь реализовать другой вариант «хорошей» команды unix в C. Я видел определения системного вызова nice() и вызова setpriority(). Вызов nice() только увеличивает/уменьшает приоритет процесса. Если я хочу установить приоритет процесса на...
8274 просмотров
schedule 15.10.2023

Как сделать системный вызов из другого системного вызова в пространстве ядра
Я новичок в разработке ядра Linux. Я реализовал системный вызов my_pid в ядре Linux 2.6. Я хочу вызвать системный вызов getpid из своего системного вызова. Как я могу это сделать? Я хочу что-то вроде: pid_t my_pid () {вернуть getpid ();...
2250 просмотров
schedule 17.11.2022

Отключить функции system() и exec() в C и Pascal
Есть ли способ отключить функции system() и exec() в C/C++ и Pascal, используя любой аргумент компилятора или изменив файл заголовка/модуля? (это винда) Я пытался использовать -Dsystem=NONEXIST для gcc и g++, но #include <cstdio>...
1545 просмотров
schedule 06.10.2023

Генерация случайных чисел с помощью системного вызова
Я пытаюсь сгенерировать случайное целое число от 0 до 99 (включительно), но мне трудно найти, где оно сохраняет значение при использовании системного вызова 42. Пока у меня есть: li $a1, 100 li $v0, 42 syscall Я не уверен, где хранится...
7005 просмотров
schedule 11.08.2022

Как извлечь символы ядра из uImage (arm)?
Я хочу извлечь символы ядра из образа u-boot Конечная цель — отладка системных вызовов с помощью gdb . Ядро скомпилировано с CONFIG_DEBUG_INFO=y , а gcc использует параметр -g (я проверил) После make uImage у меня: # file...
2496 просмотров
schedule 16.05.2024

Файловые дескрипторы Unix max
Недавно я написал программу для определения максимального количества файловых дескрипторов, открытых для каждого процесса . Это было по существу int fd = creat("somefile.dat"); int count = 1; while(1) { int s = dup(fd); if (s == -1)...
1437 просмотров
schedule 13.03.2024

Как получить char* с помощью ptrace
В настоящее время я разрабатываю инструмент, в котором я должен отслеживать программу, чтобы узнать ее системные вызовы. На данный момент я могу получить числовые параметры системных вызовов, но я не могу правильно адресовать строки. Вот как я...
1484 просмотров
schedule 05.03.2023

Где определение функции POSIX stat в Linux?
В Windows stat и почти все другие функции C/POSIX, предоставляемые Windows, определены в msvcrt.dll, которая является библиотекой времени выполнения C. Я знаю, что в Linux многие функции POSIX C являются системными вызовами. Я также знаю, что...
845 просмотров
schedule 30.08.2022

как работает sys_open?
Я написал простой драйвер устройства char (mydev) с операцией «открыть» файл. В приложении пользовательского пространства я открываю этот узел драйвера. используя open("/dev/mydev", O_RDONLY); Системный вызов open() внутренне вызывает sys_open()....
4782 просмотров
schedule 16.09.2022

написание API glibc для системного вызова
Возможный дубликат: Нужна помощь с исходным кодом glibc Я понимаю, как реализовать наши собственные системные вызовы в ядре Linux. Я знаю, что мы можем вызвать это с помощью syscall() или _asm() в программе на языке C. Но я...
2868 просмотров
schedule 14.04.2022

работа библиотек
Я работал с ‹ iostream> и другими общими библиотеками C++. Помимо этого, я также работал с такими библиотеками, как ‹ pthread.h>. Теперь я прочитал, что системные вызовы, которые зависят от операционной системы , обеспечивают интерфейс между...
46 просмотров

Как перебрать строку в сборке mips
Итак, я сейчас работаю над проектом, в котором мы должны взять строку и преобразовать ее во все буквы верхнего регистра, а затем в буквы нижнего регистра, если байт toUpper или toLower не равен 0. Прямо сейчас я все еще работаю над прописными буквами....
14855 просмотров
schedule 15.10.2023