系统介绍:
《穿越计算机的迷雾》
《量子物理史话》
编程语言:
微码编程接口:汇编语言
问题空间:1000+1000
编程语言
解空间:
操作界面:输入设备
键盘,
输入设备-->硬件-->程序(运行,处理操作)-->输出
程序:指令+数据
指令集
冯 诺依曼:5大部件
CPU:运算和控制
内存:
进程:活动状态的程序,执行中的程序
Multics,
MULTIiplexed Information and Computing Service
ken thompson, dennis ritchie
文件系统
DEC:
PDP-7,
Unics:
Uniplexed Information and Computing Service
Unix, nroff
Unix:汇编语言,B语言写程序
C语言:兼具低级语言特性的高级语言
Unix的历史教训:
别和低价灵活的方案较劲;
越开源越繁荣;
Uinx的哲学基础:
让每个程序只做好一件事;如果有新任务,那么就新启一个程序,而不要在原程序中增加功能;
假定每个程序的输出,都会做为另一个程序的输入;输出中不要有无谓信息干扰;不要交互式输入;
尽可能早地将设计和编译的程序投入试用,哪怕是系统级的程序也不例外;
使用工具而不是人力来减轻负担;
简而言之:一个程序只做一件事,并做好;程序间要能互相协作;程序要能处理文本流;
OS的功用:
1、将硬件规格抽象为系统调用(System Call);
2、进程管理;
3、文件系统;
4、硬件驱动;
5、网络协议栈;
6、安全功能;
7、内存管理;
shell:用户接口
CLI:命令行接口,Command Line Interface
sh, bash, ksh, zsh, csh, tcsh
GUI:图形用户接口,Graphic User Interface
Gnome
KDE
Xfce
源代码 --> 编译(编译器) --> 目标代码
Linux发行版:
RHEL
Fedora
CentOS
slackware
S.u.S.E
OpenSUSE
Debian
Ubuntu
Linux
https://www.kernel.org/
3.19.2
version:
major: 主版本号
minor: 次版本号
release:发行号,修正号
系统运行:
用户模式
系统模式(内核模式)
库:
提供共享功能模式
减少程序体积
dll: dynamic link labrary
so: shared object
API:Application Programming Interface,应用编程接口
IEEE: POS(Portable Operating System)--> POSIX
ABI:Application Binary Interface
CPU架构类型:
x86: intel, amd, 32bits
x64: amd64
pc server
arm: 32bits, 64bits
power
powerpc
sparc, unlrasparc
m68000, m68k
alpha
Linux的哲学思想:
一切皆文件(包括硬件);
由众多目的单一的小程序组成;
组合小程序完成复杂任务;
尽量避免跟用户交互;为了方便脚本编程实现程序自动化运行;
使用文本文件保存程序的配置数据;
终端类型:
物理终端,控制台:/dev/console
虚拟终端:/dev/tty# (1-6)
Ctrl+Alt+F#
伪终端:/dev/pts/#
ssh或telnet远程连接打开的终端,图形界面下的终端
串行终端:/dev/ttyS#
第一次启动图形服务:
startx &, Ctrl+Alt+F7
startx -- :1 &, Ctrl+Alt+F8
用户工作环境:
CLI:提供命令提示符
管理员:#
普通用户:$
GUI:提供桌面环境
shell的工作环境的定制:
变量:变量名,值
变量赋值
VAR_NAME=VALUE
PS1: 定义命令提示符
\u: 自动替换为当前用户的用户名
\h: 当前主机的主机名
\H:当前主机的完整主机名,FQDN
\w: 当前工作路径,绝对路径
\W:当前工作路径,相对路径
\$: 指定命令提示符
定义方法:export PS1=''
export PS1='\033[3#m \033[0m'
知识框架:
Linux基础知识、系统管理
bash shell编程
Linux服务及安全
openssl, web, file service (vsftpd, samba, nfs), dhcp, dns
MySQL数据库
Linux集群:LB, HA
lvs, haproxy, nginx
heartbeat, corosync, keepalived
分布式应用:
mogilefs
mongodb
缓存系统:
memcached
varnish
虚拟化:xen, kvm
云:openstack
监控和自动化:zabbix, cobbler, puppet, ansbile
大数据:hadoop
Linux的文件系统:
一切皆文件
遍历
层级格式:
/ -->
etc, usr, var, home
pam, sysconfig
networking
/etc/sysconfig/networking
两类数据:
元数据(metadata):索引
数据(data):文件内容
路径分隔符:/
/usr/local
相对路径:从当前位置开始定位的路径表示形式
绝对路径:从根开始定位的路径表示形式
Linux文件名:
1、严格区分大小写字符
file, File, FiLe, FILE
2、文件名可以使用除了/以外的任意字符
登录以后:
家目录,主目录:/root, /home/USERNAME
工作目录(working directory),当前目录:pwd命令可显示