问题标签 [darwin]

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 投票
0 回答
246 浏览

kernel - Darwin内核磁盘设备通过磁盘仲裁

所以我将最新的 ZFS 移植到 OSX ( github/osx.zfs),然后添加了 ZVOL,因为它是我想要的。现在,纯 BSD 内核方面的东西似乎确实可以工作,但我在 Apple 特定的集成方面遇到了问题。我只是错过了一块拼图。

bdevsw我通过定义andcdevsw并调用bdevsw_addand来创建类似于其他 Darwin 内核示例的新虚拟磁盘 (ZVOL) cdevsw_add_with_bdev。从这里可以看出:创建 /dev/zfs,它是主 ZFS 节点并处理所有特定的 ioctl。然后这里创建ZVOL虚拟磁盘节点create /dev/disk_POOL_name

(我已经尝试将开发节点命名为disk3并且rdisk3没有任何区别)。

我处理我收到的大多数 ioctl newfs_msdos newfs_hfs newfs_udf,这里处理 ioctl

所以,基本上,它会创建 BSD /dev/ 条目,我可以新建我的虚拟磁盘,我可以挂载它,使用它。从 Unix POV 来看,它似乎可以作为磁盘工作。

但不是在 OSX 中。它不显示在“diskutil 列表”中,也不显示在 GUI 磁盘实用程序中。显然我需要在内核中做一些其他的事情来考虑它。或者,这是我应该在用户区做的事情吗?

我还没有处理任何与分区有关的事情,但我觉得原始磁盘至少应该显示在磁盘工具中,以便我可以尝试对其进行分区。

0 投票
3 回答
3535 浏览

unix - 如何在行尾添加一个空格?

我正在使用 shell 脚本,如果最后一个字符是,我想在行尾添加一个空格:,.-

我试过sed 's/,.-\r\n/,.- \r\n/g' part2.out > part3.out了,但没有用,我错过了什么?

0 投票
9 回答
125323 浏览

macos - OS X 是否有等效的 lsusb

这个问题似乎遍布谷歌,但答案都指向使用 System Profiler。这很好,但是使用 System Profiler,您得到的只是如下所示:

如果您想要的只是一堆设备描述符的内容,那就太好了,但lsusb会为您提供更多信息——关于接口和端点、接口关联、复合设备的信息……在 OS X 中哪里可以找到这些信息?必须有一个工具可以做到这一点?

0 投票
1 回答
526 浏览

c - 以编程方式获取 OSX 上网络设备的多播组成员身份

我正在寻找如何以编程方式(在 C/C++/等中)获取此类信息:

... 等等 ...

在 Linux 上,我可以从 /proc 文件系统中获取它,但是大量搜索却没有提供有关 OSX 的任何信息。我怀疑这可能是 sysctl() 的事情,但我没有发现关于使用哪个 sysctl() 请求。

0 投票
1 回答
142 浏览

shell - 在达尔文机器中执行脚本时出错

我在达尔文机器上收到以下错误:

这是操作系统版本:

Darwin ...... 9.8.0 达尔文内核版本 9.8.0:2009 年 7 月 15 日星期三 16:57:01 PDT;root:xnu-1228.15.4~1/RELEASE_PPC Power Macintosh

你知道它可能是什么吗?

0 投票
0 回答
985 浏览

macos - 你可以在 darwin 上运行 mac os x 二进制文件吗?

OS X 和 Darwin 可执行文件/框架/库格式是否相同?如果您仅使用 Foundation.framework 编译命令行工具,并且您有另一个运行 Darwin 的系统(相同的架构)。如果你从 Mac OS X 复制 Foundation.framework,你能在 Darwin 中运行你的程序吗?

0 投票
0 回答
237 浏览

kernel - 在 kext 中为 IOBlockStorageDevice 找到我自己的 BSD 名称

我认为这应该是一件很容易的事情,但它现在正在逃避我。大多数示例都处理“如果你有一个 BSD 名称 /dev/disk,你如何找到该设备”,而我刚刚注册了我的设备,并想找到它提供的 BSD 名称。即 /dev/disk2。

我制定标准

为新设备创建一个小块;

现在,我想找出我的新节点的 BSDName。如果它在 net_lundman_zfs_zvol 或 net_lundman_zfs_zvol_device 中,对我来说并不重要。

我以为我可以打电话

但它始终为 NULL。所以可能我必须找到我的IOMedia *并从那里打电话getProperty()

0 投票
2 回答
1008 浏览

kernel - 使用自定义 Darwin 内核

我正在为 Mac OS(Mountain Lion,Darwin 2050.22.13)构建一个自定义内核。我可以很好地构建内核,我可以向它添加东西,但我错过了一些东西。

为了简短起见,这里是我正在尝试做的一个示例。

假设我想添加一个函数 [my_func(void*)] 来表示,bsd/kern/kern_fork.c 我可以添加一个包含文件并将其粘贴到 osfmk/bsd 并更改 Makefile 以便新的 .h 文件现在被复制到 BUILD/obj/RELEASE_X86_64/EXPORT_HDRS/

我还将函数名称添加到 config/BSDKernel.exports。我可以在 /mach_kernel 中看到带有符号的函数,所以它看起来很好。

现在,这是棘手的部分。这本身并不棘手,但我无法弄清楚。我想要做的是能够从我也在编写的 kext 中调用我的函数。基本上它对我来说是某种私有 API。

我的 kext 编译得很好,但是当我运行 kextload/kextutil 时它抱怨它找不到 my_func 符号。

(内核)kxld[com.blah.foo.kext]:此kext无法解析以下符号(内核)kxld[com.blah.foo.kext]:_my_func

kextlibs 返回:对于所有架构:com.apple.kpi.libkern = 12.3

对于 x86_64:在任何库 kext 中都找不到 1 个符号

所以问题是如何使我的函数对我的 kext 可见?谢谢!

0 投票
2 回答
483 浏览

bash - OS X/Darwin 上的子shell、权限和以下符号链接:为什么会出现权限错误?

(编辑:有一个错字导致问题。请参阅现有答案的评论)

我想要stat一个符号链接到另一个文件的文件,并认为我可以使用 subshel​​l 和 readlink 命令替换来完成这项工作。对于上下文,让我提一下这是在 OS X 10.8.3 (Darwin) 上。

但是我遇到了一个权限被拒绝的错误。

我检查了 readlink 命令的输出,果然,我没有发现任何问题。

stat直接输入文件不会引发错误并产生我需要的输出。

是什么导致许可在一种情况下被拒绝,但在另一种情况下却没有?

0 投票
1 回答
141 浏览

python - set up Darwin Calendar Server get an error about "MD5 sum for download file..."

When I set up Darwin Calendar Server, there is an error about download the dateutil:

I find the source code of calendar sever and find the code below(https://github.com/trevor/calendarserver/blob/master/support/build.sh): check_hash () { local file="$1"; shift;

Is there anybody know how to solve the problem? I could not find any useful page from google.