浅显的概念
计算机=硬件+软件
五大部件:
运算器、控制器、存储器、输入、输出
运算器和控制器组合为CPU(中央处理单元)指令:微码编程、汇编编程
问题空间
解空间CPU去内存取数据根据地址取
(地址总线32位,是322个存储位,是4亿多个存储位,转换为4G。所以32位CPU最多可以使用4G内存)程序包含指令和数据
翻译程序的两种形式
解释:边翻译边执行
编译:都翻译结束再执行job:作业
批处理作业:job1、job2、job3
多任务的系统:多个作业程序+一个监控程序 (监控程序必须要具备所有硬件的使用权,可以拒绝其他任何被监控的直接使用。后来被称为操作系统)任何只有内核才能执行的操作,通过接口的形式表现出来,这些接口称之为系统调用
把系统调用封装成更复杂的程序,以供别人使用,称之为库,又称重复造轮子
系统启动=内核+外壳
API:Application Progrming Interface 开发以后
ABI: Application Binary Interface 编译以后
ANSI:协议
CPU:X86,X86-64,Power,PowerPC,Alpha,安腾,UltraSparc,ARM,MIPS,M68000,总线:
总线的作用:将电气信号转换为数字信号
低速IO设备汇总后连接的是南桥,再通过南桥连接北桥
高速IO设备汇总后直接连接北桥
最后都连接到CPU多任务:process
进程:是程序的实例,运行的程序的子集
进程是有生命周期的。生命周期:进程切换(上下文切换)
进程切换的时候要保存现场,唤醒的时候恢复现场。
切换进程时是捕获焦点
进程:由父进程fork自身而来(由父进程申请,内核完成)
父进程先向内核申请一个和自己一样的进程,之后这个子进程可以直接找到父进程的内存。之后加载自己的指令,有自己的内存(关闭要释放内存)编译型语言步骤
预处理–>编译–>汇编–>连接
在Linux上这四步通过一个软件完成GCC(GUN C Complier)
连接:DLL:Dynamic Link Libraries 动态链接库(windows)
so:Shared object共享对象(linux)集成开发环境(IDE):包括文本编写,gcc编译,库链接等
程序包管理器:debian(dptd)redhat(rpm)
二进制程序、配置文件、库文件、帮助文件
安装rpm包的时候要注意:系统位数匹配、系统版本匹配文件:
文件系统:源数据区、数据区软件分为:
通用软件:文件系统、网络协议栈、进程管理、加密/解密、驱动程序(让内核结合设备的特性使设备运行)
应用软件:学习路线:
1、系统管理:网络、文件(创建、删除、移动、权限)、用户(创建、删除、权限)、文件系统(分区、逻辑卷)、加密/解密、内核(编译)、启动流程、程序包管理、
2、网络服务管理:web(Apache、nginx、mysql、php)、NFS/Samba/FTP、邮件(Postfix/Dovecot)、网络安全(iptables/tcp_wrapper)
3、MySQL:增删改查、索引、优化、存储引擎、备份、恢复、集群、复制、分片
4、集群:LB(负载均衡集群)、HA(高可用集群)、GFS(全局文件系统)
5、高扩展的web:haproxy(nginx反向代理)、keepalived、tomcat、分布式文件系统、CDN、NoSQL、
6、虚拟化:xen,kvm,lxc/openvz
7、自动化运维:监控、开发
8、大规模并行处理平台:hadoop
10、系统原理及优化: