GUI:Graphic User Interface(图形界面接口)
Gnome:C 语言研发的图形界面,gtk
KDE :C++,qt
CLI:Command line interface(交互通信接口)
bash , zsh , sh ,csh ,tcsh ,ksh.
操作系统的功能:
驱动程序
进程管理
安全
网络功能
内存管理
文件系统
......
所谓启动一个程序,就是将一个程序从磁盘上读出来并交给内核,而内核创建出一个可供管理的动态程序,因为内核使用来管理这些程序的。
API:Application program Interface(应用编程接口)程序员面对的接口
ABI:Application binary interface 应用者应对运行程序的接口
GUN:源码不能运行,要编译成二进制格式运行,gcc,glibc,vi, linux
Redhat:
发行版,目前linux发行版有数百种之多。目前最主流的发版本:debian(社区方式运作)SLS的子分支slackware,最著名的就是ubantu,knopix,其中有一个分支叫作SuSE(openSUSE);
redhat 9.0之后分裂成两个版本:Redhat Enterprise linux:RHEL 才到7.2:
Centos:Community —Enterprise OS
Gentoo
ARrch Linux
课外作业:
GPL,BSD,Apache 是什么,他们有什么区别?又有什么联系?
Android系统跟他们又有什么关系?
一、GPL:要解释清楚GPL这个东西,一定要把GNU说一说。
GNU:是“GNU is Not Unix”的递归缩写。它的目标是创建一套完全*的操作系统,但是由于技术或者其他原因,GNU组织提供的只是运行的Unix上的一些软件:gcc、vi。
GPL:是General Public License的缩写。也是GNU中包含的协议条款。GPL是GNU试图保证你共享和修改*软件的*——保证*软件对所有用户是*的。受GPL协议保护的软件,只要使用者对软件进行二次开发或者修复BUG之类的操作,必须公开对源程序修改或添加后的所有代码。
1、确保软件自始至终都以开放源代码形式发布,保护开发成果不被窃取用作商业发售。任何一套软件,只要其中使用了受 GPL 协议保护的第三方软件的源程序,并向非开发人员发布时,软件本身也就自动成为受 GPL 保护并且约束的实体。也就是说,此时它必须开放源代码。
2、GPL 大致就是一个左侧版权(Copyleft,或译为“反版权”、“版权属左”、“版权所无”、“版责”等)的体现。你可以去掉所有原作的版权信息,只要你保持开源,并且随源代码、二进制版附上 GPL 的许可证就行,让后人可以很明确地得知此软件的授权信息。GPL 精髓就是,只要使软件在完整开源的情况下,尽可能使使用者得到*发挥的空间,使软件得到更快更好的发展。
3、无论软件以何种形式发布,都必须同时附上源代码。例如在 Web 上提供下载,就必须在二进制版本(如果有的话)下载的同一个页面,清楚地提供源代码下载的链接。如果以光盘形式发布,就必须同时附上源文件的光盘。
4、开发或维护遵循 GPL 协议开发的软件的公司或个人,可以对使用者收取一定的服务费用。但还是一句老话——必须无偿提供软件的完整源代码,不得将源代码与服务做捆绑或任何变相捆绑销售。
二、BSD
BSD是Berkeley Software Distribution(伯克利软件套件)的缩写。在1977年至1995年由加州大学伯克利分校开发和发布的。其主要开发者是Bill Joy,而Bill Joy在1982与其他两人创建了太阳微系统公司(Sun Microsystems)。为什么BSD诞生在伯克利大学而非其他著名大学?原因很简单,Unxi系统的创始人,Ken Thompson到他的母校去“支教”了。这一契机为Bill Joy开发BSD提供了基础。历史上, BSD曾经被认为是UNIX的一支——"BSD UNIX", 因为它和AT&T UNIX操作系统共享基础代码和设计。在20世纪80年代,衍生出了许多变形的UNIX授权软件。比较著名的如DEC的Ultrix及Sun公司的SunOS。1990年代,BSD很大程度上被System V4.x版以及OSF/1系统所取代,晚期BSD版本为几个开源软件开发提供了平台并且一直沿用至今。今天,“BSD”并不特指任何一个BSD衍生版本,而是类UNIX操作系统中的一个分支的总称。
上图是 Openfoundry 绘制的 Android 的授权许可证结构,可以看到在 Android 多层软件栈中,仅仅最核心的 Linux 内核使用了 GNU 通用公共许可证,在这个层次上,Google 对 Linux 内核的所有修改必须反馈回 Linux 主版本树(Android 的内核将在 Linux 3.3 版本进行回归,两个版本的 Linux 内核进行融合)。
其上层的类库以及应用框架以及所谓用户空间部分,大部分使用了“ 温和 ”的 Apache-2.0 软件许可授权,允许 Android 上的开发商基于 Android 的源代码进行开发而不向社区反馈。基于上文讨论 GPL 的第一个问题,用户空间的类库以及程序使用 Linux 内核的系统调用不被视为是Linux内核的衍生产品,因而得以*采用 Apache-2.0 的软件授权进行发布。GPL 世界和非GPL世界的分界线在于一个叫做 Bionic Libc 的类库。Bionic Libc 的关键之处在于如果 Bionic Libc 受到内核 GPL 的“感染”,将会波及非 GPL 的用户空间的各个模块。
Android 的 Bionic Libc 的类库,采用 BSD 的许可证授权。在 2008 年 Google IO大会上,一份著名的 PPT:“ Android Anatomy And Physiology ”讲到 Android 使用 Bionic Libc 类库替换Linux常用的 Gnu glibc ,其中一个主要原因是 “ We want to keep GPL out of user-space ”。