VirtioSCSI和virtioBLK
qemu对设备的模拟可以分成两类:全模拟和半模拟。全模拟即完全模拟物理设备的工作过程,使得运行在虚拟机上的软件完全感知不到自身运行环境的差异。例如qemu中实现了对IDE磁盘、LSI控制器(其上可接SCSI磁盘)等物理存储设备的模拟,原先运行在物理机上的IDE驱动、LSI驱动或应用程序不做任何改动即可运行在虚拟机中。因此,全模拟的优点比较明显,即不用提供专门针对虚拟化场景的设备驱动,完全可以复用物理环境下的驱动程序。那么全模拟有何缺点呢?全模拟时,虚拟机内部驱动会频繁访问虚拟机IO端口,KVM平台下会导致大量的陷入和陷出操作;另外虚拟机内外数据传输时只能通过以字节为单位的拷贝方式进行,无法直接采用共享内存的方式,因此存在较大的访问性能问题。
为解决全虚拟化在性能上的问题,半模拟技术应运而生。它构造了一种虚拟化环境所独有的存储设备,因此半虚拟化需要在虚拟机内部安装特定的驱动程序才能正常驱使该设备进行工作。通常我们称**虚拟机内部的驱动为前端驱动**,称**负责实现其功能模拟的程序(KVM平台下即为qemu程序)为后端程序*,半模拟技术也常常被叫做前后端技术*。**采用半摸拟技术后,配合前 ...
中断
中断是什么中断是操作系统、CPU、CPU与IO设备中的概念,为中断CPU执行。其中涉及的概念都有无限深的概念栈(其实是无限深)我们就从简单的系统层面讲一讲。
前置概念IRQ:interrupt request,中断请求
ISR:interrupt service routine, 中断服务程序,中断后运行的服务,ISR运行结束才会结束中断
PIC:programmable interrupt contolle,可编程中断控制器(中断控制芯片),与I/O设备直连,可以触发CPU的INTR(中断请求)引脚,发起中断请求
APIC:advanced programmable interrupt contolle,高级编程中断控制器,有两部分,Local APIC 在CPU内部(每个核都有),I/O APIC在主板芯片组内,I/O APIC和LAPIC通过总线连接
硬中断硬件设备通知CPU就绪中使用,分为:
可屏蔽中断外设或借口的中断、可以在CPU处理其他紧急操作时忽略或屏蔽
不可屏蔽中断电源断电、内存错误等,不可通过软件屏蔽,必须响应中断
软中断软件触发的中断,如定时器、网卡收发包
异常一 ...
计算机启动到操作系统运行
首先学一个东西,一定要有一个前置的知识,我们把它当做已知的,我不可能从原子组成分子开始讲原理。那学习计算机启动过程的前置知识是什么呢?我要求你已知以下几点:
内存是存储数据的地方,给出一个地址信号,内存可以返回该地址所对应的数据。
CPU 的工作方式就是不断从内存中取出指令,并执行。
CPU 从内存的哪个地址取出指令,是由一个寄存器中的值决定的,这个值会不断进行 +1 操作,或者由某条跳转指令指定其值是多少。
好了,只需要知道这三点前置知识,你就能专业地解释计算机的启动过程了。
一、为什么是 BIOS 主导?都说开机后,BIOS 就开始运行自己的程序了,又硬件自检,又加载启动区的。我就不服了,为什么开机后是执行 BIOS 里的程序?为啥不是内存里的?为啥不是硬盘里的?
好的,不要怀疑前置知识,CPU 的工作方式,就是不断从内存中取指令并执行,那为什么会说是执行 BIOS 里的程序呢?这就不得不说说内存映射了。
二、内存映射CPU 地址总线的宽度决定了可访问的内存空间的大小。比如 16 位的 CPU 地址总线宽度为 20 位,地址范围是 1M。32 位的 CPU 地址总线宽度为 32 ...
linux kernel更换
CentOS 是RHEL(Red Hat Enterprise Linux)源代码再编译的产物
发行版本
发行时间
内核版本
发布时间
2.1
2004.05.14
kernel-2.4.9
2011.08
3.1~3.9
2004.03.19~2007.07.26
kernel-2.4.21
2003.01
4.0~4.9
2005.03.09~2011.03.02
kernel-2.6.9
2004.10
5.0~5.11
2007.04.12~2014.09.30
kernel-2.6.18
2006.09
6.0~6.10
2011.07.04~
kernel-2.6.32
2009.12
7.0.1406
2014.07.07
kernel-3.10.0-123
2013.07
7.1.1503
2015.03.31
kernel-3.10.0-229
7.2.1511
2015.12.15
kernel-3.10.0-327
7.3.1611
2016.12.12
kernel-3.10.0-514
7.4.1708
2 ...
yum使用
[toc]
更改centos yum 源1/etc/yum.repos.d/CentOS-Base.rep
更改为
1234567891011121314[base]name=CentOS-$releasever - Basebaseurl=http://mirrors.aliyun.com/centos/7.6.1810/os/x86_64/gpgcheck=0[updates]name=CentOS-$releasever - Updatesbaseurl=https://mirrors.aliyun.com/centos/7.6.1810/updates/x86_64/gpgcheck=0[extras]name=CentOS-$releasever - Extrasbaseurl=https://mirrors.aliyun.com/centos/7.6.1810/extras/x86_64/gpgcheck=0
123456789101112131415161718192021222324252627282930[serverid]#其中serverid是用于区别各个不同 ...
react antd
antd 是react UI 组件库
使用 npx create-react-app 项目名(项目名不能为大写字母)yarn create react-app 项目名`
npm start yarn start
yarn test 测试
package-lock.json文件锁定所有模块的版本号,包括主模块和所有依赖子模块。 当你执行npm install的时候,node从package.json文件读取模块名称,从package-lock.json文件中获取版本号,(类似 go.mod 和 go.sum )
Webpack 只处理 src 中的文件。 你需要将任何 JS 和 CSS 文件放在 src 中,否则 Webpack 将发现不了它们。webpack 是react的前端打包工具
ajax
AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)
AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。
AJAX 不需要任何浏览器插件,但需要用户允许JavaScri ...
HAProxy负载均衡器
LB简介HAProxy是什么HAProxy是一个免费的负载均衡软件,可以运行于大部分主流的Linux操作系统上。
HAProxy提供了L4(TCP)和L7(HTTP)两种负载均衡能力,具备丰富的功能。HAProxy的社区非常活跃,版本更新快速(最新稳定版1.7.2于2017/01/13推出)。最关键的是,HAProxy具备媲美商用负载均衡器的性能和稳定性。
因为HAProxy的上述优点,它当前不仅仅是免费负载均衡软件的首选,更几乎成为了唯一选择。(还有gobetween)
HAProxy的核心功能
负载均衡:L4和L7两种模式,支持RR/静态RR/LC/IP Hash/URI Hash/URL_PARAM Hash/HTTP_HEADER Hash等丰富的负载均衡算法
健康检查:支持TCP和HTTP两种健康检查模式
会话保持:对于未实现会话共享的应用集群,可通过Insert Cookie/Rewrite Cookie/Prefix Cookie,以及上述的多种Hash方式实现会话保持
SSL:HAProxy可以解析HTTPS协议,并能够将请求解密为HTTP后向后端传输
HTTP请求重写 ...
计算机体系架构
[toc]
cpusocket(s)主板上物理CPU插槽
cpu dieDie指从晶圆上切割下来的小方块,一个die内可能存在多个cpu内核,一个或多个Die可封装成一个CPU package(cpu socket)。
die之间通过片外总线互联,不同die之间的cpu内核不能共享cpu缓存(cache),die内内核可共享L3 cache
NUMA nodes一个socket可以划分多个NUMA node
NUMA 引入了本地内存和远程内存,CPU 访问本地内存的延迟会小于访问远程内存;
NUMA 的内存分配与内存回收策略结合时会可能会导致 Linux 的频繁交换分区(Swap)进而影响系统的稳定性
CoreCPU的内核,一般一个socket含有多个Core
Thread(s)超线程技术,一个core包含多个并行处理任务的thread,thread有独立执行上下文,共享内部寄存器,我们常说(看)的
主板PCH(蓝厂南桥,Platform Controller Hub)
淘汰南北桥设计,即将被SOP(不用DMI,用PCIe、USB等)淘汰,功能一直在增删
PCH具有原来ICH(I/ ...
arping的使用
arping详解版本
arping主要干的活就是查看ip的MAC地址及IP占用的问题。
arping有两个版本,一个版本是Thomas Habets这个人写的,这个版本有个好处是可以arping <MAC地址>,也就是说我们可以通过MAC地址得到IP。还有一个版本是Linux iputils suite的,这个版本就不能通过MAC地址,解析出IP地址了。
可以使用arping -V来查看自己系统的arping的版本
楼主观察了CentOS使用的是Linux iputils suite版本的,debian使用的是Thomas Habets。
注意两个版本的的arping使用的参数有很大的区别,所以要根据自己的arping版本去使用相应的参数。别到网上抄了个,结果在自己的系统上不能执行。
楼主使用的系统debian是Thomas Habets版本的,所以下面的很多参数只适合debian操作系统。
TH版简介
过程:给一个主机,发送arp或者ICMP包,并打印回复的消息。主机可以以hostname,ip地址,mac地址等形式出现。一个请求包,每隔一秒发 ...
Ubuntu安装mysql server
sudo apt-get install mysql-server -y
初始化配置
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354ubuntu@VM-0-11-ubuntu:~$ sudo mysql_secure_installationSecuring the MySQL server deployment.Connecting to MySQL using a blank password.VALIDATE PASSWORD PLUGIN can be used to test passwordsand improve security. It checks the strength of passwordand allows the users to set only those passwords which aresecure enough. Would you like to setup VALIDATE PASSW ...