一、OSI模型
(1)中文名
开放式通信系统互联参考模型
(2)层次
物理层->数据链路层->网络层->传输层->会话层->表示层->应用层
(3)介绍
物理层: 将数据转换为可通过物理介质传送的电子信号 相当于邮局中的搬运工人。
数据链路层: 决定访问网络介质的方式。
在此层将数据分帧,并处理流控制。本层指定拓扑结构并提供硬件寻址,相当于邮局中的装拆箱工人。
网络层: 使用权数据路由经过大型网络 相当于邮局中的排序工人。
传输层: 提供终端到终端的可靠连接 相当于公司中跑邮局的送信职员。
会话层: 允许用户使用简单易记的名称建立连接 相当于公司中收寄信、写信封与拆信封的秘书。
表示层: 协商数据交换格式 相当公司中简报老板、替老板写信的助理。
应用层: 用户的应用程序和网络之间的接口。
(4)层次划分
第7层 应用层
应用层(Application Layer)提供为应用软件而设的接口,以设置与另一应用软件之间的通信。例如: HTTP,HTTPS,FTP,TELNET,SSH,SMTP,POP3等。
第6层 表达层
表达层(Presentation Layer)把数据转换为能与接收者的系统格式兼容并适合传输的格式。
第5层 会话层
会话层(Session Layer)负责在数据传输中设置和维护计算机网络中两台计算机之间的通信连接。
第4层 传输层
传输层(Transport Layer)把传输表头(TH)加至数据以形成数据包。传输表头包含了所使用的协议等发送信息。例如:传输控制协议(TCP)等。
第3层 网络层
网络层(Network Layer)决定数据的路径选择和转寄,将网络表头(NH)加至数据包,以形成分组。网络表头包含了网络数据。例如:互联网协议(IP)等。
第2层 数据链路层
数据链路层(Data Link Layer)负责网络寻址、错误侦测和改错。当表头和表尾被加至数据包时,会形成帧。数据链表头(DLH)是包含了物理地址和错误侦测及改错的方法。数据链表尾(DLT)是一串指示数据包末端的字符串。例如以太网、无线局域网(Wi-Fi)和通用分组无线服务(GPRS)等。
分为两个子层:逻辑链路控制(logic link control,LLC)子层和介质访问控制(media access control,MAC)子层。
第1层 物理层
物理层(Physical Layer)在局部局域网上传送数据帧(data frame),它负责管理计算机通信设备和网络媒体之间的互通。包括了针脚、电压、线缆规范、集线器、中继器、网卡、主机适配器等。
二、Linux
(1)建新目录
cp
cp [copy]
这个命令相当于dos下面的copy命令,具体用法是:cp –r源文件(source) 目的文件(target)
参数r是指连同源文件中的子目录一同拷贝。熟悉dos的读者用起这个命令来会觉得更方便,毕竟比在dos下面要少敲两下键盘。
…/ 和 ./ 代表的 是上级目录以及当前目录。
这样运用这两个命令来完成两种复制方法。
第一种:处在当前目录复制当前目录下文件到别的目录。
cp_文件名称_别的文件目录路径。"_"是空格
举个例子 在 orz文件夹下有两个子文件夹a和b,a中有文件x.c,b中无文件。
此时我们在a文件夹中命令如下:
cp x.c ../b/
第二种:处在当前文件夹下复制另外文件夹下的文件到当前文件夹下。
cp_路径/文件名称_./
例子条件同上个例子,命令如下:
cp ../a/x.c ./
rm
rm [remove]
这个命令是用来删除文件的,和dos下面的rm(删除一个空目录)是有区别的,大家千万要注意。rm命令常用的参数有三个: -i,-r,-f。
比如我现在要删除一个名字为test的一个文件:rm –i test
系统会询问我们:“rm:remove ‘test’?y”,敲了回车以后,这个文件才会真的被删除。之所以要这样做,是因为linux不象dos那样有undelete的命令,或者是可以用pctool等工具将删除过的文件救回来,linux中删除过的文件是救不回来的,所以使用这个参数在删除前让你再确定一遍,是很有必要的。
rm –r目录名:这个操作可以连同这个目录下面的子目录都删除,功能上和rmdir相似。
rm –f 文件名(目录名):这个操作可以进行强制删除。
mv
mv[move]
这个命令的功能是移动目录或文件,引申的功能是给目录或文件重命名。它的用法同dos下面的move基本相同,这里不再多讲。当使用该命令来移动目录时,他会连同该目录下面的子目录也一同移走。如果你想给一个文件或目录重命名时可以用以下方法:mv 原文件名(目录) 新的文件名(目录)。
dudf
du [disk usage]
du命令可以显示目前的目录所占的磁盘空间,df命令可以显示目前磁盘剩余的磁盘空间。如果du命令不加任何参数,那么返回的是整个磁盘的使用情况,如果后面加了目录的话,就是这个目录在磁盘上的使用情况(这个功能可是dos没有的呦)。不过我一般不喜欢用du,因为它给出的信息实在是太多了,我看不过来,而df这个命令我是最常用的,因为磁盘上还剩多少空间对我来说是很重要的。
语法:df [选项]
说明:linux中df命令可显示所有文件系统对i节点和磁盘块的使用情况。
该命令各个选项的含义如下:
-a 显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统。
-k 以k字节为单位显示。
-h:以容易理解的格式输出文件系统大小,例如124KB、345MB、46GB。
-i 显示i节点信息,而不是磁盘块。
-t 显示各指定类型的文件系统的磁盘空间使用情况。
-x 列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)。
-T 显示文件系统类型。
功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息的!
cat
cat[concatenate]
这个命令是linux中非常重要的一个命令,它的功能是显示或连结一般的ascii文本文件。cat是concatenate的简写,类似于dos下面的type命令。它的用法如下:
cat text 显示text这个文件;
cat file1 file2 依顺序显示file1,file2的内容;
cat “file1” “file2”>file3 把file1,file2的内容结合起来,再“重定向(>)”到file3文件中。
“〉”是一个非常有趣的符号,是往右重定向的意思,就是把左边的结果当成是输入,然后输入到file3这个文件中。这里要注意一点是file3是在重定向以前还未存在的文件,如果file3是已经存在的文件,那么它本身的内容被覆盖,而变成file1+file2的内容。如果〉左边没有文件的名称,而右边有文件名,例如:
cat >file1:结果是会“空出一行空白行”,等待你输入文字,输入完毕后再按[Ctrl]+[c]或[Ctrl]+[d],就会结束编辑,并产生file1这个文件,而file1的内容就是你刚刚输入的内容。这个过程和dos里面的copy con file1的结果是一样的。
另外,如果你使用如下的指令:
cat file1>>file2:这将变成将file1的文件内容“附加”到file2的文件后面,而file2的内容依然存在,这种重定向符〉〉比〉常用,可以多多利用。
(2)清除屏幕
clear
这个命令是用来清除屏幕的,它不需要任何参数,和dos下面的cls具有相同的功能,如果你觉得屏幕太紊乱,就可以使用它清除屏幕上的信息。
ln
ln[link]
这是linux中又一个非常重要命令,请大家一定要熟悉。它的功能是为某一个文件在另外一个位置建立一个不同的链接,这个命令最常用的参数是-s,具体用法是:ln–s源文件目标文件。
当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。例如:ln –s /bin/less /usr/local/bin/less
-s 是代号(symbolic)的意思。
这里有两点要注意:第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;第二,ln的链接有软链接和硬链接两种,软链接就是ln –s ** **,它只会在你选定的位置上生成一个文件的[镜像],不会占用磁盘空间,硬链接ln ** **,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。
如果你用ls察看一个目录时,发现有的文件后面有一个@的符号,那就是一个用ln命令生成的文件,用ls –l命令去察看,就可以看到显示的link的路径了。
grep
用于查找文件中符合字符串的那行。
e.g. grep -nr “network_ssl” ./ [查找当前文件夹下所有文件内容,列出包含有 network_ssl该字串的行,并显示行号]
参数说明: -a :将 binary 文件以 text 文件的方式搜寻数据
-c :计算找到 ‘搜寻字符串’ 的次数
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行!
-A NUM:同时输出匹配行的后NUM行。
-B NUM:同时输出匹配行的前NUM行。
-C NUM:同时输出匹配行的前、后各NUM行。
-r :明确要求搜索子目录:grep -r 或忽略子目录:grep -d skip 如果有很多 输出时,您可以通过管道将其转到’less’上阅读:$ grep magic /usr/src/Linux/Documentation/* | less 这样,您就可以更方便地阅读。
find
find / -name “*.txt” -print 用于查找所有的‘ *.txt’文件在当前目录及子目录中;
find / -name “[A-Z]*” -print 用于当前目录及子目录中查找文件名以一个大写字母开头的文件;
find /etc -name “host*” -print 在/etc目录中查找文件名以host开头的文件;
find / -name “[a-z][a-z][0–9][0–9].txt” -print 在当前目录查找文件名以两个小写字母开头,跟着是两个数字,最后是.txt的文件;
1、find命令的一般形式为;
find pathname -options [-print -exec -ok ...]
2、find命令的参数;
pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为’command’ { } ;,注意{ }和\;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
3、find命令选项
-name
按照文件名查找文件。
-perm
按照文件权限来查找文件。
-prune
使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。
-user
按照文件属主来查找文件。
-group
按照文件所属的组来查找文件。
-mtime -n +n
按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。
-nogroup
查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。
-nouser
查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。
-newer file1 ! file2
查找更改时间比文件file1新但比文件file2旧的文件。
-type
查找某一类型的文件
-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
-fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。
-mount:在查找文件时不跨越文件系统mount点。
-follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
-cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。
另外,下面三个的区别:
-amin n
查找系统中最后N分钟访问的文件
-atime n
查找系统中最后n*24小时访问的文件
-cmin n
查找系统中最后N分钟被改变文件状态的文件
-ctime n
查找系统中最后n*24小时被改变文件状态的文件
-mmin n
查找系统中最后N分钟被改变文件数据的文件
-mtime n
查找系统中最后n*24小时被改变文件数据的文件
ar
功能说明:建立或修改备存文件,或是从备存文件中抽取文件。
语 法:ar[-dmpqrtx][cfosSuvV][a<成员文件>][b<成员文件>][i<成员文件>][备存文件][成员文件]
补充说明:ar可让您集合许多文件,成为单一的备存文件。在备存文件中,所有成员文件皆保有原来的属性与权限。
参 数:
指令参数
-d 删除备存文件中的成员文件。
-m 变更成员文件在备存文件中的次序。
-p 显示备存文件中的成员文件内容。
-q 将文件附加在备存文件末端。
-r 将文件插入备存文件中。
-t 显示备存文件中所包含的文件。
-x 自备存文件中取出成员文件。
选项参数
a<成员文件> 将文件插入备存文件中指定的成员文件之后。
b<成员文件> 将文件插入备存文件中指定的成员文件之前。
c 建立备存文件。
f 为避免过长的文件名不兼容于其他系统的ar指令指令,因此可利用此参数,截掉要放入备存文件中过长的成员文件名称。
i<成员文件> 将文件插入备存文件中指定的成员文件之前。
o 保留备存文件中文件的日期。
s 若备存文件中包含了对象模式,可利用此参数建立备存文件的符号表。
S 不产生符号表。
u 只将日期较新文件插入备存文件中。
v 程序执行时显示详细的信息。
rpm
一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件,与Dpkg类似。
RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。
常用rpm命令
查询rpm软件包
rpm -q [软件包名]
软件包的安装
rpm -ivh [软件包]
软件包的升级
rpm -Uvh [软件包]
软件包的卸载
rpm -e [软件包名]
三、计算机发展概况
四、部分计算机软硬件公司
五、计算机应用领域
六7、计算机奖项
(1)图灵奖
图灵奖(Turing Award)由美国计算机协会(ACM)于1966年设立,专门奖励那些对计算机事业做出重要贡献的个人,其名称取自计算机科学的先驱、英国科学家艾伦·麦席森·图灵(Alan M. Turing)。
由于图灵奖对获奖条件的要求极高,评奖程序又极严,一般每年只奖励一名计算机科学家,只有极少几年有两名合作者或在同一方向做出贡献的科学家共享此奖,因此它是计算机界最负盛名、最崇高的一个奖项,有“计算机界的诺贝尔奖”之称。
(2)诺贝尔物理学奖
诺贝尔物理学奖是根据诺贝尔1895年的遗嘱而设立的五个诺贝尔奖之一,该奖旨在奖励那些对人类物理学领域里作出突出贡献的科学家。
诺贝尔物理学奖于1901年首次颁发至今,已经颁发给计算机领域多位突出贡献者。
晶体管的发明
1956年诺贝尔物理学奖授予肖克利、巴丁和布拉坦, 以表彰他们对半导体的研究和晶体管效应的发现。
晶体管的发明是20世纪中叶科学技术领域有划时代意义的一件大事。由于晶体管比电子管有体积小、耗电省、寿命长、易固化等优点,它的诞生使电子学发生了根本性的变革,它拨快了自动化和信息化的步伐,从而对人类社会的经济和文化产生不可估量的影响。
大容量存储硬盘的发明(巨磁电阻)
法国科学家阿尔贝·费尔和德国科学家彼得·格林贝格尔因发现巨磁电阻效应而荣获2007年诺贝尔物理学奖。
巨磁电阻效应相关技术被用于读取硬盘中数据,这项技术是最近几年硬盘小型化实现过程中的关键。
光纤的发明
2009年诺贝尔物理学奖授予美籍华人物理学家高锟教授,以表彰他率先以SiO2为原料制成光导纤维,并得到推广应用,为宽带网的发展奠定了基础。
集成电路的发明
Jack Kilby所发明的集成电路使微电子学成为所有现代技术的基础。
2000年,为表彰其在这一领域的突出贡献,诺贝尔奖委员会授予Jack Kilby诺贝尔物理学奖。
(3)约翰·冯·诺依曼奖
约翰·冯·诺依曼奖由IEEE成立于1990年,目的是表扬在计算机科学和技术上具有杰出成就的科学家。该奖项每年颁发一次,每次颁给一位或两位计算机科学家。
七、位运算
(1)种类
- &(按位与运算):有零为零,反之为一
- |(按位或运算):有一为一,反之为零
- ^(按位异或运算):相同为零,不同为一
- ~(按位NOT运算):按位取反
- <<(左移):n<<x,相当于n*2的x次方
- >>(右移):n>>x,相当于n/2的x次方
(2)优先级
从上往下递减
~
<<, >>
&
^
|
&=, ^=, |=, <<=, >>=
八、二叉树
(1)相关名词
- 结点——包含一个数据元素
- 结点的度——结点含有的子树个数
- 树的度——树中所有结点度的最大值
- 根结点——只有后继,没有前驱
- 叶结点——度为零的结点
- 分支结点——除叶结点以外的结点
- 子树——树的一棵分支
- 孩子结点——含有的子树的根节点
- 双亲节点或父节点——若一个节点含有子节点,则这个节点称为其子节点的父节点
- 子孙结点——某结点为根的子树上的所有结点都是它的子孙
- 祖先结点——从根结点到某结点的路径上的任意结点都是该结点的祖先
- 兄弟结点——有共同的父结点的结点。
- 堂兄弟结点——双亲在同一层
- 层数——结点的层次,根为第一层
- 深度(高度)——结点的最大层次
- 路径——从根到该结点所经分支和结点。
- 森林——m棵互不相交树的集合
(2)二叉树遍历
- 先序遍历:先访问根结点,再从左到右按照先序思想遍历各棵子树
- 后序遍历:先从左到右遍历各棵子树,再访问根结点。
- 层序(次)遍历:按层次从小到大逐个访问,同一层次按照从左到右的次序
(3)二叉树类型
- 满二叉树:二叉树中每一层的结点数都达到最大
- 完全二叉树:除最后一层外, 其余各层都是满的
(4)二叉树节点数
具有n个结点的完全二叉树的深度为floor(log2n)+1