Solaris10中关闭和开启系统服务。

    与solaris 9(包括9)以前的版本不同,solaris 10提供了功能强大且使用方便的服务管理工具smf(service management facility),通过这个工具,可以方便的管理握solaris 10的服务。

1、 查看系统所有的服务 #svcs -a
2、 开启/关闭/重启系统服务 #svcadm enable|disable|restart <服务名> 。


其中,svcs命令可以在普通用户权限下运行。
... Read more!

Solaris10 x86与Ubuntu实现共存。

        一直用的Ubuntu作为我的服务器,最近开始接触Solaris10 x86,觉得很不错,于是想装在我的Ubuntu的机器上,实现双启动,因为Solaris10和Ubuntu都是使用得Grub,直觉上觉得应该很简单,添加一个启动项目就可以了。我机器上原来已经有了Ubuntu,装Solaris的时候覆盖掉了MBR,安装好后,按照原来Ubuntu的menu.lst在Solaris的Grub里面添加了相应的启动项目,但是启动失败,在进行root check的时候停住了,以为Solaris的Grub版本太老了,于是重新安装Ubuntu的Grub,但是这下无法启动Solaris,Google了一下,得知两个Grub是有一些不同。查看了一些资料,提示使用chainloader 的方式可以,于是,重新安装ubuntu的Grub,这次安装在ubuntu的boot分区上,然后重新启动计算机,进入到Grub后通过命令行进行测试:
