er,对unix感兴趣是顺理成章的事情,对unix的了解反过来也可以促进对GNU/Linux的理解。不过在接触unix的过程中,大家一般都会有下面的疑问:
1969年的8月份,在老婆带着孩子回娘家后,AT&T公司Bell实验室的宅男程序员Ken Thompson花费了一个月的时间,使用汇编语言开发了第一个版本的unix,并将它运行在DEC公司的PDP-7的小型机上。这样的成果当然不是凭空产生,Thompson 和Dennis Ritchie作为Bell实验室的代表,参与了MULTICS项目。该项目是一个MIT、GE和Bell实验室的联合项目,旨在提供一个时分操作系统。在Bell实验室退出该项目后,Thompson变得无所事事(特别是老婆孩子又不在身边),反正闲着也是闲着,于是写出了第一个版本的unix。
本来,AT&T公司成立Bell实验室进行一些前瞻性的研究,最终当然是想转化为产品,对于Unix也不例外。然而,在当时,AT&T公司和美国政府签署了美国电话业务的专营协议,该协议规定AT&T不能从事软件销售业务,也就是说,AT&T公司不能把Unix当作一个产品来销售。因此,从Sixth Edition开始,AT&T将unix分发给美国的大学(当然,也收取了distribution fee),这些分发给大学的发布包里面包含了文档和unix kernel的source code。
这样,各大商业计算机制造公司在为自己的硬件平台撰写操作系统的时候就有两种选择,一种是购买商业版本的System V并进行二次开发,另外一种是使用BSD版本的unix进行开发。使用BSD版本进行开发对商业公司是有风险的,因为BSD中包括了AT&T的source code。大部分商业公司选择了前者,也就是基于system V进行开发。例如Sun公司的Sun OS是基于BSD的,随后,Sun公司的OS更名为Solaris,Solaris是基于System V的。IBM的AIX和HP的HP-UX都是基于System V的(AIX虽然是base system V的,但是也引入了4.2和4.3 BSD的source code,其实即便是System V,也会引入一些BSD的特性或者source code)。值得一提的是1980年,Microsoft也从AT&T获得了unix的授权,并发展了Xenix操作系统。后来SCO公司收购了Xenix并更名为SCO unix。
没有利益的冲突,也就不会有unix的版权之争了。1991年,CSRG的一些成员开了一家公司,名字是Berkeley Software Design, Inc (BSDI),BSDI旨在为Intel平台提供商业版本的BSD unix。BSDI贩卖的OS非常便宜,侵犯了USL的利益,1992年,USL将BSDI告上法庭。1994年,USL(这时候USL已经属于Novell公司而非AT&T)和BSDI达成和解:伯克利大学从Net/2 release 的18000个文件中移除3个文件,对一些文件进行简单修改,在70个文件中增加USL的copyright,在这些条件下,伯克利大学可以继续自由发布。而USL也不会对作出上述修改的软件及其派生软件进行任何权利的追述。1994年,4.4BSD-Lite发布,那些原来BSD Net/2 base的项目都使用了4.4BSD-Lite的源代码,也就不存在版权问题了。
今天,由于GNU/linux的迅猛发展,Unix的前途似乎一片黯淡。Novell从AT&T手中购买了UNIX 但却交给X/open管理,自己则发展了一套命名为UNIXWave 的操作系统。后来unix几经转手,目前属于谁已经不是那么重要了,重要的是,这个在40年前设计的操作系统,其思想在现在仍然闪烁着智慧的光芒。正是由于BSD忙于应付官司而给了linux kernel机会,否则,如果在386有非常优秀的BSD系统的话,Torvalds也许就不会创建linux kernel这个项目。时光飞逝,任何产品,任何公司,任何英雄都是浮浮沉沉,唯有思想存留。作为linuxer,希望能够采颉linux kernel的光芒,分享给大家,一起享受软件的乐趣。
目录 前言 top命令 htop命令 ps命令 free命令 vmstat命令 iosat命令 ne....
本文以 32 位系统为例介绍内核空间(kernel space)和用户空间(user space)。....
一、Linux device driver 的概念 系统调用是操作系统内核和应用程序之间的接口,设备....
微软刚刚宣布了要在 11 月 18 日举办Azure 开放日线上活动的消息,主题将围绕开发者们颇为关....
很多流行的Linux发行版都支持ss以及很多监控工具使用ss命令.熟悉这个工具有助于您更好的发现与解....
通常服务器会有许多块网卡,因此也可能会连接到不同的网络,在隔离的网络中,某些服务可能会需要进行通信,....
假设Client端发起中断连接请求,也就是发送FIN报文。Server端接到FIN报文后,意思是说....
英特尔发布了他们基于Xe-LP微架构的数据中心服务器GPU,初期主要针对高密度、低延迟的Androi....
本书全面介绍了嵌入式Linux系统开发过程中,从底层系统支持到上层GUI应用的方方面面,内容涵盖nux操作系统的安装及相关工具...
牛津字典中对“ kernel”一词的定义是:“较软的、通常是一个坚果可食用的部分。”当然还有第二种定....
本节资料从第24章开始,分别讲述了LCD和USB驱动程序移植、基于Qtopia和GUI开发、基于X和....
本节资料从字符设备驱动程序开始讲起,介绍了相应的设备驱动程序开发;后面还介绍了Linux异常处理体系....
当你开始使用 Linux 并关注关于 Linux 的网站和论坛时,你会经常遇到诸如 GUI、CLI ....
按上文描述,得到一个集成各种开发环境的VSCode之后,使用VSCode打开源码所在目录文件夹,这里....
很多初学者会问,嵌入式Linux怎么学?下面就来讨论讨论这个问题。 嵌入式Linux可以分为两部分:底层系统、应用开发。 对于...
在2020紫光展锐市场峰会平行论坛、工业智联专题论坛上,紫光展锐智能显示副总裁钟宝星表示,紫光展锐正....
Linux内核结构Linux内核主要由五个子系统组成:进程调度,内存管理,虚拟文件系统,网络接口,进....
ARM-linux 的交叉编译环境,一般的教程都是在linux 系统(比如ubuntu)上安装lin....
上一篇文章中《图解Linux网络包接收过程》,我们梳理了在Linux系统下一个数据包被接收的整个过程....
下文是在看csapp的时候引发的一些思考,其实之前看anup的时候也有所了解,不过时间有点长了,所以....
因为要对百万、千万、甚至是过亿的用户提供各种网络服务,所以在一线互联网企业里面试和晋升后端开发同学的....
近日,Linux 内核的稳定分支维护者 Greg Kroah-Hartman 在欧洲开源峰会上向人们....
本部分资料主要是关于嵌入式Linux系统移植,介绍相关概念、源码结构、相应的配置、编译、连接过程,以....
本节覆盖的内容还是挺多的,包括I2C总线协议及硬件介绍,以及它的一些操作实例;还有LCD控制器的介绍....
本书从最简单的点亮一个LED开始,由浅入深地讲解,使读者最终可以配置、移植、裁剪内核,编写驱动程序,....
本书个面介绍了嵌入式 Linux系统开发过程中,从底层系统支持到上层GUI应用的方方面面,内容涵盖n....
背景 Linux 作为最大也是最成功的开源项目,吸引了全球程序员的贡献,到目前为止,共有两万多名开发....
【100ASK_IMX6ULL(带屏) 开发板试用体验】基于unix socket的单主进程双从进程全双工通信
最近的工作项目中有用到unix socket进行进程间通信,这个库我以前没有听说过,最近用起来才发现真的...
硬盘分成相同大小的单元,我们称为块(Block)。一块的大小是扇区大小的整数倍,默认是4K。在格式化....
Linux内核提供了完整的USB驱动程序框架。USB总线采用树形结构,在一条总线上只能有唯一的主机设....
Linux 是一种自由和开放, 用C 语言和汇编语言写成, 并符合POSIX 标准的类Unix 操作....
有时候需要在 Linux kernel-大多是在需要调试的驱动程序-中读写文件数据。在 kernel....
根据数据分析机构NetMarketShare的最新统计,操作系统市场中,Windows 10在十月份....
想看看看有没有大佬使用虚拟机乌班图进行环境配置的视频教程。最近就卡在这了,没学过Linux,很无奈,不会用。 ...
前言 对于某些对时间精度要求较高的程序,用 c 写延时显得有些力不从心,故需用到汇编程序。 本人通过....
容器技术起源于Linux,是一种内核虚拟化技术,提供轻量级的虚拟化,以便隔离进程和资源。尽管容器技术....
Linux设置服务开机自动启动的方式有好多种,这里分别介绍一下centos操作系统开机脚本自启动和ubuntu操作系统脚本开机自启动的方...
内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性....
一、内核简介内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,....
近日,腾讯安全团队向Linux社区提交了多个NFC(Near Field Communication....
这是一个简短的文档,描述了Linux内核的首选代码风格。代码风格是因人而异的,而且我不愿意把我的观点....
在Linux下的开发中,printf打印调试信息默认输出到标准输出 stdout (即屏幕/终端)中....
过去几年,IBM的企业客户聊的最多的就是数字化转型,最近几个月的疫情又进一步的凸显了数字化转型的重....
本文通过对Linux下串口驱动的分析。由最上层的C库。到操作系统系统调用层的封装。再到tty子系统的....
现象: ssh-copy-id yourhost 报错 原因是:前面将 ssh 的端口从22改成了别的,指定 -p port 解决!...
从技术层面来说可以分为硬件层,驱动层,系统层和应用层。那么这些你们真的能明白吗,不明白或者有疑...
Linux中的Chmod命令用于更改或分配文件和目录的权限。在Linux/Unix系统中,文件和目录....
文件系统是对一个存储设备上的数据和元数据进行组织的机制。这种机制有利于用户和操作系统的交互。
恩智浦imx6ul平台: 1.POWER 电源接口 电源输入为 5V/2A+,给核心板提供 5V 电源,给底板供电。 原理...
在这篇 Linux 黑话解释中,你将了解 Linux 中的显示管理器。它是桌面环境的一部分吗?它的作....
本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载 选自Fueled....
Funpack第一期 - 好大一只荣哥哥自我介绍 姓名:好大一只荣哥哥 公司或学校:待业,换工作过程....
昨天我们看了圈圈和Rudy做的详细介绍,包括入门和连接阿里云。今天我们来看看嵌入式网络工程师Argo....
2020年,信创产业井喷式发展迎来产业变革的春天,提速数字化转型升级,焕发经济发展新动能。国内芯片、....
鸿蒙不是 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等...

