学习技巧:5W1H
what,why,who,where,when,how
用户体验:编排
服务器类型:DHCP,DNS,FTP,HTTP,cobbler(全自动化安装系统)
现在主要的云服务(云服务为虚拟化技术)为IaaS云: 虚拟化软件为
xen, kvm, lxc
虚拟软件工作原理:模拟真是的CPU、内存、I/O
CPU工作的时候是分时工作的所以一颗CPU可以供很多个虚拟机使用
内存工作的时候将会把内存某一段的空间分给需要的虚拟机使用
虚拟机与主机的称呼:虚拟机为Guest
主机为Host:宿主机
创建虚拟机:
需要指定:CPU,Memory,I/O(Disk,Ethercard)
安装OS(系统)(没有系统硬件设备也只是一堆废铁)
disk image file:磁盘映像文件
Sparse:稀疏格式(虚拟硬盘与硬件硬盘内外大小不一样例:虚拟机上看到的是120G但是在硬件硬盘上看到只用了20K)
Linux初步介绍:
登录linux之后出现的命令行界面为终端,如果远程连接到linux出现的命令行界面称为伪终端
[root@linuxserver ~]# 这一行为命令提示符,root为现在使用的用户名、linuxserver是主机名,#为真正的命令提示符
在命令提示符#后面输入tty显示的是你现在使用的是什么终端登录的
位数换算:
bit,Byte
8bits = 1Byte
1024Byte = 1KB
1024KB = 1MB
1024MB = 1GB
4 X 1GB =4G 0 加 2 的 32 次方 为32位内存最大的存储单元一共为4G
操作系统的寻址方式是通过自己的系统跟cpu的总线多少来寻址的所以大于4G的内存32位系统显示不出来
计算机硬件解析:CPU 有(运算器、控制器、寄存器)
运算器是:执行算数或者数学运算的也包括逻辑运算,控制器是控制计算
机个组件之间如何协调的
控制器是:控制CPU、内存、硬盘之间某段时间内连接者的。
CPU、内存、硬盘是有一条总线缆连接的,总线缆一次只能跟两个设备连接。
寄存器是:CPU处理的数据会临时储存在寄存器
CPU在电脑开机通电之后自动寻找内存中的某个地址然后运行地址中的指令,CPU还会按谁许执行地
址块,所以CPU就是流水工作。
在内存中读取的数据称之为:间接数。
CPU常见的平台:
摩托罗拉:m68000,m68k
IBM:Power(PowerPC)
斯坦福大学:Sparc
:Alpha
英特尔:X86,x86_64(有些写法为AMD64)
:MIPS
:ARM(卖知识的,手机CPU)
add用汇编器(翻译器)翻译成二进制格式的指令后发送给CPU,这种语言为微码语言(编程为微码编程)
芯片有自己的接口,为汇编语言,如果哪个系统能在哪个芯片平台上能安装的话需要芯片能翻译这个系统
C语言执行过程:预处理、编译、汇编、链接、执行
调用:调用库可以执行他人已经写好的代码(共享模块)
Minix(UNUX的迷你版。荷兰大学的一个教授写的)
MIT:Stallman(人名),Freedom(一个类似要求软件是全人类的应该开源的口号)
GUN运动:Gnu is Not Unix 口号
GPL:General Public 守则
GUN运动支持的软件:emacs,vi,bash
Linus(人名):开发了Linux(只是核心,只能运行上面GUN运动的程序)
有人说是GNU/Linux(因为Linux是GUN运动的产物)
源代码(自然语言人类能识别的)转换成机器语言才能被计算机识别
Linux如何移植到其他CPU平台:
同平台下:在一台有编译器的主机上先把Linux的源代码通过编译器翻译成二进制代码再导
入到没有编译器的主机上
版本号编写的规则:
版本号:major,minor,release
基本库:标准库(是系统的就已经存在的)
Memory(内存):RAM(随机访问存储器,关机数据就会删除不会储存起来,内存空间 称为CLL,每一个小CLL是8位的)
I/O:Input,Output (I/O只是为了实现跟计算机交互的接口)
程序:指令、数据
指令:发送add给CPU的某个已经设定好的针脚来控制CPU运作完成运算
发送的给CPU的数据会用编译器翻译成计算机懂的二进制代码再给CPU操作
CPU有总的控制器但是每个设备也有自己的控制器,CPU也能控制总线。
早期的处理多程序方法
多道处理系统----》time sharing(分时处理系统) 全部以程序为核心
内存加入进来:分段---》分页
CTSS-----》Mutlics (通用电气、麻省理工大学、贝尔实验室三家联合研发)
Ken(人名)Space Travell(开发的程序) 利用小型机PDP7 然后用汇编语音写了Unics最后变成Unix
Dennis Ritche(人名)和Ken一起用B语言写新的Unics,但是在写之前又把B语言开发的更高
级了变成了C语言,最后用C语言完全重写了Unics
现在的的系统都是在X86平台的最多
发行商:
slackware
S.U.S.E
Debian
Ubuntu
Redhat
redhat9--》Fedora 个人版
RHEL:RedHat Enterprise Linux 3 服务器版
redhat:GPL,GNU
CentOS:
Community ENTerprise OS 社区企业版 基于红帽的源代码开发的不是红帽官方的
LFS:Linux From Scratch 是书 教你如何编译linux相当于拿着linux核心开发linux
操作系统是应用程序与底层硬件的中间层,还是分配任务的程序,调用的名次是System Call
简称 SysCall
应用程序是直接运行在CPU上面的,但是受控与系统
API:Application Programming Interface(应用程序编程接口)
没有编译的程序在不通系统上运行要看API是否兼容、syscall,libcall
ABI:application binary interface(应用程序二进制接口)
已经编译了的程序在不同系统上运行要看ABI是否兼容
库 :
so:
自由软件:
FSF
ASF
自由的含义:
自由学习、自由修改源代码
可以出于任何目的获取源代码
自由分发源代码
自由创建衍生版
开源许可协议:开源协定(GPL、LGPL(GPL的非严格版)、BSD、APL)
BSD:1. 如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
2. 如果再发布的只是二进制类库或软件,则需要在类库或软件的文档和版权声明中包含原来代码中的BSD协议。
3. 不可以用开源代码的作者或机构名字和原来产品的名字做市场推广。
Apache License:
Copyright:
Copyleft
手机系统的区别:Android(安卓系统):Linux + jvm +java程序
IOS(苹果手机系统):
FreeBSD + Object-C(swift)
监控系统的详细介绍:
多道处理程序:专门监控后面要运行的每个程序的程序,协调每个程序在哪个设备上运行。
( 在内存中分出每个程序独立的不可让其他程序访问的空间供每个程序读
取,如果哪个程序需要读取的数据慢不能马上处理会将这个程序的优先
级降低让后面的程序先运行)
缺点:如果程序编写的时候出现死循环之类的事情出现将不能运行后面的程序。
time sharing(分时系统):分一个时间段给每个程序运行,如果程序运行的时间段到了就会
强制把程序从CPU运行中踢出去让下一个程序运行一直到所有程序运行完成
Linux基本法则:
1、 一切皆文件(包括硬件)2、由众多单一目的小程序组成3、组合小程序完成复杂任务4、尽可能避免捕获用户接口,为了方便实现脚步编程以实现自动化执行5、使用文本文件保存程序的配置数据,使用一个文本编辑器即可完成系统及服务配置工作
linux系统层次:
运行程序:通过内核把某应用程序调度至硬件执行其执行用户接口:是一种独特的应用程序,能够为用户提供启动其他应用程序的机制CLI:命令提示符,用户输入要执行的命令即可shell:外壳,是个用户接口sh,csh,ksh,bash,zsh,tcshecho $SHELL 获取某个变量值的命令GUI:通过点击操作来启动应用程序Gnome:C+gtkKDE:C++ + qtxfce:轻量级
终 端:
使用tty命令查看是什么类型的终端
虚拟终端(程序)
Ctrl+Alt+F【1-6】切换终端
表现为:/dev/tty数字
图像终端
Crtl+Alt+F7
此前未启懂X windonw:启动命令startx &
切换图像终端:startx -- :2 &
伪终端
使用ssh远程连接在图像界面下打开的命令提示符
表现为:/dev/pts/ 数字
物理终端(控制台console)
串行终端(用串行口连接的不是用VGA显卡显示)
表现为:/dev/ttyS数字
设备文件:
多用户等于多终端
用户是访问资源访问权限使用计算机知道权限的标志。
密码是验证用户的方式
磁盘划分的区域以文件形式体现
总结命令:ifconfigttylsstartxecho
知识框架:
Linux基础知识
系统管理
shell脚本编程Linux服务管理
opensll,web,ftp,samba,nfs,dhcp,dns
MySQL数据库系统
Linux集群
LB:lvs,nginx,haproxyHA:heartbeat,corosync,rhcs,keepalived
分布式应用
MogileFSMongoDB(NoSQL)
HDFS
MapReduce
缓存系统:
varnish
虚拟化:
xen,kvm,openstack
监控和自动化:
zabbix,puppet,cobbler,ansible
Python编程
RedHat红帽认证:RHCSARHCERHCA
1