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发行版。
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,你了解多少!相关推荐
- 过滤Linux下不同大小的文件,linux查找当前目录下 M/G 大小的文件,删除Linux下指定大小的文件
过滤Linux下不同大小的文件,linux查找当前目录下 M/G 大小的文件,删除Linux下指定大小的文件 find ./ -type f -size +1G| xargs rm 在清理系统日志文件 ...
- linux环境下nacos的安装+启动,阿里云服务器安装nacos
nacos安装+启动(linux环境): 基础:安装java环境 官网下载压缩包:如 nacos-server-1.2.1.tar.gz 放在自定义目录下 # 解压 tar -xvf nacos-se ...
- 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: ...
- Linux下创建硬链接,文件访问为空,提示:xxxx: 符号连接的层数过多
Linux下创建软链接|硬链接,文件访问为空,提示:x x x: 符号连接的层数过多. 原因:创建符号链接的时候未使用绝对路径,无论是源文件路径还是目标路径,都需要使用绝对路径. 如: ln -s / ...
- 作为一个java程序员,常用的linux命令(越攒越多)
本篇记录我在工作中不断遇到的常用的linux命令,并进行总结,时常更新! 1. 升级服务时先停止服务,然后进行替换 linux中杀进程时候,如果你是知道它所占用的端口号的话,可以通过 netstat ...
- 设置linux初始root密码
简单一步设置linux第一个root密码 sudo passwd root #输入当前账户密码 #输入准备设置的root密码 #确认密码 如下所示:
- Linux/docker下oracle开启监听,开启自动启动
写在前头: 之前呢,使用docker安装了oracle,但它默认是会关闭的.使用了几天以后突然连接异常了,报的问题是oracle监听有问题了,我知道了是oracle服务自动关闭了,监听也跟着关了.所以 ...
- Linux通过端口号杀死指定进程
前言: 我们在服务器上升级项目的时候,需要将原来的项目停止,然后启动新的项目. 这时候我们只知道应用所占的端口号,如何将进程杀死呢? linux中杀进程时候,如果你是知道它所占用的端口号的话,可以通过 ...
- 设置腾讯云linux服务器中 MySQL 允许远程访问
申请了一台linux腾讯云服务器,想要把数据库搭建在上面,本地的Windows直接可以访问 以下就是具体的操作流程,首先你需要安装好一个mysql,安装方法–>mysql安装(Linux) 接着 ...
- Linux下安装Java8
Linux(ubuntu)下Java8安装 1.下载jdk8 这个看大家了,linux版本的就可以 2.创建jvm文件夹 在根目录下创建名为jvm的文件夹(在哪里创建看个人) $ sudo mkdir ...
最新文章
- 零基础全方位学习java的方法
- OKR和KPI有什么区别?
- 层展开/关闭 - 运动缓冲效果
- managedwifi.codeplex.com
- SpringBoot在IDEA中实现热部署
- opencv 一堆算法,图像处理等
- Android 一些比较厉害的大牛博客
- TP、Yii、Laravel的区别
- 数据可视化,必须注意的30个小技巧!
- hdu 3819动态规划
- How to custom RedHat DVD
- 桌面程序explorer_备份Internet Explorer 7搜索提供程序列表
- 理解Python中的继承规则和继承顺序
- 排序算法第一篇——插入排序
- 4.16-4.22课题(拼团系统)进度汇报
- Hbase-1.1.1-java API
- android getpost代码
- 前端——面试(苏小妍)
- matlab中wavread函数错误改用方法
- HTML5期末大作业:电影网站设计——电影泰坦尼克号(4页) HTML+CSS+JavaScript 学生HTML个人网页作业作品下载 个人网页设计制作 大学生个人网站作业模板 简单个人网页制作