问题标签 [mach]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
562 浏览

objective-c - 将 AMWorkflow 与沙盒应用程序一起使用

我正在尝试从沙盒 AppKit 应用程序执行 Automator 工作流程。

最小示例 + github repo

根据我目前对 AMWorkflow API 的理解,我假设它使用 Mach IPC 在单独的 Automator Runner 进程中执行工作流。

这就是我向我的应用程序添加以下权利的原因:

但显然 Automator Runner 尝试连接回调用应用程序,但失败并显示以下错误消息:

有任何想法吗?

0 投票
1 回答
1602 浏览

objective-c - 通过 XPC 或 MACH 在 OSX 上启动服务

我想知道第三方开发人员是否有办法通过 XPC 或 Mach 与启动代理和守护进程进行交互。我的理解是第三方必须知道 XPC 的字典格式或有权访问 Mach 的 .defs 文件。这些是否可用于预安装的启动服务?如果没有,那么还有其他方式可以通过代码与服务交互吗?

0 投票
1 回答
129 浏览

compilation - 如何编译 Mach 3?

这些天我对mach 操作系统很感兴趣。然而,我发现在现代 Linux 系统上构建它似乎相当困难,比如 Debian Wheezy。

所以我想知道是否有任何方法可以构建并启动它?

欢迎任何想法和建议:-)

顺便说一句:似乎 Mach 操作系统是由 ODETools(odemake 和其他东西)构建的。那是什么?我很难找到这种 odetools 的任何东西。

0 投票
2 回答
4597 浏览

xcode - 使用 vm_read 和 vm_write 在 OS X 10.8.2 上读/写内存

这是我仅适用于 Xcode(4.5 版)的代码:

我也在尝试 ptrace 和其他东西,这就是为什么我也包含其他库。

第一个问题是这仅适用于 Xcode,我可以使用调试器找到变量的位置(内存地址)(在这种情况testvaluetesttest1

我实际上不明白 vm_write 是如何工作的(不完全)task_for_pid(),对于 2° 的问题是我需要在另一个进程上读写,这只是测试函数是否在同一个进程上工作,它可以工作(仅在 Xcode 上)。

我如何在其他进程上做到这一点?我需要读取一个位置(如何找到“某物”的地址?),这是第一个目标。

0 投票
1 回答
1275 浏览

objective-c - CFMessagePort 怪异

关于通过马赫端口发送/接收消息,我面临一个奇怪的延迟问题。我的实现的基本概念如下:

插件创建本地端口→启动向所述端口发送消息的远程进程→返回接收到的数据。

这是插件部分:

someExecutable 的代码的重要部分如下:

来自远程进程的消息被优雅地发送,但在进程结束并返回空值调用回调。portRet()如果我使函数内的端口无效portRet(),则永远不会收到消息。

我无法弄清楚发生这种延迟的原因。我想要实现的是在portRet()返回之前调用端口回调。我还尝试使用主调度队列而不是CFRunLoopSource端口的回调调度:

但结果几乎是一样的。我不确定我做错了什么。非常感谢您的帮助。

0 投票
1 回答
1053 浏览

ios - 如何在 iOS 中清理系统内存?

在 MacOs 中,您可以通过 Activity Monitor 查看空闲、有线、活动、非活动的内存状态。而且,您可以使用“purge”之类的命令行来清除内存。

那么,我可以在 iOS 中执行此操作吗?我不熟悉马赫/BSD。还有,其他人可以帮助我吗?

在 Mac Osx 中,我可以使用以下方法将非活动状态转换为空闲状态。

0 投票
1 回答
557 浏览

macos - 有没有办法在 mach_inject 之后卸载捆绑包

我想将较新版本的包加载到目标进程,但这是不可能的,因为已经加载了同名的包。更改CFBundleVersionCFBundleShortVersionString捆绑包不起作用。最简单的方法是简单地杀死目标进程并重新启动它。但我认为这不是最好的方法。那么还有另一种方法吗?

0 投票
2 回答
2482 浏览

macos - 为什么 host_statistics64() 返回不一致的结果?

为什么 OS X 10.6.8 中的 host_statistics64() (我不知道其他版本是否有这个问题)返回的免费、活动、非活动和有线内存的计数加起来不等于 ram 的总量?为什么它缺少不一致的页数?

以下输出表示十秒内未分类为空闲、活动、非活动或有线的页面数(大约每秒采样一次)。

产生上述数字的代码是:

0 投票
1 回答
1050 浏览

kernel - Mach vm_read 未返回 OSX 10.8.2 的预期值

我最近刚搬到 UNIX 平台,目前正在研究操作系统。现在,我对 XNU 的设计/实现特别感兴趣,目前的主题是进程和内存。

我有这个代码片段,它允许我的可执行文件从另一个进程获取任务端口

我知道 Mac OSX 10.8.2 有 ASLR,所以我运行的目标进程是通过 gdb 调用的。

我还可以在 GDB 内部验证该地址是否0x100000000包含 Mach-O 的幻数。

但是,当我的程序尝试读取目标进程的内存时,它只返回随机值,而不是我期望的幻数(它是随机的)。

2157 是目标 PID,1103 是任务端口以及来自的结果mach_error_string。我也尝试了该vm_read功能,但行为仍然相同。

0 投票
4 回答
5403 浏览

ios - mach_vm_allocate 和 vm_allocate 有什么区别?

我想知道mach_vm_allocate和之间有什么区别vm_allocate。我知道mach_vm_allocate仅适用于 OS X 而不是 iOS,但我不知道为什么。mach_vm_...包含函数的所有函数原型的文件(mach/mach_vm.h)仅存#error mach_vm.h unsupported.在于 iOS 中。