电脑的操作系统,比如Linux或者Windows、还有苹果的IOS,这些都是用来操作硬件的一些软件的集合。一开始电脑被发明出来的时候还很蠢,大家在三体电视剧里看到过,那个年代操作电脑输入信息,需要在读卡纸上面打洞,可想而知有多麻烦。所以人们就想开发一套操作系统可以方便地操作电脑。
最早是Multics系统,它虽然失败了,但是培养出了很多人才。
接着是由Ken Thompson开发的Unics系统,也就是后来的Unix系统的原型。
1973年Unix系统正式诞生。一开始的Unics是汇编语言写的,后来为了可移植性用B语言进行了重写。但是,B语言的编译后运行性能不好。最终,用C语言重新改写后编译,就成了Unix。
BSD分支。
当时各个公司的硬件产品没有统一的标准,所以他们都需要为自己公司的计算机开发Unix系统。另一方面,出于商业考虑,他们想要收回Unix的版权。
没了版权大学里就没法教Unix的课了,为了应对这个问题,一个叫Tanenbaum的教授,参考早期的Unix版本,写了一个叫Minix的系统,也就是Mini Unix。
在安装一些Linux的软件的时候,常常会需要GCC这个库。这是一个C语言的编译器。大多数软件都需要编译成二进制文件后才能够执行。所以在unix系统开发的初期,Stallman开发了这样一个软件,就是后来大名鼎鼎的GCC(GNU C Compiler)。
而GCC就来自这个GNU计划。这个计划的目的是:建立一个自由、开放的Unix操作系统。
为了避免GNU计划中的软件被商用,Stallman与律师编写了有名的通用公共许可证协议,也就是GPL。这个开源协议,即使到了现在也还在被大量使用。目前最新版是GPLv3。
在GNU中开发的一些比较重要的软件还有:Emacs、glibc、Bash shell。这些都为后续一些软件的开发,奠定了基础。
基于bash、gcc都GNU工具,1991年芬兰大学生Linus开发了Linux。
到了这里,应该可以解开一个一直以来的疑问。那就是,为什么Linux系统是免费开源的。因为它一开始的初衷就是自由的,这个自由不是仅仅说的金钱上的free,而是人人都可以编写软件,人人都可以改进代码这样意义上的自由。
但这样就产生了另一个问题,为什么有些Linux的发行版本是收费的呢。这是因为他们卖的不是软件本身,而是服务。这些发行商往往会提供一些售后或修改的服务,他们是针对这些服务收费。