Debian学习's profileDebian和计算机网络学习BlogLists Tools Help
amazingcounters.com
June 14

考试进行中

  今天开始,已经是完全进入复习阶段的第二天了.明天是星期三了,下星期一就考试,所以时间还是很紧的,要加强复习强度才行了.

  中午在电脑看课件,终于看完了第26个课件,里面有老师给我们的一些复习总结.不敢有怠慢的心,立即拿出书,顺便将以前的的课件也打开来参考,把老师所要求我们的都看了一遍.

  对于基本概念的要求,老师要求是扎实明确,而不是似是而非.这我们也是很明白的,平时交作业或者老师叫我们答问题,我们都是没完全把概念给弄清,所以答得是似是而非的.也难怪了,因为平时讲课太快,而下来又没有好好复习加预习,因此对于概念的掌握有一定的欠缺.其中,各种现实模型和教学过程中使用的5层虚拟模型要正确区分,模型中信息传输的过程,各层的功能和处理方法等是重点.因此,要把这些概念给好好看才行.

  然后就是一些老师给出的算法,基本上都是老师上课时讲过的题型与重点难点.这些算法,在作业里基本上都有些题型,而有一些没有的,我从课件上和课本上也找到了.我想,把这些算法弄会,然后能用它们来解出相应的题目,考试也就没问题了.

  好了,要加油了,期末考出好成绩才行:)

June 13

考试周前的一节课

  随着课程的进入尾声,考试也一步步走进了.

  想想,也好像很久没写日志了,不是因为没好好学习,只是因为一方面要准备各方面的复习,一方面要做课设,一方面有点私人事要做,所以让老师觉得我没好好学习了.但是请老师相信,我没落下这课,都去听课与回来再看课堂讲义.

  今天感觉上,去上课的人还是很多的.今天还是接着上节课的内容.主要学习了数字签名与数字证书,通信中的安全,邮件中的安全待.

  在对称密码与不对称密码中,有它们的优点与缺点.对称密码,密码长度相对较短,加密解密速度快,但分发密码困难.不对称密码,便于发布密码,但密码较长与加密解密速度慢.因此,对于对不同的密码,都会有它们各自的优点与缺点的,不可能会有完美的方案的.我们可以做的,只能力求完美.

  在数字签名中,我们学习了基于对称密码学的数字签名和验证过程,还有基于公钥的数字签名.在此我们采用了特殊的方法来防止伪造签名.对于上述过程,RSA等不对称算法速度慢>=签名和验证的速度慢.

  报文摘要的的特点:给定明文P,容易计算MD(P);给定MD(P),很难计算出明文P;给定P,很难找到P',使得MD(P)=MD(P');即使输入为1,也会输出很复杂的结果.它有两个主要用法,一个是常用消息摘要算法,另一个是MD系列报文摘要算法.

  防火墙我们平时就用得比较多,但是对于它里面所包含的原理与一些相关的技术性知识,可以说我们是很不了解了.不过现在好了,可以有个机会让我们对它有个初步了解.一般有过滤防火墙,按照简单的规则来过滤包.如我们平时上网开着天网防火墙,处于外网或内网的我们,都会经常被一些不怀好意的人进行窥看与试图发送不安全的包来破坏你的系统.此时防火墙会自动检测这些包的安全性,如不安全就会过滤掉.另一个是复杂的应用层网关/代理.在特定的端口上工作,通过验证接收外部网络的连接请求,按照规则验证这些请求是否合法,代替外部主机向内网发出请求,验证请求结果发送给外部网络.有一个很特别的例子,就是一些公司会设这样的防火墙,会过滤含有一些特殊成份的数据包,以防止分司的机密被内奸给传出去.

  防火墙体系由两个包过滤器和一个应用网关构成的防火墙体系,内部也需要过滤的原因,就是上面所讲的第二个例子.

  这节课是这个学期的最后一节课了吧?现在在将老师讲的课件都好好看一遍了,同时将作业题都弄明白.这一个星期还是很紧张的.要好好抓紧了:)

May 06

Linux学期学习总结

  转眼大半个学期过去了,而这个学期的LINUX学习进度也快进入尾声了.
  昨天晚上,在老师的论坛和博客里面知道我们写博客的进度得到的评分.我立刻去看,还行,老师给我面子,给了我16分.呵,总算是自已的努力有了回报吧.老师的课程也快讲完了,而我学习LINUX的进步也差不多了,是时候写一个总给了
  记得起初我第一次学LINUX是在大二的时候,那时候经常买电脑服和电脑的杂志看,那时候从书上懂的新的知识和新的技术比较多.就是那个时候,我才第一次对双系统有了兴趣,因为我看到了别人对LINUX的肯定,而同时我也深感WINDOWS的漏洞和很多无端死机无端重启的问题斥之以鼻.所以,我在图书馆借了书,看着书装起了双系统.过程还是很顺利的,因为在装了WINDOWS后再装LINUX时,比较容易.我装的是红帽的LINUX,因为比较易上手,而且它帮我们解决好了很多常用软件的安装,基本上都帮我们装上了,所以,第一感觉跟WINDOWS差不多.
  但当我用多了,我才发觉有很大的差别.特别是这个学期选修了一门专业的选修,更是给了我一个用专业的角度学习LINUX的机会.所以,在这个学期里面,随着老师的进度,还有网上很多的LINUX学习资料,发现,虽然好像对LINUX学得很好了,但都是一些很基本的操作,而真正是技术的编程部份,好像还是很空白.感觉很有很多专业的知识需要去学习,才能算得上学会了LINUX了.
  下面,说说我的学习总结吧:
 
一\
  第一要先说一下LINUX和WINDOWS安全方面的比较吧.
  WINDOWS是在登陆时可以以超级用户的身份登陆的,而在LINUX中是不允许的,只能在以普通用户登陆后再在终端里面用SU命令转换成超级用户的身份.这不能不说是一种很好我改进,因为一旦让黑客以超级用户身份登陆的话,后果真是不敢想像了.
  同时,Windows受到的病毒感染肯定最多,促使大多数用户购买杀毒软件以保证自己的系统安全。最近,间谍软件开始入侵Windows系统,在用户浏览网络时不明智地下载和启动间谍软件之后,间谍软件就会暗地里获取和发布用户的个人信息。微软最近收购了一些杀毒软件和反间谍软件公司以帮助它对付这种威胁。
  还有,使用管理员权限和普通的用户账号都可以操作Windows和Linux系统。但是,但是某些第三方 Windows应用软件没有严格坚持这个特点,经常需要管理员的权限才能正确运行软件。因此,这些用户发起的病毒攻击的破坏性是很大的。Linux应用软件通常都遵守这个安全要求,因此很少被攻击者利用。
 