Grub>root (hd0,7)
Grub>chainloader (hd0,7)+1
Grub>boot

        我的ubuntu的boot是单独分区的,要知道boot的分区号码,可以在grub的命令行里,输入root (hd0, 后点tab,会列出所有的分区信息,这个时候可以找到你的boot的正确分区位置。

        果然通过,于是进入到Solaris将menu.lst中添加此启动项目,顺便将启动时候的图片去掉了,因为转交给ubuntu引导权后,界面会花掉。
chainloader的含义:
chainloader (hd1,0)+1 #装入一个扇区的数据然后把引导权交给它。
... Read more!

Solaris10 中修改主机名

修改下列文件

/etc/inet/hosts
/etc/hostname.xxx(xxx代表你的网卡的名称)
/etc/nodename
/etc/inet/ipnodes(ipv6协议使用的主机文件)

然后重新启动即可。


... Read more!

Solaris10 x86中DHCP客户端设置

创建两个空文件,是网卡适配器的名字,这两个文件用于系统启动时自动启动dhcp。

# touch /etc/hostname.
# touch /etc/dhcp.

网卡适配器的名字的我们可以通过ifconfig -a 或者文件/etc/path_to_inst得到。 如果需要立即使用dhcp的话,可以执行一下命令:

# ifconfig  dhcp start

... Read more!

Putty远程登录Solaris10时日语文字的输入。

这里可以下载 到支持日语的Putty客户端,这样显示日语就基本上没有问题了,但是在连接Solaris10的时候通过Vi不能够正常输入日语,也不能通过鼠标右键拷贝粘贴日语文字。这是由于.profile配置文件中的stty istrip选项引起的。编辑你的.profile,将stty istrip这一行注释掉。然后可以不注销当前的回话,通过source ~/.profile或者. ~/.profile来使得当前的环境变量生效,并且执行一下stty -istrip。现在你就可以输入并且粘贴日文了。

参考:http://pooh.gr.jp/item-839.html
... Read more!

Solaris10 x86下ViewCVS的配置

直接去Viewcvs的主页下载最新的稳定版viewvc-1.0.3的压缩包,解压缩后,使用root用户执行viewvc-install,执行之前先确认viewvc-install文件中python的目录是否正确。默认安装在/usr/local/viewvc-1.0.3目录下,安装完毕后,进行相关配置。

1,配置viewcvs
使用vi编辑/usr/local/viewvc-1.0.3目录下viewvc.conf文件。修改一下几项
cvs_roots = cvs: /home/cvsroot
default_root = cvs
rcs_path = /usr/local/bin/

注意,默认的rcs_path设置项目是注释掉的,而rcs在Solaris10中默认是没有安装rcs的,去http://www.sunfreeware.com下载安装包进行安装。我因为rcs没有安装折腾了很久。

2,配置Apache
我用的是Apache2,编辑/etc/apache2/httpd.conf文件,增加下面两行:
ScriptAlias /viewvc /usr/local/viewvc-1.0.3/bin/cgi/viewvc.cgi
ScriptAlias /query /usr/local/viewvc-1.0.3/bin/cgi/query.cgi

重新启动Apache,通过浏览器你就可以正常访问viewcvs了。
... Read more!

Vim高效编辑命令

1,gg快速定位到文件头
2,G快速定位到文件尾
3,ma 当前行创建一个名字为a的bookmark,你也可以mb,mc
4,`a 快速跳转到名字为a的那一行
5,`. 快速跳转到你最后编辑的行
6,gd 快速跳转到当前光标所在变量或者函数名的定义处
... Read more!

Solaris10 X86下CVS的安装以及CVS服务的配置

1,下载CVS软件包
从下面的网站下载对应的软件包(我没有直接从源码进行编译)
http://www.sunfreeware.com/

2,安装CVS软件包
将下载后的软件包解压缩,然后使用下面的命令进行软件包的安装
#pkgadd -d <软件包绝对路径>

3,添加用户以及用户组
我直接使用Solaris10提供的图形管理工具进行cvsroot用户,以及cvs用户组的添加。或者可以使用如下命令:
用命令“useradd –d 用户的home目录 –s 用户的缺省shell类型 –g 用户所属组 用户”

4,端口配置
使用下面的命令
# vi /etc/services
打开services文件,添加如下两行(我是添加在行尾):
cvspserver 2401/tcp # cvs client/server operations
cvspserver 2401/udp # cvs client/server operations

使用下面的命令
# vi /etc/inetd.conf
打开inetd.conf文件,添加下面一行:
cvspserver stream tcp nowait root /usr/local/bin/cvs -f --allow-root=/home/cvsroot pserver

使用下面两个命令进行新旧配置文件的转换:
#inetconv -n
#inetconv -e
在/var/svc/manifest/network目录下生成cvspserver-tcp.xml文件
进入profile目录
#cd /var/svc/profile
编辑Service文件
#vi inetd_services.xml
添加如下内容:

  <service name='network/cvspserver-tcp' version='1' type='service'>
   <instance name='default' enabled='true'/>
  </service>


5,重新启动服务器
6,确认服务
#netstat -a |grep cvs
*.cvspserver *.* 0 0 49152 0 LISTEN
//表明cvs服务启动起来了

或者:
#inetadm |grep cvs
enabled online svc:/network/cvspserver/tcp:default


6,库的初始化
看了很多资料,进行库的初始化的时候都使用下面的命令:
#/usr/local/bin/cvs -d /export/home/cvsroot init

但实际上这个命令是执行不通的(同样的,上面的一些步骤,很多资料上设置的CVSROOT变量都是基于/export/home/cvsroot),因为Solaris10的安全机制的问题(如果没有为home单独分区的话,那么是无法直接访问,此机制正在调查中)/export/home下的目录是不能够直接访问的。所以,我使用下面的命令
#/usr/local/bin/cvs -d /home/cvsroot init

我是使用root身份进行的,然后将/home/cvsroot的目录整体权限修改一下,设置成owner是cvsroot,cvs组具有读写权限。然后所有有cvs访问要求的成员都加入到cvs组中去。

设置完毕!


... Read more!

[转]Solaris性能监控的Swap空间管理

随着电子商务如火如荼的开展,网站服务器的性能变得尤其重要。一旦服务器的能力不能满足用户的需要,就会对用户的服务大打折扣,那么就需要对服务器进行升 级扩容。但是,有些时候只需对服务器进行一些适当的性能调整,便可以越过性能的瓶颈,大大提高服务器的吞吐能力,从而减少服务器升级的费用。

本文介绍了在Solaris平台上Swap(交换)空间的基本概念、实现的原理以及对Swap(交换)空间进行监控的方法和调整的策略。

什么是SWAP(交换)空间

对于一般的Solaris系统管理员来说,很少会接触Swap(交换)空间,在他们看来Swap区只不过是磁盘上的一两个分区或是几个Swap (交换)文件,当系统没有足够的物理内存来处理当前进程的时候,就利用Swap(交换)空间作为虚拟内存的临时存储空间,这种说法从技术角度来说是没有错 的,但Solaris在实现Swap时有其非常独特的地方。

SWAP空间作用

众所周知,现代操作系统都实现了“虚拟内存”这一技术,不但在功能上突破了物理内存的限制,使程序可以操纵大于实际物理内存的空间,更重要的是“虚拟内存”是隔离每个进程的安全保护网,使每个进程不受其他程序的干扰。

Swap空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放 的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内 存中。这样,系统总是在物理内存不够时,才进行Swap交换。这种现象对于计算机使用者是经常遇到的。

有一点要声明的是,并不是所有从物理内存中交换出来的数据都会被放到Swap中(如果这样的话,Swap会不堪重负),有相当一部分的数据直接交 换到文件系统。例如,有的程序会打开一些文件,对文件进行读写(其实每个程序都至少打开一个文件,那就是运行程序本身),当这些程序的内存空间需要交换出 去时,文件部分的数据就没有必要放到Swap空间中了,如果是读文件操作,那么内存数据直接就释放了,不需要交换出来,因为下次需要时,直接从文件系统就 能恢复;如果是写文件,只需要将变化的数据保存到文件中,以便恢复。但是那些用malloc(3C)和new函数生成的对象的数据则不同,需要Swap空 间,因为它们在文件系统中没有相应的“储备”文件,因此被称为“匿名”(Anonymous)的内存数据,这类数据还包括堆栈中的一些状态和变量数据等, 所以说,Swap空间是“匿名”数据的交换空间。

Swap的配置对性能的影响

太多的Swap空间会浪费磁盘的空间,而太少的Swap空间,系统则会发生错误。

如果系统的物理内存用光了,你的系统就会跑得慢,但仍能运行;如果Swap空间用光了,那么系统就会发生错误。例如,Web服务器能根据不同的请 求数量衍生出多个服务进程(或线程),如果Swap空间用完,则服务进程无法进动,通常会出现 "application is out of memory"的错误,严重时会造成服务进程的死锁。因此Swap空间的分配是很重要的。

通常情况下,Swap空间应大于或等于物理内存的大小,最小不应小于64M,通常Swap空间的大小应是物理内存的2-2.5倍 (Solaris 2以上的版本有所变化,见下文)。但根据不同的应用,应有不同的配置:如果是小的桌面系统,只需要较小的Swap空间,而大的服务器系 统则视情况不同需要不同大小的Swap空间。特别是数据库服务器和Web服务器会随着访问量的增加,对Swap 空间的要求也会增加,具体配置参见各自服 务器产品的说明。

另外,Swap分区的数量对性能也有很大的影响。因为Swap交换的操作是磁盘I/O的操作,如果有多个Swap交换区,Swap空间的分配会以 轮流的方式操作于所有的Swap,这样会大大均衡I/O的负载,加快Swap交换的速度。如果只有一个交换区,所有的交换操作会使交换区变得很忙,使系统 大多数时间位于等待状态,效率很低,用性能监视工具就会发现,此时的CPU并不很忙,而系统却慢,这说明,瓶颈在I/O上,依靠提高CPU的速度是解决不 了问题的。

性能监视

Swap空间的分配固然很重要,而系统在运行时的性能监控却更加有价值,通过性能监视工具可以检查系统的各项性能指标,找到系统性能的瓶颈。本文只介绍一下在Solaris下和Swap相关的一些命令和用途。

最常用的是Vmstat命令,在大多数Unix平台下都有此命令,此命令可以查看大多数性能的指标。

另外使用swap -s 也能简单的查看当前swap资源的使用情况。例如:
# swap -s
total: 65896k bytes allocated + 56840k reserved = 122736k used, 1069456k available

能够方便的看出swap空间的已用和未用资源的大小。应该使Swap保持30%的负载以下,才能保证系统的良好性能。

Solaris中Swap的特点

虚拟Swap空间

本来Swap空间就是为虚拟内存服务的,现在Solaris的Swap空间也成为虚拟,这到底是怎么回事呢?

让我们看一个例子就明白了,当在Solaris 2以前版本的Solaris(或其它Unix, 如Linux)上编程时经常会出现一个问题:

假设系统当前还有可用的内存空间为30M,而只剩下10M的Swap空间了,这时,如果有一个进程开始运行并企图执行Malloc(15*1024*1024)的命令(分配15M空间),这个进程会因为这个命令而失败。

为什么呢?系统不是有30M可用的内存空间吗?原因在于:你的Swap空间不足,系统认为你在分配空间以后,没有能力(空间)在发生页面交换时, 将这部分数据保存起来,因此认为你没有资格分配这块空间。这不是太不公平了吧!也许这15M空间根本不用交换,当前系统可是还有30M内存空间的富余啊!

还有更不公平的呢?有些大型系统配备了海量的内存,1G或4G,配了这么多内存就是为了避免交换,提高运行速度,可是系统还要为这个系统分配并不需要的Swap空间,占用了大量磁盘资源。

为了弥补这个缺陷,Sun为Solaris 2 以后的版本设计了虚拟Swap空间。所谓虚拟的Swap空间,概念其实很简单,swap空间再也 不是单指硬盘的分区或文件。虚拟Swap空间包含两个部分:部分物理内存和传统上的Swap分区。经过适当的配置,可以使系统需要Swap空间时,先使用 内存部分的swap空间,如果内存部分的swap空间不够,再使用磁盘部分的Swap空间。这样,也许你硬盘上的Swap空间很少得到使用了,甚至根本不 需要Swap分区。

Swap空间与TMPFS文件系统的关系

你知道吗?虚拟Swap空间与 /tmp目录有相当大的关系。Sun在实现
/tmp目录时,充分考虑了应用程序运行的效率。许多应用程序,特别是数据库服务都会频繁使用
/tmp目录作为临时数据保存区,而Solaris将
/tmp目录下的文件都放在内存中而不是硬盘里,这样会大大提高应用程序的效率。

但是/tmp目录的空间是从系统虚拟空间里挤出来的,是虚拟Swap空间的一部分。如果说,你用完了/tmp空间,也就是用完了Swap空间,所以要小心监视系统的/tmp目录的使用情况,千万别用光了,否则系统会瘫痪!下面两点建议作为参考:

1.在Mount /tmp目录时,使用(-o Size)选项来控制/tmp目录的大小。

2.当使用编译器编译文件时,如果不想占用Swap空间,则用TMPDIR环境变量指向另外一个临时目录,而不是/tmp目录。

有关Swap空间操作的系统命令

增加Swap空间

1.成为超级用户 $su - root

2.创建Swap文件 #mkfile nnn[klblm] filename
如:#mkfile 100m swapfile1

3.激活Swap文件
#/usr/sbin/swap -a /path/filename
Swap文件必须以绝对路径来指定,filename指的是上一步创建的文件。

4.现在新加的Swap文件已经起作用了,但系统重新启动以后,并不会记住前几步的操作。因此要在/etc/vfstab文件中记录文件的名字,和Swap类型,如:
/path/filename - - Swap - no -

5.效验Swap文件是否加上 /usr/sbin/swap -l

删除多余的Swap空间

1.成为超级用户

2.使用swap -d 命令收回swap空间。
#/usr/sbin/swap -d /path/filename

3.编辑/etc/vfstab文件,去掉此Swap(交换)文件的实体。

4.从文件系统中回收此文件。
#rm swap-filename

5.当然,如果此Swap(交换)空间不是一个文件,而是一个分区,则需创建一个新的文件系统,再挂接到原来的文件系统上。

(http://www.fanqiang.com)

... Read more!

一起由于Swap空间不足引起的编译错误。

环境:
VMware5.5,Solaris10 X86,SUN Studio11,GNU Make

问题发生:
    在编译一个库的时候,每次进行到一个Table文件时就会耗费大量时间,硬盘,CPU均占用很高,在5分钟左右的编译后,报出如下错误
Failure in /opt/SUNWspro/prod/bin/fbe, status = 0x7f00
Fatal Error exec'int /opt/SUNWspro/prod/bin/fbe
gmake: *** [XScenarTb.o] Error 1

问题解决过程:
    1,首先放狗,关于这个错误的资料出奇的少,就在SUN的论坛里面看到一个类似的,提示是一个编译参数compat的问题,但是我编译的时候并没有用到这个参数,不管它,死马当活马医,加入这个参数,重新编译,还是不行。

    2,在SUN的开发者论坛上发帖,反应很快,Boris_Ivanovsky给了我一个回复,说可能是编译器的bug,要我去提交一个bug,老天,我可不希望是这个结果,如果是这个结果的话,我的开发就彻底的停滞了,要等到SUN出最新的PATCH方可解决这个问题。继续等待,又一个好心的网友留言说,这个可能是一个bug,但是现在已经有一些PATCH出来了,提示我安装PATCH后再试试。JDS桌面下有Update Manager,看起来很方便,而且已经有更新提示,于是点击其提示图标,貌似JAVA做的,启动很缓慢,于是等待,老天,足足半个小时没有反应,有了反应过后选择更新项目,移动鼠标点击checkbox,犹如冰上行走,很是艰难,SUN的东西确实得小型机才能够运行,服了。选中SunStudio相关的7项,点击更新按钮进行更新,未料,又是一场噩梦,足足又花费了1个小时,其间多次停滞不动,末了,更新失败。从失败提示也没有看得出来是什么原因。使用它的更新工具不行,于是决定尝试手动更新,到相应的Patch页面下载Patch包,放到自己的home下面,解压,按照提示的命令进行patchadd,未料,失败。查看失败信息,提示某个文件无法读取,又放狗,狗到的结果提到放置Patch的父目录的权限问题,于是设置成任何人可读写,还是不行,放到/tmp目录下,竟然可以了。又一次晕倒。在更新第二个Patch的时候,又失败,这次的失败提示看懂了,提示磁盘空间不够。查看了一下空间根目录只有400兆,交换空间也只有300M,而这个Patch就需要400M左右的空间,我是使用得VMware,没办法只能重新做。这次仅划分两个区,根目录,以及swap,总共10G,不过swap还是使用默认的500M,这次顺利的将Patch全部装上。安装完成后,继续进行编译,还是不成功。突然想到安装Patch的时候因为磁盘空间不够,而失败,现在编译是不是也可能是磁盘不够?因为在编译到那个失败的文件的时候,长时间的进行硬盘读写。于是再一次编译,然后监控硬盘空间的变化,发现在一段时间过后swap占用达到80%以上,然后就编译失败了。猜想可能是swap空间不够导致的。于是重新追加1G的swap,重新编译,编译过程异常紧张,在大约10分钟过后,终于通过了这个顽固的文件。接下去就非常顺利。

问题的原因:swap空间不够,不要吝啬,多给点,下次装机器,一定给2G,记得以前的规则是内存的两倍。
... Read more!

Solaris下增加swap空间的办法

# mkdir /files
# mkfile 100m /files/swapfile
# swap -a /files/swapfile


然后要加入/etc/vfstab里面一行:
/files/swapfile - - swap - no -
... Read more!

Solaris10下Patch的艰辛历程。

编译的时候发现编译器出现了一个错误,google了一下,据说是编译器的一个bug,要求打patch,Solaris10提供一个Update manager,于是启动之,未料是JAVA写的,反映爆慢,更新到一半,进度条停住了,等待等待再等待,下去吃了午饭,回来小睡了一会儿方见其开始反映,爆郁闷。末了,更新失败。。。彻底无语,查看失败记录,无任何可帮助的信息。于是继续Google,查询是否可以手动更新的方法。提示,在Solaris下有patchadd命令,于是下载相应的Patch,使用patchadd进行更新,未料又是错误,提示不能打开文件。好奇怪,于是将所有的文件权限设置成a+rw,还是未果,继续Google,在一个论坛的末尾看到,有人提示将patch放到/tmp目录下。马上去尝试,果然成功,晕倒,之前我都将目录以至于放patch的父目录都设置成a+rw,不知道为何。
... Read more!

Solaris10和Ubuntu双系统共存的困惑。

最近开始接触Solaris10 X86版,之前的测试一直是在VMware上进行,所以不存在多系统共存的问题,因为在VMware上总觉得有点隔靴挠痒,不是很爽,所以想直接完整的装在真实的机器上看看。因为家里的电脑已经有一个系统Ubuntu,一直作为服务器在运行,里面已经包含了大量的数据,所以准备双系统共存。因为Solaris和Ubuntu都是用的Grub来引导系统,所以,很自然的认为,Grub能够自由的引导两个系统,但是安装好了发现随Solaris安装上去的GRUB无法引导Ubuntu,后来看到Ubuntu的GRUB版本比较高,于是又重新安装了Ubuntu的Grub,但是紧接着,Solaris无法引导了。困惑。
... Read more!

此make非彼make,Solaris10下的make失误

最近一直在做代码迁移的工作,之前SunOS5.8上,某些东西支持的不好,于是尝试Solaris10,现在Solaris10可以免费下载,而且可以在普通X86机器上运行,SunStudio11也提供免费下载。
安装一切顺利,但是在make代码的时候就遇到了问题。首先是make命令找不到,查了一下资料原来默认的环境设置没有包含相应的开发工具的目录。默认的PATH里面只有下列内容:
PATH=/usr/bin/:.
必须将相关开发工具的目录包含进去:
PATH=/opt/SUNWspro/bin:/usr/bin:/usr/sbin:/usr/ccs/bin:/usr/openwin/bin:/usr/sfw/bin:/usr/ucb:/etc:.

紧跟着make的时候又遇到问题,连基本的编译都无法进行,以为makefile写错了,修改了N遍还是没有效果,后来想到,是不是版本的不兼容,察看了一下make的版本,原来此make并不是GNU的make,Solaris10默认提供的gnu make在/usr/sfw/bin目录下,而且命令的名字叫gmake。
... Read more!

Linux下使用jsvc将Tomcat作为服务进程运行

Running Tomcat 5.5 as Linux Daemon

在下载的Tomcat包中就直接带了jsvc的源代码,可以很简单的自己构建一下。假设Tomcat被解压在$CATALINA_HOME目录下,按照下面的命令进行构建jsvc

cd $CATALINA_HOME/bin
tar xvfz jsvc.tar.gz
cd jsvc-src
autoconf
./configure
make
cp jsvc ..
cd ..

在$CATALINA_HOME/bin目录下就可以看到一个jsvc可运行文件。接下来配置service脚本。
以root身份创建/etc/init.d/TomCatJsvc脚本,写入如下内容:

JAVA_HOME='/home/tomcat/jdk1.5.0_06'

CATALINA_HOME='/home/tomcat/apache-tomcat-5.5.16'

CLASSPATH=$CATALINA_HOME/bin/bootstrap.jar:$CATALINA_HOME/bin/commons-daemon.jar:$JAVA_HOME/lib/tools.jar

TOMCAT_USER=tomcat
TMPDIR=/var/tmp


RC=0

case "$1" in

start)

$CATALINA_HOME/bin/jsvc \

-user $TOMCAT_USER \
-home $JAVA_HOME \
-Dcatalina.home=$CATALINA_HOME \

-Djava.io.tmpdir=$TMPDIR \
-Djava.awt.headless=true \

-outfile $CATALINA_HOME/logs/catalina.out \
-errfile $CATALINA_HOME/logs/catalina.err \

-cp $CLASSPATH \
org.apache.catalina.startup.Bootstrap

RC=$?

[ $RC = 0 ] && touch /var/lock/subsys/tomcat

;;

stop)

