运行程序格式: Windows:EXE,dll(dynamic link library) Linux: ELF, so(shared object)
程序:指令+数据
指令:只读
数据:读写
程序:算法+数据结构
库调用,系统调用:允许被调用的程序通常只提供指令,调用数据。
malloc(), free()
编程语言:
汇编语言:微码编程
系统中某些与硬件相关的特有代码、驱动程序开发:
高级语言C,C++:
系统级应用、驱动程序
高级应用java,python,php:
应用程序
Linux的发行版:
slackware:
suse
opensuse
debian
ubuntu
mint
redhat:
rhel:redhat enterprise linux
fedora
ArchLinux
Gentoo
LFS:Linux From scratch
Android:Kernel+busybox+jvm
GNU: GPLv2,GPLv3,LGPL(lesser) Apache:apache BSD:bsd
A:1000,GPL B:20000,20
问题1:Centos和Linux是什么关系?CentOS和RHEL是什么关系? 1、linux和CentOS是什么关系?
CentOS是Linux众多得发行版本之一,linux有三大发行版本(:Slackware、debian、redhat),而Redhat有收费的商业版和免费的开源版,商业版的业内称之为RHEL系列,CentOS是来自于依照开放源代码规定而公布的源代码重新编译而成。可以用CentOS替代商业版的RHEL使用。两者的不同,CentOS不包含封闭源代码软件,是免费的。
2、CentOS和RHEL是什么关系?
软件在发行的时候,有两种方式。一种是二进制的发行方式,另外一种是源代码的发行方式,rhel无论是哪一种发行方式,你都可以免费从网上获得。 RHEL 一般都提供源代码的发行方式但如果你使用了他们的在线升级或咨询服务,就必须要付费。
CentOS 就是将 RHEL 发行的源代码从新编译一次,形成一个可使用的二进制版本,由于 LINUX 的源代码是 GNU,所以从获得 RHEL 的源代码到编译成新的二进制,是合法。只是 REDHAT 是商标,所以必须在新的发行版里将 REDHAT 的商标去掉。CentOS 可以得到 RHEL 的所有功能,甚至是更好的软件,但 CentOS 并不向用户提供商业支持,当然也不负上任何商业责任。 问题2:各种开源协议的具体细节? GPL,LGPL,Apache,BSD GPL GPL软件的使用者有权力得到软件的代码,只要使用了GPL,在发布(redistribution)时,整个项目也必须是GPL的,即主程序和静态链接的库(linux的.a和Windows的.lib)必须是GPL的,动态链接库(Linux的.so,Windows的.dll)必须是GPL兼容的。所谓GPL兼容,也就是GPL软件中可以使用的库,这些许可证必须比GPL弱(如LGPL,BSD),而不能是某个商业许可证。正因如此,GPL是带有很强的传染性,只要你的软件使用了GPL的代码,那么就请以GPL开放源代码吧,并且你的项目中也不能有任何和GPL不兼容的库。
LGPL GPL 带有很强的传染性,那么如果一个库使用GPL发布,那么使用这个库的所有软件也必须使用GPL发布,这对不想开放源代码的商业软件来讲是致命的打击——你可以不使用其他的库,但最基本的libc是无论如何绕不开的,如果libc是以GPL发布,就相当于所有软件必须以GPL发布了。所以,LGPL(Lesser GPL)诞生了。
LGPL定义为,在以LGPL发布的库的基础上开发新的库的时候,新的库必须以LGPL发布,但是如果仅仅是动态链接,那么则不受任何限制。这样商业软件就可以随意的使用LGPL的库了。因此,LGPL也具有传染性,但限制在其基础上开发的库上,而并不限制使用它的程序本身——它的传染性远小于GPL。
BSD、Apache 2.0 相对GPL/LGPL的开放源代码,BSD,Apache 2.0就宽松许多——商业软件可以任意的使用BSD,Apache 2.0发布的软件代码,而不需要开放源代码,只需要提及代码的原出处就可以了。BSD和Apache 2.0提及的方式稍有不同,具体可以参考协议的详细内容。它们是GPL兼容的
程序包管理器:
rpm:
RHEL,Fedora,SuSe,CentOS
dpt:
Debian,Ubuntu
自由软件
自由使用;自由学习和修改;自由分发;自由创建衍生版
Linux的哲学思想:
1、一切皆文件:
把几乎所有资源,包括硬件设备都组织为文件格式;
2、由众多单一目的的小程序组成,一个程序只实现一个功能,而且要做好;
组合小程序完成复杂任务;
3、尽量避免跟用户交互;
目标:实现脚本编程,以自动完成某些功能;
4、使用纯文本文件保存配置信息;
目标:一款使用的文本编程器即能完成系统配置工作;
如何获取Centos的发行版:
http://mirrors.aliyun.com