Archive

Archive for December, 2009

ubuntu配置ad hoc网络

December 29th, 2009 proguru No comments

  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、掩码、网关就好了。

Categories: GNU/Linux Tags:

windows x64函数调用约定(function call convention)

December 28th, 2009 proguru No comments

  借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, R14, R14, and R15寄存器则必须在使用时进行保护。
  • 在寄存器中,所有参数都是右对齐的。小于64位的参数并不进行高位零扩展,也就是高位是无法预测的垃圾数据。
Categories: Windows Tags:

Starting DHCP server: dhcpd3check syslog for diagnostics

December 28th, 2009 proguru No comments

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就可以启动了。

Categories: GNU/Linux Tags:

Headless Server

December 23rd, 2009 proguru No comments

无头服务器?很黄很暴力!

Headless Server是指没有物理控制台的服务器,即没有键盘、鼠标和显示器的服务器。BIOS和操作系统必须都支持Headless Mode才可以运行Headless Server。

Categories: Misc Tags:

locale问题:Cannot set LC_CTYPE to default locale

December 22nd, 2009 proguru No comments

刚购买的VPS默认安装的系统是CentOS,没想到CentOS现在这么火,很多VPS默认安装这个。但是我只用Debian或FreeBSD,重新安装了一下Debian lenny AMD64,几分钟就完成了。sudo apt-get upgrade时出现错误提示:

locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

原来是默认没有设置locale
用这个命令dpkg-reconfigure locales配置一下,选个lcoale就好了,我用en_US.UTF-8。

Categories: Misc Tags:

ubuntu 9.10 删除link-local 路由表项

December 21st, 2009 proguru No comments

route -n 时你总能看到这样一条路由

Destination Gateway Genmask Flags Metric Ref Use Iface
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0

由RFC3330 可知 169.254.0.0/16 为本地链路地址

“169.254.0.0/16 – This is the “link local” block. It is allocated for
communication between hosts on a single link. Hosts obtain these
addresses by auto-configuration, such as when a DHCP server may not
be found.”

当系统配置为使用动态地址,而找不到DHCP服务器时,系统会为本机设置一个169.254.X.X的地址。
这个路由表项是有zeroconf 协议Daemon 程序添加的,我们一般是用不到的

只是注释掉/etc/networks 里面的link-local 项是无法去掉该路由表项的,/etc/networks 与/etc/hosts
文件的作用差不多,是用来关联网络号(数字格式)和网络名(字符格式)的,注释掉该条目后,只是169.254.0.0
无法解析为网络名link-local了.

可以用以下命令来删除zeroconf 相关的程序包
sudo apt-get remove avahi-autoipd –purge
下次启动机器后这条路由就不会自动出现了.

Categories: GNU/Linux Tags:

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