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用户,创建密码

等待安装

登陆,完成

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏逸鹏说道

Web Api 入门实战 (快速入门+工具使用+不依赖IIS)

平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html 屁话我也就不多说了,...

3535
来自专栏炉边夜话

对中断的一点思考

    对于X86的单处理器机器,一般采用可编程中断控制器8259A做为中断控制电路。传统的PIC(Programmable Interrupt Contr...

1222
来自专栏郭霖

Android Studio新功能解析,你真的了解Instant Run吗?

本篇文章首发于我的微信公众号,由于网上讲解Android Studio中Instant Run功能的文章实在是太少了,为了让更多人可以了解这个技术,我将这篇文...

2078
来自专栏SDNLAB

ONOS 实战分享(一):项目建立、调试到热部署

以上是ONOS的架构图,相信大家已经熟记于心了 本文将在Distributed Core Tier,以开发一个控制器内的模块为例,带领大家从项目的建立,导入I...

4377
来自专栏性能与架构

LinkedIn 即时通信系统的优化

前言 LinkedIn 的即时通信系统目前单台机器可以处理数十万的持久连接,这是不断调优的结果。 最近,他们在官网博客中发布了优化过程,介绍了即时通信系统的技术...

3288
来自专栏恰同学骚年

NoSQL初探之人人都爱Redis:(1)Redis简介与简单安装

  随着互联网Web2.0网站的兴起,传统的关系数据库在应付Web2.0网站,特别是超大规模和高并发的SNS类型的Web2.0纯动态网站已经显得力不从心,暴露了...

1072
来自专栏程序员的知识天地

众多Python Web框架比较,哪个适合你,你就用哪个!

Python程序员有很多很好的选择来创建Web应用程序和API;Django,Weppy,Bottle和Flask引领潮流。

1892
来自专栏应用案例

性能测试之gatling详解

大家接触过形形色色的压力测试工具,例如lr,jmeter各有各的优点,那么最近在做接口测试中涉及到压力测试,小弟就看到一个好用的工具俗称“加特林”英文Gatli...

3456
来自专栏企鹅号快讯

MITM6:用IPv6攻陷IPv4网络的工具

随着IPv6概念的提出,互联网上针对IPv6协议的使用也日渐增多,但即便如此IPv6在公司内部却并不受欢迎,很少会有公司使用IPv6。然而,大多数公司可能都忽略...

3387
来自专栏游戏杂谈

liunx下查看服务器硬件信息

今天安装了9台Linux服务器,型号完全不一样(有DELL、HP和IBM服务器),又懒得去对清单,如何在Linux下cpu的个数和核数呢?另外,nginx的cp...

5912

扫码关注云+社区