二\
  要说一下LINUX中的复杂的命令行了.也许很多人会选择WINDOWS的原因,不外乎它的傻瓜式操作简单方便,而且只要用鼠标点来点去就行了.而往往对LINUX止步的原因,可以是对它的命令行感到害怕了,感觉又要回到DOS时代似的.
  是的,LINUX中还有很多方面都在用命令行,但是我想LINUX没采用WINDOWS的那种简单的操作的方式,是有它自已的原因的.我觉得一个非常重要的原因就是LINUX中的GUI的使用和内核编译的原因吧,而且用命令行还可以更快捷地处理平时很多的操作.觉得难用的,也只是懒人吧,他们还想记这些命令行,所以就觉得难了.是一种误导啊.
  LINUX操作系统还是以GUI为主,因为广大的用户(主要指国外的用户)已经很习惯于GUI操作了, GUI只是一个次要的选择而已。这一点从早期的X设计的思想都可以看出来。X只是运行在LINUX操作系统中的一个进程而已.
  下面给出我在学习中总结出来的一些命令行运用的方法,希望可以给大家一些帮助吧:
  1\网卡的激活与停止
超级用户;
ifconfig eth0 down 停止
ifconfig eth0 up 启动
  2\Linux挂载Windows分区
mount ntfs分区
单机挂windows的NTFS分区
1. 上www.google.com搜索并下载 kernel-ntfs-2.4.18-14.i686.rpm
2. rpm -ivh kernel-ntfs-2.4.18-14.i686.rpm
3. mkdir /mnt/share
4. mount -t ntfs /dev/hda1 /mnt/share
要挂载Windows分区,首先新建一个目录/mnt/share,修改/etc/fstab,在最末尾添上(假设Windows安装在硬盘的第1个分区)
/dev/hda1 /mnt/share ntfs defaults 0 0
  3\RPM包
1.卸载 RPM –e
2.查询 rpm –q
-a 查询所有已安装的软件包
-f 查询包含文件的软件的包
-i 显示软件包信息
-l 显示软件包的文件列表
3.验证 rpm –v
rpm –Va 验证整个文件丢失了哪些文件
碰到不认识的文件使用
rpm –qf
4.一个rpm包安装到哪里去了(已经安装的包)
rpm –qi 包名(这里不包括.rpm后缀的软件名称,也就是说只能用mysql或者mysql-3.23.54a而不是mysql-3.23.54a.rpm)
5.一个rpm包中包含哪些文件
一个没有安装过的软件包:使用rpm –qip ***.rpm
一个已经安装过的软件包: 使用rpm –qi ***.rpm
  6\忘记root密码,如果是grup
1.出现grup画面时,用上下键选启动Linux的哪一项,按e键
2.上下键选择 kernel /boot/……… 然后按e键
3.修改现在见到的命令好,加入single 结果:
kernel /boot/vmlinuz-2.4.20-8 single ro root=LABEL=
4.回车返回,按b键启动,直接进入linux命令行
直接执行: passwd root
修改密码,你的密码就搞定
如果是lilo:按Tab,画面出现lilo 键入:linux single ,回车
  7\挂接USB移动硬盘
将移动硬盘挂上.
#df 查看Linux下硬盘盘符
mount /dev/sda1 /mnt/usb
  8\抓包命令tcpdump
例:抓获10.64.23.114的主机收到和发出的所有的数据包
tcpdump host 10.54.23.145截获特定的端口
tcpdump tcp port 21 host 10.64.23.143
  9\修改grub启动时的背景图片
1 将一图片转化成640*480,14色的XPM文件:
   #convert abc.jpg -colors 14 -geometry 640x480! abc.xpm
2 压缩生成的xpm文件,使用gzip
#gzip -9 abc.xpm
3 将abc.xpm.gz拷到/boot/grub下
4 修改/boot/grub/menu.lst
splashimage=(hd0,0)/boot/grub/abc.xpm.gz
  10\修改用户的权限
.改用户权限的话,你可以改vi /etc/passwd
如:我想lll变成和root用户一样,就改: lll:x:508:508::/home/lll:/bin/bash
改后面的 508 为和root后面的数据一样的就可以了!
改为:lll:x:508:0::/home/lll:/bin/bash
lll就拥有root的权限了。
  上面十个例子只是平时自已学习中总结的一部份,还有很多,就不一一举出来的.在这里只是想说明一下,其实当你真正喜欢上了Linux后,你熟练地掌握了命令行,往往会使操作更加简单,而且一点都不比Windows差.
  而关于命令行的列举,我想就没什么必要了,因为在这里一一列举出来反而显得没什么技术含量,这些只要用心去记了,都会用得很好的,我相信,所以,不需要刻意在这里列举出来了.
 
