【问题标题】:Mac OS X architecture and command line [closed]Mac OS X 架构和命令行 [关闭]
【发布时间】:2015-12-26 11:19:32
【问题描述】:
我在大学学习计算机科学。他们使用 Ubuntu 来教授 Unix 架构,因此他们谈论进程(父/子)、forks、 管道、线程、调度等。我想买一个新的笔记本,我正在考虑 Mac OS X。我的问题是关于这个领域的:
- 什么是 Mac OS X 架构?
- 你能使用 Unix 命令(fork、pipe、...)吗?
- Linux 操作系统和 Mac OS X 在这个领域有什么区别?
- 我可以在 Mac OS X 中直接使用命令行和
gcc 命令用 C 语言编写吗?
【问题讨论】:
标签:
c
linux
macos
unix
programming-languages
【解决方案1】:
什么是 Mac OS X 架构?
Mac OS X 使用Darwin,这是一个经过修改的Mach 混合内核,具有类似FreeBSD 的系统调用接口。现代 Apple 计算机使用 ARM (AArch64) 或 x86 (x86_64/amd64) 处理器,但早期版本的 OS X 也可以在 PowerPC 平台上运行,例如早期的 Power Mac。
你可以使用 Unix 命令(fork、pipe、...)吗?
Mac OS X 已通过 IEEE 1003.1 (POSIX) 认证。您可以使用fork、pipe、open、read 和 write 等 POSIX 库函数,以及 ls、sh、cd、mkdir 等 POSIX 命令行实用程序和ed。
POSIX 是操作系统的行业标准,其中包含大部分 UNIX API,并由包括 Microsoft 在内的所有主要操作系统供应商实施(尽管他们故意将其 POSIX 实施搞砸以使其无用)。
Linux 操作系统和 Mac OS X 在这个领域有什么区别?
Linux 和 Mac OS X 都是类 UNIX 操作系统。两者都与 Solaris 或 OpenBSD 等“适当的” UNIX 有相当大的不同,但在为它们编写非 GUI 软件时,它们仍然感觉非常相似,两者的 GUI 系统完全不同(Linux 通常使用 X 窗口系统,在 OS X 你会使用 Cocoa,虽然 X 也可用)。
我可以在 Mac OS X 中直接使用命令行和 gcc 命令用 C 语言编写吗?
是的。 OS X 上的默认编译器是clang,如果我没记错的话,gcc 也可用。在所有 POSIX 平台上,您始终可以使用 cc、c89 或 c99 命令可移植地调用 C 编译器。