Darling Shell
我们计划实现一个漂亮且用户友好的 Darling GUI,但目前与 Darling 互动的主要方式是通过 Darling Shell。
基本用法
要在容器内部获取 shell,请像普通用户一样运行 darling shell。在幕后,此命令将启动容器或连接到已经运行的容器,并在其中生成一个 shell。它还将自动加载内核模块并根据需要初始化前缀内容。
在其中,您将找到一个模拟 macOS 的环境。macOS 是类 Unix 的操作系统,因此大多数熟悉的命令都将起作用。例如,运行 ls -l /、uname 和 sw_vers 可以探索模拟系统。Darling 预装了 macOS 发行的许多命令行工具,版本相同但较旧。Shell 本身是 Bash 版本 3.2。
容器内的文件系统布局类似于 macOS,包括顶级目录 /Applications、/Users 和 /System。原始的 Linux 文件系统可见为一个单独的分区,挂载在 /Volumes/SystemRoot。在 Darling 中运行 macOS 程序时,您可能希望它们访问您的主目录中的文件;为了方便起见,您的 Darling 主目录中有一个名为 LinuxHome 的符号链接,指向您的 Linux 主目录,从容器内看。此外,Darling 主目录中的标准目录(如 Downloads)被设置为指向您的 Linux 主目录中相应的文件夹。
运行 Linux 二进制文件
您还可以在容器内运行普通的 Linux 二进制文件。它们将不使用 Darling 的库和系统调用模拟,可能无法看到类似 macOS 的环境:
darling shellDarling [~]$ unameDarwinDarling [~]$ /Volumes/SystemRoot/bin/unameLinux
切换到 root
如果您遇到一个应用程序因为您不是 root 而退出(通常是因为它需要在您的主目录之外写入),您可以使用 fake sudo 命令。这是一个伪造的 sudo,因为它只会使 getuid() 和 geteuid() 系统调用返回 0,但不授予额外的特权。
示例
darling shell:打开 Bash 提示符。darling shell /usr/local/bin/someapp arg:执行带有参数的/usr/local/bin/someapp。请注意,路径在 Darling Prefix 中进行评估。该命令通过 shell 启动(使用sh -c)。darling ~/.darling/usr/local/bin/someapp arg:与前一个示例等效(不使用 shell),假设前缀是~/.darling。