PID=`cat /var/run/jsvc.pid`

kill $PID

RC=$?

[ $RC = 0 ] && rm -f /var/lock/subsys/tomcat /var/run/jsvc.pid

;;

*)
echo "Usage: $0 {start|stop}"
exit 1

esac
exit $RC



使用root身份运行此服务
# /etc/init.d/TomCatJsvc start

可以使用
ps -ef|grep tomcat
确认此服务是否运行,另外可以通过浏览器访问,察看此服务是否已经运行。
... Read more!

构建Ubuntu开发环境

默认安装的Ubuntu desktop版本是不带开发环境的,必须自己构建,只是多了两步而已,也非常方便。
sudo apt-get install manpages-dev
安裝C/C++的Man手冊,這樣你就可以隨時的查看一些你不太瞭解的函式的原型,具体參數說明等;還可以查看一些include檔案的具体說明。

sudo apt-get install build-essential
安裝gcc,g++,make等
... Read more!

男と女

中文名:让我欢喜让我忧

歌手:CHAGE & ASKA
作詞:飛鳥涼
作曲:飛鳥涼

誰もが一度は ひき返す道
二人でここまで歩いて 来たのに
あなたの心が 足をとられて
冬の坂道 ころがりはじめた
ふるえる肩越しに あなたのさよなら
背中で 涙をかくす 私

