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发行版。


3、Linux工作原理

  

   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的明天必将更加美好。

Linux,你了解多少!相关推荐

  1. 过滤Linux下不同大小的文件,linux查找当前目录下 M/G 大小的文件,删除Linux下指定大小的文件

    过滤Linux下不同大小的文件,linux查找当前目录下 M/G 大小的文件,删除Linux下指定大小的文件 find ./ -type f -size +1G| xargs rm 在清理系统日志文件 ...

  2. linux环境下nacos的安装+启动,阿里云服务器安装nacos

    nacos安装+启动(linux环境): 基础:安装java环境 官网下载压缩包:如 nacos-server-1.2.1.tar.gz 放在自定义目录下 # 解压 tar -xvf nacos-se ...

  3. Alibaba Cloud Linux 2.1903 LTS 64位服务器yum源下载404,Alibaba Cloud Linux 2实例中使用docker-ce、epel等YUM源安装软件失败

    [Alibaba Cloud Linux 2.1903 LTS 64位]服务器yum源下载404 failure: repodata/repomd.xml from docker-ce-stable: ...

  4. Linux下创建硬链接,文件访问为空,提示:xxxx: 符号连接的层数过多

    Linux下创建软链接|硬链接,文件访问为空,提示:x x x: 符号连接的层数过多. 原因:创建符号链接的时候未使用绝对路径,无论是源文件路径还是目标路径,都需要使用绝对路径. 如: ln -s / ...

  5. 作为一个java程序员,常用的linux命令(越攒越多)

    本篇记录我在工作中不断遇到的常用的linux命令,并进行总结,时常更新! 1. 升级服务时先停止服务,然后进行替换 linux中杀进程时候,如果你是知道它所占用的端口号的话,可以通过 netstat ...

  6. 设置linux初始root密码

    简单一步设置linux第一个root密码 sudo passwd root #输入当前账户密码 #输入准备设置的root密码 #确认密码 如下所示:

  7. Linux/docker下oracle开启监听,开启自动启动

    写在前头: 之前呢,使用docker安装了oracle,但它默认是会关闭的.使用了几天以后突然连接异常了,报的问题是oracle监听有问题了,我知道了是oracle服务自动关闭了,监听也跟着关了.所以 ...

  8. Linux通过端口号杀死指定进程

    前言: 我们在服务器上升级项目的时候,需要将原来的项目停止,然后启动新的项目. 这时候我们只知道应用所占的端口号,如何将进程杀死呢? linux中杀进程时候,如果你是知道它所占用的端口号的话,可以通过 ...

  9. 设置腾讯云linux服务器中 MySQL 允许远程访问

    申请了一台linux腾讯云服务器,想要把数据库搭建在上面,本地的Windows直接可以访问 以下就是具体的操作流程,首先你需要安装好一个mysql,安装方法–>mysql安装(Linux) 接着 ...

  10. Linux下安装Java8

    Linux(ubuntu)下Java8安装 1.下载jdk8 这个看大家了,linux版本的就可以 2.创建jvm文件夹 在根目录下创建名为jvm的文件夹(在哪里创建看个人) $ sudo mkdir ...

最新文章

  1. 零基础全方位学习java的方法
  2. OKR和KPI有什么区别?
  3. 层展开/关闭 - 运动缓冲效果
  4. managedwifi.codeplex.com
  5. SpringBoot在IDEA中实现热部署
  6. opencv 一堆算法,图像处理等
  7. Android 一些比较厉害的大牛博客
  8. TP、Yii、Laravel的区别
  9. 数据可视化,必须注意的30个小技巧!
  10. hdu 3819动态规划
  11. How to custom RedHat DVD
  12. 桌面程序explorer_备份Internet Explorer 7搜索提供程序列表
  13. 理解Python中的继承规则和继承顺序
  14. 排序算法第一篇——插入排序
  15. 4.16-4.22课题(拼团系统)进度汇报
  16. Hbase-1.1.1-java API
  17. android getpost代码
  18. 前端——面试(苏小妍)
  19. matlab中wavread函数错误改用方法
  20. HTML5期末大作业:电影网站设计——电影泰坦尼克号(4页) HTML+CSS+JavaScript 学生HTML个人网页作业作品下载 个人网页设计制作 大学生个人网站作业模板 简单个人网页制作

热门文章

  1. h5页面定位偏移的问题--解答
  2. ae显示不能稳定链接服务器,ae正在连接到动态链接服务器
  3. 理工科科研结果展示怎样让PPT高大上?
  4. LoRa:SX1278
  5. [数据安全]数据防泄密建设
  6. 中小企业数据防泄密怎么做,墨门云数据防泄密指南
  7. win7的ie10浏览器打不开,就是双击图标无反应
  8. Nginx编译安装与虚拟主机配置
  9. matlab如何设置自变量,matlab中如何指定一个函数的自变量
  10. Linux虚拟机添加新硬盘