古董命令nice/renice

一开始学习Linux时,曾经有个不是太常用但非常好听好记的命令叫做nice。这个命令允许用户通过不同的优先级启动一个程序。而且作为一条通用命令,在各种Linux和Unix发行版中都有相同的命令。此外,还有对应的另一条命令叫做renice,简单粗暴的说这命令就是为一个已经在执行中的命令修改优先级。

继续阅读“古董命令nice/renice”

Linux KVM中FreeBSD9的安装

种种原因,站长已经很久没有关注过FreeBSD了,记得最后一次关注,FreeBSD还是8.0。现在已经到了9.0,安装界面上有了“质一级的飞跃”!由于真实主机上的安装没什么难度,这次就直接在KVM中安装。印象中FreeBSD属于比较保守的操作系统,对新的硬件和技术的支持相对比较慢。安装中也确实出现过问题,这里顺便也做个记录。

KVM主机是之前一直在说的Ubuntu1204的libvirt,没有桌面系统,也就意味着不能简单的通过virt-manger工具配置。主机在外网,且防火墙限制了它不能直接通过VNC连接。

继续阅读“Linux KVM中FreeBSD9的安装”

Unix的Socket协议

PHP的官方文档中,对于mysql_connect函数的介绍中有这么一条信息:
Note:
只要将 server 指定为 “localhost” 或 “localhost:port”,MySQL 客户端库会越过此值并尝试连接到本地套接字(Windows 中的名字管道)。如果想用 TCP/IP,应该用 “127.0.0.1” 代替 “localhost”。如果 MySQL 客户端库试图连接到一个错误的本地套接字,则应该在 PHP 配置中设定的正确路径并把 server 留空。

看到这里,就捎带着说说Unix的Socket协议吧。

继续阅读“Unix的Socket协议”

posix的特性——fork

记得之前曾经在一段Python中介绍过python的mulitprocess模块在windows的不兼容。其中提及了linux/Unix特有的fork方式,而windows无法实现导致的死循环。当时只是提到了一下,重点不同的关系,没有深究。

fork,顾名思义就是一把叉子,或者专业一点叫做复制叉。作为sys/type.h的一个函数,系统在每次调用fork()之后,将会以此为分叉,对进程本身进行复制,新的进程和旧进程有近乎完全一致的cpu时间和内存寄存器。

继续阅读“posix的特性——fork”

分布式文件系统Moose FS的部署

近期随着云概念的热炒,什么都分布式。所谓分布式的文件系统就是把若干机器上的磁盘空间统一维护,成为一个逻辑上的独立空间,当然,还有对应的容错和压力分散解决方案。

这些天在研究分布式存储的东西,测试了比较出名的几个分布式文件系统。首先是淘宝的tfs,国人出品应该支持了,谁知TFS的支持库实在不敢恭维,换了几种操作系统,最终才在suse上安装成功。可作为一个绑死操作系统的应用,风险太大。接着是MogileFS,MogileFS是基于perl的,在安装了一系列的perl依赖包之后,MogileFS安装的很顺利,性能也能达到要求,问题就是在于我们实在不愿意去维护一个perl环境。最后剩下了MooseFS。

继续阅读“分布式文件系统Moose FS的部署”

安装Subversion服务器

SVN虽说已经老了,可能逐步要被Git这类的新型版本控制服务软件代替了。但就单单兼容性和整合度来说,唯一与之媲美的只有更加古老的CVS了。

总之,没什么可以解释的,直接切入正题吧。服务器又是我近期一贯使用的Ubuntu Server。版本是1004 LTS。

$sudo apt-get update #迟早会像我一样条件反射的打这条命令的
$ sudo apt-get install subversion subversion-tools

继续阅读“安装Subversion服务器”