问题标签 [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.
macos - 与子进程共享 Mach 端口
我正在比较 Mac OS X 上可用的不同 IPC 机制(管道、套接字、System V IPC 等),我想看看 Mach 端口与更高级别的替代方案相比如何。但是,我遇到了一个非常基本的问题:跨进程(特别是跨父进程和子进程)获得对端口的发送权限。
与文件描述符不同,端口通常不会转移到派生进程。这意味着必须建立一些其他的传输方式。我能找到的关于这个的唯一相关页面就是这个,他们在更新中声明他们的方法不再有效并且永远不能保证,即使该方法是由苹果工程师在 2009 年提出的。(这意味着替换引导端口,现在这样做会破坏 XPC。)他们建议的替换使用不推荐使用的函数,因此这不是一个非常吸引人的解决方案。
此外,我喜欢旧解决方案的一件事是端口在使用它的进程之间仍然非常私密。不需要广播端口的存在,就像管道(来自pipe
调用)一旦分叉就可以工作。(如果有其他解决方案,我可能会接受它,但这有点烦人。)
那么,如何将发送权从父进程传递到 Mach 端口到子进程?
macos - OSX 上的内存更改
我做了一个例子,使用 task_for_pid() 和 mach_vm_write() 写入进程内存。
如果某些进程将数据写入我的应用程序任务中的指定地址,我如何监控内存的变化?
minix - 黑白 Hurd 和 Minix 有什么区别?
知道两者都是微内核,b/w Mach(Hurd 所基于的)和 Minix 有什么区别。有任何架构差异吗?稍微了解一下“什么是 L4”会很有帮助。我找不到任何涉及此内容的文件。
macos - Mac OS X pthreads 伪造返回地址
在 OS X pthreads 实现(http://www.opensource.apple.com/source/Libc/Libc-825.26/pthreads/thread_setup.c?txt)中,它们在线程堆栈(第 140 行)上提供了一个虚假的返回地址:
我不明白当线程正在执行的函数调用“ret”并从堆栈中弹出返回地址时,这不会因非法指令/段错误而崩溃。谁能解释这是如何预防/处理的?
kernel - Mac OS X Kernel Extension CPU Selection
I was reading the source code for the model-specific register (MSR) driver kernel extension that ships with the Intel Performance Counter Monitor (http://software.intel.com/en-us/articles/intel-performance-counter-monitor-a-better-way-to-measure-cpu-utilization). Since independent copies of the MSRs/performance counters are stored on different CPUs, it is necessary to specify which CPU to read from. This is done by calling the mp_rendezvous_no_intrs function.
This causes each processor the check if it is the correct processor number, and if so read the data from the MSR:
My question is: is turning off interrupts (via however mp_rendezvous_no_intrs does it) enough to cause the thread running the cpuReadMSR function to stay on the same CPU the whole time? If it is not, I worry about the following failure scenario:
- The cpu reads its numerical id with cpu_number(), decides that it is the correct CPU, and starts to read the MSR.
- The thread is preempted by the scheduler and moved to a different CPU.
- The MSR is read, but now is read from a different CPU, thus giving the wrong value.
c++ - 如何在 Os X 上的 C++ 中获取模块的基地址
我一直在尝试在 Os X 上用 C++ 读取/写入另一个进程的内存。
我一直遇到的问题是我得到了一个指针(例如 server.dylib+0x123AB),但我似乎找不到在 c++ 中动态获取 server.dylib 的内存地址/基地址的方法。是否有任何方法可以推荐尝试找到它。这可能是我的技能水平,但我发现尝试在 OsX 上修补内存是一项艰巨的斗争(周围的文档很少)。
任何意见,将不胜感激。
objective-c - 需要一种在 Priviliged Helper Tool(使用 SMJobBless 安装)和应用程序之间安全通信的方法
我正在尝试安装一个特权帮助工具来执行一些提升的工作。我也在使用SMJobBless。我能够很好地安装该工具并且还能够与之通信。我正在使用 Mac OS X 10.8.4 并使用NSXPCConnection。我.mach
在 plist 中添加了服务,它将安装在/Library/LaunchDaemons
. 我[initWithMachServiceName:options:]
在应用程序中使用,因为助手是特权工具,并且[– initWithMachServiceName:]
在助手中使用。通讯工作正常。
但问题是我尝试与我创建的另一个应用程序进行相同的通信,该应用程序根本没有任何代码设计(之前的帮助工具安装程序是代码签名的)。我尝试连接到辅助工具的 mach 服务,并且能够轻松连接。这是一个问题,因为任何人都可以与它通信并让它做任何事情。
我想要某种方式在我的应用程序和帮助工具之间进行安全通信。
非常感谢。
mysql - SQL Mach 两个表
我有2张桌子。
表格1
- 已计数约 2700 行
- 列:ID、NO、NAME
表2:
- 已计数约 300 行
- 列:ID、NAME
在哪里:
我想列出 Table1(2700 行),但如果 Table1 不包含 Table2 的某些行,我想写“NA”
我怎么能用 SQL 做到这一点?
ios - 如何在 iOS/iPhone/iPad 上获得 WiFi 加密模式?
如何在没有私有库的情况下在 iOS 中获取 Wi-Fi 加密模式?
ios - Mach 代码导致 iOS 和 Cocoa 上的内存耗尽
我正在使用以下代码来获取 iOS 和 Cocoa (Mach) 上的 CPU 负载。
奇怪的是:如果我定期调用这段代码,比如每秒 30 次,可用内存逐渐减少,最终程序崩溃。
用 Instruments 分析程序,我既没有看到泄漏,也没有看到新的内存分配(泄漏图是空的,分配图是平的)。尽管如此,可用的物理内存一直在下降,直到程序崩溃(在 256MB 的 iPod 上至少需要 40 分钟,所以这不是很大的内存占用)。
我怀疑这段代码使用了一些内核资源并且没有正确释放它。
有人能解释这种行为吗?