目录
CPU:
①进程调度
②进程通讯
进程通讯的形式:管线(匿名管线、命令管线)、消息队列、信息、信号量、共享显存、socket(文件socket、网络socket)
③内存管理:显存
④网络插口:网路
⑤文件系统
共享显存:为了在多个进程之间交换讯号,内核专门留出一块显存区,可以由须要访问的进程将其映射到自己的私有地址空间(逻辑上觉得是自己的私有地址空间,其实物理上是内核预留出的显存空间)进程就可以直接读写这一块显存而不须要进行数据的拷贝永久免费linux服务器,因而大大提升了效率。
讯号量:是一个计数器(让分组好的一组先访问linux文件系统测试,另一个组后访问)(一个组形成日志,一个组消费日志)。用于多进程对共享数据的访问,讯号量的意图在于进程间的同步,为了获得共享显存。
文件系统知识点框架图如下所示:
1、文件系统的基本组成
文件系统是操作系统中负责管理持久数据的子系统,实际上,就是将用户的文件储存在c盘硬件中,虽然计算机断电了,c盘里的数据并不会遗失,所以文件系统就可以持久化的保存文件。
文件系统是管理文件和目录的一套机制(方式)。文件大小为2T,ext3:不超过2T;fat32:4G。
文件系统的基本数据单位是文件,它主要是对c盘里面的文件进行组织管理,组织的形式不同,产生的文件系统也会不同。
在Linux中,一切皆文件,除了普通的文件和目录,块设备、管道、socket等等,都是由文件系统管理的。在Linux中的文件系统会给每位文件分配两个数据结构:索引节点(indexnode)和目录项(directoryentry),它们都主要是被拿来记录文件的元信息和目录层次结构。
其中,目录也是文件,也是用索引节点惟一标示,和普通文件不同的是,普通文件在c盘上面保存着的是文件数据,而目录文件在c盘上面保存子目录或则文件。
1、目录和目录项分别指的是哪些?
目录是一个文件,它是被持久化的储存在c盘上面,而目录项是内核中的一个数据结构,缓存在显存上面。
假如查询目录都会频繁的从c盘读取,效率会很低,所以内核都会把早已读过的目录用目录项这个数据结构先缓存在显存上面,等到上次读取到相同的目录的时侯,就只须要从显存上面去读取,这样就大大提高了文件系统的效率。
2、文件数据是怎样储存在c盘空间的?
c盘读写的最小单位是磁道,磁道的大小只有512B的大小,怎么每次读写的时侯都是如此小的单位linux文件系统测试,会造成读写的效率十分低。
所以,文件系统就把多个磁道组成了一个逻辑块,每次读写的最下单位就是逻辑块(数据块),Linux中的逻辑块的每位块的大小为4KB,也就是一次性可以读取8个磁道,这将会大大提升了c盘的读写效率。
索引节点是储存在硬碟上的数据,为了加速文件的访问,一般会把索引节点加载到显存当中。
当c盘进行低格的时侯,会被分成三个储存区域,分别为超级块、索引节点、数据块区。
超级块:superblock,拿来储存文件系统的详尽信息,包括inode/block的总数、使用量、剩余量(块个数、块大小、空闲块等),以及文件系统的格式。
索引节点区:拿来储存索引节点。
数据块区:拿来储存文件或目录数据。
我们不可能把超级块和索引节点区全部加载到显存在,这样显存是撑不住的,所以只有当须要使用的时侯,才能将它加载进显存,它们加载步入显存的时机是不同的。
超级块:当文件系统挂载时步入显存当中;
索引节点区:当文件系统被访问时步入显存中。
2、常见文件系统的类型1、硬盘的文件系统:filesystem
xfs(主流)
ext4---centos6
ext3---centos5
2、网络文件系统
nfs:networkfilesystem
tfs:taobaofilesystem;天猫内部使用的专门拿来储存天猫的图片和文件的文件系统,分布式的
gfs:google储存搜索数据储存的文件系统。分布式
hdfs:Hadoopfilesystem
其中的ext4和xfs文件系统的区别:xfs的使用比ext4好。
xfs是一个全64-bit的文件系统,可以支持上百万T字节的储存空间。对于特大文件及小规格文件的支持都表现很出色,支持特大数目的目录。最大可支持的文件大小为263=9x1018=9exabytes,最大文件系统规格为18exabytes。
xfs支持大文件和大分区。读写文件速率快。
/boot:ext4:/boot分区原本就不大,文件都是小文件,启动的时侯,应当是ext4的驱动加载更推动速。
===扩充====
开机不自启服务
/etc/systemd/system/multi-user-target.wants把服务启动的配置联接文件删掉
systemctldisablefirewalld关掉防火墙
设置开机自启:
systemctlenablefirewalld
[root@localhost ~]# systemctl enable firewalld
Created symlink from /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service to /usr/lib/systemd/system/firewalld.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/firewalld.service to /usr/lib/systemd/system/firewalld.service.
lsof-i:80查看端口占用情况
lsof-p1055查看当前进程打开了什么文件
lsof列列举当前系统所有的打开文件
查看cpu内核参数:cat/proc/cpuinfo
======
3、交换分区的文件系统:swap
[root@sc-fs software]# cat /proc/swaps
Filename Type Size Used Priority
/dev/dm-1 partition 2097148 0 -2
[root@sc-fs software]# swapoff -a
[root@sc-fs software]# cat /proc/swaps
Filename Type Size Used Priority
[root@sc-fs software]# swapon -a
[root@sc-fs software]# cat /proc/swaps
Filename Type Size Used Priority
/dev/dm-1 partition 2097148 0 -2
扩充和降低swap分区的大小:
[root@sc-fs software]# swapon /dev/sdd2
[root@sc-fs software]# cat /proc/swaps
Filename Type Size Used Priority
/dev/dm-1 partition 2097148 0 -2
/dev/sdd2 partition 10485756 0 -3
[root@sc-fs software]# free -m
total used free shared buff/cache available
Mem: 1829 133 1424 10 271 1518
Swap: 12287 0 12287
[root@sc-fs software]# swapoff /dev/sdd2
[root@sc-fs software]# free -m
total used free shared buff/cache available
Mem: 1829 126 1431 10 271 1525
Swap: 2047 0 2047
Linux文件系统精典分区方案:
1、标准分区:centos8精典方案:
/剩下的空间全备给根分区
/bootLinux上面储存的是启动、驱动以及grub文件。1000M左右--拿来储存启动系统所须要的文件,相当于Windows里的硬碟。
/swap交换分区,当化学显存不足(化学显存的2倍)的时侯,启动c盘上的交换分区来做显存使用(拿来临时储存数据)。通常不建议开启,由于会造成程序速率变慢。swap还存在c盘里面,把它错当成显存来使用。当显存不足的时侯,都会开启一片空间:swap,将c盘当作显存使用,swap速率会变慢。
/home单独的分区。
/lib上面储存好多库,好多服务的库。
/proc上面储存好多运行的进程、系统程序(proc/sys/vm:管理显存的),以进程号作为目录名
2、自定义方案:
/xfs剩下的空间
/bootext41G不须要非常大的空间
swapswap化学显存的2倍
/mysql_datexfs200G专门储存数据库的数据的分区
①设置swap,哪些时侯触发swap分区的使用:当化学显存只剩30%的时侯才会启动swap交换分区
[root@localhost ~]# cd /proc/sys/vm 正在运行的sys系统vm与内存相关virtual memory虚拟内存
[root@localhost vm]# cat swappiness
30 #当物理内存只剩30%的时候就会启动swap交换分区
更改设置为当化学显存耗尽的时侯启动交换分区。
[root@localhost vm]# cat swappiness#当物理内存用尽的时候启动交换分区
0
[root@localhost dev]# cat /etc/sysctl.conf
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
/etc.sysctl.conf:储存的是内核参数。
[root@localhost etc]# cd /proc/sys
[root@localhost sys]# ls
abi crypto debug dev fs kernel net user vm
假如要更改上面的参数,就步入/etc/sysctl.conf文件加入以下:
net.ipv4.ip_forward = 10 路由转发 根据路径修改(修改的是/etc/prpc/sys/net/ipv4下的ip_forward)
vm.swappiness =10
[root@localhost vm]# sysctl -p #####使修改的参数生效
net.ipv4.ip_forward = 10
vm.swappiness = 10
[root@localhost vm]# cat swappiness ###查看是否生效
10
临时关掉:c盘被自动挂载以后都必须把挂载信息写入/etc/fstab这个文件中,否则上次开机启动时依然须要重新挂载。
[root@localhost vm]# cat /etc/fstab
[root@localhost vm]# free -m # swap处于开启状态
total used free shared buff/cache available
Mem: 972 196 583 7 192 601
Swap: 2047 0 2047
[root@localhost vm]# cat /etc/fstab
............
/dev/mapper/centos-root / xfs defaults 0 0
UUID=0615b8e8-3e85-45eb-9b7d-4f7e08a00eac /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
UUID=e0b23637-b723-4680-8d8c-a6f4238095e8 /mount xfs defaults 0 0
UUID=f9acf10e-e259-4995-8526-93270f658d96 /mount1 xfs defaults 0 0
UUID=8ecd11ac-a55e-4709-9a0d-19da5207f1bb /mount2 xfs defaults 0 0
UUID=7d44e927-00d2-43b6-823a-89d9e6e30478 /mount1/hyrz ext4 defaults 0 0
UUID=96da6031-ac65-4754-8453-56c8d4c21959 /mount2/hzw ext4 defaults 0 0
使用swapoff命令;进行关掉swap交换分区。
[root@localhost vm]# swapoff /dev/mapper/centos-swap
[root@localhost vm]# free -m 查看是否被关闭
total used free shared buff/cache available
Mem: 972 195 584 7 192 602
Swap: 0 0 0
swapon-a:开启swap
[root@localhost vm]# swapon -a
[root@localhost vm]# free -m
total used free shared buff/cache available
Mem: 972 196 583 7 192 601
Swap: 2047 0 2047
永久关掉:可以更改配置文件:/etc/fstab,将上面的/dev/mapper/centos
swapswapswapdefaults00:swap行注释掉。
[root@localhost vm]# vim /etc/fstab
[root@localhost vm]# free -m 查看是否被关闭
total used free shared buff/cache available
Mem: 972 194 584 7 192 602
Swap: 0 0 0
4、临时文件系统:tmpfs:显存5、iso9660:光碟中
须要提早将光碟装入到硬盘当中。
6、虚拟的文件系统层VFS1、什么是虚拟文件系统VFS
文件系统的种类好多,而操作系统为了实现对用户提供一个统一的插口,于是在用户层与为文件系统层引入了中间层,这个中间层就被称为虚拟文件系统。
VFS定义了一组所有文件系统都支持的数据结构和标准插口,这样程序员不须要了解文件系统的工作原理,只须要了解VFS提供的统一插口就可。
虚拟文件系统在文件系统挂载以后,将文件系统的一些元数据加载到显存中,虚拟文件系统只存在于显存中,VFS作用就是屏蔽给各种文件系统的差别,给用户、应用程序一个统一的插口。
2、虚拟文件系统使用的方法?
VFS描述文件系统使用的是超级块和inode的形式。
在文件系统挂载以后,将文件系统Linux可以同时支持多种文件系统。我们接触到的虚拟文件系统,VFS。虚拟文件系统有的超级块真实文件也有,只是有差别。
在Linux文件系统中,用户空间、系统调用、虚拟机文件系统、缓存、文件系统以及储存之间的关系为:
3、VFS主要定义了四种对象类型
1、超级块对象:superblock
2、记录文件系统的总体信息:inode数目、block数目
3、索引节点:inode,上面包含了文件的元信息、字节数、所属主和组、权限、修改、创建时间、block的位置、文件对象file、目录项对象dentry、filenameinode号。
c盘文件系统低格之初,都会将c盘大体上分为两个部份,一个储存inode索引的,一个储存数据的inode实在文件系统初始化之初就早已存在的。
先去调用虚拟文件中的superblock,记录了文件系统中的superblock,之后导出到真实的文件系统中,ext4和xfs两种文件类型中都有自己的superblock。
Superblock backups stored on blocks: #3#backups superblock的备份
32768, 98304, 163840, 229376, 294912
[root@localhost vm]# dumpe2fs /dev/sdc4
c盘进行低格以后分为两个区:一块储存文件元数据的:inode;一块储存真正的数据:block。
查看超级块内容:
查看ext4文件系统信息:
[root@nginx-filebeat-01 ~]# dumpe2fs /dev/sdb2|more
查看xfs文件系统信息:
[root@nginx-filebeat-01 ~]# xfs_info /data
查看文件信息:stata.tx
4、磁盘、硬盘解读
diskc盘,c盘和硬碟有哪些区别?还有硬盘、移动硬碟?
1、主体不同:
①磁盘:借助磁记录技术储存数据的储存器。
②硬盘:是计算机最主要的储存设备。
2、范围不同:
①磁盘:是计算机主要的储存介质,包括软驱和硬碟。
②硬盘:属于c盘的一种,采用温彻斯特式结构。
3、发展不同:
①磁盘:软驱早已被淘汰,c盘也正在别固态硬碟所替代。
②发展为固态硬碟跟机械硬碟相结合。
硬碟的分类:
固态硬碟:类似于c盘、ssd固态硬碟(价钱贵)、读写速率快、本质是半导体储存、抗震、大容量小。
ssd固态硬碟就是把磁储存改为集成电路储存。集成电路储存即固态储存靠的是电路的扫描和开关作用将信息读出和写入,不存在机械动作。固态硬碟内主体虽然就是一块PCB板,而这块PCB板上最基本的配件就是控制芯片,缓存芯片和用于储存数据的闪存芯片。
机械硬碟:(类似于唱片机、触摸是振动的)、机械运转、价格实惠、本质是电磁储存、怕摔、大容量大。读写速率高于固态硬碟。
硬碟是c盘中的一种,软驱也是c盘。c盘就是通过磁性进行读写功能的设备,断电后保存的文件不会遗失。显存也可以存储,但储存的载体和c盘不同,断电后就不能保存数据。
U盘也可以存储数据但也和c盘不同。
插口:硬碟插口是硬碟与主机系统之间的联接部件,作用就是在硬碟缓存和主机显存之间传输数据。不同硬件插口决定着硬件与计算机之间的联接速率,在整个系统中,硬碟插口的好坏直接影响着程序运行快慢和系统性能的优劣。
插口的分类:
c盘的化学概念:c盘的结构
逻辑上的概念:
5、磁盘的分区管理
1、主分区:可以引导操作系统linux格式化命令,基本c盘上可以构建一到四个主分区。
2、扩展分区:假如须要超过4个小时分区,就可以将剩余空间作为一个扩充分区。扩充分区会占用一个主分区的位置。
3、逻辑分区:扩充分区不能直接储存文件:须要再界定逻辑分区使用。
Linux上将硬碟、分区等设备都表示为文件。