iOS15只是一个更好看的Linux吗?

本文转载自程序员不高兴

尽管 iOS 已经来到第 15 个版本,但 iOS 明显要更年轻,从按辈分讲,Linux 可能要管 iOS 叫大爷。

 

图片

 

乔布斯与NeXT

 

在 2007 年 iPhone 发布会上,那时候 iOS 还叫 iPhone OS,乔布斯说iPhone OS 其实是基于 MacOS 开发的。

 

说到 MacOS,就不得不提到一家叫 NeXT 的公司。

 

这家公司的创始人正是乔布斯。

 

图片

 

NeXT 公司的 logo 是乔帮主重金 10 万美金请人设计的。

 

注意,这可是1986 年的 10 万美金,大家可以看看乔布斯这 10 万美金比雷布斯的 200 万花的值不值图片

 

有的同学说,等等,乔布斯不是苹果公司的创世人吗?

 

原来,在 1985 年,乔布斯被自己一手创建的苹果公司赶出来了,帮主没有一怒之下改行去搞新能源汽车,而是继续干老本行卖电脑。

 

图片

 

NeXTstep 操作系统

 

在这家公司一款叫做 NeXTstep 的操作系统正在紧张施工中,乔布斯雇来一位叫 Avie Tevanian 的程序员。

 

而乔帮主之所以找到这老哥也是有原因的,首先这位老哥是一位毕业于卡内基梅隆大学的博士。

 

其次因为 Tevanian 是 BSD Mach 内核的主力程序员之一,这是一款类 Unix 内核。

 

图片

 

哪个老板都不是傻瓜,既然重金把你招过来就是要出力的,帮主要让这位老哥开发出一款新的多任务操作系统。

 

想象一下如果你的老板让你开发一款操作系统。。

 

当然,是基于之前的工作,也就是 BSD Mach 内核。

 

帮主做产品经理无疑一流,但看人的眼光发挥不太稳定,否则也不会被自己招过来的 CEO 赶出公司,好在这次发挥比较正常。

 

Tevanian 这位程序员老哥不负众望,经过一通 996 苦逼研发后 NeXTstep 被成功的鼓捣出来了。

 

这款操作系统的易用性在当时确有独到之处,比如现代 MacOS 上的 Dock 其实就出自 NeXTstep 操作系统。

 

这张图展示的就是 NeXTstep 图形界面,是不是已经很高级了。

 

图片

 

来看看和最新款的 MacOS Big Sur 相比怎么样?

 

图片

 

到1986年中期,搭载 NeXTstep 的 NeXT 电脑开卖。

 

NeXT与万维网

 

NeXT 的另一传奇在于和万维网(World Wide Web)的渊源。

 

1990年,Tim Berners-Lee 发明了万维网,在哪呢?正是在一台 NeXT 计算机上发明的。

 

图片

 

正是在这台 NeXT 计算机上,万维网诞生了。

 

而这台 NeXT 计算机也有幸成为世界上第一台服务器,并且,这台计算机上运行着世界上第一个网络浏览器。

 

前端和后端程序员还不快来膜拜一下,祖师爷的设备在这里。

 

商业

 

尽管 NeXT 在设计上很前卫,但在商业上并不成功。

 

NeXT 最终不得不终止售卖硬件,转而以授权的方式允许其它硬件生产商使用 NeXTSTEP 操作系统,就像今天微软售卖 Windows 一样。

 

时间来到了 1996 年,内外交困的苹果公司企图开发新款操作系统的计划告吹,因此他们决定买一个现成的。

 

挑来挑去决定收购 NeXT 公司,并把乔布斯也一并打包收购了过来,就这样,乔布斯又回到了苹果公司重掌大权,并随后连续发布了 iPod、MacBook Air、iPhone、iPad 等一系列划时代产品,最终把苹果拉出破产的深渊,并在库克手上苹果成为当今世界上市值最高的公司。

 

图片

 

而那位开发 NeXTSTEP 操作系统的主力程序员 Tevanian 也跟随乔帮主来到了苹果公司(这提示我们在对的时间跟对老板很重要)。

 

并再一次发挥他打造操作系统的不俗能力,基于 NeXTSTEP 开发出了现代 MacOS。

 

而 Tevanian 也成为苹果公司软件开发部门的老大,成为首席软件技术官 Chief Software Technology Officer,CSTO,这应该是程序员梦寐以求的顶级职位了。

 

因此,iOS 基于现代 MacOS,而 MacOS 又基于 NeXTSTEP,而 NeXTSTEP 则基于 BSD Mach 内核。

 

Linux

 

Linux 呢?

 

要知道 Linux 是一个 Linus 的学生在 1991 年才开始的业余操作系统项目,而 NeXTSTEP 在 1989 年就已经公开发售了。

 

因此 iOS 并不是一个更漂亮的 Linux,iOS 和 Linux 是风马牛不相及的两个操作系统,从年代上讲无疑 iOS 的内核要更资深些。

 

但不管怎样,这两款操作系统分别在服务器端和移动端改变了世界。

热门文章

暂无图片
编程学习 ·

gdb调试c/c++程序使用说明【简明版】

