macos-Mac OS X和BSD有多紧密的联系?

我读到Mac OS X和bsd相关。 它们之间有多紧密的联系。 可以调整Mac OS X软件并将其安装在BSD上吗?

6个解决方案

31 votes

在OS X 10.4时代,我花了一些时间未能为OS X编写VFS。在那些日子里,在内核的主要子系统中,只有网络堆栈和VFS仍然是真正的BSD。 那时,甚至对VFS进行了部分重写,以使其更具模块化(所有BSD VFS数据结构都变为不透明指针,并且API通过所谓的KPI函数)。 我相信网络堆栈将以同样的方式运行。 在与用户区的接口上还存在一个薄层,这使得OS对用户区程序而言就像BSD。

其他所有内容几乎都被重写或替换了:内存管理,过程管理等来自Mach微内核; 设备驱动程序子系统由Apple从头开始编写。

在用户界面编程方面,OS X与BSD非常相似,为BSD编写的程序应易于移植。 但是,OS X具有许多BSD中不可用的API。 这些几乎包括与用户界面有关的所有内容-图形,声音等。还有BSD中不存在的其他界面,例如启动API,它是OS X启动后台进程的首选方式。

JeremyP answered 2020-07-03T05:54:39Z

20 votes

Wikipedia BSD的文章很好(并且根据我的理解,这是值得的)。 它说,构建苹果Mac OS X的系统Darwin是4.4BSD-Lite2和FreeBSD的派生产品,并指出4.4BSD是Berkeley参与的最后一个版本。

因此,达尔文就是您所能获得的BSD(就像其他所有BSD一样!)。 OS X指的是发行版中那些不是开源的部分,主要是GUI,但包括各种框架,而依赖这些框架的任何部分都不是可移植的。

OS X总体上是UNIX 03系统。 这等效于成为真正的POSIX兼容系统(而不是类似POSIX的系统)。

正如其他答案所指出的那样,对于拥有大量Unix经验的人来说,操作系统的用户区部分并不令人惊讶,而且我在OS X上构建可移植的unix软件几乎没有任何困难。

相比之下,操作系统的非用户部分则完全不同。 苹果似乎很乐意在这些领域进行创新。 我认为(但我不是很肯定)这些变化是达尔文的正式组成部分。 最明显的区别之一是,launchd已取代了inetd和许多启动基础架构中的cron。

Norman Gray answered 2020-07-03T05:55:18Z

7 votes

如果Mac软件使用Apple专有的显示库Cocoa(如果在带有GUI的Mac上运行并且不需要启动X服务器,则可以使用该库),那么在正常的BSD系统上运行代码可能会遇到一些问题。

如果您的代码仅使用POSIX指定的功能,它将干净地移植到Linux,BSD甚至Windows。

Mac OS X和BSD确实是相关的。 尽管它们具有不同的内核,但是它们共享一个共同的祖先和大量的用户区代码。 显然,我无法量化“接近程度”-这是主观的。

Borealid answered 2020-07-03T05:55:47Z

4 votes

Mac OS X是BSD Unix的一种。 正如Borelaid已经指出的那样,这并不一定意味着将Mac应用程序移植到其他BSD版本将很容易甚至可管理,远不及其他常见BSD版本之间。 他们每个人都有自己的特点,而OS X比大多数人都多。

将程序从其他BSD风格移植到OS X也涉及工作,并且并不总是(顺利或根本没有)工作,但是通常要简单得多。

Christopher Creutzig answered 2020-07-03T05:56:12Z

1 votes

这取决于您要移植的应用程序类型。 如果编写兼容POSIX的C / C ++控制台程序,它们将在任何兼容POSIX的系统(主要是Linux和BSD风格)下编译并正常工作,但是请注意OS X通常不会实现最新的POSIX功能(例如utimensat )(可在Linux中使用)。 另一方面,图形应用程序使用Cocoa或较旧的Carbon,这需要GNUstep。 移植图形应用程序非常少见,因为每个图形环境都有不同的设计标准和约定,因此通常必须为每个图形环境从头开始编写图形应用程序。

Philipp answered 2020-07-03T05:56:33Z

0 votes

已安装-否。

从源代码移植,也许-参见Gnustep,Cocotron,EtoileOS-所有这些都与Cocoa开发堆栈(但与较旧的Carbon不兼容)具有不同程度的兼容性。以此方式开发的x平台Objective-C软件数量有限。

JulesLt answered 2020-07-03T05:56:58Z

