0%

在ubuntu 9.10下修改/.recently-used和/..recently-used.xbel文件的属性已经无法阻止gnome记录最近使用文档.正确的做法是在主目录建立.gtk-2.0文件
touch ~/.gtk-2.0
然后输入
gtk-recent-files-max-age=0
如果想限制记录最经文档的书录输入
gtk-recent-files-limit=3 #比如只记录3个

代号为”namoroka”的firefox 3.6正式发布了,性能提升不少。ubuntu估计要到下一个版本10.04(Lucid Lynx)才会更新到firefox 3.6,但愿不要这么晚。mozilla官方不提供amd64版本的安装包,那么下载源代码本地编译吧,这样性能还能更优。编译安装步骤如下,参考了官方build文档
  
  0. 准备编译环境和依赖
  sudo apt-get build-dep firefox
  sudo apt-get install libasound2-dev libcurl4-openssl-dev libnotify-dev libxt-dev libiw-dev mesa-common-dev autoconf2.13

Read more »

近期收拾一台老本本IBM thinkpad 390X,虽有光驱,但已无法使用。网卡支持PXE(Preboot eXecution Environment),于是以PXE方式启动安装Debian。
  PXE网络安装或启动需要BOOTP(Bootstrap Protocol)和TFTP(Trivial File Transfer Protocol)服务支持。通过BOOTP服务获取本机IP和启动映像(boot image)所在的网络位置,通过TFTP服务来获取启动映像。DHCP(Dynamic Host Configuration Protocol)是一个更具弹性的,兼容BOOTP的动态主机配置协议,因此在局域网内安装TFTP和DHCP服务器即可。

Read more »

系统一直是使用的en_US.UTF-8编码,用xterm登录水木清华BBS时中文字符全是乱码,肯定是两端字符集不一致引起的。先生成zh_CN.GB18030 locale,然后export LANG=zh_CN.GB18030再访问一样是乱码,不知道是为什么。

用luit进行字符集转换则一切正常,使用的命令为:

luit -encoding GB18030 -- telnet bbs.tsinghua.edu.cn
1

luit是为unicode终端比如xterm提供locale和ISO 2022支持的工具。

===
[erq]

VPS上安装的是Debian Lenny AMD64,Debian让人变懒惰了,不过这次不使用Apache,改用nginx,有些东西还是要从源码编译安装的,记录下来以备忘,文后附安装脚本。当然能用apt-get安装的就直接安装了,省心又省力。
  
0. 准备build环境
  sudo apt-get -y install build-essential autoconf

  1. 安装mysql 5
      sudo apt-get -y install mysql-server mysql-client libmysqlclient15-dev
      这里一并安装了libmysqlclient15-dev,因为编译php时需要这个库。

  2. 安装nginx 0.7.64
      虽然可以apt-get来安装nginx,但版本太旧。当下nginx最新稳定版本为0.7.64,最新开发版为0.8.31。xxx说稳定压倒一切,所以要安装稳定版。先安装regex支持库PCRE(Perl Compatible Regular Expressions)

    Read more »

  PuTTY连上服务器运行iptraf,发现显示出现问题,本来应该是直线的地方,却出现了lmkjxq等字符,很难看。打开PuTTY配置,找到Connection->Data->Terminal details,把终端类型(Terninal-type string)由xterm改为linux,问题解决。
  经过试验发现,如果不使用UTF-8编码,则终端类型xterm和linux画线都很正常,如果使用UTF-8,则只有使用终端类型linux是正常的,看来出现画线不正确应该是xterm这个终端类型对UTF-8编码的支持存在一些问题。

linux最早的IPv6/IPng支持代码始于kernel 2.1.8,November 1996,也算是历史悠久了,而IPv6在1998年8月10日成为IETF的草案标准。
  Ubuntu 9.10默认是开启IPv6协议的,也就是说我们的主机是IPv4/IPv6双栈主机。可以通过检查/proc/net/if_inet6这个文件是否存在来确定内核是否支持IPv6,如果这个文件不存在,那么你的系统极有可能是通过可加载模块来支持IPv6的。虽然kernel是支持IPv6了,但现在的网络条件下,除了教育网直接支持IPv6外,其他网络用户还是无法直接访问IPv6网站的,也就是说我们的主机成了IPv6孤岛,只能通过IPv6-in-IPv4隧道协议来访问IPv6资源。

Read more »

  Network manager老难用了,忍无可忍之后将其remove,据说wicd不错,装上试了试也卸载掉了。其实linux的世界,还是cli用起来最顺手。
  
  配置一个ad hoc网络很简单的,在/etc/network/interfaces里面添加就可以了,我的设置如下:

auto wlan0
iface wlan0 inet static
wireless-mode ad-hoc
wireless-channel 11
wireless-essid Adhoc
address 10.42.43.1
netmask 255.255.255.0
gateway 10.42.43.1

  还是比较直白的,一般我们就一个无线网卡,没意外名字就是wlan0了,选个没有重叠的wifi信道11,设置一下IP、掩码、网关就好了。

  借PC处理器架构由x86向x64过渡之机,MS清理了windows x64平台上的函数调用约定,由原来的数种包括stdcall,thiscall,fastcall,cdecl,pascal等,统一为一种新的fastcall调用方式。这种调用方式得益于x64平台寄存器数量的增加。
  
  windows x64平台fastcall调用约定的主要特性如下:

  • 前四个整型或指针类型参数由RCX,RDX,R8,R9依次传递,前四个浮点类型参数由XMM0,XMM1,XMM2,XMM3依次传递。
  • 调用函数为前四个参数在调用栈上保留相应的空间,称作shadow space或spill slot。即使被调用方没有或小于4个参数,调用函数仍然保留那么多的栈空间,这有助于在某些特殊情况下简化调用约定。
  • 除前四个参数以外的任何其他参数通过栈来传递,从右至左依次入栈。
  • 由调用函数负责清理调用栈。
  • 小于等于64位的整型或指针类型返回值由RAX传递。
  • 浮点返回值由XMM0传递。
  • 更大的返回值(比如结构体),由调用方在栈上分配空间,并有RCX持有该空间的指针并传递给被调用函数,因此整型参数使用的寄存器依次右移一格,实际只可以利用3个寄存器,其余参数入栈。函数调用结束后,RAX返回该空间的指针。
  • 除RCX,RDX,R8,R9以外,RAX、R10、R11、XMM4 和 XMM5也是易变化的(volatile)寄存器。
  • RBX, RBP, RDI, RSI, R12, R13, R14, and R15寄存器则必须在使用时进行保护。
  • 在寄存器中,所有参数都是右对齐的。小于64位的参数并不进行高位零扩展,也就是高位是无法预测的垃圾数据。

debian服务器sudo apt-get install dhcp3-server后,出现错误提示“Starting DHCP server: dhcpd3check syslog for diagnostics. failed!”
其实这是因为还没有配置dhcp引起的,打开/etc/dhcp3/dhcpd.conf增加一个subnet,比如:
subnet 192.168.1.0 netmask 255.255.255.0{
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
}
然后sudo /etc/init.d/dhcp3-server start就可以启动了。