之间的关系是一个很有意思的话题。在目前主流的服务器端操作系统中,UNIX 诞生于 20 世纪 60 年代末,Windows 诞生于 20 世纪 80 年代中期,Linux 诞生于 20 世纪 90 年代初,可以说 UNIX 是操作系统中的老大哥,后来的 Windows 和 Linux 都参考了 UNIX。
现代的 Windows 系统已经朝着“图形界面”的方向发展了,和 UNIX 系统有了巨大的差异,从表面上甚至看不出两者的关联。
UNIX 操作系统由肯•汤普森(Ken Thompson)和丹尼斯•里奇(Dennis Ritchie)发明。它的部分技术来源可追溯到从 1965 年开始的 Multics 工程计划,该计划由贝尔实验室、美国麻省理工学院和通用电气公司联合发起,目标是开发一种交互式的、具有多道程序处理能力的分时操作系统,以取代当时广泛使用的批处理操作系统。
说明:分时操作系统使一台计算机可以同时为多个用户服务,连接计算机的终端用户交互式发出命令,操作系统采用时间片轮转的方式处理用户的服务请求并在终端上显示结果(操作系统将CPU的时间划分成若干个片段,称为时间片)。操作系统以时间片为单位,轮流为每个终端用户服务,每次服务一个时间片。
可惜,由于 Multics 工程计划所追求的目标太庞大、太复杂,以至于它的开发人员都不知道要做成什么样子,最终以失败收场。
以肯•汤普森为首的贝尔实验室研究人员吸取了 Multics 工程计划失败的经验教训,于 1969 年实现了一种分时操作系统的雏形,1970 年该系统正式取名为 UNIX。
想一下英文中的前缀 Multi 和 Uni,就明白了 UNIX 的隐意。Multi 是大的意思,大而且繁;而 Uni 是小的意思,小而且巧。这是 UNIX 开发者的设计初衷,这个理念一直影响至今。
有意思的是,肯•汤普森当年开发 UNIX 的初衷是运行他编写的一款计算机游戏 Space Travel,这款游戏模拟太阳系天体运动,由玩家驾驶飞船,观赏景色并尝试在各种行星和月亮上登陆。他先后在多个系统上试验,但运行效果不甚理想,于是决定自己开发操作系统,就这样,UNIX 诞生了。
自 1970 年后,UNIX 系统在贝尔实验室内部的程序员之间逐渐流行起来。1971-1972 年,肯•汤普森的同事丹尼斯•里奇发明了传说中的C语言,这是一种适合编写系统软件的高级语言,它的诞生是 UNIX 系统发展过程中的一个重要里程碑,它宣告了在操作系统的开发中,汇编语言不再是主宰。
到了 1973 年,UNIX 系统的绝大部分源代码都用C语言进行了重写,这为提高 UNIX 系统的可移植性打下了基础(之前操作系统多采用汇编语言,对硬件依赖性强),也为提高系统软件的开发效率创造了条件。可以说,UNIX 系统与C语言是一对孪生兄弟,具有密不可分的关系。
20 世纪 70 年代初,计算机界还有一项伟大的发明——TCP/IP 协议,这是当年美国国防部接手 ARPAnet 后所开发的网络协议。美国国防部把 TCP/IP 协议与 UNIX 系统、C语言捆绑在一起,由 AT&T 发行给美国各个大学非商业的许可证,这为 UNIX 系统、C语言、TCP/IP 协议的发展拉开了序幕,它们分别在操作系统、编程语言、网络协议这三个领域影响至今。肯•汤普森和丹尼斯•里奇因在计算机领域做出的杰出贡献,于 1983 年获得了计算机科学的最高奖——图灵奖。
我们重点介绍一下 Solaris,它是 UNIX 系统的一个重要分支。Solaris 除可以运行在 SPARC CPU 平台上外,还可以运行在 x86 CPU 平台上。在服务器市场上,Sun 的硬件平台具有高可用性和高可靠性,是市场上处于支配地位的 UNIX 系统。
对于难以接触到 Sun SPARC 架构计算机的用户来说,可以通过使用 Solaris x86 来体验世界知名大厂的商业 UNIX 风采。当然,Solaris x86 也可以用于实际生产应用的服务器,在遵守 Sun 的有关许可条款的情况下,Solaris x86 可以免费用于学习研究或商业应用。
FreeBSD 源于美国加利福尼亚大学伯克利分校开发的 UNIX 版本,它由来自世界各地的志愿者开发和维护,为不同架构的计算机系统提供了不同程度的支持。FreeBSD 在 BSD 许可协议下发布,允许任何人在保留版权和许可协议信息的前提下随意使用和发行,并不限制将 FreeBSD 的代码在另一协议下发行,因此商业公司可以自由地将 FreeBSD 代码融入它们的产品中。苹果公司的 OS X 就是基于 FreeBSD 的操作系统。
FreeBSD 与 Linux 的用户群有相当一部分是重合的,二者支持的硬件环境也比较一致,所采用的软件也比较类似。FreeBSD 的最大特点就是稳定和高效,是作为服务器操作系统的不错选择;但其对硬件的支持没有 Linux 完备,所以并不适合作为桌面系统。
Linux 内核最初是由李纳斯•托瓦兹(Linus Torvalds)在赫尔辛基大学读书时出于个人爱好而编写的,当时他觉得教学用的迷你版 UNIX 操作系统Minix 太难用了,于是决定自己开发一个操作系统。第 1 版本于 1991 年 9 月发布,当时仅有 10 000 行代码。
李纳斯•托瓦兹没有保留 Linux 源代码的版权,公开了代码,并邀请他人一起完善 Linux。与 Windows 及其他有专利权的操作系统不同,Linux 开放源代码,任何人都可以免费使用它。
据估计,现在只有 2% 的 Linux 核心代码是由李纳斯•托瓦兹自己编写的,虽然他仍然拥有 Linux 内核(操作系统的核心部分),并且保留了选择新代码和需要合并的新方法的最终裁定权。现在大家所使用的 Linux,我更倾向于说是由李纳斯•托瓦兹和后来陆续加入的众多 Linux 好者共同开发完成的。
李纳斯•托瓦兹无疑是这个世界上最伟大的程序员之一,何况,他还搞出了全世界最大的程序员交友社区 GitHub (开源代码库及版本控制系统)。
为什么选择企鹅,而不是选择狮子、老虎或者小白兔?有人说因为李纳斯•托瓦兹是芬兰人,所以选择企鹅,有人说因为其他动物图案都被用光了,李纳斯•托瓦兹只好选择企鹅。
我更愿意相信以下说法,企鹅是南极洲的标志性动物,根据国际公约,南极洲为全人类共同所有,不属于世界上的任何国家,可国家都无权将南极洲纳入其版图。Linux 选择企鹅图案作为 Logo,其含义是:开放源代码的 Linux 为全人类共同所有,可公司无权将其私有。
二者的关系,不是大哥和小弟,UNIX 是 Linux 的父亲这个说法更怡当。之所以要介绍它们的关系,是因为要告诉读者,在学习的时候,其实 Linux 与 UNIX 有很多的共通之处,简单地说,如果你已经熟练掌握了 Linux,那么再上手使用 UNIX 会非常容易。
UNIX 系统大多是与硬件配套的,也就是说,大多数 UNIX 系统如 AIX、HP-UX 等是无法安装在 x86 服务器和个人计算机上的,而 Linux 则可以运行在多种硬件平台上;
它属于开源软件,用户不用支付可费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改,无偿使用,无约束地继续传播;
它具有 UNIX 的全部功能,任何使用 UNIX 操作系统或想要学习 UNIX 操作系统的人都可以从 Linux 中获益。
开源软件是不同于商业软件的一种模式,从字面上理解,就是开放源代码,大家不用担心里面会搞什么猫腻,这会带来软件的革新和安全。
另外,开源其实并不等同于免费,而是一种新的软件盈利模式。目前很多软件都是开源软件,对计算机行业与互联网影响深远。
开源软件本身的模式、概念比较晦涩,这套《Linux教程》旨在指导读者应用 Linux,大家简要理解即可。
近年来,Linux 已经青出于蓝而胜于蓝,以超常的速度发展,从一个丑小鸭变成了一个拥有庞大用户群的真正优秀的、值得信赖的操作系统。历史的车轮让 Linux 成为 UNIX 最优秀的传承者。
Linux 是一个类似 Unix 的操作系统,Unix 要早于 Linux,Linux 的初衷就是要替代 UNIX,并在功能和用户体验上进行优化,所以 Linux 模仿了 UNIX(但并没有抄袭 UNIX 的源码),使得 Linux 在外观和交互上与 UNIX 非常类似。
相比于 UNIX,Linux 最大的创新是开源免费,这是它能够蓬勃发展的最重要原因;而目前的 UNIX 大部分都是收费的,小公司和个人都难以承受。
正是由于 Linux 和 UNIX 有着千丝万缕的联系,所以人们把 Linux 叫做“类UNIX系统”,下节我们将会着重讲解。
UNIX/Linux 系统可以粗糙地抽象为 3 个层次(所谓粗糙,就是不够细致、精准,但是便于初学者抓住重点理解),如图 3 所示。底层是 UNIX/Linux 操作系统,即系统内核(Kernel);中间层是 Shell 层,即命令解释层;高层则是应用层。
内核层是 UNIX/Linux 系统的核心和基础,它直接附着在硬件平台之上,控制和管理系统内各种资源(硬件资源和软件资源),有效地组织进程的运行,从而扩展硬件的功能,提高资源的利用效率,为用户提供方便、高效、安全、可靠的应用环境。
Shell 层是与用户直接交互的界面。用户可以在提示符下输入命令行,由 Shell 解释执行并输出相应结果或者有关信息,所以我们也把 Shell 称作命令解释器,利用系统提供的丰富命令可以快捷而简便地完成许多工作。
应用层提供基于 X Window 协议的图形环境。X Window 协议定义了一个系统所必须具备的功能(就如同 TCP/IP 是一个协议,定义软件所应具备的功能),可系统能满足此协议及符合 X 协会其他的规范,便可称为 X Window。
UNIX/Linux 系统不依赖图形环境,依然可以通过命令行完成 100% 的功能,而且因为不使用图形环境还会节省大量的系统资源。
缩略图应变成黑色,因此请像预览照片一样轻按它。再按一次返回按钮,然后尝试使用相同的黑色缩略图再次打开....
在使用omapl138跑linux,然后使用TI提供的syslink和slaveloader进行双核通讯和加载DSP代码,但是我的NAND FLASH是...
“我们在Windows Store中有一个新家。我们已经在Windows应用商店中集成了我们的优惠和....
由于这是黑客可以很容易利用的一项重大利用,因此,谷歌还没有找到时间对其进行修补,这是一个很大的惊喜。....
就手机而言,如果安装了供内部人员使用的最新Windows 10移动版,Lumia 950、950 X....
结束进程有很多方法,一般是kill,killall,kill等, 简单地使用kill命令是最安全的。
(1) Cross.tar (编译 kernel 的交叉编译工具)(2) mips-elf.tar ....
将照片或文件从计算机传输到手机可以变成USB电缆和电子邮件跳舞,但是Microsoft和Samsun....
本文主要讲述嵌入式Linux启动时间优化的秘密,我们继续上篇没有讲完的嵌入式Linux启动时间优化方....
购买新的MGC31 30,并使用Linux机器进行开发活动。请让我知道如何将MGC3130与Linux系统接口。我试过将MGC3130与minic...
在两个不同的Windoz 7机器上,但是在NOT和Ubuntu 16.04Linux上,在启动IFF时,我得到一个例外,至少有一个项目是在一组...
本文主要讲述嵌入式Linux启动时间优化的秘密,我们继续上篇没有讲完的嵌入式Linux启动时间优化方....
开发板是TI 的omapl138(LCDK),SD卡是板子自带的,有BOOT ,FILESYSTEM分区。 为什么...
我用的是TI公司的OMAPL138(LCDK)开发板,笔记本电脑,XDS100V2仿线 在Linux下调试是不是必须用...
xilinx系统生成器版本14.2可以在我的Windows 8.1笔记本电脑上运行吗???请帮助...
本文主要讲述嵌入式Linux启动时间优化的秘密之三-内核,我们继续上篇没有讲完的嵌入式Linux启动....
一、Linux device driver 的概念 系统调用是操作系统内核和应用程序之间的接口,设备驱动程序是操作系统内核和机器硬件之间...
这些日子以来我们对COVID-19病毒的传播和应对问题既焦头烂额,又高度关注。今天,微软提供了另一种....
用户反馈称,安装该更新后,Windows 10系统会出现0x8007000d,0x800f081f,....
Microsoft扩展了支持范围很好,但是不要期望新功能。微软已经明确表示仅扩展安全更新。因此,5月....
在 Wine 中运行的 Windows 应用程序直接与 USB 设备交互将会有更好的支持。Wine ....
Linux系统诞生二十多年了,全球几百万开发者维护并使用Linux,堪称全人类智慧的结晶。为什么却始....
指实实在在、存在的硬件专用独立主机或服务器设备,性能和稳定性都比较强,因此,价格也相对比较昂贵,需....
特别说明:第一个步骤和第二个步骤我将直接跳过(查看原理图和芯片手册),因为这两者取决于我们的硬件平台....
监听端口 ss -tlnp 查看哪些进程使用了监听端口 防火墙 systemctl....
我们知道 Linux 下有非常多的命令,我们可以通过这些命令在 Shell 环境下与机器进行交互,那....
Windows WinKey + R功能将被PowerToys取代 引入Fluent设计元素
外媒 TheVerge 报道称,微软正在酝酿 PowerToys 的另一项更新,其中包括面向 Win....
SQLite作为一个嵌入式的数据库,主要的是程序小(200多K),速度快,支持ANSISQL-92的....
第一届openEuler峰会2020在线召开 鼓励全球开发者在openEuler平台上提出新方案
2020年1月1日,华为服务器操作系统EulerOS正式开源,命名为openEuler,开源社区也正....
微软确认20H1/Version 2004正式名称为May 2020功能更新 计划在未来几周时间内继续打磨
面向Release Preview通道用户,微软终于放出了Windows 10 Version 20....
在Windows中,我们经常使用ssh,vnc等工具对Linux操作系统进行远程控制,但是在linu....
随着Windows 10逐渐向Fluent Design设计风格切换,微软也为用户陆续提供了越来越多....
学习硬件好还是软件好,如果你能精通其中的任何一个,都好! 学硬件,绝大多数人大学毕业后都可以做硬件设....
深度Deepin v20操作系统正式发布 底层仓库和内核分别升级到Debian 10、Kernel 5.3
继1月份国产操作系统UOS v20版发布之后,深度的Deepin v20操作系统正式发布了,带来了全....
前者实际上是一中 amp 架构,freertos 和 linux 是相互独立的两个操作系统,只会进行....
Windows 10系统获取新功能和安全更新的方式即将迎来重大改变。目前微软采用一年两次功能更新,每....
微软发布新的Windows 10累积更新 进一步更改以提高Windows执行基本操作时的安全性
在本月的补丁星期二活动日上,微软发布了新的Windows 10累积更新,并且照常将重点放在安全性能改....
LINUX下用的各种程序,和WINDOWS一样,开发LINUX本身,以及LINUX下的设备驱动。
这意味着新版本将仅反映正在进行的最新工作。当有新功能要测试时,它们可能会成为下一个功能更新或服务版本....
同时使用手机和PC可能会很痛苦,这也是Microsoft开发“您的手机”应用程序的部分原因。内部测试....
根据周三晚些时候发表的ZDNet报告,该公司认为Windows10X设备的近期前景不太乐观。 Win....
Linux桌面版推广不起来主要是应用生态系统无法构建,就拿国内来讲,安装一个Linux系统里面常见的....
据外媒报道,微软运行在Chrome引擎上的Edge浏览器最新版现也可以在非Windows 10操作系....
据外媒报道,微软运行在Chrome引擎上的Edge浏览器最新版现也可以在非Windows 10操作系....
据Windows Latest报道,在Windows 10 2020年5月更新中,微软更新了Wind....
去年12月,微软宣布已完成了Windows 10 Version 2004功能更新的开发,并确认RT....
三月中旬,微软曾通过博客宣布,WSL2 将在 Windows 10 2004 版本中正式进入普遍可用....
Linux很强大,它是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多....
Windows Defender更名Microsoft Defender 新版本将于5月开始向消费者推出
据外媒报道称,微软即推出的Windows 10 5月更新中,将对一些新的功能进行调整,当然这个调整也....
系统调用时操作系统的最小功能单位。根据不同的应用场景,不同的 Linux 发行版本提供的系统调用数量....
Linux普及度不高主要说的是在桌面版里面,在服务器以及移动设备端有些非常大的占比,特别是移动端占比....
TI AM437x高性能处理器基于ARM Cortex-A9内核。 这些处理器通过3D图形加速得到增强,可实现丰富的图形用户界面,还配备了协处理器,用于进行确定性实时处理(包括EtherCAT,PROFIBUS,EnDat等工业通信协议)。该器件支持高级操作系统(HLOS)。基于Linux的® 可从TI免费获取。其它HLOS可从TI的设计网络和生态系统合作伙伴处获取。 这些器件支持对采用较低性能ARM内核的系统升级,并提供更新外设,包括QSPI-NOR和LPDDR2等存储器选项。 这些处理器包含功能方框图中显示的子系统,并且后跟相应的“说明”中添加了更多信息说明。 处理器子系统基于ARM Cortex-A9内核,PowerVR SGX图形加速器子系统提供3D图形加速功能以支持显示和高级用户界面。 可编程实时单元子系统和工业通信子系统(PRU-ICSS与ARM内核分离,允许单独操作和计时,以实现更高的效率和灵活性.PRU-ICSS支持更多外设接口和EtherCAT,PROFINET,EtherNet /IP,PROFIBUS,以太网Powerlink,Sercos,EnDat等...