※あなたの愛をもっと ぬくもりをもっと
あふれるほどに
あなたの愛をもっと ぬくもりをもっと
感じていたかった※

言葉ひとつに うなずいたのは
あなたが望む 離別だから
心の支えは いつの時代も
男は女 女は男

あなたを信じて ささやかな夢
積み上げたのは 女の私
幸せだったと 最後に言わせて
せめてさよならは 飾ってみたい

(※くり返し×2)

心の支えは いつの時代も
男は女 女は男
... Read more!

夕焼けの歌

中文歌名为:千千阙歌,曾经陈慧娴翻唱过,我很喜欢。

歌手:近藤真彦
作詞:大津あきら
作曲:Mark Davis

゛あばよ゛とこの手も 振らずに
飛び出した ガラクタの町
あんなに憎んだすべてが
やりきれずしみるのは何故か
憧れた夢さえまだ報われずに
人恋しさに 泣けば・・・・

※ゆらゆらとビルの都会に広がる
あの頃と同じ 夕焼け空
クソ食らえとただ
アスファルト 蹴りつけ
ああ春夏秋・・・と※

この都会誰れを迎い入れ
また誰れを追い出すのだろう
はじめて恋したお前は
俺の目が好きと言ったのに
握りしめたこぶしが 空振りする度
何が宝と言えば・・・

