Вопросы по теме 'xnu'
Риски и преимущества использования / dev / autofs_nowait в OS X
В источнике инфраструктуры CoreFoundation вызовы API файловой системы POSIX (например, open() , stat() , и т. Д. все… ) завернуты в an , в котором дескриптор на /dev/autofs_nowait получается - с open(…, 0) - перед выполнением вызовов POSIX;...
414 просмотров
schedule
05.11.2021
отправка команды IOKit с динамической длиной
Я использую инфраструктуру IOKit для связи с моим драйвером, используя IOConnectCallMethod из клиента пользовательского пространства и IOExternalMethodDispatch на стороне драйвера.
До сих пор я мог отправлять команды фиксированной длины, и...
943 просмотров
schedule
12.11.2021
Класс Singleton в драйвере kext на основе IOKit
У меня есть класс, который поддерживает экземпляр типа class IOSharedDataQueue : public IODataQueue , который является объектом IOKit.
Класс отделен и вызывается из различных методов основного класса, который является классом на основе IOKit...
206 просмотров
schedule
02.12.2021
Как использовать atos для правильного обозначения адресов из OSReportWithBacktrace?
Я пытаюсь найти утечки в проекте с открытым исходным кодом для поддержки трекпадов на основе I2C ( https://github.com/kprinssu/VoodooI2CHID ).
Причина, по которой я считаю, что сохраняются утечки, заключается в том, что когда я пытаюсь выгрузить...
157 просмотров
schedule
21.03.2022
Драйвер IOKit загружен, но не запущен
У меня есть базовый драйвер IOKit, который не запускается аппаратно и происходит из IOResources. он также предоставляет клиентский класс пользовательского пространства с использованием IOServiceOpen , но я думаю, что это не имеет отношения к моей...
243 просмотров
schedule
31.05.2022
Почему lsyncd требует xnu?
Я работаю над этапами компиляции lsyncd в Mac OS X (точнее, 10.7.3).
Наконец удалось его скомпилировать, несмотря на пару незначительных синтаксических ошибок в исходном коде lysncd; и я понял от Акселя Киттенбергера (разработчика, управляющего...
691 просмотров
schedule
19.09.2022
Как я могу найти версию xnu, соответствующую определенному выпуску OS X?
Я пытаюсь найти список поддерживаемых системных вызовов в старой версии OS X.
Для каждой версии ядра XNU существует файл syscalls.master , который дает мне то, что я хочу (например, вот один для XNU 2782.20.48). Я вижу свою текущую версию XNU с...
1619 просмотров
schedule
12.07.2023
Перехват системных вызовов в Mac OS X
Я пытаюсь поймать все системные вызовы, вызываемые данным PID, с помощью самодельной программы (я не могу использовать ни одну из strace, dtruss, gdb...). Поэтому я использовал функцию kern_return_t task_set_emulation(task_t target_port,...
542 просмотров
schedule
16.01.2023
Как загрузить ядро XNU?
Я успешно скомпилировал XNU 3789.31.2 из исходного кода, но не знаю, как его загрузить и запустить. Есть ли подробная инструкция для этого?
548 просмотров
schedule
04.05.2023
В какой библиотеке KPI объявлена IODeviceMemory?
Гугл не дает никакой информации. Я не смог понять это, поискав в исходниках ядра.
Я использую IOProxyVideoFamily с открытым исходным кодом для реализации виртуального фреймбуфера.
Я только что заменил приведение в стиле C к IODeviceMemory на...
150 просмотров
schedule
01.06.2023
Получение уведомлений о выключении и перезапуске в macOS
Я хочу, чтобы мой драйвер IOKit получал уведомления о событиях power off и restart . К счастью, IOKit предоставляет такое уведомление с использованием метода IOService::systemWillShutDown , который следует перезаписать и включить мою логику....
486 просмотров
schedule
08.03.2023
Смонтировать/размонтировать файловую систему из расширения ядра macOS
hdiutil может прикреплять и отсоединять файл DMG, содержащий раздел HFS+, в выбранную точку монтирования. Однако он использует частный API DiskImages.framework . Моя цель состоит в том, чтобы сделать эту задачу полностью программной, поэтому я...
335 просмотров
schedule
31.01.2023
В macOS Kauth API отсутствует защита от переименования vnode
Чтобы защитить файл моего проекта от удаления неавторизованными объектами, я использовал kauth_listen_scope с опцией KAUTH_SCOPE_VNODE , чтобы добавить новую функцию обратного вызова, которая не позволяет другим удалять эти файлы.
Однако...
115 просмотров
schedule
27.07.2023
Использование семафоров Маха в качестве замены межпроцессных анонимных семафоров
Я хочу использовать анонимные семафоры в общей памяти для синхронизации нескольких процессов. Хотя несколько операционных систем POSIX предоставляют анонимные семафоры (посредством sem_init и связанных функций), macOS их не поддерживает.
Я...
93 просмотров
schedule
29.01.2023
XNU: получение уведомлений о запуске и очистке процесса в kext
Каков наилучший способ получать уведомления о запуске и завершении процесса в расширении ядра?
Я знаю, что могу использовать KAuth для подписки на создание процесса ( KAUTH_VNODE_EXECUTE ). Как насчет подписки на очистку процесса?
883 просмотров
schedule
14.03.2024
Как получить текущий идентификатор процессора в macOS KEXT
Я нашел kern/processor.h файлов, включающих current_processor().
Но я не могу использовать current_processor() , даже если я включаю файл kern/processor.h .
Есть ли способы получить текущий идентификатор процессора?
Добавить 030420: мне...
120 просмотров
schedule
30.03.2024
Как определить, есть ли у процесса привилегии root в сетевом расширении ядра?
Я пишу фильтр сокетов kext, и я хотел бы игнорировать любые соединения, сделанные с правами root. До OS X Lion следующий код работал безупречно:
static boolean_t is_root() {
proc_t p = proc_self();
boolean_t isRoot = proc_suser(p);...
543 просмотров
schedule
25.05.2024