二进制:
0, 1
5大部件:
CPU:计算器、控制器
Memory: 存储器(内存)
编址存储单元阵列
输入设备/输出设备:I/O
键盘:
VGA:
辅助存储器
网卡
编程:
低级语言:汇编(微码编程)
高级语言:JAVA, C++, C, Scala, Python
转件:
时序复用:
计算机:硬件+软件
硬件:开发,制造
软件:编写,编译
OS: Operating System
通用软件,主要负责管理底层硬件设备,并且将调用接口抽象为易用的形式
库:
独立的功能模块,可被共享使用
应用程序:
人机交互接口:
GUI:Graphic User Interface
Windows, Gnome, KDE, Xfce
CLI:Command Line Interface
shell: bash, zsh, tcsh
特定应用程序
开发工具
…… ……
通过软件虚拟出硬件平台的程序:
创建多个“虚拟机”
虚拟的硬件平台
而后可以虚拟机上装OS
如何虚拟:
CPU:时序复用,把CPU的计算能力切割成timeslice
内存:把物理中空闲的离散的一段或几段组织成一个假的连续的空间当内存
IO:模拟
硬盘,网卡
硬盘:通过文件来模拟硬件(回环设备)
网卡:时序复用,也可通过软件模拟
virutalization, emulation
CMOS:Complimentary Metal Oxied Substance
BIOS:Basic Input and Output System
POST: Power On and Self Testing
Ctrl, Alt, Insert (Delete)
计算机的5大部件:
CPU、内存、I/O
CPU:运算器、控制器、寄存器、缓存
内存:编址的存储单元阵列
8bits = 1Bytes
I/O设备:
I/O控制器
VM:虚拟机
硬件规格 –> OS –> 动态库(so, dll) –> 应用程序
用户界面
GUI
CLI
POST –> OS (内核, kernel)
CPU:众多指令
特权指令:操作硬件,获取敏感资源
普通指令:
CPU:
用户模式:运行程序的普通指令
内核模式:运行特权指令
编程:开发语言
写程序 –> 编译 –> 目标代码
declare -i num1=2
declare -i num2=3
sum=$[$num1+$num2]
CPU1: 摩托,M68000,m68k
CPU2: Intel, Core 2
程序 –> 编译器 –> “翻译后的结果是特定于某类CPU的”
编程:
汇编语言:方言
CPU1
CPU2
高级语言:通用语言
程序(通用语言) –> 编译 –> 方言(汇编)
源代码:source code
二进制程序:binary
硬件平台:X86, X86_64 (amd64), m68k, power(IBM), PowerPC, mips, arm, alpha, ultrasparc…
复杂指令集:CISC
精简指令集
OS的代码:99%可用高级语言编写,余下的1%使用特定平台的汇编编写;
www.top500.org: 超级计算机排名
高级语言:
编译:需要将整个程序事先转换可运行格式
解释:转换一个语句运行一个语句
ENIARC:
电子管 –> 晶体管 –> 集成电路 –> 超大规模集成电路
MainFrame:
DEC:PDP, VAX
批处理作业系统 –> Multics(多用户, 多任务)–> Ken (PDP7)
Unics –> Unix
Dennis: C
C –> Unix
Berkeley分校:BSRG, Bill Joy
1976, Ken
TCP/IP协议,虚拟内存:BSD(Berkeley System Distribution)
Unix: System V, sysv
BSD
SUN microsystem
IBM
Microsoft: XENIX
DOS: Disk OS
Apple: GUI
VAX: VMS
Windows NT
OS/2: Vista
BSD Lite:
FreeBSD
OpenBAD
NetBSD
Minix
MIT: Stallman, freedom
GNU: GNU is Not Unix
GPL: General Public License
copyright, copyleft
emacs, gcc
Linus:
Linux: Unix-like
www.kernel.org
GNU/Linux
GNU: 各种程序,源代码
Linux: 源代码
Linux系统发行版:
Debian
Slackware
S.U.S.E
RedHat
版本:
kernel:
发行商版本:
包管理器
PC兼容机:
Linux系统:由来、kernel, GNU, GPL, 发行版
Linux: kernel, GNU
GNU: GPL
kernel: GPL
Linux发行版:
Debian: Ubuntu (desktop, server)
Slackware: SUSE (SLES, OpenSUSE)
RedHat: RHEL, Fedora Core
RHEL:src.rpm
CentOS: Community ENTerprise OS
ArchLinux: 借鉴了FreeBSD
Gentoo:
LFS, Linux From Scratch
Android: Linux + jvm + android
Linux + Busybox + jvm + android
软件包管理器:
RPM:RedHat Package Manager, PRM is Package Manager
deb: dpt
RHEL:
发行更新速度较慢,更关注稳定性;
rhel 5 –> rhel 6 –> rhel 7
/sbin/init
rhel5: sysv init
rhel6: upstart
rhel7: systemd
RHEL 6.6 –> CentOS 6.6
对系统执行交互式访问:通过终端
终端的类型:
物理终端:VGA, console
虚拟终端:tty
Ctrl+Alt+F1-6
/dev/tty#
串行终端:serial interface, sty
伪终端:pty
/dev/pts/#
图形终端:
GUI
Ctrl + Alt + F7
前提:X Server 要启动
GNome: startx
KDE: startkde
Linux的用户:
管理员:root, 拥有最高权限
普通用户:不具有管理权限
实现管理任务:临时切换至管理员
su, sudo
bash prompt: 命令提示符
#
$
环境配置:通过环境变量来实现,持久有效需要保存在配置文件中
PS1
几个基础性的命令:
tty: 显示当前终端设备
who: 查看当前系统上登录的所有用户及其信息
Ctrl + c: 取消当前命令的执行
Shift + PageUp/PageDown
注意:Linux严格区分字符大小写
tty, Tty
Stallman: 自由软件
自由的含义:
自由使用;自由学习和修改;自由分发;自由创建衍生版;
Linux的哲学思想:
1、一切皆文件;
把几乎所有资源,包括硬件设备都虚拟为文件形式;
open, read, wirte, close, create, delete
2、由众多功能单一的程序组成;一个程序只做一件事情,而且要做好;
组合多个程序完成复杂任务;
3、尽量避免跟用户交互;
目标:易于编程实现自动化任务执行;
4、使用文本文件保存配置信息;
原创文章,作者:wuxiaotian,如若转载,请注明出处:http://www.178linux.com/29707