☆ゆらゆらと俺の頬に焼きつく
あの頃と同じ 夕焼け空
土下座したいほど
愛が欲しいだけ
ああ春夏秋・・・も☆

Oh 弱虫の涙が
こぼれないように
空を見上げ 歩け

(※くりかえし)
(☆くりかえし)
... Read more!

君が好きだと叫びたい

中文老爹翻唱过,叫:好像大声说爱你


歌手:BAAD
作詞:山田恭二
作曲:多々納好夫

眩しい陽差しを背に 走り出す街の中
たたかれた いつものように肩を
君に夢中なことに理由なんてないのに
その腕は 絡むことはない

いつの間にか瞳 奪われて始まった
離さない 揺るがない Crazy for you

※君が好きだと叫びたい
明日を変えてみよう
凍りついてく時間をぶち壊したい
君が好きだと叫びたい
勇気で踏み出そう
この熱い想いを 受け止めてほしい※

ざわめいたフロアににぎわうテーブル越し
なにげない 君の視線に酔いしれ
恋をしているようで躍らされてるような
高鳴る鼓動に もう うそはつけない

いつになれば変わる このもどかしい友情
届けたい 確かめたい I take you away

君が好きだと叫びたい 何もかも脱ぎ捨て
心とかす言葉を見つけ出したい
君が好きだと叫びたい 今夜は帰さない
見つめるだけの日々なんて
終わりにしよう I wanna cry for you

