Linux简介
Linux
是一种自由和开放源码的类UNIX操作系统
。Linux 严格来说是单指操作系统的内核
,因操作系统中包含了许多用户图形接口和其他实用工具。如今Linux常用来指基于Linux的完整操作系统,内核则改以Linux内核称之。
从1991年问世到今天,Linux在服务器、桌面、行业定制等各级领域都获得了长足的发展,尤其在服务器领域获得了令人瞩目的成就,被业界认为是未来最有前途的操作系统之一。在嵌入式领域,由于Linux具有良好的移植性
、丰富的代码资源
等优点,也受到了越来越多的关注。
首先强调一下 Linux 的发音,根据 Torvalds(Linux的发明者)在其多次公开场合中的说明,标准的读音
应该是" 哩呐科斯 "
,利用搜索引擎加关键字 Linux pronunciation 进行搜索,就可以看到具体的视频。
# Linux内核
Linux内核
(英语:Linux kernel)是一种开源的类Unix操作系统
内核。整个Linux操作系统家族基于该内核部署在传统计算机平台(如个人计算机和服务器,以Linux发行版的形式)和各种嵌入式平台。
- Linux可以运行在服务器和其他大型平台之上,如大型计算机和超级计算机。世界上500个最快的超级计算机已100%运行Linux发行版或变种。
- Linux也广泛应用在嵌入式系统上,如手机(Mobile Phone)、平板电脑(Tablet)、路由器(Router)、电视(TV)和电子游戏机等。在移动设备上广泛使用的Android操作系统就是创建在Linux内核之上。
尽管于桌面电脑的占用率较低,基于Linux的操作系统统治了几乎从移动设备到主机的其他全部领域。截至2017年11月,世界前500台最强的超级计算机全部使用Linux。
Linux内核
最早是于1991年
由芬兰黑客林纳斯·托瓦兹
为自己的个人电脑开发的,他当时在Usenet新闻组comp.os.minix登载帖子,这份著名的帖子标志着Linux内核计划的正式开始。如今,该计划已经拓展到支持大量的计算机体系架构,远超其他操作系统和内核。它迅速吸引了一批开发者和用户,利用它作为其他自由软件项目的内核。
从技术上说,Linux 只是一个符合POSIX 标准的内核。它提供了一套应用程序接口(API),通过接口用户程序能与内核及硬件交互。仅仅一个内核并不是一套完整的操作系统
。
# Linux发行版
通常情况下,Linux被打包成供个人计算机和服务器使用的Linux发行版,一些流行的主流Linux发布版,包括Debian(及其派生版本Ubuntu、Linux Mint)、Fedora(及其相关版本Red Hat Enterprise Linux、CentOS)和openSUSE等。
Linux发行版
包含Linux内核
和支撑内核的实用程序和库
,通常还带有大量可以满足各类需求的应用程序
。
个人计算机使用的Linux发行版通常包含X Window和一个相应的桌面环境,如GNOME或KDE。桌面Linux操作系统常用的应用程序,包括Firefox网页浏览器、LibreOffice办公软件、GIMP图像处理工具等。
由于Linux是自由软件,任何人都可以创建一个符合自己需求的Linux发行版
。
# Linuc的特点
# 1. 免费开源
Linux 是完全免费的操作系统,不管是谁都可以直接从网上下载它的源代码,并根据自己的需求进行相应的修改,打造独属于自己的操作系统(当然对于我们普通玩家没这个必要,但是感兴趣的研究一下源码,了解Linux到底是怎么工作的还是很有必要的),下面提供几个国内的镜像站点,可以很方便、快速地下载Linux源码:
# 2. 模块化程度高
如图所示,Linux内核默认有五大模块:
- 内存管理
- 进程管理
- 进程间通信
- 虚拟文件系统
- 网络
用户可以根据自己的实际需求,移除不需要的功能模块,或者添加自定义的功能模块,使得Linux内核实现了高度定制化
,能够应对不同的应用场景。
# 3. 广泛的硬件支持
由于其开源的特性,全世界有众多的程序员向Linux社区提供源码,所以Linux拥有非常丰富的硬件资源,对所有的主流设备驱动资源都能很好适配。
# 4. 安全稳定
Linux采取了很多安全技术措施,包括:
读写权限控制
带保护的子系统
审计跟踪
核心授权等
这些安全技术措施为互联网用户提供了安全保障。而且在实际使用中,有很多Linux服务器可以稳定运行好几年,完全不需要关机,依然可以性能良好地提供服务
,所以Linux的安全稳定性毋庸置疑。
# 5. 多用户,多任务
多用户:
- Linux
可以创建多个用户
,位于 /home 文件下,每个文件夹都可以看成一个用户 - 不同的用户可以赋予不同的权限,并且拥有属于自己的资源,互不影响
- Linux
多任务
- Linux 可以同时运行多个进程,Linux 内核负责统一调度,平均分配每个进程占用的资源
- 由于 CPU 处理速度极快,所以在用户的眼里,好像所有的进程都是并行执行的
# 6. 良好的可移植性
由于Linux中95%以上的代码都是用C语言写的,而C语言是一种平台无关性的高级语言,所以Linux系统也是可以移植的。
# Linux系统的安装
关于系统的安装,小编这里懒得整理了,如果以后在安装过程中遇到了什么问题,再来这里补充。网上帖子一大把,Google一下,你就知道!
# Linux系统的启动流程
了解Linux的启动流程,可以帮助我们更好地理解Linux系统的运行原理,而且关于Linux的启动流程再很多面试中也会被问到。那么Linux 的启动过程到底经历了一些什么呢??
加载 BIOS ,通电自检(Power On Self Test 简称 POST)
- BIOS:计算机上最接近硬件的软件,存有硬件CPU、内存、硬盘、设备启动顺序等信息,就和windows的BIOS类似。
- 功能:对计算机的硬件进行
健康检查
,只有确认硬件没问题,才会开始加载软件(操作系统就是一种特殊的软件)。
读取 MBR :在MBR中写入Grub的地址,这样系统实际会载入Grub作为操作系统的引导程序。
GRUB 引导:根据其配置文件加载kernel镜像,并运行内核加载后的第一个程序
/sbin/init
,这个程序会根据/etc/inittab
来进行初始化的工作,其中最重要的就是根据文件中设定的值来确定系统将会运行的runlevel
。执行
/etc/rc.sysinit
脚本:该脚本将会设置系统变量、网络配置,并启动swap、设定/proc、加载用户自定义模块、加载内核设置等。
- Inittab运行级别:根据 GRUB 引导中确定的 runlevel ,执行对应的脚本,如果值为3,就会运行
/etc/rc3.d/
下的所有脚本
runlevel 知识点补充:
运行级0:关机
运行级1:单用户模式,系统出现问题时可使用这种模式进入系统维护
运行级2:多用户模式,没有网络连接
运行级3:完全多用户模式(Linux服务器最常用的启动模式)
运行级4:保留未使用
运行级5:窗口模式,支持多用户,支持网络
运行级6:重启
- 读取 rc.local:确定有哪些软件需要开机自启,就跟在后面写上。
- Login Shell:执行/bin/login程序,启动到系统登录界面,等待用户登录。
# Linux的MAN文件
Linux 中的指令,有2600多种,全部记下来显然是不现实的,我们平日里一般只要熟练使用最常见的那些指令即可,但是如果有一些指令不会用该怎么办呢?这里就需要学会使用 Linux 的 man pager。
比如你想详细了解一下 ls 指令,那么你可以输入: man ls
如上图所示,你可以得到非常详细的ls使用介绍(使用说明是纯英文的,所以说学计算机不需要学英语那是骗人的!!起码要把计算机相关词汇每天去背一些,只是对词汇量的要求不高而已~)
在查看man文件的时候:
- 可以使用上下方向键阅读文件内容
- 按空格键翻页
- 使用关键字来搜索。比如说
在man ls的页面上,输入“/time”
,按回车键
,就可以看到关键字被标记了 - 按
小写n向下查找
,也可以按大写N向上查找
,按小写q结束查看man文件
man-f
来查询要找的命令存在于哪些man文件中
那么到底什么是 man ?我们用 man 来查一下它自己!! 输入: man man
,得到如下结果:
看它的 name 还有 description(描述),总结起来就是一句话:man 是系统操作手册!!
# 共建错题集
在使用 Linux 的过程中,肯定会遇到各种各样的问题,学会使用搜索引擎来解决问题也很重要,并且一定要对遇到的比较有价值的问题加以整理,形成自己的 错题集
,温故而知新,可以为师矣!!
比如我建立的一个 Linux操作遇到的问题整理 (opens new window)
大家可以参考一下,或者将遇到的问题像我一样整理一下,最好可以分为:
- 问题描述
- 产生原因分析
- 问题解决思路
发送到我的邮箱: fanxin.it@gmail.com
,一起来丰富这个错题集!!