Linux发展史及基础学习

一、计算机的组成及其功能

计算机由运算器、控制器、存储器、输入设备(Input)、输出设备(Output)五大部件组成。

  • 运算器:主要功能是用于完成各种算术、逻辑运算和数据传送等数据加工处理。
  • 控制器:主要功能是用于控制程序的执行,是计算机的大脑
  • 存储器:主要用于存放程序指令和数据。
  • 输入设备:用于将数据输入到计算机中,例如:鼠标、键盘。
  • 输出设备:将数据或程序的处理结果展示给用户,例如:显示器、打印机。

二、Linux内核功能以及作用

linux内核(kernel)是整个操作系统的最底层,它负责与计算机硬件进行交互,实现对硬件编程控制和接口操作,对硬件资源的访问和调度,并为计算机的用户程序提供一个高级的执行环节。

按功能分为:

  1. 进程管理
  2. 内存管理
  3. 文件系统管理
  4. 设备驱动程序
  5. 进程间通信和网络管理

三、常见的linux发行版,不同发行版之间的联系与区别

比较常见的发行版本有:Red Hat Linux、Fedora 、CentOS、SuSE、Debian、Ubuntu、等。

​ RedHat(RdeHat Enterprise Linux缩写为RHEL,Red Hat的企业版)是RedHat公司的LINUX发行版,主要做服务器版的linux开发,在版本上注重性能和稳定性以及对硬件的支持。

​ Fedora 奠基于RedHat Linux,它是一套功能完备、更新快速的免费操作系统。而对赞助者RedHat公司而言,它是许多新技术的测试平台,被认为可用的技术最终会加入到RedHat Enterprise Linux中。

​ CentOS(Community ENTerprise Operating System)它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用。CentOS 是RHEL(Red Hat Enterprise Linux)源代码再编译的产物,而且在RHEL的基础上修正了不少已知的 Bug ,相对于其他 Linux 发行版,其稳定性值得信赖。

​ SuSE原是以Slackwaare Linux为基础,并提供完整德文使用界面的产品。1992年PeterMcDonald成立了Softlanding Linu System(SLS)这个发行版。这套发行版包含的软件非常多,更首次收录了X Window及TCP/IP等包。

​ Debian,是一种自由操作系统,全称Debian GNU/Linux,采用Linux作为内核,由Debian计划(Debian Project)组织维护。Debian是一个纯粹由自由软件所组合而成的作业环境,而其背后并没有任何的营利组织支持。

​ Ubuntu,是一个以桌面应用为主的GNU/Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”。 Ubuntu基于Debian发行版和GNOME桌面环境,与Debian的不同在于它每6个月会发布一个新版本。

四、常见的开源协议以及区别

GPL

​ GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。这也就是为什么我们能用免费的各种linux,包括商业公司的linux和linux上各种各样的由个人,组织,以及商 业软件公司开发的免费软件了。

GPL协议的主要内容是只要在一个软件中使用(”使用”指类库引用,修改后的代码或者衍生代码)GPL 协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。这就是所谓的”传染性”。GPL协议的产品作为一个单独的产品使用没有任何问题, 还可以享受免费的优势。

由于GPL严格要求使用了GPL类库的软件产品必须使用GPL协议,对于使用GPL协议的开源代码,商业软件或者对代码有保密要求的部门就不适合集成/采用作为类库和二次开发的基础。

LGPL

​ LGPL是GPL的一个为主要为类库使用设计的开源协议。LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。

BSD

​ BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。

当使用了BSD协议的代码,或者以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:

如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议;如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议;不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。因此,很多公司企业在选择开源软件的时候都首选BSD协议,因为可以完全控制这些第三方的代码,而且在必要的时候可以进行修改或者二次开发。

Apache:

​ Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足的条件也和BSD类似:

需要给代码的用户一份Apache Licence;如果你修改了代码,需要在被修改的文件中说明;在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明;如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。

五、linux的哲学思想

​ 一切皆文件;由众多单一目的的小程序,一个程序只实现一个功能,多个程序组合完成复制任务;文本文件保存配置信息;尽量避免与用户交互

一切皆文件:是 Unix/Linux 的基本哲学之一。不仅普通的文件,目录、字符设备、块设备、 套接字等在 Unix/Linux 中都是以文件被对待;它们虽然类型不同,但是对其提供的却是同一套操作界面

单一小程序:程序和可执行文件不会太过于复杂和过大,这样才能保证linux的高效运行

文本文件保存配置信息:linux对于所有配置文件都存放在文本文件中,任意一款文本编辑器都能修改,无论什么配置修改都只需修改其配置文件即可

避免与用户交互:Linux上支持的脚本语言种类十分丰富、易学简单,易于使用者已脚本的方式自动完成众多功能

六、linux的目录结构以及目录结构命名规定

/bin: 所有用户可以的基本命令程序文件;
/sbin: 供系统管理使用的工具程序;
/boot: 引导加载器必须用到的各静态文件:kernel,initramfs(initrd),grub等;
/dev: 存储特殊文件或设备文件;
​ 设备有两种类型:字符设备(线性设备)、块设备(随机设备);
/etc:系统程序的配置文件,只能为静态;
/home:普通用户的家目录的集中位置:一般每个普通的家目录默认为此目录下的用户名同名 /home/USERNAME;
/root: 管理员的家目录;
/lib:为系统启动或根文件系统上的应用程序(/bin,/sbin等)提供共享库,以及为内核提供内核模块;
​ libc.so.:动态链接的C库;
​ ld: 运行时链接器/加载器;
​ modules: 用于存储内核模块的目录;
/lib64: 64位系统特有的存放64位共享库的路径;
/media: 便携式设备挂载点,cdrom,floppy等;
/mnt: 其他文件系统的临时挂载点;
/opt: 附加应用程序的安装位置;
/srv: 当前主机为服务提供的数据;
/tmp: 为那些会产生临时文件的程序提供的用于存储文件的目录;可供所有用户执行写入操作,有特殊权限;
/usr: user Hierarchy,全局共享的只读数据路径;
/usr/local: Local hierarchy ,让系统管理员安装本地应用程序;也通常用于安装第三方程序;
/var: var Hierarchy(层及目录),存储发生变化的数据的目录;
/proc: 基于内存的虚拟文件系统,用于为内核及进程存储其相关信息;
/sys: sysfs 虚拟文件系统提供一种比proc更为理想的访问内核数据的途径;其主要作用在为管理linux设备提供一种统一模型的接口;

猜你喜欢

转载自blog.51cto.com/5190716/2315386
今日推荐