Linux,你了解多少!

1、Linux概述   

    Linux是一种自由和开放源代码的类UNIX操作系统。严格来讲,术语Linux只表示操作系统内核本身,但通常采用Linux内核来表达该意思。Linux则常用来指基于Linux内核的完整操作系统,包括GUI组件和许多其他实用工具。由于这些支持用户空间的系统工具和库主要由理查德·斯托曼于1983年发起的GNU计划提供,FSF提议将该组合系统命名为GNU/Linux,但Linux不属于GNU计划,所以这个名称并没有得到社区的一致认同,但我们不能忘记GNU运动对Linux的推动作用。此外,只要遵循GNU通用公共许可证,任何个人和机构都可以自由地使用Linux的所有底层源代码。

  *专业术语


UNIX

一种计算机操作系统,具有多任务、多用户的特征。于1969年,在美国AT&T公司的贝尔实验室由肯·汤普逊开发。

GUI组件

支持图形化桌面的工具

GNU计划

GNU计划(英语:GNU Project),又译为革奴计划,是一个自由软件集体协作项目,旨在实现软件的开源和合作

FSF

其主要工作是执行GNU计划,开发更多的自由软件

GNU通用公共许可证

也叫做LGPL协定,是人们对于开源代码的使用所必须遵循的规范




2、Linux发展

    摒弃华丽的图形界面,转而更加注重系统安全和性能的linux,必将受到人们的重视。慢慢的,一些个人和企业开发的第三方的非GNU组件也开始提供对Linux内核的支持,包括大量的有内核模块、用户应用程序和库等内容。Linux社区或企业也都开始推出一些重要的Linux发行版。

Linux,你了解多少!_第1张图片




3、Linux工作原理

  Linux,你了解多少!_第2张图片

   linux的最底层同样是CPU,内存各种各样的硬件,工作在硬件之上的内核才是整个linux操作系统最为重要的一环,其重要性,下面详细介绍。内核之上的是各种应用程序,还包括一个非常重要的shell接口,应用程序通过shell实现对硬件的操作,其可类比为Windows的点击事件。

    下面介绍一下内核在整个系统中的重要性:应用程序要想利用底层硬件的计算能力,就必须有一个应用程序程序来驱动硬件,而且上层的应用程序必须经过编译,才能转换为计算机能够识别的二进制代码。意味着任何一个应用程序要想运行,不仅需要一套完整的驱动,还要一个编译器。要知道,早期的CPU都有着自己特定的指令集,这也就决定了上层所调用的库的不同。即使你对某个程序完成了编译,当程序换做另一个平台时,编译过程将需要重新进行,而且原先驱动硬件的程序也将失去意义,程序的可移植性大大减低。于是就有了内核,它通过系统调用(System Call)隔离了不同应用程序对不同厂商CPU的依赖,不仅自身提供了强大的编译功能,而且驱动各种硬件的驱动程序也加载至内核,程序的便捷性大大提高。那么,上层的应用程序又是怎么编写的呢,利用那数不清的0和1?还是直接利用内核提供的System Call?显然都不可能,这些原始的编程接口,相信只有骨灰级的工程师才会调用吧!这时候内核将又派上重要用场,它对系统调用进行再一次的封装,变成库调用(Library Call)也就是ABI(应用程序二进制接口,也就是.so之类的文件),进而有了BIF(内置函数),也就是API(应用程序编程接口,如print(),read(),if等),这些代码将直接可以被应用程序所调用。在此之上,诞生了大量的应用程序,加之提供的VFS(虚拟文件系统),一个完整的linux操作系统就可以顺利的工作起来了。




4、Linux现状

    今天各种场合都有使用各种Linux发行版,家里的空调、智能手表、手机,航空......从这些嵌入式设备到超级电脑(Super Computer),并且linux在服务器领域也确定了相当的地位(通常服务器使用LAMP组合)。虽然大多数人依然对linux知之甚少,但它确实早已经走进了我们的生活,我相信开源的linux的明天必将更加美好。

你可能感兴趣的:(系统入门)