1985年Richard Stallman,成立GUN,并声称,GUN is NOT UNIX,它采用开放源代码,主张的自由含义为自由学习和更改,自由使用;自由分发和自由建立衍生版。在开源的世界当中,有许多的开源协议,其中有三大著名的开源协议:Apache、BSD和GPL协议,它们支撑了开源世界,使得让那些开源程序变得丰富多彩。程序员
操做系统的历史的发展以及Linux的如何诞生,在1990年,Linus开发操做系统Freax,发到新闻组,被命名为Linux,后通过Linus修改开发出Linux0.0一、0.02。。。1.0,Larry Wall开发diff和patch打补丁的命令程序使得Linux能够在安全性方面有很大的提高。编程
完整的OS(操做系统)指的是Kernel(内核)+Application(应用程序),而狭义上的OS仅仅指的是Kernel,Linux其实就是个内核,它的功能就是将硬件的复杂性和差别性给隐藏起来,经过内核输出为一个简洁而又统一的接口,咱们称之为系统调用,但内核又太过于底层,使得程序开发周期会很长,因此在系统调用的接口上面又封装了一个库函数,离人又更近了一步,使得程序能够快速的开发并且易于维护。安全
开发的程序的门派有那么两类:一种是大教堂式,能够理解为集中式开发,另外一种是集市,能够理解为就是有着不一样的应用程序,能够任意的定制或修改,而前者是已经定制完成且不可修改,咱们开发程序时,必然会用到与计算机所联系的程序接口,这种与计算机交互的接口咱们叫作Shell接口,它分为两大类:一个GUI,另外一个是CLI。ide
操做系统是一个通用的软件,对硬件进行一个资源的整合与利用同时对硬件进行监控,对于程序的运行提供了一个可靠的平台,使得开发不用面向复杂的硬件,对统一而又简洁的接口进行开发,那么操做系统的功能大体分为如下几种:函数
驱动硬件学习
资源分配spa
进程管理操作系统
文件系统管理开放源代码
安全防御接口
...
前面咱们讲过系统调用和库调用,能够理解为操做系统是一个通用的软件,即便在Linux写的程序源码在Windows上也是能够兼容编译以后是能够运行的,这个咱们就叫作API接口,它是程序员面对的编程接口,程序接口兼容的话,在Linux上写的源码程序能够在Windows进行编译,听从POSIX(可移植操做系统)。
在Linux系统中的应用程序通常由四部分组成:
二进制文件
库文件、头文件
配置文件
帮助文件
咱们如今都知道Linux自己就一个内核,除此以外,其它的应用程序都是GNU协议所开源的应用程序运行在该内核之上,这些应用程序提供的都是源代码,咱们都知道要想在电脑上用应用程序,必需要编译成为二进制格式才能运行,好处就是灵活性和自由性很强,举个例子:好比给你面粉,你能够作任何面食都行,但缺点就是用起来太麻烦,因此对于不少人来讲,一旦编译中出错,解决这些问题须要很长时间,为了解决这些问题,这些发行版就提供了已经编译好的,可以直接在电脑上安装的发行版安装程序供你使用,并且发行版有数百种之多,有的发行版昙花一现,有的经久不衰一直流传。
主要的三大版本有:Debian、Slackware、RedHat,这三个发行版是主要的支点,在它们的支点上有不少咱们所熟悉的分支,好比说Debian发行版上的分支有:Ubuntu和knoppix等,这个操做系统对于入门级别来讲上手很难,但上手了会以为很好用,是***最喜欢的一个操做系统,它是社区级别,任意免费下载,Slackware这个支点是有点特殊,它的前身是sls,不过sls也是昙花一现,但Slackware保留了下来,而且有许多的分支,最熟知的是S.u.S.E的OpenSUSE和SLES等,RedHat是一个商业公司,提供的系统是免费的,不事后续的服务是要收费的,好比打补丁或者升级软件等,不过虽然收费,可是源代码根据开源协议是要开放的,因此有个社区组织就把RedHat的源代码进行二次编译,也将把收费的服务变的免费起来,这个分支就是CentOS,不过,CentOS也被RedHat收购了。另外一个分支就是Fedora,是RedHat 9以后的技术转让,在此以后,RedHat就开发企业版,也就是咱们称之为RGEL。