(※くり返し)

I wanna cry for you
... Read more!

服务器出现不可挽救的问题,重新配置中

一味追求新,在没有充分准备下升级到Edgy,在经过一阵捣鼓,终于系统百病缠身。关闭掉一切服务,重新修整中,预期明天晚上能够完全修复。
... Read more!

Edgy升级失败,郁闷中。

Ubuntu6.1,代号Edgy, 近期已经放出Beta版本,挡不住诱惑,进行升级。按照官方的Wiki,使用gksu "update-manager -c -d" 命令进行升级,没料到一路坎坷,遭遇4个失败,选择忽略得以进行下去,但是最终还是提示我升级失败,系统处于不稳定状态。提示我使用: apt-get -f install 命令。但是在执行 apt-get -f install的时候出现下面的信息:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在更正依赖关系... 完成
将会安装下列额外的软件包:
courier-authdaemon courier-authlib
下列【新】软件包将被安装:
courier-authlib
下列的软件包将被升级:
courier-authdaemon
共升级了 1 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 29 个软件未被升级。
有 8 个软件包没有被完全安装或卸载。
需要下载 0B/83.9kB 的软件包。
解压缩后会消耗掉 164kB 的额外空间。
您希望继续执行吗?[Y/n]Y
dpkg:处理 courier-authdaemon (--remove)时出错:
该软件包现在的状态极为不妥 - 您最好能
在删除它之前再重新安装一次。
terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_S_construct NULL not valid
忽略 (core dumped)
:~$ 在处理时有错误发生:
courier-authdaemon

