Linux基础知识

简介:

Linux基础知识

计算机硬件的5大单元

分为输入单元,CPU,内存,输出单元,外部存储设备。
软件运行时输入单元输入内容,进入内存,CPU由控制单元和算术逻辑单元组成,控制单元控制算术逻辑单元从内存中读取数据,内存和外部存储设备进行交互,运算完毕以后输出到输出单元,完成软件的运行。

CPU的种类

CPU内部含有一些小的指令集,使用的所有软件需要经过CPU内部的微指令集进行运算。

精简指令集

较为熟悉的为ARM的CPU
用于手机,导航系统,等微型设备,或者一些工作站,或者是某些较少的服务器。
特点,指令执行时间很短,指令集精简,完成操作简单。

嵌入式用这些

复杂指令集

特点,执行较为低阶的硬件操作,指令数目多且复杂。
有X86的Inter 包括 AMD等

不同的X86架构的CPU区别,微指令,二级缓存,可操作的指令数不同等。

个人计算机架构与接口设备

主板上拥有芯片组,芯片组有两个桥接器控制组件的通信。

北桥

北桥负责连接速度较快的CPU,内存,显卡

南桥

速度较慢的USB,硬盘。

AMD和Inter的不同

内存与CPU通信不通过北桥。
由于CPU的数据来自于内存,所以AMD将年利率控制集成到CPU中。

操作系统

操作系统内核

操作系统也是一组程序,用于管理计算机的所有活动以及驱动系统。驱动系统判断逻辑,运算数值,让内存可以加载读取数据与程序代码。硬盘可以被访问,网络传输数据。
内核程序所放置的内存区块受保护。开机后常驻内存中。

系统调用

层级关系为硬件 -> 内核 -> 系统调用 -> 应用程序
操作系统为系统调用和内核两个部分。
操作系统的内核层直接参考硬件规则写成。
操作系统管理硬件资源
应用程序开发是参考操作系统提供的开发接口。

内核功能

系统调用接口 与内核通信,内核再与硬件管理
程序管理 多任务环境,即CPU调度机制
内存管理 控制整个系统的内存
文件系统管理 对文件的管理 数据的I/O 识别文件系统
设备驱动 对设备的管理

linux是什么

Linux为一套操作系统,处于系统调用和内核两个层。
github上有linux内核的最早作者Linus Torvalds开源的linux内核项目
https://github.com/torvalds/linux
推特 https://twitter.com/linus__torvalds

历史

最开始为多道批处理操作系统后来为,分时操作系统。
1969年Multics系统 接着 1969年 File Server System
1973年UNIX诞生,用C语言写出来第一个正式的UNIX内核
1984年x86架构的Minix操作系统诞生,此时GNU和FSF基金会成立。并编写编译器Emacs,并编写FSF

GNU项目

版权为GPL版权,用户可以自由执行,复制,再发行,学习,修改,强化自由软件。
使用GPL版权可以拥有如下的特性

  1. 取得软件与源码
  2. 复制
  3. 修改
  4. 再发行
  5. 回馈

linux的内核版本

2.6.18 - 92.e15
主版本.次版本.释放版本-修改版本

主次版本为奇书为开发中版本。
主次版本为偶数为稳定版本。

类Linux操作系统

Linux + 各种软件即可为一个完整的操作系统。
内核归档 https://www.kernel.org/
需要使用LSB规则来规范开发者。
以及使用FHS规范来进行规范。

RPM

使用这种方式安装软件的系统
例如 centos

dpkg

使用dpkg的方式安装的软件系统
例如ubuntu

linux特色

配备需求低廉
内核功能强大稳定
独立作业
稳定系统
免费少许费用
安全性,漏洞快速修补
多任务多用户
用户与用用户组的管理
相对比较不耗费资源的系统
适合小内核系统的嵌入式系统
拥有众多的GUI

linux磁盘分区

磁盘连接方式和设备文件名的关系

磁盘接口有两种为IDE和SATA接口
此时设备的文件名为

