2007年2月25日星期日

apt的安装源

让Debian用grub作为bootloader来启动时,有背景图出现,需要进行如下的操作,先apt-get install grub-splashimages 然后修改/boot/grub/menu.lst中的内容,添加如下内容

splashimage=(hd0,0)/grub/splashimages/debsplash.xpm.gz

注意hd0表示第一块硬盘,后面的0表示第几个分区,grub是从0开始计数的,如果用fdisk -l查看到/boot在hda5的话,那么就应该写成(hd0,4),同时将color一行的内容注释掉。

可用的mirrors site安装源:

#deb http://debian.cn99.com/debian sid main contrib
deb http://debian.cn99.com/debian etch main non-free contrib
deb-src http://debian.cn99.com/debian etch main non-free contrib
#deb http://debian.cnsite.org/debian sid main contrib non-free
#deb http://debian.cnsite.org/debian etch main contrib non-free
#deb ftp://218.22.45.5/debian/ etch main non-free contrib
#deb ftp://218.22.45.5/debian/ sid main non-free contrib
#deb http://mirror.dlut.edu.cn/debian/ etch main non-free contrib
#deb http://debian.cn99.com/debian etch main non-free contrib
#deb http://mirrors.geekbone.org/debian sid main non-free contrib
#deb http://mirrors.geekbone.org/debian etch main non-free contrib
#deb ftp://debian.ustc.edu.cn/debian-uo sid marillat rareware misc ustc
#deb-src ftp://debian.ustc.edu.cn/debian-uo sid marillat rareware misc ustc
deb ftp://ftp.linuxforum.net/debian/ etch main non-free contrib
deb ftp://ftp.linuxforum.net/debian/ sid main non-free contrib
测试一下javascript的syntax highlight功能
package us.prokhorenko.jx;
import us.prokhorenko.jx.Person;
import org.exolab.castor.xml.*;
import java.io.*;
import java.util.*;

2007年2月21日星期三

在Linux平台进行企业应用开发

任何一个操作系统如果没有得到以下几个方面的支持,那么它的生命就注定不会长久。
  1. 大的厂商或开发社群
  2. 设备供应商的支持,提供好的驱动程序
  3. 企业应用解决方案及部署方案

尽管在实现上,windows的某些技术不如linux来的精巧与细致,但在企业应用开发的入门难度及部署难度上来说,windows远比linux上的来的简单,这也是为什么linux在中小型的企业应用上没有得到广泛应用的一个原因吧。

linux天生就是一个开源opensource的东西,在其上面的开发工具也如此,否则不易被接受。在企业应用开发或者说web应用开发上面,linux平台借助于这三大开源产品的支撑,同样也弄的风声水起,它们就是赫赫有名的lamp(linux apache mysql php)的简称。

2007年2月15日星期四

gentoo紧急修复

gentoo的使用过程中难免会遇到系统启动不了的情况,原因是我们一直在不停的调整各种参数,难免会有设置的不对的时候。那么如何处理这种情况呢,用livecd进行急救,具体步骤如下:
  1. 用livecd启动系统
  2. 设置网络 net-setup eth0
  3. mkdir -pv /mnt/gentoo/boot
  4. mount /dev/sda1 /mnt/gentoo/boot
  5. mount /dev/sda2 /mnt/gentoo
  6. swapon /dev/sda3
  7. chroot /mnt/gentoo /bin/bash
  8. env-update && source /etc/profile

注意上述命令假设你的分区情况是/dev/sda1为/boot,/dev/sda2为/, /dev/sda3为linux swap,如果情况不同,请自行修改相应的参数。接下来该干啥干啥,呵呵。

gentoo安装手札

gentoo是一个source-based linux distribution,目前非常红火。其吸引人的地方有:
  1. 控制编译过程,可以输入可以优化参数
  2. 自动解决包之间的依赖问题与冲突
  3. 有良好的文档支持
  4. 有非常活跃的用户社区与开发团队