依然无法正常消除错误。问题等待,晚上继续搞。
... Read more!

SunOS 5.8下的挣扎

最近有一批代码,要移植到SunOS 5.8,GCC 3.2.2下,SunOS 5.8应该就是Solaris 8吧,这批代码原来是在别的编译器下写的据称是标准C++。有了这样的保证,原以为会一帆风顺,哪知道一路磕磕绊绊。编译头几个库的时候没有任何问题,只要改一下编译器选项即可。到第三个库的时候开始出问题了,提示找不到,然后紧跟着一大批的uint8_t 未定义,头大,google了一下,方知stdint.h是C99标准里定义的头文件,GCC有部分是不支持的,无奈,只能自己写了一个stdint.h,因为在GCC3.2.2下面有一个inttype.h,里面包含了uint8_t 的定义,简单的在stdint.h中包含它。然后平安通过这一关。紧接着提示wstring未定义,晕倒,察看了一下3.2.2编译器估计编译的时候没有对宽字符提供支持。作罢,今天中秋,就搞到这儿吧。下周再搞。
... Read more!

FF&TB超强自定义工具--Stylish

适用对象:Firefox,Thunderbird,Flock
主页:userstyles.org
FF和TB都可以通过userChrome.css以及userContent.css来修改应用程序以及浏览页面的一些外观,但是直接的编辑这两个文件比较的麻烦,管理这些修改也比较麻烦。Stylish扩展提供了一个非常棒的编辑机制,在其主页上更加提供了很多已经编辑好的代码,可以直接加入到你的Styles list中直接使用。从这里你可以下载到最新版本,FF可以从这个页面上直接进行安装,安装完毕后重新启动你的应用程序,在状态栏上会出现Stylish的图标,点击此图标你可以增加修改各种Style。在http://userstyles.org/上更加是提供了各种各样的现成的Styles,FF可以直接在相应的Style页面上进行此Style的安装。
推荐一个Style:http://userstyles.org/style/show/728,可以修改Google的搜索界面,让搜索结果更加简洁。
... Read more!

你尽力了吗( 武汉白云黄鹤站)