三\
  Linux是一个自由的软件,在爱好者和编程高手的不断改进下,版本也在不变的变化.新的内核会修订了旧内核的bug,并增加了许多新的特性。如果用户想要使用这些新特性,或想根据自己的系统度身定制一个更高效,更稳定的内核,就需要重新编译内核。
  它有几个优点:
  1\自己定制编译的内核运行更快(具有更少的代码)
  2\系统将拥有更多的内存(内核部分将不会被交换到虚拟内存中)
  3\不需要的功能编译进入内核可能会增加被系统攻击者利用的漏洞
  4\将某种功能编译为模块方式会比编译到内核内的方式速度要慢一些 
  当然,这都是我自已的一些浅见啦,肯定还会有很多的优点我没总结出来的.
  我自已也没编译过内核,但可以肯定的是,新版本的内核一定比旧版本内核有更多的优点,也更加之全面完善.
  1\必须装kernel-headers包
  2\包的命名是
  – kernel-headers-version-platform, 如
  – Kernel-headers-2.6.8-2-386,写为
  – kernel-headers-`uname -r`
  – 注意`是主键盘数字1前面的那个键
  3\安装好之后
  – ls /lib/modules/`uname -r`/build – 就可以看见内核开发使用的头文件了
 
四\
  最后,说一下我认为很重要的一部份.就是Linux中的SHELL了.
  用户登录进入Linux系统时,可以进入基于X Window的图形视窗系统:KDE。当然很多工作可以在图形环境下完成,但是在服务器应用环境下的很多情况需要远程连接到服务器进行管理配置,而且使用命令行模式进行管理更加方便和简单,因此学习Linux,Shell的学习和使用是必不可少的一部分。用户登录或运行终端类比程序时,实际进入了Shell.
  下面三段对SHELL的定义,是在网上找到了,说得很清楚也很具体.
  (确切一点说,Shell就是一个命令行解释器,它的作用就是遵循一定的语法将输入的命令加以解释并传给系统。它为用户提供了一个向Linux发送请求以便运行程序的接口系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。)
  (Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它互动式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支。它虽然不是Linux系统内核的一部分,但它调用了系统内核的大部分功能来执行程序、创建文档并以并行的方式协调各个程序的运行。因此,对于用户来说,Shell是最重要的实用程序,深入了解和熟练掌握Shell的特性极其使用方法,是用好Linux系统的关键。可以说,Shell使用的熟练程度反映了用户对Linux使用的熟练程度。)
  (当用户使用Linux时是通过命令来完成所需工作的。一个命令就是用户和Shell之间对话的一个基本单位,它是由多个字符组成并以换行结束的字串。Shell解释用户输入的命令,就像DOS里的command.com一样不同的是,在DOS中,command.com只有一个,而在Linux下比较流行的Shell有好几个,每个Shell都各有千秋。一般的Linux系统都将bash作为默认的Shell。)
   Bash是GNU shell,兼容sh以及其他shell里的许多有用的特性。当shell启动的时候,它读取它自己的配置文件。最重要的几个如下所示:
  • /etc/profile

  • ~/.bash_profile

  • ~/.bashrc

  一个shell脚本是你重复使用的命令序列。这个序列通常是通过在命令行输入整个脚本的命令来执行的。要建立一个shell脚本,在你的编辑器中打开一个新的空白文件。任何文本编辑器就可以:vimemacsgeditdtpad都可以。可能你会选择一个高级的编辑器比如vim 或者 emacs,因为它们可以设置来高亮语法来帮助初学者避免很多经常犯的错误,比如忘记括号和冒号。

  例如,如果要将目录中所有后缀为.c的文件改为.cpp,则可以用下面的命令:

  

  ls *.c|awk '{n=$0};gsub("c$","cpp"){print "mv "n,$0}'|sh
 
  又例如,从ipconfig中得到ip地址:
 
  ifconfig | awk '/inet/{print $2}' | awk -F: '{print $2}'
 
  最后,我总结了一下Bash中的特殊字符(总结得很简单,但还是在平时编程中发挥着不少的作用,所以有必要作总结)
 
  (1).通配符
* 匹配任何长度的任何串
? 匹配单个字符
[...] 匹配单个括号内的字符,[]中的-,!具有特殊含义,如:
$ echo [a-z]*
显示首字母在a-z范围内的文件或目录名
$ echo [a,b]*
显示首字母为a或b的文件或目录名
$ echo [!a]*
显示首字母不为a的文件或目录名(使用!时,!必须是[后的第一个字符)
!还可与-和,一起使用

在Bash 2.0以后的版本中,若用shopt打开了extglob选项(shopt -s extglob),
那么还可以扩展的模式表达式(模式表达式是指那些包含了一个或多个shell通配
符的字):
*(pattern [|pattern] ...) 匹配模式的零次或多次出现
+(pattern [|pattern] ...) 匹配模式的一次或多次出现
@(pattern [|pattern] ...) 匹配模式的一次出现
?(pattern [|pattern] ...) 匹配任何一个模式.与*不同的是它不匹配
多个模式或模式的重复出现
!(pattern [|pattern] ...) 与?类似,不过是不包括指定模式的串
应该注意到,模式表达式的定义是递归的,每个表达式都可以包含一个或多个
模式,而且模式表达式也是可以嵌套的.

(2).数据或程序控制使用的特殊字符:
主要有:
> (file) 输出重定向到文件
>> (file) 输出重定向到文件,内容加到已存在的文件尾部
< (file) 输入重定向到文件
; 命令分隔符
| 管道符,把一条命令的输出重定向为另一命令的输入
& 放在命令之后强迫命令在后台执行
`` 命令替换,重定向一条命令的输出为另一命令的参数

(3).用于引用和逃逸的特殊字符:
逃逸符\ 表示以后的字符不具有特殊的含义或不是Shell的函数,
除此之外,Bash还可以识别一些C语言中的转义序列,如:
\a 响伶
\b 回退
\e Escape
\n 换行
\r 回车
\t 制表
\v 制表
\\ 反斜线
\nnn 八进制的ASCII编码
\xnnn 十六进制的ASCII编码
但必须以如下方式进行引用:
$'string'
引用符'和" 将特殊字符或由空白分隔的字引用起来组成一个简单字符串
两者区别在与,双引号内的内容可以进行参数和变量替换
 
  

April 13

发现了两个debian的非官方升级地址

  最近上网,发现了两个debian的非官方升级地址.
 
  有星际译王的字典,Acrobat Reader7.0,chmss,gaim的QQ插件,lumaqq,newsung字体

  在/etc/apt/sources.list文件加入下面这一行:

  deb http://archive.ubuntu.org.cn/ubuntu-cn ubuntu.org.cn main

  另有一Kde皮肤的地址:
  deb http://debian.neo.pl/wfmh unstable main contrib non-free
  apt-cache search kwin-style搜寻一下,然后安装你钟意的吧^_^

  也可下载到硬盘后再dpkg -i xxx.deb安装

  

 
April 08

第一次上机课

  昨天计算机网络上机课.主要内容是掌握课堂教学中讲到的命令和操作过程.

  因为是第一次上机,而且都是一些基本命令,所以特别的简单.因为我以前就对这些命令很了解了,所以上机前看了一眼这些题目,都觉得很简单.

  看到老师在场实现打开机房电脑间的共享时,不但可以在计算机管理中设置来实现,其实在组策略里面也是可以解除这个禁止项的.

  下面讲一下其中一些上机内容吧.

  ping 127.0.0.1--这个Ping命令被送到本地计算机的IP软件,该命令永不退出该计算机。如果没有做到这一点,就表示TCP/IP的安装或运行存在某些最基本的问题。

  ping还有一些相关参数.

  ping IP -t--连续对IP地址执行Ping命令,直到被用户以Ctrl+C中断。
  ping IP -l 2000--指定Ping命令中的数据长度为2000字节,而不是缺省的32字节。
  ping IP -n--执行特定次数的Ping命令。

  ping -f Set (信息包中无碎片)

  ping -r 记录主机所经过的路由
  Netstat Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

  所以要测试局域网最大分组长度或测试到达目的主机所经过的路由,只要用上面的参数就可以实现了.

  至于arp命令.

  老师只要求我们查看MAC地址和IP地址的对应关系.

  相关命令是:

  arp -s IP地址 MAC地址

  arp -a

  这样就行了。

  总体来说,这节课说真的,学的东西都不是难的东西。我想老师也只是想我们了解一下最基本的网络命令,好让我们对这们课程有更深入的了解。

  下次上机内容就不一样了。是协议分析软件的使用。我想一定很有趣的。下载来试试看先。

  

  

 

 
April 05

在Windows下运行Linux

  今天上网时,发现了一个好东西.它能让你在Windows下运行Linux.这个软件名叫VMWARE,它并不是一个插件,而是一个让你在某个操作系统下虚拟环境后运行另一个操作系统的软件.

  下面我讲下一这个软件的用法吧.

  在安装并运行VMWARE之后,选择VMWARE Configuration Wizard建立一个虚拟配置文件,保存目录建议设定为C:\Programefile\ VMWARE\linux。VMWARE以虚拟方式在Windows的文件目录中建立虚拟的Linux文件系统,下面要安装的所有Linux系统都放置在这一目录中。Guest OS要占用的磁盘大小设为300MB,这个数字由用户自行定义。不过VMWARE所能支持的最大硬盘空间不能超过2000MB。要在虚拟机上使用软盘与光驱,还要将Floppy和CDROM选择项置为Enabled。如果要使用网络,要求虚拟机以一个独立的主机出现在网络中,则要选择HostBridge选项。设置完毕后,应保存配置。如果想对虚拟的配置进行更改或添加虚拟设备,如硬盘、光驱、声卡等硬件,可选择选单上的settings选项中的Configuration Editor 进行配置。

  在这一系列的设置完成之后,就可以安装相应的操作系统了。为了要运行新建立的操作系统平台,必须运行VMWARE,选择事先建立好的Linux虚拟机,将 Linux启动软盘放入软驱, Linux光盘放入光驱中,选择Power on启动虚拟机,开始安装。虚拟机用软盘启动后,便开始了 Linux的安装,安装过程同在一台独立的计算机上安装 Linux没有什么两样。安装好Linux后,在字符环境下以Root身份登录系统,然后运行Xconfigurator,对X Window进行配置。

  如果要达到理想的显示效果,可以选择XSVGA Server。正确配置X Window后,保存配置退出,即可运行X Window了。

  大概就是这样了.用起来还挺简单的.真是真心的佩服作者,做出了这么一样好用的东西.

 

 
April 01

重装后不能进入双系统

 

  昨天晚上,觉得机器其慢,不论我是加了内存到512M还是整理了碎片,还是优化了等等措施都做完之后,它还是老样.看来,它是得重装了.

  于是,说干就干.心想,这玩意不就花我一小时吗?不过想想如果能像外国一样为了重装而装微软告上法庭取得赔偿那多好啊?因为毕竟是浪费我们消费者不少时间.可惜我们不是用正版,所以没这个权利了.

  不到一个小时就装完了.

  满怀开心的重开电脑,电脑直入Windows,中间没看到GRUB启动那玩意.

  我想,这回完了,怎么进Linux系统呢?现在进入不了双系统了.虽我的机子还是装了双系统.

  幸好还能上网,早上赶紧上网查了下.发现了一个玩意,叫做grub for dos.

  按照他的提示和帮助,配置好,重新然后就可以在启动选项里看到grub了,从grub引导linux,重新安装grub

  方法是这样的:

  (

  首先,在windows中下载grub for dos并解压;在目录中找到grldr,将其拷贝到ntldr所在的目录(我把它放在C:\)。同时,  将其中的boot目录也拷贝到某个位置(C:\)。

使用一个二进制的编辑器打开grldr(比如UltraEdit),查找字符串“boot”,你会看到类似“(hd0,0)/boot/grub/menu.lst”,标明了grub启动菜单的位置。修改它,使grub能够找到启动菜单。

2、设置启动linux分区

title linux
kernel (hd0,x)/boot/vmlinuz (x用你自己安装linux分区的数字替换掉)
initrd (hd0,x)/boot/initrd.img

用文本编辑器打开nt loader的boot.ini(注意这个文件的属性为只读,修改之前要将属性改为可读写),添加:

C:\grldr="Start GRUB"


修改完毕,将boot.ini的属性改为只读。

完成所有这些,重启电脑.
3、最后的步骤

重新启动后,在NT loader的菜单中选择="Start GRUB",然后grldr会被启动。
或者进入grub后,直接安c,进入console模式,其他都和linux下的grub使用方法一样了,根据自己的环境设置进入linux。

  )

  别外,我下载的grub for dos的地址是:http://newdos.yginfo.net/grubdos.htm

  这是我在重装好Windows后所遇到的第一次关于双系统启动的问题.

  幸好网络资源充足,可以及时查资料解决问题.

  关于GRUB的问题,网上有相当多的资源.

  得好好利用这个网络资源才行.

  今天是愚人节,先祝所有的人愚人节快乐吧.

March 29

学习的方法

 

    昨天在老师的论坛上看见我们班的聂超说,他发现把老师的课件打印出来,然后再重点跟据老师课件的内容重点学习重点复习,不但可以对课程的难点理解得更容易,而且还有助于我们系统的学习重点。
  其实,我早就这样的。只是我不是打印出来罢了。聂超说拷老师课件的人多,但真正在电脑上看的人少。确实这样,有的人打开电脑,在打机和看课件之间,首先会选择打机的,这是人的一种惰性决定的,也是人的自制力不够所造成的。但我是在电脑上看老师课件的人。而且,上课时老师的进步确实快了一点,所以课堂上不可能完全跟得上老师的步伐,难免会有知识的漏掉。所以,下来以后再看老师课件总结,这是一个电好的方法。
  不知觉过了六周,而且课程进度较快,所以若大的一本教材差不多讲了一半了。看着书一页一页地住后翻,觉得自已的知识每一天都在增长。
  说真的,我觉得计算机网络这个学程开得很好。而且主要是用了国外的教材,这也是吸引我的一大原因。
  对比国内的教材,真是感觉什么叫专家什么叫业余了。在学校图书馆看了不少计算机网络的书,指国内的,都只是大概的说一下计算机网络的大体结构,而且有很多知识点没提到或者有很多说得不清楚不明白的地方就更是多得不多了。感觉这些人也只是对计算机网络不是太专业的人,相比国外的我感觉他们对每个知识都说得很清晰而且讲得很详细,同时结全很多的例子,让我们更易更深入地理解这个课。
 

March 25

关于介质访问控制子层

 

  上两节课,讲的内容是介质访问控制子层的相关内容的前面部份.

  在信道分配这个问题里,有LAN和MAN中的静态信道分配方案和动态分配方案。

  静态分配方案中,我们学习了耱每帧平均等待时间,这个公式书上有,所以不难理解。但是提出了一个相关问题,就是如果我们忽略排队延迟,只是问“在一个100Mbps的网络上发送一个10000位的帧需要多少时间“的话,刚得到的答案是100us。但是,显然这不是正确的,因为只有当信道上同的竞争的时候,结果才能成立。这点我觉得值得注意。

  然后就是多路访问协议,它有两上版本,就是纯ALOHA和分槽ALOHA,它们的区别在于是否将时间分成离散的时槽以便所有的帧都必须同步到时槽中.纯ALOHA不要求全局的时间同步,而分槽ALOHA则需要.

  当然,要记住这部份里面的相关公式运算,例如空闲时,成功时和冲突时成功的概率的不同计算方法,还有平均次数的计算.

  然后,由于ALOHA没有侦听选项,导致许多不必要的冲突。而传播的延迟影响就是:如果信道传播延迟大,则可能在信号未传播过来时误以为信道空闲。由此引入了载波检测协议。包括持续和非持续的CSMA,还有P持续CSMA,带冲突检测的CSMA。无冲突协议主要介绍了位图协议,二进制倒计数协议两种。

  到有限竞争协议时,就出现了一些困难了。第一次在课堂上听老师讲那个自适应搜索协议时,一时还搞不明白什么原事,因为还存在着一种定势思维,就是像数据结构那个树一样.但和老师讲的完全不一样.下来再认真读了遍,才弄时白了.

  感觉每次听完课,都有很多知识点没听进去,都得下来在电脑上看课件才完全弄懂.

  所以,以后学得再加把劲才行了.

March 23

在Linux下面运行dos的方法

 

  今天学习了在Linux下面运行dos的方法.

  Linux系统提供了一组称为mtools的可移植工具,可以让用户轻松地从标准的DOS软盘上读、写文件和目录。它们对DOS和Linux环境之间交换文件非常有用。它们是不具备共同的文件系统格式的系统之间交换文件的有力手段。对于一个MS-DOS的软盘,只要把软盘放在软驱中,就可以利用mtools提供的命令来访问软盘上的文件。

  先了解一下mtools的主要命令如下

  mcd 目录名 改变MSDOS目录;

  mcopy 源文件 目标文件 在MSDOS和Unix之间复制文件;

  mdel 文件名 删除MSDOS文件;

  mdir 目录名 显示MSDOS目录;

  mformat 驱动器号 在低级格式化的软盘上创建MSDOS文件系统;

  rnlabel 驱动器号 产生MSDOS卷标;

  mmd 目录名 建立MSDOS目录;

  mrd 目录名 删除MSDOS目录;

  mren 源文件 目标文件 重新命名已存在的MSDOS文件;

  mtype 文件名 显示MSDOS文件的内容。

  这些命令和对应的不加 m的 MSDOS命令非常相似。

  如果在Linux环境下看DOS盘最上层的目录的内容:

$ mdir a:

Volume in drive A has no label

Volume Serial Number is 15F6-3362

Directory of A:\

SS6 CPP 331 09-24-99 7:41 ss6.cpp

CH9 <DIR> 11-20-99 16:22 ch9

XXQ 0 11-20-99 16:24 xxq

95CZXTA DOC 36,864 06-15-98 22:51 95czxta.doc

95CZXTB DOC 39,936 06-16-98 7:18 95czxtb.doc

HTCA DOC 27,136 01-08-99 0:13 htca.doc

HTCB DOC 27,136 01-08-99 0:12 htcb.doc

6 file(s) 131,403 bytes

1 dir(s) 1,295,872 bytes free

 

又如果将DOS盘上的文件xxq复制到当前目录下,并用ls命令进行验证。

$ mcopy a:\htca.doc

$ ls –l htca.doc

-rw-r— -r- - 1 xxq xxq 27136 Jan 1 01:80 htca.doc

March 20

挂载fat32和ntfs分区显示中文名

 

  以前挂载fat32和ntfs分区时,很多时都显示不出中文名.不过今天,我终于发现了解决方法.

  第一种是自动加载方式:

  

  编辑/etc/fstab文件,把原来的

  /dev/hda2 /mnt/hda2 vfat auto,users,exec 0 0                   
  /dev/hda5 /mnt/hda5 ntfs auto,users,exec,ro,umask=000 0 0

  改成

  /dev/hda2 /mnt/hda2 vfat iocharset=gb2312,users,exec 0 0
  /dev/hda5 /mnt/hda5 ntfs iocharset=gb2312,users,exec,ro,umask=000 0 0
  第二种是手动加载方式:
  

  在shell下输入以下命令

  # mount /dev/hda2 /mnt/hda2/ -t vfat -o iocharset=gb2312
  # mount /dev/hda5 /mnt/hda5/ -t ntfs -o iocharset=gb2312

  如果你要挂接的Windows分区是ntfs分区,而Linux系统采用的locale是zh_CN.GB2312或zh_CN.GBK,分区成功挂接后,会出现一些中文文件名的文件不能识别文件类型的情况。解决办法是把Linux的locale换成zh_CN.UTF-8。在挂接分区时把iocharset参数的值由gb2312换成utf8即可。

March 19

修改字符终端的字体颜色的一点经验

 

  因为终端都是默认黑色的,但是,它也是可以变色的.

  而且换色后,不但可以起到美化的作用,同时也能保护视力.

  步骤:
1、让终端显示彩色字体
默认安装好 Debian 系统后,大家会发现用 ls 命令不带参数,不会显示彩色。
可加一个 --color 参数来显示彩色。
$ ls --color

2、修改 .bashrc 文件
每次都带参数未免有些麻烦,最好的方法是把它写到默认配置文件 .bashrc 里,位于用户目录。
$ vi ~/.bashrc

代码:

    # enable color support of ls and also add handy aliases
    if [ "$TERM" != "dumb" ]; then
        eval `dircolors -b`
        alias ls='ls --color=auto'
        alias dir='ls --color=auto --format=vertical'
        alias vdir='ls --color=auto --format=long'
    fi


去掉默认的注释后,保存退出,重新打开一个终端,运行 ls 命令就可以看到彩色效果了。

March 18

关于PuTTY

 

  上次上机课时,由于学校机房的Linux系统还不能用.所以,老师只能让我们远程登陆学校机房主机的Linux系统了.

  当时我还不明白这个软件是什么东西.而之前我已了解了在Linux里面的远程登陆方法,而且主要的登陆命令有两上,就是SSH和TELNET.它们之间有些区别.

  先说说TELNET吧.如果有人正在某个router节点监听封包,就可以轻而易举地截获资料封包,并可以通过解读窃取账号和密码。建议非必要时不要激活Telnet;如果一定要激活,必须确定限制的联机范围,并使用iptables设定联机的限制区域。此外,还要随时注意登录档案里关于登录的事项,不要让root用户以Telnet方式登入Linux主机。
  再说说SSH吧.用户通过SSH可以把所有传输的数据进行加密,使“中间人”的攻击方式不可能实现,而且也能够防止DNS和IP欺骗。它还有一个额外的好处是传输的数据是经过压缩的,可以加快传输的速度。SSH作用广泛,既可以代替Telnet,又可以为FTP、POP,甚至为PPP提供一个安全的“通道”。

  所以,当时我们上机是是用SSH远程登陆,是一个明智的选择,也是一个必须的选择.

  然后,我在网上查了下资料,了解了PUTTY的安装和应用.下面是我学明白的.

  首先是先下载:

  1.下载软件包。到http://www.openssh.com下载最新软件包OpenSSH 3.6.1(最好下载源程序软件包后自行编译)。本文以openssh-3.5p1.tar.gz为例进行介绍,安装环境为Red Hat 7.1/kernel 2.4.8/gcc-2.96-98。
  然后就是安装了:

  2. 解压及安装,代码如下:

# tar zxvf openssh-3.5p1.tar.gz
# cd openssh-3.5p1
# ./configure --prefix=/opt --sysconfdir=/etc/openssh
# make
# make install
# cd /etc/rc.d/init.d/
# vi sshd
//加入/opt/sbin/sshd启动进程
# cd /etc/rc.d/rc3.d/
# ln -s ../init.d/sshd S59sshd

  最后,重启计算机以后,用下列命令进行测试:

# ssh -l  geminis  www.test.com
The authenticity of host 'www.test.com (*.*.*.*)' can't be established.
RSA key fingerprint is a7:35:3c:bd:47:b0:5d:30:68:f1:15:77:1a:b1:67:dd.
Are you sure you want to continue connecting (yes/no)?



  因为是第一次登录主机,OpenSSH将显示不能识别该主机。键入“yes”,把主机的“识别标记”加到“~/.ssh/know_hosts”文件中。第二次访问这台主机的时候就不会再显示这条提示信息。然后,OpenSSH提示输入远程主机上的账号及口令。输入完后就建立了SSH连接,可以像使用 Telnet一样使用OpenSSH。

  哈哈,感觉还是不错,很容易理解.一下就学会了.也明白了机房里面的一些知识.

  

  

  

  

 

March 16

上机课

 

 

  今天是这个学期的第一次上机课.上机的内容如下:
1 显示PATH系统变量的值。
 
 
3 在当前用户的主目录下创建hello.c 文件,该文件的内容就是hello world 程序。编译并生成
可执行文件hello,并运行该文件。

4 查看/ u s r / bin 下的可执行文件的个数。(提示:使用可以列出访问权限的参数列目录,然后
过滤- rwxr - xr - x 模式的输出行,然后再用wc 的计算行书参数统计出可执行文件的个数)

5 查看主目录下的.bashrc 文件,解释该文件各语句的作用。

6 编写一个shell 脚本,打印出2 个班一起排名的总成绩在前3 名学生的姓名和总成绩。
每个班成绩文件格式如下(姓名、第1、2、3 门课程成绩及总成绩):
z ha ng 40 50 60 150
wang 60 60 60 180
li 100 10 90 200
 
 
  由于还不太熟悉Linux里面的命令,所以还没完全完成.不过我会加紧查资料,然后在我机上试验的.我想一不定会找到答案的.
  第一题做出来了,答案是:
stu@debian:~$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
 
  第二题答案是:
stu@debian:~$ whereis ifconfig
ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz

March 15

Firefox试用日记

 

  今天上网时,觉得一直都在用Linux里面自带的浏览器,感觉有点不爽.

  好像在Windows里面用多了IE,对它的不稳定老死IE和不安全以及占用资源大等一系列问题一直都不大满意.所以,很早我就不用IE上网了.自从Firefox1.0版出了半年来,我就一直用它了.而且它是开源的,还允许我们添加很多的插件.使功能强大了不少.

  所以,今天上网时,我想,是不是也要在Linux里面装上一个Firefox呢?

  说干就干吧.说不定会有一些惊喜呢?

  因为Firefox是基于Mozilla的一种轻便型Web浏览器,在Debian中有现成的deb软件包,安装很简单方便。用以下命令即可完成Firefox中文版的安装:

debian:~# apt-get install mozilla-firefox mozilla-firefox-locale-zh-cn
  下面就是做一些简单的配置了.
  首先是网页显示字体配置:进入”编辑--首选项--基本信息--字体和颜色“菜单路径设置即可。
  如果要支持老师工作日志里面的在线PDF,首先得先装上PDF的相关软件.
以Adobe Reader 7.0 for Linux软件提供的pdf插件为例进行说明。同样,在配置前需完成
Adobe Reader 7.0 for Linux软件包的安装,并确保acroread命令所在路径包含在系统环境
的搜索路径中,也就是说能在系统任何路径中打acroread命令都能正常启动程序。我的
acroread是安装在/usr/local/Adobe/Acrobat7.0/bin目录下的,所以我要把它拷贝到
/usr/bin目录下。acroread的pdf插件位于/usr/local/Adobe/Acrobat7.0/Browser/intellinux目录下,
名为nppdf.so。用以下命令在firefox的插件目录创建一个到该文件的链接即可,
如:debian:/usr/lib/mozilla-firefox/plugins# ln -s /usr/local/Adobe/Acrobat7.0/Browser/intellinux/nppdf.so
  • 安装好插件后,如果用firefox点击一个网页中的pdf文件链接,firefox会自动调用acroread程序显示该pdf文件。

  •   现在,终于可以在Linux里面用上了火狐了.呵呵,感觉,还是一直的爽啊.不过不知道是不是在Linux里面还不大支持的问题,有时显示一些图片会显示不出来.还得查找一下相关资料,解决这些小问题.那浏览器就完美了^_^

    March 13

    在Linux里面的查找方法

     

      现在我发现,在Linux里面是有很多目录,而且每个目录都有其特别的作用.但在这多么的文件平和这么么多的文件里,我发现,如果要查找某个文件是一件很麻烦的事!

      毕竟在Linux中需要我们使用专用的“查找”命令来寻找在硬盘上的文件。Linux下的文件表达格式非常复杂,不象WINDOWS,DOS下都是统一的AAAAAAA.BBB格式那么方便查找,在WINDOWS中,只要知道要查找的文件的文件名或者后缀就非常容易查找到。Linux中查找文件的命令通常为“find”命令,“find”命令能帮助我们在使用,管理Linux的日常事务中方便的查找出我们需要的文件。

      我试着好像Windows里面的文件查找一种方法:文件名查找法,这样查找,确实是可行的.

      这个方法说起来就和在WINDOWS下查找文件一样容易理解了。如果你把这个文件放在单个的文件夹里面,只要使用常见的“ls"命令就能方便的查找出来,那么使用“find”命令来查找它就不能给你留下深刻的印象,毕竟“find”命令的强大功能不止这个。如果知道了某个文件的文件名,而不知道这个文件放到哪个文件夹,甚至是层层套嵌的文件夹里。举例说明,假设你忘记了httpd.conf这个文件在系统的哪个目录下,甚至在系统的某个地方也不知道,则这是可以使用如下命令:
    find / -name httpd.conf
      这个命令语法看起来很容易就明白了,就是直接在find后面写上 -name,表明要求系统按照文件名查找,最后写上httpd.conf这个目标文件名即可。稍等一会系统会在计算机屏幕上显示出查找结果列表:
    etc/httpd/conf/httpd.conf
      这就是httpd.conf这个文件在Linux系统中的完整路径。查找成功。
    如果输入以上查找命令后系统并没有显示出结果,那么不要以为系统没有执行find/ -name httpd.conf命令,而可能是你的系统中没有安装Apache服务器,这时只要你安装了Apache Web服务器,然后再使用find / -name httpd.conf就能找到这个配置文件了。

      我想在Linux里面应该还有很多种方法可以实现查找的.不过现在我就学会一种.这种方法相对来说还是很简单的.不知道还会不会有更简单的呢?这得下去再查一上资料才行了.毕竟在Linux里面学的东西都是新的,都是一种激动的体验啊.


     

    March 12

    debian 下使用紫光输入法

     

       debian 下使用紫光输入法

     
    今天,我在debian 里面终于装上了紫光输入法
    下面是一些安装的过程与步聚:
    首先是安装:
      安装:
      apt-get install alien
      转包工具 alien
      
      alien rf4magic-5.0-43.i386.rpm
      转成 deb 包裹: rf4magic_5.0-44_i386.deb
      
      安装 deb:
      dpkg -l rf4magic_5.0-44_i386.deb
      提示错误 : libImlib.so.11 这个文件没有
      
      此类问题最好的解决方法,就是求助 http://packages.debian.org。刚好今天全天有网,所以上网很方便。
      在那里找到下面部分 Search the contents of packages
      根据自己的 Distribution ,如 unstable
      输入 keyword : libImlib.so
      得到搜索结果: usr/lib/libImlib.so.11 libs/imlib11
      
      解决依赖关系:
      apt-get install imlib11
      
      重新安装:
      dpkg -l rf4magic_5.0-44_i386.deb
      看着它的安装,到最后的成功。
      
      使用输入法前的准备工作:
      我习惯用 startx 来启动我的 X ,喜欢把一些启动信息写到 ~/.xinitrc,类似以下:
      vi ~/.xinitrc
      XMODIFIERS=@im=rfinputitrc
      export XMODIFIERS
      rfinput &
      ......
      exec fvwm
      ......
      killall rfinput
      
      启动输入法:
      退出 X ,然后 startx 进来。
      
      然后就是激活输入法:
      打开一个软件,鼠标置于输入栏中,Ctrl + 空格激活输入法,出现紫光图标,按键盘出现输入条,表示能成功使用了。
      
      字体美化:
      因为我发现输入条字体比较丑陋,所以我做下如下的修改:
      cd ~/.rfinput
      ls -a
      找到 .rfinput ( .开头得文件,默认隐藏,ls 必须加 -a 参数,里面是配置信息)
      vi .rfinput
      找到 GBFontSet,改成类似以下:
      GBFontSet "7x14,-sim-simsun-medium-r-normal--14-*-*-*-c-*-*-*,-*-r-*"
      (注释:-sim-simsun-medium-r-normal--14-*-*-*-c-*-*-*,-*-r-*,是我系统中已安装的字体,自行修改为你自己系统中已安装的)
      保存,退出 X,重新进来,能看到效果。
      
      使用中发现的严重问题,未解决:
      紫光输入法其实还附带好几个输入法,如智能ABC ,win 下是用 Ctrl + Shift 组合键切换,Debian 下我一切换,马上输入法连当前的程序一起崩溃,还请大家一起想办法解决。
      错误信息如下:
      Superman:~# rfinput: relocation error: rfinput: undefined symbol: db_create
      
      fdock 是个很有趣的东西,位于 /usr/local/rfinput/bin,里面东西不少,大家去看看
      
      依赖关系:
      apt-get install libqt3c102-mt
      apt-get install kdelibs4
      注意这个需要下载 14.1MB of archives.


    请问高手和达人能帮我解决吗?谢谢了。
     

    March 10

    学习了shell的几个命

     

         今天看了标准输入与输出的一些相关知识。理解了当中一些命令的用法,觉得理解这些用法之后,再利用它们来编写脚本去实现有关的操作,比传统的笨方法来得简单多了。
      以cat命令为例,它的功能是从命令行给出的文件中读取资料,并将这些资料直接送到标准输出。若使用命令#cat config 将会把文档config的内容依次显示到屏幕上。但是如果cat 的命令行中没有参数,它就会从标准输入中读取资料,并将它送到标准输出。例如:
    #cat
    Hello world
    Hello world
    Bye
    Bye
    用户输入的每一行都立刻被cat命令输出到屏幕上。
    再如,命令sort按行读入文档正文,将其排序,并将结果送到标准输出。如:
    #sort
    bananas
    carrots
    apples

    apples
    bananas
    carrots
    这时我们在屏幕上得到了已排序的采购单。直接使用标准输入/输出文档砘在以下问题:
    输入资料从终端输入时,用户输入的资料只能用一次。下次再想用这些资料时就得重新输入。而且在终端上输入时,若输入有误修改起来不是很方便。输出到终端屏幕上的信息只能看不能动。我们无法对此输出做更多处理,如将输出作为另一命令的输入进行进一步的处理等。

    而输入重定向就须用到wc命令等,而输出重定向就得用到Is命令等,当然,还有管道和命令替换什么的。
    真的还有很多没看完,不过今天就看到这了,觉得学起来也不太难,而它们的脚本功能实在太强了,能轻易完成比较复杂的任务。
    明天还得好好看一下shell相关编程的内容。觉得这部分的吸引力越来越大了。呵。

    March 08

    关于GRUB引导的讨论

     

        昨天装上了Debian后,使用起来还是觉得和Windows有很大的区别。可能是用Windows用久了吧,有种定向思维,所以有些不习惯。
      因为是习惯问题,我想用多了自然就惯了,也就会不习惯Windows了,呵呵……:)
      我是用GRUB引导系统的,由于是双系统,所以有两个选顶。但现在主要活动还是在Windows,而Linux只是学习和兴趣用。但它默认启动Linux,而Windows为第二启动,名字也变成了DOS了。
      我翻了下资料,找到了更改启动菜单的方法。用文本编辑器打开/boot/grub/menu.1st文件后,在“default=0"那里可改变默认的操作系统,0为Windows,1为Linux ,"timeout=10"这句可改变菜单的延迟时间。"title ......“这句可修改菜单名称等等。研究透了,感觉很简单。同时,如果想重装GRUB,可以终端里输入"grub -install /dev/hda",这样就会将GRUB装在第一个硬盘的MBR上。
      这是今天的一个小收获。

    装上Debian后的第一天

     

       由于昨天都在搞我的msn Spaces,还没时间装Debian Linux。于是,在今天把安装上了。因为之前很久我就装了Windows和Red Hat Linux双系统了。由于Red Hat是比简单的,安装也不困难,所以上手很快。在期间对基本的命令和shell的使用也比较深的领会。
      但Debian的安装确实不亲自看一遍是不会装的。所以我叫宿舍的韦吉亮帮我安装。我一直在旁边看着,还把安装过程中需要的一些命令记下来了。当差不多一个半小时过去后,出现了类似于Red Hat风格的Linux界面,我的心早就飞上了太空了。我赶紧在系统工具里面设置网络协议等东西,打开浏览器。。。随着网址之家熟悉的界面出现,证实了我安装的Linux能上网了。
      虽然安装完成了,但我还得下努力很深放地了解Debian。因为命令就和Red Hat有很大区别。如Red Hat里面安装软件就非常简单,下载个RPM格式的软件包,然手在终端里面输入命令rpm -ivh *.rpm就行了。而在Debian不一样,它不认识RPM格式的软件包,得先用apt -get alien解决依赖关系,然后用alien *.rpm装RPM包转成deb包,这样在Debian下才能辨认出来,最后就是要dpkg *.deb装这个软件包安装。如果是代码更不一样了,得先用命令./configure配置,然手再编译make调用,最后安装make install;但我发现一个比较强大的就是apt -get,dpkg是Debian系列特有的软件包管理工具,它被誉为所有Linux软件包管理工具(比如RPM)最强大的!配合apt-get,在Debian上安装、升级、删除和管理软件变得异常容易。,因此只要简单得敲一下”apt-get upgrade && apt-get update”,机器上所有的软件就会自动更新了……。这实在太令人觉得惊奇了。
      所在,要将之前所学的和现在在Debian Linux上学的有机结合,力求做到综合应用,使Linux学得更好。
      还有就是,我发现自已不知不觉间喜欢上Linux了,之前用Red Hat时也有兴趣,不过远没有现在这么大兴趣和动力。不知是课程所致还是我真的喜欢上了。不过,无论怎样,我都会把这个操作系统学得很精。说不定某一天会放弃使用Windows,呵呵,这一天不知道会不会来呢?