Archive

Archive for November, 2009

Debian lenny backports源

November 24th, 2009 mopyman No comments

backport的含义是“向后移植”,就是将软件新版本的某些功能移植到旧版本上来,这种行为就称为backport。

Debian向来以稳定性著称,所以就存在一个问题,官方源分发的软件版本比软件本身的版本总是要慢一拍,所以就有了backports源。backports主要从testing源,部分安全更新从unstable源重新编译包,使这些包不依赖于新版本的库就可以在debian的stable发行版上面运行。所以backports是stable和testing的一个折衷。

backports源的使用方法如下:
在/etc/apt/sources.list增加下面的行
deb http://www.backports.org/debian/ lenny-backports main contrib non-free
deb-src http://www.backports.org/debian/ lenny-backports main contrib non-free
然后安装backports源的GnuPG archive key
sudo apt-get update
sudo apt-get install debian-backports-keyring
就可以正常的使用backports源了。

Categories: GNU/Linux Tags:

C/C++ static语义(semantics)

November 18th, 2009 mopyman No comments

  static可以用来修饰变量(variant)和函数(function)。但static作用于普通变量/函数与类(calss)变量/函数的语义是不一样的。
  static有两种基本的语义,第一种是存储方式(storage),这种语义只作用于变量,不适用于函数,第二种是访问控制(Access Control)。
  用static修饰一个普通变量有两层含义。其一是表示该变量的值在超出作用域范围后仍然有效,一般编译器将static变量放置到全局静态存储区,比如.data或.bss(Block Started by Symbol)节,这就是存储方式语义。其二是表示该变量只在声明的作用域范围内可以被访问,比如, 声明在一个文件作用域内的变量不能被其他文件访问,这就是访问控制语义。
  用static来修饰普通函数的时候则只有一种语义,即访问控制,因为无论如何,函数总是要被编译器放置到.text节的。也就是说用static修饰的普通函数不能被其他文件内的代码访问。
  C++中用static来修饰成员变量和函数的语义稍有不同,其含义表示这些变量或函数是属于整个类(class)而不特定于任何一个该类的对象(object),即使该类没有一个对象产生,仍然可用使用类来访问这些变量和函数。这是C++对C static语义的扩展。

Categories: C/C++/Asm Tags:

VirtualBox主机(host)I/O负载过重导致客户机数据破坏(corruption)

November 16th, 2009 mopyman No comments

先说一下主机和客户机配置
主机:4颗双核AMD 8218HE CPU,16G内存,windows 2003 R2 server x86
客户机:单颗CPU,1500MB内存,debian lenny amd64

最近经常能遇到客户机运行迟缓(lag),无法正常提供服务的情况,客户机的控制台一般有这样的提示:
end_request: I/O error,dev hda,sector xxxxxxxx(扇区号)
Buffer I/O error on device hda6,logical block xxx(块号)

日志文件/var/log/messages中有这样的消息:
Nov 16 10:54:06 debian kernel: [255938.816139] hda: dma_timer_expiry: dma status == 0×21
Nov 16 10:54:16 debian kernel: [255948.816121] hda: DMA timeout error
Nov 16 10:54:16 debian kernel: [255948.816174] hda: dma timeout error: status=0×48 { DriveReady DataRequest }
Nov 16 10:54:16 debian kernel: [255948.816183] ide: failed opcode was: unknown
Nov 16 10:54:16 debian kernel: [255948.816199] hda: DMA disabled
Nov 16 10:54:16 debian kernel: [255948.965023] ide0: reset: master: error (0×00?)
Read more…

Categories: VirtualBox Tags:

Bash启动文件(startup files)

November 7th, 2009 mopyman No comments

  如果任何一个启动文件存在,但不能读取,Bash会报告一个错误。

  • 做为一个交互式登录shell被调用,或者带有- -login选项
  • 当Bash做为一个交互式登录shell被调用,或者做为一个非交互式登录shell被调用但带有- -login选项,如果/etc/profile文件存在,Bash首先读取这个文件来执行命令。读完这个文件后,Bash按顺序查找~/.bash_profile,~/.bash_login和~/.profile文件,并从第一个存在且可读的文件读取执行命令。当shell启动时可以使用参数- -noprofile来禁止这种行为。
    当一个登录Shell退出,如果文件~/.bash_logout存在,Bash读取并执行其中的命令。

  • 做为一个交互式非登录shell被调用
  • 如果~/.bashrc文件存在,Bash读取该文件并执行其中的命令。通过使用- -norc选项可以禁止读取该文件。
    - -rcfile选项则可以强制Bash读取指定的文件而不是~/.bashrc。
    因此,典型地,你的~/.bash_profile在任何登录相关的初始化之前或之后会包含下面的行
    if [ -f ~/.bashrc ]; then . ~/.bashrc; fi

    Read more…

Categories: GNU/Linux Tags:

ubunut pppoe拨号部分网站无法访问的原因及解决办法

November 3rd, 2009 mopyman No comments

  ubuntu 9.10(karmic koala)AMD64系统下,设置好ADSL PPPoE拨号后,出现一种情况,部分网站可以正常访问,而有些网站则没有响应,无法正常访问。比如google.cn是正常的,而sina.com.cn则无法访问。

  出现这个问题的原因是PPPoE默认设置的MTU1492字节有问题。MTU是链路层的一个特性,叫做最大传输单元(Maximum Transfer Unit)。如果网络层(IP层)要发送的数据比链路层的MTU还要大,那么IP层必须对数据进行分片(fragmentation)。PPPoE的MTU是一种逻辑MTU,因为PPPoE并没有一个实体的链路层存在。通常情况下以太网(ethernet)的MTU为1500字节,所以PPPoE设置其MTU为1492字节,加上PPPoE 8个字节的头部,刚好达到以太网的MTU,从而可以提高网络的利用率。但实际上很多ADSL接入方式的MTU并不是1500字节,比如我的ADSL链路使用traceroute实测的路径MTU(PMTU)是1492字节。那么这种情况下,PPPoE设置其MTU为1492就存在问题了,加上8个字节的PPPoE头部后,就超过了以太网的MTU大小。
Read more…

Categories: GNU/Linux Tags:

ubuntu 9.10 karmic koala 官方源

November 3rd, 2009 mopyman No comments

deb http://archive.ubuntu.com/ubuntu/ karmic main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ karmic-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ karmic-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ karmic-proposed main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ karmic-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ karmic main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ karmic-security main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ karmic-updates main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ karmic-proposed main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ karmic-backports main restricted universe multiverse

Categories: GNU/Linux Tags:

Copyleft © 2009-2010 mopyman 本站为原创网站,除非另有声明,本网站采用知识共享“署名2.5 中国大陆”许可协议授权.