bsd mac linux,macos-Mac OS X和BSD有多紧密的联系?相关推荐

  1. linux bsd命令,linux ps命令详解(BSD风格)

    linux ps命令详解(BSD风格) linux中ps只显示进程的静态快照,及瞬间的进程状态,它拥有众多的风格,可分为3组:UNIX风格,BSD风格,GNU风格,本文介绍BSD风格的ps指令. 参数 ...

  2. mvn Mac Linux 版本,Mac 下 Maven 的命令行安装

    JDK 的安装 系统的"系统偏好设置"中我们可以看到 Java的设置, Java 7(含) 之后的版本在这里可以看到. 点击进去后,可以看到独立的 Java 控制面板 注意,这里是 ...

  3. mac linux 远程,Mac远程桌面到Linux服务器

    假期结束,回到学校开始干活 :] 为了远程使用Linux服务器,折腾了一个下午.最终看来还是用vnc最简单了. 实验室有两台强劲的Linux服务器用来做研究.之前我一直都是用ssh登到服务器上去码代码 ...

  4. VIM安装YouCompleteMe(Windows/Mac/Linux)

    VIM安装YouCompleteMe 前言 前一阵子一直在折腾YouCompleteMe这个插件,在Mac.Ubuntu.Windows上都试过,全部安装成功,其中 windows最费劲,今天也写出来 ...

  5. linux macos 程序员,关于macos:Linux相当于Mac OS X“open”命令

    我在命令行中发现Mac OS X中的"open"命令非常方便. 从"男人开放": The open command opens a file (or a dir ...

  6. bcd 增加 引导linux系统 mac os x 系统,Windows 7+Windows XP+Ubuntu+Mac OS多系统引导完全解决方案...

    4个操作系统集成:Windows XP(选择原版最好 15G),Windows 7(选择原版最好 25G),Ubuntu(10G),Mac OS(iDeneb版Mac OS 才能安装到PC机上 20G ...

  7. 将服务端移植到Linux和MAC OS

    文章目录 1 将服务端移植到Linux和MAC OS 1.1 概述 1.2 服务端代码实现 1 将服务端移植到Linux和MAC OS 1.1 概述 这里我们将服务端移植到Linux和MAC OS,差 ...

  8. bcd 增加 引导linux系统 mac os x 系统,系统引导维护工具 EasyBCD 2.4.0.237 中文多语免费版...

    EasyBCD 2.4 中文多语特别版由大眼仔旭(www.dayanzai.me)发布.EasyBCD 是一款免费软件,EasyBCD 能够极好地支持多种操作系统与 Windows 7.Vista 结 ...

  9. 将客户端移植到Linux和MAC OS

    文章目录 1 将客户端移植到Linux和MAC OS 1.1 概述 1.2 客户端移植代码 1 将客户端移植到Linux和MAC OS 1.1 概述 我们这里把将客户端移植到Linux和MAC OS, ...

最新文章

  1. R语言dplyr包使用mutate函数生成新的数据列(不改变原数据列)实战
  2. redhat6.4 添加yum本地源和安装virtualbox增强组件
  3. AQS抽象队列同步器详解(待更新)
  4. C# 解决串口接收数据不完整
  5. SAP云平台上的Business Partner业务合作伙伴和账户主数据服务
  6. LPWSTR 类型的实参与const.char *类型形参不兼容
  7. 数学哲学与科学哲学和计算机科学的能动作用,数学哲学与科学哲学和计算机科学的能动作用...
  8. vue创建项目报错Failed to get response from /vue-cli-version-marker 只有一个package.json文件
  9. 测试技术-兼容性测试
  10. 程序员今年最值得关注的 23 种新移动技术
  11. 如何阅读一本书——阅读笔记+个人体会【建议写书评或文献综述前读读这本书】
  12. AlibabaCloud
  13. 我喜欢出发 - 汪国真
  14. 14、odoo的仪表板
  15. c#开发wps插件(3)部署
  16. 华为海思人脸识别方案 海思 3516嵌入式 Linux系统人脸识别开发模组套件
  17. 一文带你了解学习python的用处及好处,建议收藏
  18. 网络设备的升级与备份
  19. 联想LJ2400激光打印机开机4灯闪烁维修分析
  20. 怎么注册国外企业电子邮箱地址?有微信企业邮箱登录入口吗?

热门文章

  1. 云媒体服务器设置在哪个文件夹,安装和使用Jellyfin配置Linux媒体服务器
  2. Markdown图片居中、文字居中
  3. 求职软件开发工程师,我需要准备什么?一些资源分享
  4. 第一章 什么是CRM?
  5. 杰奇1.7用php53,杰奇CMS 1.7商业版注入漏洞
  6. 关于苹果开发证书失效的解决方案(2016年2月14日Failed to locate or generate matching signing assets)
  7. 微型计算机拆的步骤视频,微型计算机拆卸.ppt
  8. 企企通受邀参加中国供应链高层峰会,共同探讨采购与供应链解决方案
  9. 永恒之蓝黑脏牛提权范围
  10. 激光SLAM理论与实践(一)--激光SLAM简要介绍