很多人问如何入门如何入门,我却不知道要问的是入什么门。很少把某些好文章耐心从头看完,我这次就深有体会。比如袁哥的sniffer原理,一直以为自己对sniffer原理很清楚的,所以也就不曾仔细看过袁哥的这篇。后来有天晚上和袁哥讨论,如何通过端口读写直接获取mac地址,为什么antisniff可以获得真正的mac地址,而不受更改mac地址技术的影响,如何在linux下获得真正的mac地址。我一直对linux下的端口读写心存疑虑,总觉得在保护模式下的端口都做了内存映象等等。结果袁哥问了我一句,你仔细看我写的文章没有,我楞,最近因为要印刷月刊,我整理以前的很多文档,被迫认真过滤它们,才发现袁哥的文章让我又有新认识。再后来整理到tt的几篇缓冲区溢出的,尤其是上面的关于Solaris可装载内核模块,那就更觉得惭愧了。以前说书非借不能读,现在是文章留在硬盘上却不读。其实本版已经很多经典文章了,也推荐了不少经典书籍了,有几个好好看过呢。W.Richard.Stevens的UNP我算是认真看过加了不少旁注,APUE就没有那么认真了,而卷II的一半认真看过,写过读书笔记,卷III就没有看一页。道格拉斯的卷I、卷III是认真看过几遍,卷II就只断续看过。而很多技术文章,如果搞到手了就懒得再看,却不知道这浪费了多少资源,忽略了多少资源。BBS是真正能学到东西的地方吗?rain说不是的,我说也不是的。不过这里能开阔人的视野,能得到对大方向的指引,足够了。我一直都希望大家从这里学到的不是技术本身,而是学习方法和一种不再狂热的淡然。很多技术,明天就会过时,如果你掌握的是学习方法,那你还有下一个机会,如果你掌握的仅仅是这个技术本身,你就没有机会了。其实我对系统安全是真不懂,因为我一直都喜欢看程序写程序却不喜欢也没有能力攻击谁谁的主机/站点。我所能在这里做的是,为大家提供一个方向,一种让你的狂热归于淡然的说教。如果你连设备驱动程序编写>、<>系统编程>都没有看过,却要写个什么隐藏自己的木马,搞笑。如果你看都不看汇编语言,偏要问exploit code的原理,那我无法回答也不想回答你。总有人责问,要讨个说法纭纭,说什么提问却没有回答。不回答已经是正确的处理方式了,至少没有回你一句,看书去,对不对,至少没有扰乱版面让你生闷气。Unix的man手册你要都看完了,想不会Unix都不行了。微软的MSDN、Platform SDK DOC你要看完了,你想把Win编程想象得稍微困难点都找不到理由。还是那句话,一个程序员做到W.Richard.Stevens那个份上,做到逝世后还能叫全世界的顶级hacker们专门著文怀念,但生前却不曾著文攻击,想想看,那是一种什么样的境界,那是一份什么样的淡然。我们可以大肆讨论技术问题,可以就技术问题进行激烈的卓有成效的讨论,却无意进行基础知识、资源信息的版面重复。我刚在前面贴了一堆isbase的文章,开头就是主页标识,却在后面立刻问什么主页在哪里?前面刚刚讨论过如何修改mac地址,后面马上又来一个,前后相差不过3篇文章。选择沉默已经是很多朋友忍耐力的优异表现了。很多东西都是可以举一反三的。vertex的lids,被packetstorm天天追踪更新,你要是看了THC的那三篇,觉得理解一个就理解了一堆,都是内核模块上的手脚。你不看你怎么知道。我不想在这里陷入具体技术问题的讨论中去,你要是觉得该做点什么了,就自己去看自己去找。没有什么人摆什么架子,也没有什么人生来就是干这个的。你自己问自己,尽力了吗?
... Read more!

人,男人,女人和猪

人=吃饭+睡觉+上班+玩,
猪=吃饭+ 睡觉,
代入:人=猪+上班+玩,
即:人-玩=猪+上班.
结论:不懂玩的人=会上班的猪

男人=吃饭+ 睡觉+挣钱
猪=吃饭+ 睡觉
男人=猪+挣钱
猪=男人-挣钱
所以男人不挣钱等于猪。

女人=吃饭+ 睡觉+花钱。
猪 =吃饭+ 睡觉。
代入上式得:女人=猪+花钱。
移项得:女人-花钱=猪。
结论:女人不花钱的都是猪。

综上:
男人为了让女人不变成猪而挣钱!
女人为了让男人不变成猪而花钱!
... Read more!