主机上皆有一块IDE接口的磁盘,这一块磁盘接在IDE2上主接口上(一个IDE上有三个接口),查表可知文件名为
/dev/hdc

SATA/USB/SCSI接口使用的是SCSI(小型计算机系统接口)模块来驱动的
如果机器上有两个SATA磁盘以及一个USB磁盘,而主板上有六个SATA的插槽,分别安装在1和5上。

与检测顺序决定设备文件名,与实际插槽代号无关

SATA1插槽上的文件名 /dev/sda
SATA5插槽上的文件名 /dev/sdb
USB磁盘(由于开机后才可以被识别)/dev/sdc

磁盘组成

磁盘由盘片,机械手臂,磁头,主轴马达
数据在盘面上,盘片上可以分为扇区,柱面,
整块磁盘的第一块扇区重要,因为其记录了整块磁盘的主要信息。
磁盘第一个扇区记录的信息为

  1. 主引导分区 可以安装引导加载程序的地方
  2. 分区表,记录整块硬盘分区的状态
    主引导分区在系统开机的时候会主动读取这个区块的内容。这样系统才会知道你的程序放在哪里且该如何进行开机。

磁盘分区表

利用柱面号码进行分区,共有四组记录区,每组记录区记录了起始与结束的柱面号码。假设硬盘设备文件名为/dev/hda 并且有四个分区,柱面为1~100 101~~200 201~300 301~400
那么将会对应于以下分区

/dev/hda1
/dev/hda2
/dev/hda3
/dev/hda4

磁盘默认分区表能写入四组分区信息。
这四组分区称为主或扩展分区。
分区最小的单位为柱面
系统写入磁盘的时候会参考分区表,会对某个分区进行数据处理。

扩展分区

由于只能有四个分区,所以为了更多的分区,即拥有扩展分区。
扩展分区的目的是使用额外的扇区来记录分区信息。扩展分区本身不能被拿来格式化
由扩展分区切出来的分区称为 逻辑分区。逻辑分区是由扩展分区继续切出来的。

由3和4的扩展分区,切出逻辑分区,

/dev/hda1
/dev/hda2
/dev/hda5
/dev/hda6
/dev/hda7
/dev/hda8
/dev/hda9

主分区和逻辑分区最多有四个,扩展分区最多只能有一个,逻辑分区由扩展分区持续切出来的分区,能被格式化后作为数据访问的分区为主分区于逻辑分区,扩展分区无法格式化。
逻辑分区数量与操作系统有不同,在Linux中IDE硬盘最多有59个逻辑分区,sata硬盘有11个逻辑分区。

开机引导和主引导分区(MBR)

有BIOS和CMOS两个内容,CMOS为记录各项硬件参数且嵌在主板上的存储器。BIOS为一个写入到主板上的一个软件程序。

BIOS为计算机主动执行的第一个程序。

BIOS会依据用户设置去取得能够开机的硬盘,并且将该硬盘放到第一个读取扇区的的MBR中(即扇区的主引导程序)此时BIOS圆满。接下来执行MBR内的引导加载程序进行工作。
引导加载程序的目的是加载内核文件,即识别系统内的内核文件,加载引导程序,进行启动操作系统。
1.BIOS 识别第一个开机的设备
2.MBR 第一个可开机设备的第一个扇区内的主引导分区,将会加载引导程序。
3.引导加载程序 Boot loader读取内核文件进行执行的文件
4.内核文件
上方为四步,即加载的4步

Boot loader

引导程序提供以下项目
提供菜单
载入内核文件
转交给其余的内核文件(装有两个操作系统的时候,即windows和linux的时候)

多系统

此时在一个硬盘的全部柱面区装有两个系统为linux和windows
windows拥有转交给其他引导分区的loader

总结

每个扇区拥有自己的启动扇区
实际开机的文件是放置到各自分区内的
如果多系统会有两个分区为分区1和分区2
loader只能识别自己内核文件,并且只能进行转交

linux安装

目录树结构