有这么多的好处,那就自己弄一个试个究竟。安装前的步骤:

  1. 下载最新的2006.1的livecd
  2. 安装一个vmware,在虚拟机上试一下,不成功也没关系

开始安装,从livecd启动后,选择gtk-based的安装模式,根据提示可以安装一个基本系统(base system)应该问题不大。安装完成后,修改/etc/make.conf文件

  1. GENTOO_MIRRORS="http://ftp.gentoo.or.kr/ http://mymirror.asiaos.org/gentoo/"
  2. SYNC="rsync://rsync.asia.gentoo.org/gentoo-portage"

修改gcc和ld的优化参数,具体设置为make.conf文件中的CXXFLAGS,CFLAGS和LDFLAGS

  1. 编译内核
    1. emerge gentoo-sources
    2. emerge genkernel

  2. 升级系统
    1. emerge --sync 同步portage
    2. emerge -uDf world 下载源代码
    3. emerge -uD world 升级系统

在进行系统升级过程中,编译时间最长的是glibc的编译,为了给它减肥。建立文件/etc/locales.build,在其中加入以下内容,然后在/etc/make.conf文件的USE标记中加入userlocales选项。

en_US.UTF-8/UTF-8
en_US/ISO-8859-1
zh_CN.GB18030/GB18030
zh_CN.GBK/GBK
zh_CN.UTF-8/UTF-8
zh_CN/GB2312

基本系统安装完成后,接下来的事情就是根据个人的需求安装特定的软件了,这个时候肯定会有一个问题浮现出来,哪就是如何确定所要的软件存在与否呢?这个很简单通过equery,不过使用它之前,需要emerge gentoolkit,如果你觉的equery的速度实在不敢恭维的话,那么就安装eix吧。

文档查阅的好去处

  1. gentoo的老窝
  2. gentoo-wiki

2007年2月6日星期二

诫子书

夫君子之行,静以修身,俭以养德。非淡泊无以明志,非宁静无以致远。夫学须静也,才须学也,非学无以广才,非志无以成学。淫慢则不能励精,险躁则不能治性。年与时驰,意与日去,遂成枯落,多不接世,悲守穷庐,将复何及!

2007年2月5日星期一

UNIX一个充满天才的世界

Unix is simple. It just takes a genius to understand its simplicity. -- Dennis Ritchie

公司里开始考虑转换发展方向,将注意力集中于windows平台下中间件的开发,对于公司来说,这种转型也许是正确的,但对我来说,却意味着开发工具和工作环境的再次转换和熟悉,对个人的职业发展来说,并无太多的好处。

我无意去挑起windows vs. unix之类的话题,但我自己是unix最忠实的拥趸(dun第三声),而且在linux环境下已经开发了两年多时间,所以更换环境对我来说无疑是痛苦的。

毫无疑问,unix开始使用的时候是比较困难的,但是当你有所了解和熟悉以后,你会疯狂的喜欢上这样一个系统。

在unix的世界里,没有盗版软件一说,没有注册码一词,有的只是奉献和open,unix是一个技术和艺术的结合体。在这个世界里,充满了技术天才和富有想像力的艺术家。就好比是建筑领域中的大师。

在windows的世界里,最多成为一个编码匠,但在unix的世界里,却有可能成为大师,当然你得为此付出巨大的努力和牺牲。

2007年2月2日星期五

从网络编程到网卡驱动

网络编程是从事linux开发经常遇到的问题,大部分的开发人员都会花时间在此上面,经过一定时间的学习和实践也都能应对一般的网络开发。

我们要考虑的问题是如何将已有的知识更加的深化下去,我想可以从这些方面来努力

  1. TCP/IP协议学习
  2. Linux驱动编程
  3. 网卡驱动设计
  4. 嵌入式linux开发

经过上面的学习,那么就不仅仅是掌握了网络编程,同时对于底层的驱动和嵌入式开发也能掌握的不错。