Fanxin's blog Fanxin's blog
首页
  • 建站选择
  • 博客建站
  • 博客写作
  • Java重难点知识
  • 常用框架

    • Spring-boot
  • Hadoop
  • Linux学习巩固
  • Shell学习巩固
  • 爬虫技术
  • 博客
  • 公众号
  • 视频UP主
  • 实用工具
  • 生活感悟
  • 好文摘录
  • 优秀开源
  • Oracle APEX
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Fan Xin

自媒体程序员养成记
首页
  • 建站选择
  • 博客建站
  • 博客写作
  • Java重难点知识
  • 常用框架

    • Spring-boot
  • Hadoop
  • Linux学习巩固
  • Shell学习巩固
  • 爬虫技术
  • 博客
  • 公众号
  • 视频UP主
  • 实用工具
  • 生活感悟
  • 好文摘录
  • 优秀开源
  • Oracle APEX
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Linux学习巩固

    • Linux简介
      • Linux内核
      • Linux发行版
      • Linuc的特点
        • 1. 免费开源
        • 2. 模块化程度高
        • 3. 广泛的硬件支持
        • 4. 安全稳定
        • 5. 多用户,多任务
        • 6. 良好的可移植性
      • Linux系统的安装
      • Linux系统的启动流程
      • Linux的MAN文件
      • 共建错题集
    • Linux用户管理
    • Linux文件管理
    • Linux进程管理
    • Vim快捷方式整理
    • 虚拟机中Ubuntu网卡配置
    • Linux操作遇到的问题整理
  • Shell学习巩固

  • Linux、Shell
  • Linux学习巩固
Fanxin
2021-03-08

Linux简介

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操作系统

个人计算机使用的Linux发行版通常包含X Window和一个相应的桌面环境,如GNOME或KDE。桌面Linux操作系统常用的应用程序,包括Firefox网页浏览器、LibreOffice办公软件、GIMP图像处理工具等。

由于Linux是自由软件,任何人都可以创建一个符合自己需求的Linux发行版。

# Linuc的特点

# 1. 免费开源

Linux 是完全免费的操作系统,不管是谁都可以直接从网上下载它的源代码,并根据自己的需求进行相应的修改,打造独属于自己的操作系统(当然对于我们普通玩家没这个必要,但是感兴趣的研究一下源码,了解Linux到底是怎么工作的还是很有必要的),下面提供几个国内的镜像站点,可以很方便、快速地下载Linux源码:

  • 官方下载地址 (opens new window)
  • 国内镜像加速下载 (opens new window)
  • Linux内核源码在线阅读 (opens new window)

# 2. 模块化程度高

Linux内核模块化

如图所示,Linux内核默认有五大模块:

  • 内存管理
  • 进程管理
  • 进程间通信
  • 虚拟文件系统
  • 网络

用户可以根据自己的实际需求,移除不需要的功能模块,或者添加自定义的功能模块,使得Linux内核实现了高度定制化,能够应对不同的应用场景。

# 3. 广泛的硬件支持

由于其开源的特性,全世界有众多的程序员向Linux社区提供源码,所以Linux拥有非常丰富的硬件资源,对所有的主流设备驱动资源都能很好适配。

# 4. 安全稳定

Linux采取了很多安全技术措施,包括:

  • 读写权限控制

  • 带保护的子系统

  • 审计跟踪

  • 核心授权等

这些安全技术措施为互联网用户提供了安全保障。而且在实际使用中,有很多Linux服务器可以稳定运行好几年,完全不需要关机,依然可以性能良好地提供服务,所以Linux的安全稳定性毋庸置疑。

# 5. 多用户,多任务

  • 多用户:

    • Linux可以创建多个用户,位于 /home 文件下,每个文件夹都可以看成一个用户
    • 不同的用户可以赋予不同的权限,并且拥有属于自己的资源,互不影响
  • 多任务

    • Linux 可以同时运行多个进程,Linux 内核负责统一调度,平均分配每个进程占用的资源
    • 由于 CPU 处理速度极快,所以在用户的眼里,好像所有的进程都是并行执行的

# 6. 良好的可移植性

由于Linux中95%以上的代码都是用C语言写的,而C语言是一种平台无关性的高级语言,所以Linux系统也是可以移植的。

# Linux系统的安装

关于系统的安装,小编这里懒得整理了,如果以后在安装过程中遇到了什么问题,再来这里补充。网上帖子一大把,Google一下,你就知道!

# Linux系统的启动流程

了解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、加载用户自定义模块、加载内核设置等。

etc/rc.d文件夹下的文件一览

  • Inittab运行级别:根据 GRUB 引导中确定的 runlevel ,执行对应的脚本,如果值为3,就会运行/etc/rc3.d/下的所有脚本

runlevel 知识点补充:

运行级0:关机

运行级1:单用户模式,系统出现问题时可使用这种模式进入系统维护

运行级2:多用户模式,没有网络连接

运行级3:完全多用户模式(Linux服务器最常用的启动模式)

运行级4:保留未使用

运行级5:窗口模式,支持多用户,支持网络

运行级6:重启

  • 读取 rc.local:确定有哪些软件需要开机自启,就跟在后面写上。

设置开机启动文件

  • Login Shell:执行/bin/login程序,启动到系统登录界面,等待用户登录。

bin/login程序执行完毕的等待登录界面

# Linux的MAN文件

Linux 中的指令,有2600多种,全部记下来显然是不现实的,我们平日里一般只要熟练使用最常见的那些指令即可,但是如果有一些指令不会用该怎么办呢?这里就需要学会使用 Linux 的 man pager。

比如你想详细了解一下 ls 指令,那么你可以输入: man ls

MAN ls

如上图所示,你可以得到非常详细的ls使用介绍(使用说明是纯英文的,所以说学计算机不需要学英语那是骗人的!!起码要把计算机相关词汇每天去背一些,只是对词汇量的要求不高而已~)

在查看man文件的时候:

  • 可以使用上下方向键阅读文件内容
  • 按空格键翻页
  • 使用关键字来搜索。比如说在man ls的页面上,输入“/time”,按回车键,就可以看到关键字被标记了
  • 按小写n向下查找,也可以按大写N向上查找,按小写q结束查看man文件
  • man-f 来查询要找的命令存在于哪些man文件中

那么到底什么是 man ?我们用 man 来查一下它自己!! 输入: man man,得到如下结果:

什么是Linux man

看它的 name 还有 description(描述),总结起来就是一句话:man 是系统操作手册!!

# 共建错题集

在使用 Linux 的过程中,肯定会遇到各种各样的问题,学会使用搜索引擎来解决问题也很重要,并且一定要对遇到的比较有价值的问题加以整理,形成自己的 错题集 ,温故而知新,可以为师矣!!

比如我建立的一个 Linux操作遇到的问题整理 (opens new window)

大家可以参考一下,或者将遇到的问题像我一样整理一下,最好可以分为:

  • 问题描述
  • 产生原因分析
  • 问题解决思路

发送到我的邮箱: fanxin.it@gmail.com ,一起来丰富这个错题集!!

编辑 (opens new window)
#Linux
上次更新: 2021/06/16, 01:26:04
Linux用户管理

Linux用户管理→

最近更新
01
虚拟机中Ubuntu网卡配置
06-04
02
监测某文件夹下文件的更新并自动推送Hadoop集群
06-03
03
Vim快捷方式整理
05-24
更多文章>
Theme by Vdoing | Copyright © 2021-2021 Fan Xin | Github repo
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式