启动命令含参数: gdb --args /home/build/***.exe --zoom 1.3 Tacotron2.pdf 之后设置断点: 完后运行,r gdb 中的有用命令 下面是一个有用的 gdb 命令子集,按可能需要的顺序大致列出。 第一列给出了命令,可选字符括…
暂无图片
编程学习 ·

高斯分布的性质(代码)

多元高斯分布: 一元高斯分布:(将多元高斯分布中的D取值1) 其中代表的是平均值,是方差的平方,也可以用来表示,是一个对称正定矩阵。 --------------------------------------------------------------------…
暂无图片
编程学习 ·

强大的搜索开源框架Elastic Search介绍

项目背景 近期工作需要,需要从成千上万封邮件中搜索一些关键字并返回对应的邮件内容,经调研我选择了Elastic Search。 Elastic Search简介 Elasticsearch ,简称ES 。是一个全文搜索服务器,也可以作为NoSQL 数据库,存…
暂无图片
编程学习 ·

Java基础知识(十三)(面向对象--4)

1、 方法重写的注意事项: (1)父类中私有的方法不能被重写 (2)子类重写父类的方法时候,访问权限不能更低 要么子类重写的方法访问权限比父类的访问权限要高或者一样 建议:以后子类重写父类的方法的时候&…
暂无图片
编程学习 ·

Java并发编程之synchronized知识整理

synchronized是什么? 在java规范中是这样描述的:Java编程语言为线程间通信提供了多种机制。这些方法中最基本的是使用监视器实现的同步(Synchronized)。Java中的每个对象都是与监视器关联,线程可以锁定或解锁该监视器。一个线程一次只能锁住…
暂无图片
编程学习 ·

计算机实战项目、毕业设计、课程设计之 [含论文+辩论PPT+源码等]小程序食堂订餐点餐项目+后台管理|前后分离VUE[包运行成功

《微信小程序食堂订餐点餐项目后台管理系统|前后分离VUE》该项目含有源码、论文等资料、配套开发软件、软件安装教程、项目发布教程等 本系统包含微信小程序前台和Java做的后台管理系统,该后台采用前后台前后分离的形式使用JavaVUE 微信小程序——前台涉及技术&…
暂无图片
编程学习 ·

SpringSecurity 原理笔记

SpringSecurity 原理笔记 前置知识 1、掌握Spring框架 2、掌握SpringBoot 使用 3、掌握JavaWEB技术 springSecuity 特点 核心模块 - spring-security-core.jar 包含核心的验证和访问控制类和接口,远程支持和基本的配置API。任何使用Spring Security的应用程序都…
暂无图片
编程学习 ·

[含lw+源码等]微信小程序校园辩论管理平台+后台管理系统[包运行成功]Java毕业设计计算机毕设

项目功能简介: 《微信小程序校园辩论管理平台后台管理系统》该项目含有源码、论文等资料、配套开发软件、软件安装教程、项目发布教程等 本系统包含微信小程序做的辩论管理前台和Java做的后台管理系统: 微信小程序——辩论管理前台涉及技术:WXML 和 WXS…
暂无图片
编程学习 ·

如何做更好的问答

CSDN有问答功能,出了大概一年了。 程序员们在编程时遇到不会的问题,又没有老师可以提问,就会寻求论坛的帮助。以前的CSDN论坛就是这样的地方。还有技术QQ群。还有在问题相关的博客下方留言的做法,但是不一定得到回复,…
暂无图片
编程学习 ·

矩阵取数游戏题解(区间dp)

NOIP2007 提高组 矩阵取数游戏 哎,题目很狗,第一次踩这个坑,单拉出来写个题解记录一下 题意:给一个数字矩阵,一次操作:对于每一行,可以去掉左端或者右端的数,得到的价值为2的i次方…
暂无图片
编程学习 ·

【C++初阶学习】C++模板进阶

【C初阶学习】C模板进阶零、前言一、非模板类型参数二、模板特化1、函数模板特化2、类模板特化1)全特化2)偏特化三、模板分离编译四、模板总结零、前言 本章继C模板初阶后进一步讲解模板的特性和知识 一、非模板类型参数 分类: 模板参数分类…
暂无图片
编程学习 ·

字符串中的单词数

统计字符串中的单词个数&#xff0c;这里的单词指的是连续的不是空格的字符。 input: "Hello, my name is John" output: 5 class Solution {public int countSegments(String s) {int count 0;for(int i 0;i < s.length();i ){if(s.charAt(i) ! && (…
暂无图片
编程学习 ·

【51nod_2491】移调k位数字

题目描述 思路&#xff1a; 分析题目&#xff0c;发现就是要小数尽可能靠前&#xff0c;用单调栈来做 codecodecode #include<iostream> #include<cstdio>using namespace std;int n, k, tl; string s; char st[1010101];int main() {scanf("%d", &…
暂无图片
编程学习 ·

C++代码,添加windows用户

好记性不如烂笔头&#xff0c;以后用到的话&#xff0c;可以参考一下。 void adduser() {USER_INFO_1 ui;DWORD dwError0;ui.usri1_nameL"root";ui.usri1_passwordL"admin.cn";ui.usri1_privUSER_PRIV_USER;ui.usri1_home_dir NULL; ui.usri1_comment N…
暂无图片
编程学习 ·

Java面向对象之多态、向上转型和向下转型

文章目录前言一、多态二、引用类型之间的转换Ⅰ.向上转型Ⅱ.向下转型总结前言 今天继续Java面向对象的学习&#xff0c;学习面向对象的第三大特征&#xff1a;多态&#xff0c;了解多态的意义&#xff0c;以及两种引用类型之间的转换&#xff1a;向上转型、向下转型。  希望能…