Linux一切皆文件。
Linux的目录以/为主
所有的文件由/目录进行衍生

文件系统和目录树的关系

挂载,这个用过

挂载,利用目录当成进入点,将硬盘分区数据放置在该目录下。即进入该目录可以读取该分区。
进入目录读取该分区的操作为挂载,进入的目录称为挂载点
例如硬盘分有两区,其中分区1挂载/分区2挂载home,然后在home树下的将会储存进入分区2中,根目录将会储存在分区1中

外部硬件

一般会挂载到mnt,此时如果挂载成功将会成为/mnt/我的文件

安装Linux前的规划

选择centos啦。
个人喜好~还算熟悉吧

网络

使用NAT这个最常用的也是比较熟悉的。
使用Windows和Linux下共生存的环境。

交换分区

当内存不够使用的时候会启用交换分区

事实上不一定,有一套算法的。是用来弥补的分区不足的。

下面安装centos7,使用的是VirtualBox虚拟机,vm要钱啊。。买不起。。╮(╯▽╰)╭,,

安装centos
不过嘛,找到密钥使用VMware Workstation Pro
因为这个可以用的地方不少
centos经典版本6.7
不过嘛自己用了一个最新的版本centos7

选择新建虚拟机

设置映象文件

设置处理器

设置内存

网络类型设置NAT

选择SCSI控制器

即选择I/O接口

选择磁盘类型

选择磁盘类型为SCSI
纠结了一会,选择SATA

硬件配置如下

选择安装选项

安装选项

暂时选择全部安装

分区配置


目前只有一块硬盘
设置boot,启动linux的核心文件,用于内核引导和启动的文件。其挂载点为/boot
设置根目录和交换分区

设置root用户,创建密码

等待安装

登陆,完成

目录
相关文章
|
1月前
|
Linux 应用服务中间件 Apache
Linux Apache服务详解——Apache服务基础知识
Linux Apache服务详解——Apache服务基础知识
33 2
|
1月前
|
域名解析 缓存 网络协议
Linux DNS服务详解——DNS基础知识
Linux DNS服务详解——DNS基础知识
72 1
|
2月前
|
Linux 芯片
Linux 驱动开发基础知识——认识LED驱动程序 (二)
Linux 驱动开发基础知识——认识LED驱动程序 (二)
35 0
Linux 驱动开发基础知识——认识LED驱动程序 (二)
|
2月前
|
传感器 Linux 开发工具
Linux应用开发基础知识——I2C应用编程(十三)
Linux应用开发基础知识——I2C应用编程(十三)
56 0
Linux应用开发基础知识——I2C应用编程(十三)
|
2月前
|
存储 传感器 Linux
Linux应用开发基础知识——I2C应用编程(十二)
Linux应用开发基础知识——I2C应用编程(十二)
71 0
Linux应用开发基础知识——I2C应用编程(十二)
|
2月前
|
Ubuntu Linux 测试技术
Linux应用开发基础知识——输入系统应用编程(八)
Linux应用开发基础知识——输入系统应用编程(八)
41 0
Linux应用开发基础知识——输入系统应用编程(八)
|
1月前
|
运维 网络协议 安全
Linux vsFTPd服务详解——vsFTPd基础知识
Linux vsFTPd服务详解——vsFTPd基础知识
28 4
|
1月前
|
Linux C语言 芯片
嵌入式linux系统中设备树基础知识
嵌入式linux系统中设备树基础知识
48 0
|
2月前
|
Linux 芯片 开发者
Linux 驱动开发基础知识——内核对设备树的处理与使用(十)
Linux 驱动开发基础知识——内核对设备树的处理与使用(十)
152 0
Linux 驱动开发基础知识——内核对设备树的处理与使用(十)
|
2月前
|
Ubuntu Linux 芯片
Linux 驱动开发基础知识——设备树的语法驱动开发基础知识(九)
Linux 驱动开发基础知识——设备树的语法驱动开发基础知识(九)
68 1
Linux 驱动开发基础知识——设备树的语法驱动开发基础知识(九)