2008年12月31日星期三
雾件2008 zz
9.Myka:内置BT客户端的机顶盒,支持HDMI、H.264,最高500G硬盘,Linux系统。
8.《英雄之路(Hero's Journey)》:它在2005年的E3展上就公布了,但官方FAQ称发布日期未定。
7.ZAP-X:售价约6万美元的全电动SUV上市日期已经推迟到2010年。
6.口袋大小的放映机:包括东芝在内的几家公司都计划近期推出小型放映机,然而Microvision的设备迟迟未公开。
5.n√ºvifone 3G设备:预载入的世界地图,实时交通情况,Google Maps和本地搜索,内置照相机能自动在照片上标记地理信息,整合Google Panaramio图片分享服务等等,原计划在第三季度发布,现在可能要到明年一季度。
4.《星际争霸II》:暴雪承诺是2008年。
3.除T-Mobile G1之外的Android手机
2.Internet Explorer 8:IE8将在明年与用户见面。
1.《永远的毁灭公爵》:都开发了12年了。
标签: Vaporware
短信的运营成本为零 zz
标签: sms
IBM被鼓励开源Notes/Domino zz
Chrome是你的默认浏览器吗? zz
标签: firefox chrome
2008年12月29日星期一
linux shell script相关
$bash -x -v /home/woody/getip
打印出脚本执行每一句输出结果
2. 简单调试就是echo
3. shell script常用命令
cut -b column file: 将指定范围内的文件内容输出到标准输出设备(屏幕)上。比如:输出每行第5至9个字符 cut -b5-9 file.txt
read var: 提示用户输入,并将输入内容赋值给变量var
sort file.txt: 对file.txt文件所有行进行排序
uniq: 只输出文件中内容不一致的行,如: sort file.txt | uniq,去重
expr: 进行数学运算,如要进行2+3的运算,命令为: expr 2 "+" 3,注意2后面和3前面均有空格
tee: 将数据输出到标准输出设备(屏幕) 和文件,比如:somecommand | tee outfile
basename file: 返回不包含路径的文件名,如: basename /bin/tux 会返回 tux
dirname file: 返回文件所在路径,如:dirname /bin/tux 会返回 /bin
head file: 打印文本文件开头几行,如:head -10 filename,返回filename的前10行
tail file : 打印文本文件末尾几行,如:taile -10 filename,返回filename的最后10行
sed: Sed是一个基本的查找替换程序。可以从标准输入(如命令管道)读入文本,并将结果输出到标准输出(屏幕);该命令采用正则表达式进行搜索。不要和 shell中的通配符相混淆。比如将 ubuntu 替换为 Ubuntu :cat text.file | sed 's/ubuntu/Ubuntu/' > newtext.file
awk: awk 用来提取文本文件中的字段。缺省的字段分割符是空格,可以使用 -F 指定其它分割符。cat file.txt | awk -F, '{print $1 "," $3 }',这里我们使用 , 作为字段分割符,同时打印第一和第三个字段。如果该文件内容为 Adam Bor, 34, IndiaKerry Miller, 22, USA,则上述命令的输出为:Adam Bor, IndiaKerry Miller,USA
find . -mtime -1 -type f -print: 查找过去24小时(-mtime –2则表示过去48小时)内修改过的文件。
4. 反短斜线可以将一个命令的输出作为其它命令的命令行参数。 find . -mtime -1 -type f -print
如下脚本:
#!/bin/sh
# The ticks are backticks (`) not normal quotes ('):
tar -zcvf lastmod.tar.gz `find . -mtime -1 -type f -print`
将过去24小时内修改过的文件打包
5. 2>/dev/null
重定向错误信息到/dev/null,2表示标准错误
cat >22
标签: shell script
2008年10大最受欢迎的BT网站 zz
Torrentfreak列出了本年度的10大最受欢迎的BT网站,海盗湾超过Mininova和isoHunt占据领先位置,另外今年还有一家大型BT网站TorrentSpy被迫关闭。 1.The Pirate Bay:活跃P2P用户超过了2500万。 2.Mininova:过去一年BT种子下载量超过30亿次。 3.IsoHunt; 4.Torrentz; 5.TorrentReactor; 6.Demonoid; 7.BTjunkie; 9.SumoTorrent; 9.BTmon; 10.TorrentPortal。
Vertor:避开下载假种子和Spam zz
标签: vertor
台湾IRTI Text-to-Speech Engine
Windows bootcfg
bootcfg 不加任何參數可以顯示目前的設定
C:\Documents and Settings\Administrator>bootcfg
启动加载程序设置
--------------------
timeout: 30
default: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
启动项目
------------
启动项目 ID: 1
好记的名称: "Microsoft Windows XP Professional"
路径: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
OS 加载选项: /noexecute=optin /fastdetect
更改開機選單的 timeout 時間:
C:\Documents and Settings\Administrator>bootcfg /timeout 3
成功: 在 boot.ini 中更改了超时值。
标签: windows bootcfg
Firefox Unattended Install zz
2008年12月28日星期日
2008年10大技术突破 zz
9.可食用的芯片:一家叫Proteus的公司发明了一种细小芯片,吞下后,芯片可从胃中向外发送信号,检测心跳、体温、失眠状态,身体倾角(body angle)。
8.Speedo LZR:能减少水中粘滞力的神奇游泳衣。Phelps穿着它打破7项纪录,夺得了8枚金牌。
7.闪存:2009年固体硬盘将会进入更多人的电脑。
6.GPS:越来越多的移动设备装备了GPS。
5.记忆电阻:电阻器、电容器和电感器之外的电路的第4种基本元件。
4.具有摄像功能的照相机
3.USB 3.0:传输速度可达4.8G每秒。
2.Android:自10月发布以来,T-Mobile HTC G1手机售出150万台,逊于iPhones。
1.苹果的App Store:它让手机变成新的PC。
标签: 2008 check
2008年12月27日星期六
PureDarwin Xmas开发者预览版发布 zz
标签: darwin
中国把太多的蛋放在美国的篮子里 zz
firefox提速:参数设置
1.network.http.pipelining
在 Filter 中输入 network.http.pipelining,双击赋值为 true,默认为 false。如果没有找到这个键值,可以右键新建一个 Boolean,把她赋值为 true 就 OK 了。
还 是像我在从前解释过的那样,激活这个键值之后,Pipelining同时发出成倍数的连接请求,从而达到提升连接速度的效果。网络上的大多数网站都是基于 HTTP 协议,而 HTTP 1.1可以支持多线程的连接请求,通过这个操作可以减少Firefox载入网页的时间。不过并不是所有网页所在的服务器都支持这种操作,所以当你修改键值 之后却看不到一点实际效果的时候,请不要对我破口大骂。
2.network.http.pipelining.maxrequests
在 Filter 中输入 network.http.pipelining.maxrequests,双击并赋值为 8,默认键值为 4。
3.network.http.proxy.pipelining
在 Filter 中输入 network.http.proxy.pipelining,双击并赋值为 true。
这两条优化的道理同上,这里就不再多解释了。
4.network.dns.disableIPv6
在 Filter 中输入 network.dns.disableIPv6,双击并赋值为 true。
IPv6 把 IP 地址由 32 位增加到 128 位,从而能够支持更大的地址空间,当用户在终端向一个 IPv6-capableDNS服务器发送连接请求时,也许服务器端会错误的返回给用户一个 IPv4 地址。而 Firefox 可以对这一切明察秋毫,不过在Firefox纠错的同时也必然会导致信号的延迟,所以这里我们把她赋值为 true,禁用掉她。
5.content.interrupt.parsing
右键新建 Boolean 值,键名为 content.interrupt.parsing,赋值 true。
默 认这个键值并不存在。我们激活这个键值之后,当目标网页载入时,Firefox会根据一定频率打断解析的过程,不断的向用户反馈她所收集到的网页信息,有 点像流媒体的意思。这时的 Firefox很聪明,不会一根筋的一直钻牛角。在下面的内容中我还会具体讲一下这个键值的魅力所在。
6.content.max.tokenizing.time
右键新建 Integer 值,键名为 content.max.tokenizing.time,赋值 2250000。
这个键值的作用其实就是指定一个循环事件的处理周期,这里的单位是微秒,要是我没有算错的话。理论上当我们将这个值取的越小,网页就会从视觉上载入的越流 畅,因为Firefox会在很短的单位时间里反馈回解析到的网页信息。可是这样无疑延迟了网页整体载入的时间,所以在这里我们不妨将这个周期取的大一些, 理论上可以加速网页的载入。
7.content.notify.interval
右键新建 Integer 值,键名为 content.notify.interval,赋值 750000。
载 入一个网页其实也是一门很大的学问。让我们来放一个慢动作,我们姑且先把在终端第一次收到的网页信息很不专业的叫做预载入页面吧,这个页面有可能是不完整 的图片或者文字,或者别的媒体文件。从我们第一次向远端主机发出连接请求到我们在终端收到这个预载入页面花费的时间,就是这里我们要定义的键值。理论上当 我们将这个时间设置的很低时,肯定会更快的拿到所谓的预载入页面,可这是一种杀鸡取卵的做法,这样无形中反而增加了我们整体页面的载入时间。按照官方的说 法,低于 100,000 将会降低 Firefox 的性能,那好吧,那我们把她彪到 750000 吧。
8.content.notify.ontimer
右键新建 Boolean 值,键名为 content.notify.ontimer,赋值 true。
为了使我们上面设置的 750000 微秒生效,还需要把这个键值激活。只有这两个键值配合,才会起作用。
9.content.notify.backoffcount
右键新建 Integer 值,键名为 content.notify.backoffcount,赋值 5。
这 个键值控制Firefox的内置计数器在归零之前载入页面返回的次数。我们将目标网页分成好多个部分进行下载,每下载完一个部分,计数器归零一次。-1就 是没有限制,值为 0时这项功能被禁用。这里我们将她设置成5,当返回的次数达到五次而这部分网页还没有完全下载完时,那么剩下的没有下载完的网页内容将不会再按照我们预告 设置的周期,像之前的五次那样一点一点的搬运回来,而是会一次性的下载完。也就是说在这个部分的网页下载过程中,Firefox 一共向我们反馈了 6 次信息,前5次的时间间隔是我们在上面的键值中设置的周期 2250000 微秒,而第6次也就是最后一次则没有时间限制,什么时候把剩下的下完了,什么时候反馈回来。
只有当我们在上面提到的 content.notify.ontimer 键值为 true 的时候,这里的设置才会生效。
10.content.switch.threshold
右键新建 Integer 值,键名为 content.switch.threshold ,赋值 750000,也就是四分之三秒。
在 前面我们提到了一个键值 content.interrupt.parsing,通过激活她实际上我们可以在载入页面的过程中跟Firefox产生互动,毕竟我们每一个人的心里都 充满了爱。把 content.interrupt.parsing 激活后当页面载入时Firefox会有两种操作模式:高频和低频中断模式。使用高频模式时,网页回馈的频率也很高,我们坐在显示器前看到的网页载入过程也 会更加的平滑。低频时网页回馈的频率相对比较低,可是这时反而加快了网页载入的时间。当我们移动鼠标或者触击键盘时,高频模式被激活。在经过某一段时间我 们没有碰鼠标和键盘,程序没有接到鼠标和键盘发出的任何指令时,Firefox 就会自动进入低频模式工作,而这所谓的某一段时间,就是我们这里要指定的值。
11.nglayout.initialpaint.delay
右键新建 Integer 值,键名为 nglayout.initialpaint.delay,赋值 0。
这里实际上延迟了整个网页的显示速度,但是因为用户更喜欢在整个网页完全截入之前就开始阅读网页 (就像流媒体那样),所以在这里可以把值调为零,加速用户阅读网页的速度,有时候阅读速度和载入速度并不是成正比的。
在网络状况稳定的情况下这些优化的确是会起到一些效果的,并不光是心理作用,大家在为自己的浏览器提速时,也可以稍微参考一下。
12. 右击鼠标-新建-布尔(boolean)项,输入:config.trim_on_minimize,并设置为true。作用:这样就可以在最小化时自动释放内存。
13. 找到browser.tabs.loadDivertedInBackground的值切换true。作用:新打开的标签页在后台,你依然可以浏览当前页面。
14. 在过滤器栏输入:browser.sessionhistory.max_total_viewers,双击该项,修改值为5或更小。作用:页面快进/快退功能中保存的页面总数,默认是-1(无限)。
参考:32MB 0
64MB 1
128MB 2
256MB 3
512MB 5
1GB 8
标签: firefox parameter configure
firefox的awesome bar功能
Firefox 3抛弃了Firefox 2采用RDF进行数据存储的方式,而是采用了最先进的Sqlite3技术,采用Sqlite3进行数据存储最为直接的好处就是可以大大增强数据存储时间,使Firefox 3拥有了超强的记忆功能,由原来Firefox 2的9天延长到现在Firefox 3默认的90天,是Firefox 2的整整10倍!这一改变直接使得与“智能地址栏”伴随的其他强大功能,如,“我的足迹”管理器、智能书签夹等功能得以实现,并且让其 “智能搜索”功能空前凸显。
网址输入智能匹配
正是基于超强的记忆功能,当你在地址栏中输入关键词时,“智能地址栏”的自动完成功能就会按照你对使用历史、书签、标签中该关键字的使用频率, 将含有关键字的链接在地址栏下方根据使用偏好升序呈现,让你快速找到自己的目标网址,非常方便。不仅仅是英文关键字,“智能地址栏”还可以支持中文输入的 自动完成(图1)。
图1-网址关键字智能匹配
“我的足迹”:浏览器的管家
正是基于超强的记忆功能,在“我的足迹”管理器中,新增了自动生成的“智能书签夹”,并根据访问最多、最近使用的书签和最近使用的标签进行分类。
点击:书签->管理书签,进入“我的足迹”管理器。
如,在自动生成的“访问最多”目录下,你可以对浏览历史和书签进行跟踪管理:通过网站名、标签、或访问次数、日期进行排序(图2),并且可以对历史访问网页进行指定搜索(图3),而“恢复”功能则可以帮你找回误删的书签(图4)。
图2-在“我的足迹”中为网页排序
图3-在“我的足迹”中完成指定搜索
图4-找回误删的书签
网站访问一字通
正是基于超强的记忆功能,“我的足迹”的搜索功能得以再次进行延伸,可以通过设定“关键字” 自定义网站名称,来为自己经常访问的网站“编码”,届时只需在地址栏中输入“关键字”回车,就可以直接登陆该网站。对于经常访问的网站,省去了每次输入很长的完整网址的麻烦。
操作如下:首先添加某个网站到您的书签中,比如mail.google.com,然后打开“书签”->“管理书签”,会打开“我的足迹” 对话框,在该对话框中找到刚才添加的书签,也就是mail.google.com,右侧下方会出现一个详细输入界面,点击“复杂”,界面就会展开,设定“ 关键字”,如“g”(可以是一个字母、单词、汉字或者词组)。
以后,只要在地址栏输入刚才设定好的关键字“g”, 一敲回车,就可以直接进入你的gmail写邮件啦!(图5)
图5-用关键字设定常用网址
搜索引擎一键通
超强的记忆功能让搜索变得更加智能!在Firefox 3中,已经预设了很多搜索引擎,如:百度、百度知道、google等,现在,你可以通过编辑搜索引擎的关键字,让你的搜索更方便!只需在地址栏中输入:“搜索引擎的关键字(空格)检索词”回车即可。无需在搜索栏或页面中切换选择搜索引擎,省去了许多麻烦,使用更加便捷!
如果搜索引擎管理中没有baidu,点击get more search engine,在search tools搜索baidu,添加到firefox中。
操作如下:拿Firefox 3中的百度为例,打开搜索下拉菜单,里面有个“管理搜索引擎”,会弹出一个对话框,在里面选中搜索引擎,然后设定关键字即可,来试试看吧!(图6)
图6-用关键字设定搜索引擎
是不是仅仅一个“Awesome Bar”(智能地址栏)的伴生功能就已经让你有点眼花缭乱了?Firefox 3带来的更多惊喜还在继续,欢迎大家和我们一起来分享!
Firefox 3 你没有注意到的8个秘密
1.最小化工具栏。Firefox工具栏的后退按钮实在太大了,再加上如果你没有买24寸LCD,大图标会白白占用你的显示器可视面积,这是所有穷人不想看到的。右键单击工具栏,选择customized,单击Use Small Icons,问题解决了。
2.使用智能书签。Firefox 3在第一次安装好后会给你生成一个特殊的书签,名字叫Most Visited。搞笑的是这个书签删了就没了(有方法重建),而且你无法得知这个书签究竟是什么代码(右键单击除了名字和注释什么也没有)。实际上这玩意一点技术含量也没有,只要添加书签在location中输入Places query URIs(形如place:queryType=0&sort=8&maxResults=10)即可。"
4.用拖放来复制标签页。如果你跟我说你使用Ctrl+V和回车来复制标签页,那么我回敬你的只有凸。按住Ctrl键单击标签页拖放这不这就行了,你费那些事干嘛。
5.修改Firefox的标签页的关闭按钮。如果你也像我一样经常误点标签页的关闭按钮,你应该像我一样在地址栏中输入about:config,打开firefox配置页面,将browser.tabs.closeButtons 改为 3,一切都结束了。
6.修改Firefox的Awesome Bar。Firefox的Awesome Bar真的是非常的不Awesome,比起Google Chrome的omni bar来说差得远的,你得到的永远不是那个你最想要的首页网址。除了关闭它我想不到别的更好方案了。browser.urlbar.maxRichResults改为-1。
7.用keywords搜索keywords。举个例子,右键单击pcmag.com的搜索框,单击Add a Keyword for this search,输入pc回车。以后想搜pcmag的文章,只需要输入pc 你的文章题目即可。这是awesome bar(智能地址栏)带来的一个功能。
8.查看你保存的所有密码。虽然我承认我有点鸵鸟,Firefox独创的查看密码功能当年是我最无法接受的一个功能。
标签: firefox
2008年12月25日星期四
Linux 2.6.28正式发布 ZZ
2008年12月24日星期三
澳大利亚网络过滤计划的缺陷 zz
2008年12月23日星期二
2008年10大开源新闻 zz
2.拥有OpenOffice、收购MySQL,开源Solaris的Sun成为开源界的新星。
3.Ubuntu 8.10和Fedora 10发布。
4.Google Chrome发布。
5.Google Android发布。
6.Nokia收购Symbian,保证继续开源。
7.法庭判决开源软件版权是具有强制性的。
8.Linux开发者Hans Reiser被判一级谋杀,后与警察合作透露妻子尸体埋藏处而降为二级谋杀。
9.Debian Linux发行版中OpenSSL包被开发者修改,从而降低了加密可靠度。
10.SCO输掉了与Novell的官司。
标签: news opensource
适合所有Linux发行版的包管理器 zz
ubuntu搭建本地升级源
升级服务器:
ip地址:192.168.1.110
vmware虚拟机,ubuntu8.04 i386
镜像目录:/repository
镜像目录下要有足够的空间,我只是升级debian-amd64二进制包就占用了25GB的空间,对ubuntu src源没有做镜像,镜像src要多消耗20多G空间,绝大部分人不会用到src。
升级服务器可以在任何版本的ubuntu上搭建。
升级客户机:ubuntu8.10 x64
ip地址:192.168.1.100
升级源:http://mirror.lupaworld.com/ubuntu
选择升级源尽量用官方源或找口碑不错的镜像站进行镜像,而且最好先进行速度测试,选择一个速度快的升级源。
升级服务器
1. 安装需要的程序
#aptitude install apt-mirror //下载远程镜像文件
#aptitude install apache2 //安装apache2服务器,用于给本地局域网主机提供升级服务
2. 配置镜像
#gedit /etc/apt/mirror.list
############# config ##################
#
set base_path /repository //设置镜像目录
#
# if you change the base path you must create the directories below with write privlages
#
set mirror_path $base_path/mirror //设置mirror
set skel_path $base_path/skel //设置skel
set var_path $base_path/var //设置var
set cleanscript $var_path/clean.sh
set defaultarch
set nthreads 20 //设置下载镜像文件线程数
set _tilde 0
#
############# end config ##############
//设置下载镜像文件的内容
deb-amd64 http://mirror.lupaworld.com/ubuntu intrepid main restricted universe multiverse
deb-amd64 http://mirror.lupaworld.com/ubuntu intrepid-security main restricted universe multiverse
deb-amd64 http://mirror.lupaworld.com/ubuntu intrepid-updates main restricted universe multiverse
deb-amd64 http://mirror.lupaworld.com/ubuntu intrepid-backports main restricted universe multiverse
deb-amd64 http://mirror.lupaworld.com/ubuntu intrepid-proposed main restricted universe multiverse
#deb-src http://archive.ubuntu.com/ubuntu hardy main restricted universe multiverse
#deb-src http://archive.ubuntu.com/ubuntu hardy-updates main restricted universe multiverse
#deb-src http://archive.ubuntu.com/ubuntu hardy-backports main restricted universe multiverse
#deb-src http://archive.ubuntu.com/ubuntu hardy-security main restricted universe multiverse
#deb-src http://archive.ubuntu.com/ubuntu hardy-proposed main restricted universe multiverse
//
3. 进行镜像
#apt-mirror
是网速而定需要时间,有断点续传。
如果镜像完成后相对镜像再进行升级,
#apt-mirror
4. 加入apache2
sudo ln -s /repository/mirror/mirror.lupaworld.com/ /var/www/ubuntu
5. 镜像完之后,会提示
59.5 MiB in 40 files and 0 directories can be freed.
Run /repository/var/clean.sh for this purpose.
我们运行
# /bin/bash /repository/var/clean.sh
Removing 40 unnecessary files [62435328 bytes]...
[0%]....done.
Removing 0 unnecessary directories...
done.
6. 定期升级本地源
#
#
# Regular cron jobs for the apt-mirror package
#
0 4 * * * apt-mirror /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log
每天四点执行升级
升级客户机
1. 修改/etc/apt/sources.list
#gedit /etc/apt/sources.list
deb http://192.168.1.110/ubuntu/ubuntu/ intrepid main restricted
deb http://192.168.1.110/ubuntu/ubuntu/ intrepid-updates main restricted
deb http://192.168.1.110/ubuntu/ubuntu/ intrepid universe
deb http://192.168.1.110/ubuntu/ubuntu/ intrepid-updates universe
deb http://192.168.1.110/ubuntu/ubuntu/ intrepid multiverse
deb http://192.168.1.110/ubuntu/ubuntu/ intrepid-updates multiverse
deb http://192.168.1.110/ubuntu/ubuntu/ intrepid-backports main restricted universe multiverse
deb http://192.168.1.110/ubuntu/ubuntu/ intrepid partner
deb http://192.168.1.110/ubuntu/ubuntu/ intrepid-security main restricted
deb http://192.168.1.110/ubuntu/ubuntu/ intrepid-security universe
deb http://192.168.1.110/ubuntu/ubuntu/ intrepid-security multiverse
deb file:///repository/mirror/mirror.lupaworld.com/ubuntu intrepid main restricted universe multiverse
2. 可以进行升级了
#apt-get update
本地升级超快,超爽,试试吧!
本地升级源在安装时候也可以使用。
2008年12月22日星期一
nslookup命令详解
查询IP地址
nslookup最简单的用法就是查询域名对应的IP地址,包括A记录和CNAME记录,如果查到的是CNAME记录还会返回别名记录的设置情况。其用法是:
nslookup DomainName
C:\>nslookup www.oray.net
Server: cache-a.guangzhou.gd.cn
Address: 202.96.128.86
Non-authoritative answer:
Name: oray.net
Address: 222.73.49.101
Aliases: www.oray.net
如果目标域名是一个别名记录(CNAME),nslookup就开始显示出和ping命令不同的地方了,请看查询CNAME记录的结果。由于CNAME和A记录最后都是活的IP地址,所以一般情况下两者是等同看待的,命令的格式相同。
前两行显示这对应的域名和IP地址。最后显示的就是目标域名, 并注明Alias(别名)。
查询的域名不存在
C:\>nslookup aabbccdd.oray.net
Server: cache-a.guangzhou.gd.cn
Address: 202.96.128.86
Non-authoritative answer:
Name: aabbccdd.oray.net
Address: 59.37.71.85
对于不存在的域名,正常的返回结果应该是
*** UnKnown can't find aabbccdd.oray.net: Non-existent domain
上面的59.37.71.85是广州电信的ip地址,对于不存在的域名,电信会将他们指向几个固定的ip地址。由于电信域名服务器做域名劫持,所有不存在的域名都会解析到某个广告入口地址,因此能解析出来,而 nslookup 认为是正确的结果。
查询其他类型的域名
前面两个命令我们没有加任何参数,所以默认情况下nslookup查询的是A类型的记录。如果我们配置了其他类型的记录希望看到解释是否正常。这时候 ping就无能为力了。比如我们配置了MX记录,但是邮件服务器只能发信不能收信,到底是域名解释问题还是其他的问题Ping命令的检查只能让你误入歧 途。nslookup 这时候可以模拟你的其他遇见服务器进行域名解释的情况。我们需要在nslookup上加上适当的参数。指定查询记录类型的指令格式如下:
nslookup –qt=类型 DomainName
注意qt必须小写。
类型可以是一下字符,不区分大小写:
A 地址记录(Ipv4)
AAAA 地址记录(Ipv6)
AFSDB Andrew文件系统数据库服务器记录
ATMA ATM地址记录
CNAME 别名记录
HINFO 硬件配置记录,包括CPU、操作系统信息
ISDN 域名对应的ISDN号码
MB 存放指定邮箱的服务器
MG 邮件组记录
MINFO 邮件组和邮箱的信息记录
MR 改名的邮箱记录
MX 邮件服务器记录
NS 名字服务器记录
PTR 反向记录(从IP地址解释域名)
RP 负责人记录
RT 路由穿透记录(不懂)
SRV TCP服务器信息记录(将有大用处)
TXT 域名对应的文本信息
X25 域名对应的X.25地址记录
看看www.oray.net的邮件服务器记录吧
C:\>nslookup -qt=mx www.oray.net
Server: cache-a.guangzhou.gd.cn
Address: 202.96.128.86
Non-authoritative answer:
www.oray.net canonical name = oray.net
oray.net MX preference = 11, mail exchanger = sendmail1.oray.net
oray.net MX preference = 20, mail exchanger = mail2.oray.net
oray.net MX preference = 30, mail exchanger = mail.oray.net
oray.net MX preference = 40, mail exchanger = sendmail.oray.net
oray.net MX preference = 50, mail exchanger = gzmail.oray.net
oray.net MX preference = 60, mail exchanger = sendmail2.oray.net
oray.net MX preference = 70, mail exchanger = sendmail3.oray.net
oray.net MX preference = 80, mail exchanger = sendmail4.oray.net
oray.net MX preference = 90, mail exchanger = sendmail5.oray.net
mail2.oray.net internet address = 202.105.21.217
mail.oray.net internet address = 61.152.96.115
sendmail.oray.net internet address = 202.105.21.193
sendmail.oray.net internet address = 61.152.96.116
sendmail2.oray.net internet address = 202.105.21.219
sendmail3.oray.net internet address = 61.152.96.117
sendmail4.oray.net internet address = 202.105.21.218
sendmail1.oray.net internet address = 58.211.16.88
看看,nslookup把服务器的名称和地址都给出来了,注意preference就是前面所说的优先级,该数值越小则优先级越高。
再看看名字服务器记录是怎么样的
C:\>nslookup -qt=ns www.oray.net
DNS request timed out.
timeout was 2 seconds.
*** Can't find server name for address 202.96.128.86: Timed out
*** Default servers are not available
Server: UnKnown
Address: 202.96.128.86
//这几行表示找不到202.96.128.86正确的反向记录
Non-authoritative answer:
www.oray.net canonical name = oray.net
oray.net nameserver = ns1.oray.net
oray.net nameserver = ns2.oray.net
ns2.oray.net internet address = 61.152.96.118
ns1.oray.net internet address = 202.105.21.217
看起来和MX记录的格式差不多,一般情况下服务器会同时返回对应的地址。不过也有不返回的情况。
在这里我希望大家注意一行显示“Non-authoritative answer:”,它的出现代表这个结果是从服务 器的缓存中得到的。所以提醒你这不是一个授权的答案。DNS服务器在查询过程中会缓存查询最终结 果,及名字服务器等中间结果。
指定使用的名字服务器
在默认情况下nslookup使用的是我们在本机TCP/IP配置中的DNS服务器进行查询,但有时候我们需要指定一个特定的服务器进行查询试验。这时候我们不需要更改本机的TCP/IP配置,只要在命令后面加上指定的服务器IP或者域名就可以了。这个参数在我们对一台指定服务器排错是非常必要的,另 外我们可以通过指定服务器直接查询授权服务器的结果避免其他服务器缓存的结果。命令格式如下:
nslookup [-qt=类型] DomainName 指定的DNS服务器IP或域名
C:\>nslookup -qt=ns www.oray.net a.gtld-servers.net
(root) nameserver = m.root-servers.net
(root) nameserver = d.root-servers.net
(root) nameserver = j.root-servers.net
(root) nameserver = f.root-servers.net
(root) nameserver = l.root-servers.net
(root) nameserver = e.root-servers.net
(root) nameserver = a.root-servers.net
(root) nameserver = b.root-servers.net
(root) nameserver = h.root-servers.net
(root) nameserver = k.root-servers.net
(root) nameserver = i.root-servers.net
(root) nameserver = c.root-servers.net
(root) nameserver = g.root-servers.net
m.root-servers.net internet address = 202.12.27.33
m.root-servers.net AAAA IPv6 address = 2001:dc3::35
d.root-servers.net internet address = 128.8.10.90
j.root-servers.net internet address = 192.58.128.30
j.root-servers.net AAAA IPv6 address = 2001:503:c27::2:30
f.root-servers.net internet address = 192.5.5.241
f.root-servers.net AAAA IPv6 address = 2001:500:2f::f
l.root-servers.net internet address = 199.7.83.42
l.root-servers.net AAAA IPv6 address = 2001:500:3::42
e.root-servers.net internet address = 192.203.230.10
a.root-servers.net internet address = 198.41.0.4
a.root-servers.net AAAA IPv6 address = 2001:503:ba3e::2:30
*** Can't find server name for address 192.5.6.30: No information
Server: UnKnown
Address: 192.5.6.30
oray.net nameserver = ns1.oray.net
oray.net nameserver = ns2.oray.net
ns1.oray.net internet address = 202.105.21.217
ns2.oray.net internet address = 61.152.96.118
这个命令直接从顶级域名服务器查询oray.net的NS记录。所有的二级域名的NS记录都存放在顶级域名服务器中,这是最权威的解释。注意这次没有非授权结果的提示。对于二级域名的NS记录查询来说这肯定是授权结果。顶级域名服务器的名称是a到j.gtld-servers.net共十台服务器。(gtld是Global Top Level Domain的缩写)。当我们修改域名的NS记录的时候可以通过上述查询知道修改的结果是不是已经在顶级域名服务器上生效。不过即使已经生效也可能不能正常解释,注意我在上一篇文章中提到的缓存时间的问题。
检查域名的缓存时间
nslookup –d[其他的参数] DomainName [指定的服务器地址]
C:\>nslookup -d www.baidu.com
DNS request timed out.
timeout was 2 seconds.
timeout (2 secs)
*** Can't find server name for address 202.96.128.86: Timed out
*** Default servers are not available
Server: UnKnown
Address: 202.96.128.86
------------
Got answer:
HEADER:
opcode = QUERY, id = 2, rcode = NOERROR
header flags: response, want recursion, recursion avail.
questions = 1, answers = 3, authority records = 0, additional = 0
QUESTIONS:
www.baidu.com, type = A, class = IN
ANSWERS:
-> www.baidu.com
canonical name = www.a.shifen.com
ttl = 291 (4 mins 51 secs)
-> www.a.shifen.com
internet address = 121.14.89.14
ttl = 359 (5 mins 59 secs)
-> www.a.shifen.com
internet address = 121.14.88.14
ttl = 359 (5 mins 59 secs)
------------
Non-authoritative answer:
Name: www.a.shifen.com
Addresses: 121.14.89.14, 121.14.88.14
Aliases: www.baidu.com
我们忽略其他的看看Got answer后面几行,包括了一个ttl数值。这个数值就是域名记录的生存时间。
标签: nslookup
开源邮件方案之iRedMail-0.3.2及iRedOS-0.1.2 zz
http://www.iredmail.org/wiki/index.php/IRedMail_Do c
相对于 0.3.1 版本,本次发布的 0.3.2 版本主要的改进有:
* 增加了补丁用于让 ExtMail 可以自动创建用户的 maildir 目录。现在您
可以考虑使用 MySQL+ExtMail+PostfixAdmin 的组合,用以替代您之前的
MySQL+ExtMail+ExtMan 的组合。
* 修正了 MySQL/LDAP 的 root 用户密码无法使用特殊字符的问题。感谢
xcrossbow@gmail 的反馈。
(注:以下为 0.3.2-beta1 测试版本发布时相对于 0.3.1 所做的改进和修正)
* Roundcube WebMail 现在已经搭配基于 LDAP 的方案,但用户自行修改密码
和设置转发的功能暂时无法使用。设置假期自动回复的功能仍可正常使用。
并且自动使用 OpenLDAP 做为全局地址簿。
* 从基于 LDAP 的方案中移除 postgrey,统一使用 Policyd v1 提供灰名单
(greylist)服务。
注意:以上两个更改使得 MySQL 成为基于 LDAP 的方案中的一个必不可少
的组件。
* 在 Horde WebMail 里,用户可以自定义邮件过滤规则,如果使用 OpenLDAP
存储邮件账号,则会默认使用 OpenLDAP 作为全局地址簿。
* 改进对已有 AMP (Apache, MySQL, PHP) 环境的支持。
* 默认为 MySQL 启用 SSL 支持。
* 默认使用 unix socket 方式连接 MySQL 数据库,性能更好一些。
* 首次引入 php-eaccelerator -- PHP 加速器。
* 首次引入 Awstats-6.8 作为 web 和 mail 日志分析工具。
* 增加补丁用于修正 PostfixAdmin 登录页面的安全隐患。参考链接:
https://sourceforge.net/mailarchive/forum.php?thre ad_name=49057E07.3060806%40gmail.com&forum_name=po stfixadmin-devel
* 在 logrotate 中默认使用 bzip2 对日志文件进行压缩,以得到更大的压缩
比,为您节省一些磁盘空间。
* 修正 ExtMail 默认附件大小。感谢 tongds@gmail 的反馈。
* 在 Dovecot 中集成对磁盘容量告警、删除过期邮件的支持。但默认禁用。
注:用于邮箱容量告警的脚本需要自己编写,也可以从 iredmailsupport@
邮件列表的文件下载区获得模板。
* 增强 mailgraph,现在可以正确统计 greylist 信息了。
* 软件包更新:
- Dovecot => 1.1.7。
- SquirrelMail => 1.4.17。
- ClamAV => 0.94.2。感谢 chenwei1973@gmail 的提醒。
- php-rrdtool, rrdtool => 1.2.28
- phpMyAdmin => 2.11.9.4
* 移除了几个工具脚本:
- tools/backup_mysql_db.sh:MySQL 数据库备份脚本
- tools/convert_winmail_mailbox.sh:迁移 WinMail 用户邮箱的脚本
- tools/create_mail_user_ldap.sh:批量创建 LDAP 用户的脚本
- tools/create_mail_user_mysql.sh:批量创建 MySQL 用户的脚本
- tools/get_helo_count.sh:统计 HELO 标识的脚本
- tools/migrate_extmail_mailbox.sh:迁移 ExtMail 用户的脚本
- tools/sysreport.sh:获取系统报告的脚本
--------
*) iRedMail-0.3.2 完整的更新日志可以在以下地址浏览:
- http://iredmail.googlecode.com/svn/trunk/iRedMail/ ChangeLog
您的任何意见和反馈对我们而言都是宝贵的,欢迎您下载测试,衷心希望能够
帮助大家 在 RHEL/CentOS 平台快速搭建好功能完备的邮件服务器。
iRedMail 邮件方案项目的相关链接:
* 项目主页:
http://iredmail.googlecode.com/
* 成功案例:
http://code.google.com/p/iredmail/wiki/iRedMail_Su ccess_Stories
注意:
只有列在"成功案例"页面的系统管理员才能加入 iredmailsupport
@googlegroups.com 邮件列表,获得最及时的技术支持和升级服务。
* 论坛/社区:
http://www.iredmail.org/bbs/
http://groups.google.com/group/iredmail-zh/
* 完整的实施文档:
http://www.iredmail.org/wiki/index.php/IRedMail_Do c
* iRedMail 安装指南:
http://code.google.com/p/iredmail/wiki/Installatio n_zh
* iRedMail 管理员指南:
http://code.google.com/p/iredmail/wiki/Admin_Guide
* iRedMail 客户端用户指南:
http://code.google.com/p/iredmail/wiki/User_Guide
* 致谢:
http://code.google.com/p/iredmail/wiki/Credits
* 捐赠:
http://www.iredmail.org/wiki/index.php/Donations
--------
*) iRedMail 开源邮件方案简介
iRedMail,中文名为"艾瑞得邮件",由 rhms 项目更名而来。是针对 Red Hat(R)
Enterprise Linux 和 CentOS 设计的邮件服务器解决方案,是在操作系统安装好
后使用的一套 shell 脚本,用于快速部署一套功能完善的邮件服务器解决方案。
目前支持的操作系统:Red Hat(R) Enterprise Linux, CentOS。
支持的操作系统版本:5.0, 5.1, 5.2。
*) iRedMail 需要您的帮助和支持。
要掌握一套邮件服务器解决方案所涉及的知识,需要花费许多时间,所以我们
更觉得,知识要分享出去,以使后来者可以少走一些弯路。
成长自己,成就他人。
我们会继续保持 iRedMail 完全开源(Full Open Source),为大家提供强大而
完善的邮件服务解决方案。并且努力营造活跃而高效的社区,为大家提供友好
的交流平台。但是,iRedMail 也需要您的支持和帮助。
如果您觉得 iRedMail 还不错,希望您能通过以下途径帮助我们:
* 告诉您的朋友,iRedMail 是什么,有什么功能和特性;
* 在您的博客(Blog)上发布关于 iRedMail 的信息;
* 向需要邮件服务器的网友推荐他们尝试 iRedMail;
* 在您常去的论坛的邮件服务相关版块发布关于 iRedMail 的介绍和功能
特性等信息;
更多途径,请阅读以下链接:
- http://www.iredmail.org/wiki/index.php/Help_US
感谢您的帮助和支持,iRedMail 因为有你们的帮助才能够更完善。
*) 技术支持与有偿服务。
iRedMail 的用户可以通过以下途径得到及时的技术支持:
- 论坛: http://www.osspinc.com/bbs/
- 邮件列表:
+ http://groups.google.com/group/iredmail/
+ http://groups.google.com/group/iredmailsupport/
有偿服务则主要包含安装 RHEL/CentOS 操作系统,部署 iRedMail 邮件方案,
以及邮件系统后期的技术支持、软件更新、性能调优,以及基于 RHEL/CentOS
4.x 和 5.x 的解决方案等。例如,集群,文件服务器等。
--------
iRedMail 开源邮件方案的主要特色及功能有:
*) 轻松、快速部署
* 1分钟内即可完成安装与配置。
*) 支持多平台、多版本
* 支持 i386, x86_64 平台。
* 支持 Red Hat Enterprise Linux/CentOS 5.0 ~ 5.2 版本。
*) 安全传输
* 为 Web 访问提供了 TLS/SSL 加密支持,有效保障您的信息安全;
* 提供 SMTP,SMTPS 服务,为您发送的邮件提供加密支持,有效保障您的
信息安全。
* 提供 POP3,POP3S,IMAP,IMAPS 服务。您的用户可以使用 OutLook,
Foxmail, Thunderbird 等邮件客户端收发邮件,并且可以选择是否使用
加密传输以保证信息安全;
* 灵活的邮件备份与监控机制。可以监控、备份单个用户收发的邮件,也
可以对整个域的用户进行监控和备份。
*) 有效抵挡垃圾邮件
* 使用 SPF 技术识别邮件来源,有效防止假冒邮件。
* 使用 DKIM 签名和校验技术。
o 有效保证您的邮件顺利抵达收件人,并且收件方可以准确识别您的
邮件,有效防止邮件被拒收等问题。
o 有效验证接收到的邮件是否缺失来自发件的域,有效防止垃圾邮件、
假冒邮件。
* 使用灰名单(greylist)技术,有效抵挡垃圾邮件。有许多系统管理员
反馈,使用了灰名单技术后,垃圾邮件减少了 20% - 90%。
* 黑、白名单技术。
* 强大的 spamtrap(垃圾邮件陷阱)机制。
通过设置一个不存在的邮件地址,例如:hr@example.com,来作为
陷阱,所有发到这个地址的发件人都将被认为是垃圾邮件发送者,会
被列入黑名单。这种方法可以减少你的系统浪费在垃圾邮件识别上的
时间和性能。
* 灵活的邮件收发频率控制。例如,限制某用户在一分钟内最多只能发送
或接收 5 封邮件。
* 灵活的邮件收发总容量控制。例如,限制某用户在一分钟内最多只能发送
或接收 10M 的邮件。
*) 有效的病毒防护机制
* 使用强大的开源查杀毒引擎 ClamAV 为您的邮件提供病毒查杀服务,并且
定期更新病毒库,以保障您的邮件安全。
*) Web Mail
* 提供基于 AJAX 技术的 Web Mail 程序,易于操作,性能优异,速度快。
也为您的移动办公提供极大的便利。
* 您还可以选择其它 Web Mail 程序:
o ExtMail?
o Horde WebMail?
o SquirrelMail?
*) 灵活的用户策略控制
* 设置某些用户只能发送邮件到本域和子域。
* 设置某些邮件地址只能接收来自本域用户的邮件。
* 灵活的邮件收发控制。您可以实现以下策略:
o 只能收,不能发。
o 只能发,不能收。
o 不能使用 POP3 服务;
o 不能使用 IMAP 服务。
* 灵活的单封邮件大小控制;您可以为您的 Boss 设置单封邮件的大小为
20M,30M 等,而其他用户则只能是 10M。
* 灵活的收件控制。用户可以屏蔽某个域的所有邮件,但允许接收其中某个
用户的邮件。
*) 管理选项
* 无限量的虚拟域和虚拟用户。
* 为管理员提供了方便易用的管理后台,进行域、用户的添加删除等日常
管理工作;
* 详细的邮件流量分析。以图表的形式为您呈现邮件服务器的活动状况。
--
Best regards.
Zhang Huangbin
- Open Source Mail Server Solution for RHEL/CentOS 5.x:
http://code.google.com/p/iredmail/
标签: iRedMain iRedOS
中国第一封电子邮件 网上跑了6天 zz
几年前还被人时髦地称为“伊妹儿”的东西,如今正势不可挡地深刻影响着广大中国人的生活。截至2006年底,中国电子邮箱注册用户总数已经超过4.3亿。不计其数的被翻译成“0”和“1”的信息在网上急速传播着。那么,是谁发出了中国的第一封电子邮件呢?
北京车道沟10号,一个靠近西三环的幽静院落里,来来往往的多是中国兵器工业计算机应用技术研究所退休的老人们。得知记者前来采访中国第一封电 子邮件发出的始末时,一位老人指着不远处一座绿树掩映下的小楼说:“就是在那里,所里的人都知道,但是当年的人都找不到了,已经找不到了。”
领导建设中国兵器工业部电子计算机中心、并作为该中心早期互联网研究技术顾问的王运丰教授已于1997年4月辞世。被誉为“中国第一上网人”的钱天白教授也于1998年5月心脏病突发辞世,年仅53岁。
时任研究所所长的李澄炯年事已高,已移居美国西海岸。只有研究组成员之一的阮任成退休在家。
要上国际网络
须找“中转站”
1987年9月14日晚间,计算机应用技术研究所的小楼里,中德科学家围在一台7760大型计算机周围,屏息以待。中国第一封电子邮件的发送试验正在进行。
“这是一封没有特定收件人的邮件。”李澄炯说,在网络世界里,这封邮件就像人类在探索地外文明时发出的“寻呼”,它唯一的使命就是向外界证明中国计算机网络的存在。
李澄炯提出邮件内容用“Across the Great Wall we can reach every corner in the world(越过长城,走向世界)”,他认为:“这符合当时中国实际发展状况。”
那时,中国尚未成为国际计算机数据通信网CSNET的成员,要与国际网络联接,必须找一个“中转站”。中国最初的互联网研究,是借道西德的。
1983年,西德卡尔斯鲁厄大学信息系主任、网络专家措恩(W.ZORN)教授出席在北京举行的一次学术会议上认识了王运丰教授,两人就计算机应用和在中国推广计算机网络等问题进行了探讨。
随后双方的合作迅速展开。1986年12月,时任副院长的杨楚泉代表中国兵器科学研究院和卡尔斯鲁厄大学在西德联合签署了“中德计算机网络领域 内的合作协议书”。协议的第一步计划是:“在国家机械委计算机应用技术研究所(ICA)和卡尔斯鲁厄大学之间首先建立计算机的点对点联系,而后联入现有国 际网络,中国方面要进一步打开联接其他科研单位和高等院校的通路。”
中方合作单位北京计算机应用技术研究所,原属兵器工业部,后来又归国家机械委、机电部管,以后又成为兵器集团公司的一员。
合作项目的德方负责人是措恩教授,中方负责人是王运丰和李澄炯,他们共同组建了由硬件工程师、通讯工程师和系统软件工程师邱雷南、阮任成、魏宝贤、朱江、赵丽华等在当年堪称“豪华阵容”的研究组。
“那时候没有Internet的概念,在计算机应用方面,发达国家对我们一直心存戒备,有意无意地设置一些‘壁垒’,计算机软硬件难以兼容的问 题非常突出。”直到1987年7月,措恩教授从西德带来可兼容的系统软件,研究所的计算机才具备了与国际网络互联及发送电子邮件的技术条件。
进入国际科技网的唯一入口
1987年9月14日,措恩教授按照李澄炯确定的信件内容在计算机上输入英文信件,发送出去。然而,这封简短的信件却在路上整整走了6天。
由于CSNET/PMDF协议需要针对诸多已有的数据传输设备进行匹配和修改,专家们不断地对系统和硬件进行检查和确认。
1987年9月20日20时55分,计算机屏幕上闪出“发送完成”字样。
“当时还年轻,大家高兴极了。”阮任成回忆,“这是中国互联网和国际网络的首次成功对话,它对于改变中国计算机发展的国际形象,推广网络应用技术,有着至关重要的意义。”
接下来的几天里,研究所不断收到来自法国、美国等国家的回复邮件,其中还有海外华人华侨、留学生发来的贺信,也有外国朋友有益的建议和互联意 愿。一时间,这里成为当时中国进入国际科技网的唯一入口。北京大学、浙江大学及中科院等20多家高等院校和研究机构,都曾由此登录国际科技网,享用网上资 源并交流信息。“这意味着中国将可以直接和欧美各国以及太平洋地区几乎所有大学、研究中心通讯和交换信息了。”李澄炯回忆,“最受益的恐怕算是国家天文台 了,因为搞天文研究的专家需要更经常地与国际同行进行学术交流。”
1987年9月25日,中国日报刊登了这一消息:“中国与世界10000个大学、研究所和计算机厂家建立了计算机联接。这个连接通过北京与卡尔 斯鲁厄的两台西门子计算机实现。王运丰教授(中国国家科委电子信息与技术顾问)把这一成果描述为中国大学和研究所与世界计算机网络一体化的技术突破,在卡 尔斯鲁厄大学教授维纳·措恩指导下完成,技术团体由来自北京计算机应用研究所、卡尔斯鲁厄大学、西门子公司和美国的科学家们组成。”
中国CN顶级域名服务器 最初在德国
如果就此说中国已经成了国际互联网络的一分子还为时尚早。要接入国际计算机网络还需要两个关键的步骤:CN域名注册和全功能接入。
此时,中国虽然发出了第一封电子邮件,实现了和国际网络的对接,但是大规模的接入仍然是不可能的。按照当时邮电部门提供的费用标准,使用计算机 传送4400字符(相当于一张16开的打印纸)约需45元,而维护中德之间的这条基本线路,双方每月都要支付2000~5000美元。若与国外交换大量实 验数据,对于一般单位来说,这种价格是难以接受的。
中国和国际网络的对接必须寻找一个更便捷的通道———ICA开始考虑加入刚刚兴起的互联网(Internet)。
由于中国的计算机与国际网络的联接成功得到了国际科技网络组织的认可,1987年11月,中国被邀请参加在美国普林斯顿大学举办的第六届国际计 算机联网讨论会(ANW)。在措恩教授等人的努力下,在这次会议上,美国科学基金会主任斯特芬·沃尔夫表达了对中国接入国际计算机网络的欢迎,并将批文转 交给了杨楚泉。
杨楚泉认为:“它不仅标志着国际网络组织对中国科技网络的认可,更重要的是,它还标志着中国的科技工作者开始接触因特网资源,这是一个十分令人振奋的历史事实。”
1988年3月,国家机械委在北京主持召开了计算机国际联网讨论会,宣布成立中国计算机科技网推进协会(CANET)。
1990年10月,王运丰教授代表ICA授权措恩教授,以CANET的名义向美国国际互联网络信息中心注册了中国的顶级域名“CN”。杨楚泉回 忆:“注册是用电子邮件方式在网上进行的,其中域名‘CN’是王运丰教授提出的取名建议。”1991年初,申请获得了正式批准。《中国互联网大事记》记 载:“从此在国际互联网上中国有了自己的身份标识。由于当时中国尚未实现与国际互联网的全功能联接,中国CN顶级域名服务器暂时设在德国卡尔斯鲁厄大学。 ”1994年4月20日,NCFC工程通过美国Sprint公司连入Internet的64K国际专线开通,实现了与Internet的全功能联接。从 此,中国成为第77个被国际上正式承认为真正拥有全功能Internet的国家。
另有一说
1986年已发出中国第一封电子邮件
曾在中国科学院高能物理研究所工作多年、现为美国费米国家实验室研究员的吴为民认为,他1986年任高能物理所ALEPH组组长时,于8月25 日11时11分,从北京710所的IBM-PC机上发给ALEPH的领导———位于瑞士日内瓦西欧核子研究中心的诺贝尔奖获得者斯坦伯格的电子邮件是中国 第一封电子邮件。
这封用英语写成的工作邮件大意为:“亲爱的Jack,我很高兴通过计算机联网给您发这封信。我相信,这是在西欧核子研究中心与中国之间的第一个 成功的计算机通讯。我想再次感谢您最近对北京的访问。正是这次访问导致了这个有价值的计算机通讯试验的成功。我想,现在,每一个ALEPH协作组的成员, 都用计算机网络联系起来了。这是非常重要的。当然,要在北京分析ALEPH的数据压缩带,还有许多问题,并且需要为此找到经费。但最重要的是,我们已经开 始启动。目前我是用710所的IBM-PC机与您联系的。……顺便问一下,您在上海买的地毯如何?”
阮任成表示,互联网的兴起是必然的,“即使当时不是我们来做研究,也会有别的所别的人来研究,只是时间上可能会有差别而已。我们付出了,研究成功了,对后人有用就行了。追究谁是第一已经没有多大意义。”
2008年12月21日星期日
HTML 5令人期待的5项功能 zz
HTML 5 的讨论开始于2003年,当时,W3C 对由 Web Hypertext Application Technology Working Group (WHATWG) 开发的 HTML 5 草案表示出兴趣,WHATWG 创始于2004年,由苹果,Mozilla 基金会,以及 Opera 公司的 代表组成。此后,W3C HTML Working Group 于2007年成立并着手开发 HTML 5。目前,开发工作仍在进行中,并将于2012年向 W3C 提交初步意见,不过现在已经有不少浏览器部分支持 HTML 5。本文介绍 HTML 5 的5大令人激动的新功能。
1. 一些帮助我们描述内容的新标签
Web 内容的多样性让 HTML4 力不从心,在描述一个网页时,HTML4 如下表现;HTML 5 将如下表 现,这样,浏览器就知道一个网页的各个部分各代表什么,比如 nav> 部分是导航,而 article> 部分是主要内容 。除了更漂亮的 代码与语义标签,这种改变还带来更多好处,比如,搜索引擎可以更准确地知道一个网页的哪部分内容更重要。关于 HTML 5 新标签,IBM有详细的论述。
2. 改进的 Web 表单处理
HTML 5 推出 Web Forms 2.0,为开发提供许多新选项和新功能,以更简单更有效地处理表单的输入与发布。Web Form 2.0 最令人兴奋的功能是输入验证。目前,我们需要通过 JavaScript 或服务器端的逻辑,实现同样的功能。
比如有下面这样一个表单;在 HTML4 我们需要这样写代码,然后使用 JavaScript 或服务器端的脚本进行验证;而HTML5中的 required 与 email 属性可以直接实现验证,如下。
3. 为 Web 开发提供 API
HTML 5 将提供多个 API,如音频和视频标签可以让开发者不借助第三方工具直接播放 Web 视频和音频;
Opera 在者方面有不少研究并有视频播放 demo 推出
4.
Sun发布VirtualBox 2.1 zz
标签: virtualbox2.1
tor+privoxy代理限制访问配置
SocksPolicy accept 192.168.1.100 #允许192.168.1.100访问Tor
SocksPolicy accept 127.0.0.1 #允许127.0.0.1访问Tor,这是给Privoxy开辟的通道,如果
#不添加这一行,Privoxy就不能访问Tor了。
SocksPolicy reject * #限制所有IP访问Tor。
从上面的设置可以看出,Tor的访问控制是白名单优先于黑名单,即只要出现在白名单中的地址无论是否出现在黑名单中,它都能访问Tor。 所以上面的配置可以理解为,限制除了192.168.1.100和127.0.0.1可以访问Tor外,其他一律排除。
2. /etc/privoxy/config
找到如下的两行
# deny-access 192.168.45.73 www.dirty-stuff.example.com
这是对访问Privoxy的IP做限制的地方,默认是没有任何的记录,即代表无任何限制。但是当你添加任何一条Permit-access记录后, 系统即认为你只允许此条记录中对应的IP或域名才能访问
Privoxy,其他任何地址都不能访问。在Privoxy的规则中,和Tor的规则正好相反,是 黑名单的优先级高于白名单的优先级,即出现在黑名单中的地址无论是否出现在白名单中,它都不能访问Privoxy。
我们就可以按照自己的要求添加记录了,可添加多条记录。如:
permit-access 192.168.1.101
即代表只有192.168.1.100、192.168.1.101这两个IP地址可以访问本机的Privoxy,其他任何地址都不能访问。
标签: tor privoxy access control
about sockscap
标签: sockscap
ubuntu8.10+tor实现匿名访问
Privoxy是一款带过滤功能的代理服务器,针对HTTP、HTTPS协议,经常跟Tor、Squid组合使用。通过Privoxy的超级过滤功能,用户从而可以保护隐私、对网页内容进行过滤、管理cookies,以及拦阻各种广告等。
工作原理就是:
互联网接入——>tor代理,提供socks代理连接——>privoxy代理转换,端口代理转换为超文本代理——>browser:ie、opera、firefox
1. 安装必要程序
#aptitude install tor
#aptitude install privoxy
该过程同时会安装其他依赖程序。
2. 配置/etc/privoxy/config
添加
forward-socks4a / localhost:9050 .
小点.不要漏了,9050是tor的监听端口,这样才能把所有http请求都转发到tor。
注释掉如下两句
logfile logfile
jarfile jarfile
加快速度,关闭掉Privoxy的log功能
设置监听端口
listen-address 127.0.0.1:8118
这个是http代理。
3. 重启privoxy服务
#/etc/init.d/privoxy restart
4. firefox安装torbutton,实现可控开启关闭。也可以安装foxyproxy实现控制tor的开闭。
5. 使用 http://torcheck.xenobite.eu/测试tor设置是否成功。
6. 如果tor代理不仅仅服务本机,要为一个局域网提供代理服务,需要修改tor配置文件/etc/tor/torrc
找到
SocksListenAddress 127.0.0.1 # accept connections only from localhost
一行,在其下添加一行
SocksListenAddress 192.168.1.100:9100 # accept connections from local network
这里192.168.1.100是tor本机ip地址,9100是监听端口,注意,不得与其他端口冲突。这样,局域网内基于Socks方式的代理访问已经就添加好了。重启服务。
socks代理:
127.0.0.1:9050 本机socks代理
192.168.1.100:9100 局域网内其他机器socks代理
7. 如果同时要通过tor+privoxy在一个局域网内提供http代理服务,则
将
listen-address 127.0.0.1:8118
修改为
listen-address 192.168.1.100:8118
这里192.168.1.100是privoxy本机地址。重启服务。
这样,http代理:
192.168.1.100:8118 本机和局域网。
这样的话,本地和局域网要同时使用该代理的话,本地也要在浏览器里设置proxy,局域网内其他主机设置同样的proxy代理,本地firefox浏览器的foxyproxy不再起作用。
标签: ubuntu tor
2008年12月18日星期四
Larry Wall谈Perl、文化和社区 zz
标签: perl
openSUSE 11.1即将发布 zz
标签: opensuse 11.1
Linux Mint 6 Felicia 正式版发布 zz
JavaScript是否为创造游戏准备好了 zz
标签: javascript game
Facebook如何适应1.4亿用户 zz
标签: facebook
获得台湾ipv4地址段
获得twnic分配的ip地址
页面
http://rms.twnic.net.tw/twnic/User/Member/Search/main7.jsp?Order=ORG.ID
提供了twnic分配的ip地址情况,
for i in `wget -qO- "http://rms.twnic.net.tw/twnic/User/Member/Search/main7.jsp?Order=ORG.ID" | awk -F'[-<]' '/^[1-9].*255/ {print $1":"$2}' | tr -d ' ' | sort -nu`
do N=$N`netmask $i`
done
netmask $N
awk命令解析:-F: 后面跟分隔符
/^[1-9].*255/:正则表达式匹配,获取ip地址段
{print $1":"$2}: 用":"作分隔符,打印ip地址范围条目
如果要以标准的netmask来呈现结果,即型如255.255.255.0格式的掩码
netmask -s $N
用這個 script 可以取得台灣 IP 的網段, 需先安裝 netmask (可以計算網段資料及把網段做 summary)
58.99.64.0/18
59.104.0.0/15
59.112.0.0/12
60.198.0.0/15
60.244.128.0/17
60.245.64.0/19
60.248.0.0/14
61.20.0.0/16
61.30.0.0/15
61.56.64.0/20
61.57.240.0/20
61.58.48.0/20
61.59.0.0/16
61.60.240.0/20
61.61.240.0/20
61.62.0.0/16
61.63.32.0/19
61.63.64.0/19
61.64.32.0/20
61.65.192.0/18
61.66.0.0/16
61.67.112.0/20
61.216.0.0/13
61.224.0.0/13
61.247.160.0/20
113.21.160.0/19
113.61.128.0/17
114.24.0.0/14
114.30.32.0/20
114.32.0.0/12
114.136.0.0/15
114.140.0.0/16
114.198.160.0/20
115.30.64.0/18
115.42.112.0/21
115.43.0.0/16
115.80.0.0/14
115.85.144.0/20
115.165.192.0/18
116.50.32.0/20
116.59.0.0/16
116.89.128.0/20
116.118.128.0/18
116.212.80.0/20
117.19.0.0/16
117.56.0.0/16
117.103.96.0/20
118.160.0.0/13
118.168.0.0/14
118.231.0.0/16
118.232.0.0/15
119.14.0.0/16
119.15.192.0/18
119.30.16.0/20
119.31.176.0/20
119.75.240.0/20
119.77.128.0/17
120.96.0.0/11
121.50.176.0/20
122.99.0.0/18
122.100.64.0/18
122.116.0.0/15
122.118.0.0/16
122.120.0.0/13
122.128.80.0/21
122.146.0.0/15
122.200.152.0/21
122.201.128.0/17
122.252.160.0/20
122.254.0.0/18
122.255.80.0/20
123.0.32.0/19
123.50.32.0/19
123.99.32.0/19
123.110.0.0/16
123.192.0.0/14
123.204.0.0/15
123.240.0.0/15
123.252.0.0/17
124.6.0.0/19
124.8.0.0/14
124.12.0.0/16
124.29.128.0/19
124.108.128.0/18
124.109.112.0/20
124.155.160.0/19
124.199.64.0/19
124.218.0.0/16
124.219.0.0/17
125.224.0.0/13
125.232.0.0/15
139.175.0.0/16
140.109.0.0/16
140.110.0.0/15
140.112.0.0/12
140.128.0.0/13
140.136.0.0/15
140.138.0.0/16
163.13.0.0/16
163.14.0.0/15
163.16.0.0/12
163.32.0.0/16
168.95.0.0/16
192.72.3.0/24
192.83.194.0/24
192.192.0.0/16
202.3.129.0/24
202.5.4.0/23
202.6.104.0/23
202.8.14.0/23
202.39.128.0/17
202.144.208.0/20
202.148.208.0/20
202.151.48.0/20
202.160.64.0/19
202.168.192.0/20
202.169.160.0/20
202.174.16.0/20
202.178.128.0/17
203.64.0.0/16
203.65.160.0/19
203.66.0.0/15
203.68.0.0/14
203.72.0.0/14
203.78.176.0/20
203.79.128.0/17
203.84.144.0/21
203.111.208.0/20
203.118.224.0/20
203.119.3.0/24
203.121.240.0/20
203.145.192.0/20
203.160.144.0/20
203.190.16.0/21
203.201.32.0/20
203.207.32.0/20
210.58.0.0/16
210.59.128.0/17
210.60.0.0/15
210.62.192.0/19
210.63.224.0/19
210.64.0.0/15
210.66.0.0/16
210.67.96.0/20
210.68.0.0/15
210.70.0.0/16
210.71.128.0/17
210.85.0.0/16
210.200.0.0/15
210.202.32.0/20
210.203.0.0/17
210.240.0.0/16
210.241.160.0/19
210.242.0.0/17
210.243.128.0/17
210.244.192.0/19
211.20.0.0/14
211.72.128.0/17
211.73.32.0/19
211.74.0.0/17
211.75.128.0/17
211.76.192.0/19
211.77.0.0/18
211.78.80.0/20
211.79.192.0/20
218.32.0.0/16
218.34.0.0/15
218.160.0.0/12
218.184.0.0/16
218.187.0.0/16
218.210.0.0/15
219.80.0.0/15
219.84.0.0/14
219.91.0.0/17
220.128.0.0/18
220.129.0.0/16
220.130.0.0/15
220.132.0.0/14
220.136.0.0/13
220.157.112.0/20
220.228.0.0/15
221.120.0.0/18
221.120.64.0/19
221.169.0.0/16
222.156.0.0/15
222.250.0.0/16
222.251.0.0/17
获得apnic分配的ip地址
http://ftp.apnic.net/stats/apnic/delegated-apnic-latest
要取得台灣的 IP, 要用此份資料比較全
netmask `wget -qO- http://ftp.apnic.net/stats/apnic/delegated-apnic-latest | awk -F'|' '/TW\|ipv4/ {print $4":+"($5-1)}'`
如果要以标准的netmask来呈现结果,即型如255.255.255.0格式的掩码
netmask -s `wget -qO- http://ftp.apnic.net/stats/apnic/delegated-apnic-latest | awk -F'|' '/TW\|ipv4/ {print $4":+"($5-1)}'`
用這行可以取得台灣所有的 IP 網段
58.99.0.0/17
58.114.0.0/15
59.104.0.0/15
59.112.0.0/12
60.198.0.0/15
60.244.0.0/16
60.245.0.0/17
60.248.0.0/14
61.20.0.0/16
61.30.0.0/15
61.56.0.0/13
61.64.0.0/14
61.70.0.0/15
61.216.0.0/13
61.224.0.0/13
61.247.160.0/20
113.21.80.0/20
113.21.160.0/19
113.61.128.0/17
113.196.0.0/16
114.24.0.0/14
114.30.32.0/20
114.32.0.0/12
114.136.0.0/15
114.140.0.0/16
114.198.160.0/19
115.30.64.0/18
115.42.112.0/21
115.43.0.0/16
115.80.0.0/14
115.85.144.0/20
115.165.192.0/18
116.50.32.0/20
116.59.0.0/16
116.89.128.0/20
116.118.128.0/18
116.212.80.0/20
116.214.0.0/20
117.19.0.0/16
117.56.0.0/16
117.103.96.0/20
118.160.0.0/13
118.168.0.0/14
118.231.0.0/16
118.232.0.0/15
119.14.0.0/16
119.15.192.0/18
119.30.16.0/20
119.31.176.0/20
119.75.240.0/20
119.77.128.0/17
119.160.240.0/20
120.96.0.0/11
121.50.144.0/21
121.50.176.0/20
121.254.64.0/18
122.99.0.0/18
122.100.64.0/18
122.116.0.0/15
122.118.0.0/16
122.120.0.0/13
122.128.80.0/21
122.144.32.0/19
122.146.0.0/15
122.200.152.0/21
122.201.128.0/17
122.252.160.0/20
122.254.0.0/18
122.255.80.0/20
123.0.32.0/19
123.0.192.0/18
123.50.32.0/19
123.51.128.0/17
123.99.0.0/18
123.110.0.0/16
123.192.0.0/14
123.204.0.0/15
123.240.0.0/15
123.252.0.0/17
123.255.224.0/21
124.6.0.0/19
124.8.0.0/14
124.12.0.0/16
124.29.128.0/18
124.108.128.0/18
124.109.112.0/20
124.155.128.0/18
124.199.64.0/19
124.199.96.0/20
124.218.0.0/16
124.219.0.0/17
125.62.224.0/20
125.224.0.0/13
125.232.0.0/15
134.208.0.0/16
139.175.0.0/16
139.223.0.0/16
140.92.0.0/16
140.96.0.0/16
140.109.0.0/16
140.110.0.0/15
140.112.0.0/12
140.128.0.0/13
140.136.0.0/15
140.138.0.0/16
163.13.0.0/16
163.14.0.0/15
163.16.0.0/12
163.32.0.0/16
168.95.0.0/16
169.211.3.0/24
192.72.3.0/24
192.72.4.0/22
192.72.8.0/21
192.72.16.0/20
192.72.32.0/19
192.72.64.0/18
192.72.128.0/22
192.72.133.0/24
192.72.134.0/23
192.72.136.0/21
192.72.144.0/20
192.72.160.0/19
192.72.192.0/19
192.72.224.0/20
192.72.240.0/21
192.72.248.0/22
192.72.252.0/24
192.83.166.0/23
192.83.168.0/24
192.83.170.0/23
192.83.172.0/22
192.83.176.0/20
192.83.192.0/22
192.83.196.0/24
192.188.171.0/24
192.192.0.0/16
202.2.52.0/22
202.3.129.0/24
202.3.160.0/19
202.5.4.0/23
202.5.8.0/21
202.5.224.0/19
202.6.104.0/23
202.8.14.0/23
202.8.160.0/19
202.14.8.0/21
202.39.0.0/16
202.55.224.0/19
202.80.104.0/21
202.126.64.0/20
202.132.0.0/16
202.133.224.0/19
202.144.208.0/20
202.145.32.0/19
202.145.64.0/18
202.145.128.0/17
202.148.208.0/20
202.151.48.0/20
202.153.160.0/19
202.153.192.0/20
202.154.192.0/19
202.159.128.0/18
202.160.64.0/19
202.165.120.0/21
202.165.128.0/19
202.166.224.0/19
202.168.192.0/20
202.169.160.0/20
202.173.32.0/19
202.174.4.0/24
202.174.16.0/20
202.178.128.0/17
203.64.0.0/13
203.72.0.0/14
203.77.0.0/17
203.78.0.0/22
203.78.176.0/20
203.79.128.0/17
203.84.130.0/23
203.84.144.0/21
203.91.0.0/19
203.95.128.0/17
203.105.224.0/19
203.107.0.0/18
203.111.208.0/20
203.118.224.0/20
203.119.3.0/24
203.121.224.0/19
203.133.0.0/17
203.135.64.0/19
203.145.192.0/19
203.148.92.0/24
203.160.144.0/20
203.160.224.0/19
203.163.192.0/19
203.187.0.0/17
203.188.192.0/20
203.190.4.0/22
203.190.16.0/21
203.201.32.0/20
203.203.0.0/16
203.204.0.0/16
203.207.0.0/20
203.207.32.0/20
203.211.0.0/19
203.217.96.0/19
203.222.0.0/19
210.17.0.0/17
210.58.0.0/15
210.60.0.0/14
210.64.0.0/13
210.80.64.0/19
210.85.0.0/16
210.192.0.0/18
210.192.128.0/17
210.200.0.0/15
210.202.0.0/16
210.203.0.0/17
210.208.0.0/16
210.209.0.0/18
210.209.128.0/17
210.240.0.0/14
210.244.0.0/16
211.20.0.0/14
211.72.0.0/13
218.32.0.0/16
218.34.0.0/15
218.160.0.0/12
218.184.0.0/16
218.187.0.0/16
218.210.0.0/15
219.68.0.0/14
219.80.0.0/15
219.84.0.0/14
219.90.0.0/18
219.91.0.0/17
220.128.0.0/12
220.157.112.0/20
220.228.0.0/15
220.247.128.0/19
221.120.0.0/18
221.120.64.0/19
221.169.0.0/16
222.156.0.0/15
222.250.0.0/16
222.251.0.0/17
2008年12月17日星期三
华盛顿老大哥盯着美国人民 zz
标签: att
如果程序语言是宗教 zz
2008年12月16日星期二
linux 64bit application
上个月我们有了64位Flash,接着有了64位的Wine,现在Sun又提供了64位的Java插件,兼容64位的Web浏览器。对大多数人来说,没有什么能阻止你运行64位的Linux。64位Java插件是Java SE 6 Update 12新特性的一部分。
标签: 64 linux
2008年12月11日星期四
苹果应该开源iPhone zz
2008年12月9日星期二
声音CAPTCHA验证技术容易被破解 zz
标签: voice captcha
2008年12月8日星期一
爱因斯坦是最后一个伟大天才? zz
标签: Einstein
网络中立反对者称Google为“带宽吞噬者” zz
标签: google
fedora10 安装vmware-tools
2. yum install kernel-devel
3. 安装vmware-tools
4. 运行脚本vmware-config-tools.pl
社区版的桌面linux操作系统越来越趋同。
2008年12月7日星期日
vista操作日志
以管理员身份运行powercfg -h off,关闭休眠
直接在c盘删除hiberfil.sys
2. vista用户临时文件temp和Temporary Internet Files位置
C:\Users\
C:\Users\
C:\Users\
3. 清除系统还原
c盘属性->磁盘清理->其他选项->系统还原和卷影复制->清理
标签: Vista
Sun发布JavaFX 1.0 zz
标签: sun java fx1.0
Ext4文件系统的真实性能 zz
标签: ext4 btrfs
新语丝读者网关闭 zz
标签: xys
IEEE称多核设计不利于超级计算机 zz
标签: ieee
IPv6使用率两年内增长300% zz
标签: ipv6
2008年12月5日星期五
ubuntu8.04实现pptp vpn server
pptp vpn server:
操作系统: ubuntu 8.04
网络: 单网卡、局域网ip为192.168.1.159,可路由上网。
client:
操作系统:windows xp
网络:局域网ip为192.168.1.202,本身也可路由上网
服务器安装配置:
1. 安装pptpd、pptp-linux
2. 配置pptpd
#gedit /etc/pptpd.conf
设置
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245
localip是vpn连通之后服务器的ip地址,而remoteip是给客户端分配的ip地址池。
3. 配置pptpd-options,该文件主要是设置pptp vpn服务器所要求的加密算法、认证方法等。
服务器名name可以自己设置,但是要与chap-secrets中认证信息中的服务器名保持一致。
设置dns
ms-dns 202.96.128.86
#logging一节中的debug打开,用来提供debug信息
debug
4. 配置/etc/ppp/chap-secrets添加vpn用户信息。
"linuxvpn" pptpd "linuxvpn" *
"haha" pptpd "heihei" *
第二列的服务器名信息要与pptpd-options中的保持一致。
*表示任意地址都可以访问。
5. /etc/init.d/pptpd restart
从windows客户机就可以访问该vpn服务器。
但是访问会发现之可以访问服务器上的资源,不能通过它访问互联网。
6. #gedit /etc/sysctl.conf
net.ipv4.ip_forward = 1
sudo sysctl -p 使sysctl.conf的配置生效
这一步是在vpn服务器上开启路由转发
7. 如果经过第六步客户机还不能连接互联网,使用iptables建立NAT
sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE
-t 指定要匹配的表是nat表
-A 指定要匹配的是出去的数据包
-s 指定这些数据包的源是192.168.0网段
-o 数据包发送出去要走的设备端口
-j jump
并保存nat设置
iptables-save > /etc/iptables-rules
或是加入到开机自动运行脚本里
注:
客户端连接vpn服务器,如果分配外网ip地址,客户端可直接上网;如果分配内网ip地址,服务器作nat,客户机也可上网。
Firefox值得安装的30个扩展 zz
- Fast Dial是一个伟大的Firefox扩展,它有一个功能能够模拟Opera快速拨号功能。每当打开新标签页,一排书签网页缩略图显示在你面前,点击他们就能直接载入网址。方便又快捷。
- ImageShack是一个非常方便转载图片工具,在网上你会看到很多你喜欢的图片,如何收集它们呢?使用ImageShack只需要右键单击,选择“Transload Image to Imageshack”,那些图片将自动转载到你的相册里。
- StumbleUpon Toolbar让管理书签变得更加简单,安装后当你看到你喜欢的网页,点击“I Like It”,书签将自动添加到你的档案里。它也是一个提交文章的好工具。
- ClipMark允许你直接截取文字与视频,它们都将自动保存到clipmarks.com,并且很容易同步到FriendFeed,Twitter, Facebook,你也可以把截取的材料发到你的blog。
- Blogger Bar,这个Firefox工具条帮助你搜索Blogger上的任何信息,附带Blog This功能可以帮助你将任何信息发到你的Blogspot。
- TwitterBar允许你通过Firefox地址栏来发送信息到Twitter。这比直接去Twitter官方网站发节省大量时间。扩展默认在地址栏旁腺是一个灰色小图标,移到它上面你还可以得知Twitter的字数限制。
- Wordpress Sidebar这个扩展为你登录Wordpress提供方便。
- Adsense Notifier博客和站长们再也不用专门为查询Adsense收益不断登录帐号查询了,使用这个扩展让你在Firefox状态栏直接查看你的Adsense收益。不幸的是这个扩展不支持Firefox 3.0版,不过我们希望它尽快支持。
- JustBlogIt支持右键发送文字到Blog,它支持大量的blog。(暂不支持最新版Firefox3)
- Universal Uploader允许你发送文件到在线存储网站,支持box.net flickr picasa youtube等,并且不断增加中。
- Create short URLs如果你讨厌太长的URL,只要浏览到该网页,右键点击wapURL,你将得到一个非常短的URL。(暂不支持最新版Firefox3)
- FastDic这是一个很有用的扩展,当你按住Ctrl,alt或者Shift后点击任意单词,扩展将自动通过你设置的辞典为你搜索词义。支持最新版Firefox3)
- FireShot是一个强大的截图扩展,不仅可以截取整个网页,还可以截取部分网页,并加以修改,或者上传到免费空间。可以保存为jpg png gif bmp,或者保存到剪切板。
- DownThemAll我们都很熟悉了,是一个强大的高级下载管理文件的扩展,多线程下载,一般下载工具的功能它都有(当然迅雷的P2SP技术是没有的)
- Digg让你更方便的浏览Digg.com的信息,观察朋友近期的动态等,还可以查看当前网页是否提交到digg,如果没有可以选择提交。
- FoxyTunes是专门为那些喜欢音乐的网友准备的,它可以控制几乎所有的播放器。搜索歌词封面视频介绍以及更多。
- GreaseMonkey几乎成了一个必装的扩展。http://userscripts.org 是它的脚本集散地,我也在上面发表了一些东西。如果你想学写脚本的话,访问这个网站。
- Webmail Notifier是一个通知你是否有新邮件的扩展,你不需要一一登录各个邮箱,只要把帐号填进去,其他事情就是等它把未读邮件数目显示在状态栏。它支持Gmail LiveMail YahooMail,daum,naver,empas,nate(很可惜不支持AOLMail)。
- Video DownloadHelper是一个,帮助你下载在线视频的扩展,不仅可以让你下载还允许你把视频转为其它格式。
- Meebo一个完美的聊天扩展,支持AIM Yahoo Gtalk MSN ICQ Jabber。美国网友认为这就足够了。(当然永远不要指望QQ能出现在支持的列表里)
- Del.icio.us Toolbar美味书签官方扩展,提供了所有美味书签的功能。任何一个美味书签用户相信都在使用这个扩展。它提供搜索和浏览书签,整理书签,分享书签和导入本地书签功能。
- Facebook Toolbar又是一个专为某一网站开发的扩展,功能自然又红又专,皮肤过滤登录功能一个也不少。
- DictionarySearch 另一个字典扩展,选择你想要搜索的东西,右键搜索即可。有点象Firefox的搜索栏。
- FireGestures使你你可能通过鼠标手势来操作Firefox。提供五种类型的鼠标手势,分别为右键鼠标手势,右键滚轮手势,双键鼠标手势,Ctrl/Shift鼠标手势。Tab Wheel鼠标手势(切换标签页)
- Google Toolbar不必细说,它是你最熟悉的扩展,提供大量谷歌的服务。
- Next Image在你浏览连号套图的时候,自动增加URL的图片号码,使得你可以连续浏览图片。这在你在使用笔记本电脑没有鼠标的时候尤其有用。
- Adblock plus身处中国这样一个广告大国,没有ADP是很郁闷的。这个扩展会让你对正则表达式充满学习的兴趣:D。
- BugMeNot一个出色的扩展,当你不想要注册帐号阅读类似纽约时报这样的网站的时候,BugMeNot会自动提供帐号给你。
- HideBadFirefox的老板键,当你在工作的时候浏览不该浏览的网页,恰巧老板过来了,怎么办?按Alt+X,所有的标签立即消失,只留下一个空白页,甚至连表单和历史记录都自动清除了,老板你奈何我:D。
- FireFtp它是我最喜欢的扩展之一,自由安全跨平台的FTP客户端。简单有效,支持所有FTP应该有的功能,你还能要求什么呢?
标签: firefox add-ons
ubuntu8.04连接pptp vpn
环境:ubuntu8.04
利用network-manager设置的gui方法
安装软件:
network-manager-pptp network manager pptp插件
network-manager-vpnc network manager vpnc插件,适用于cisco vpn,这里可能不需要
pptp-linux pptp的linux客户端
装完后,在nm-applet (就是右上角panel中的网络连接图标。如果没有这个图标,可命令行下nm-applet)里多了个“vpn连接”的选项 .
设置:
vpn连接->配置vpn->添加->PPTP-tunnel 默认
Connection: connection name
网关:x.x.x.x(vpn server的ip或者域名都可以)
Authentication:把Refuse EAP选上 (连接windows vpn server的话Refuse CHAP一定要选)
Compression&Encryption:默认,不用改
PPP Options:默认,不用改
设置好之后,应用。就可以连接。
如果不选择gui配置,而用手动
1. 安装pptp-linux
2. 在/etc/ppp/chap-secrets 在最後增加一行如下:
"ubuntu" pptp "ubuntuvpn"
3. sudo vim /etc/ppp/peers/ubuntu 增加如下内容:
pty "pptp ubuntu.org.cn --nolaunchpppd"
name ubuntu
remotename pptp
require-mppe-128
file /etc/ppp/options.pptp
4. sudo pon ubuntu连接
5. sudo poff ubuntu退出连接,plog连接日志。
路由问题
如果该vpn提供代理上网,则要vpn要成为默认路由
用route -n 或 ip route查看路由,看ppp0是否为默认路由
如果ppp0不是默认路由
sudo ip route del default
sudo ip route add default dev ppp0 //将ppp0添加为默认路由
中国网吧被迫安装红旗Linux zz
标签: redflag
OpenSolaris 2008.11发布 zz
标签: open solaris 11
Windows Vista SP2预计将在今天发布 zz
Python 3.0发布 zz
标签: python3.0
澳大利亚网络过滤技术规格发布 zz
标签: australia
.tel顶级域名正式使用 zz
标签: .tel
2008年12月4日星期四
基于pptp的vpn连接过程
本机环境:
ip地址:192.168.1.202
gateway:192.168.1.1
vpn服务器:83.233.168.2,瑞典relakks提供的免费vpn接入。
拨入后分配ip地址是83.233.168.234
192.168.1.202——>83.233.168.2
封装:ethernet|IP|TCP|PPTP
PPTP Start-control-Connecttion-Request
83.233.168.2——>192.168.1.202
封装:ethernet|IP|TCP|PPTP
PPTP Start-control-Connecttion-Reply
192.168.1.202——>83.233.168.2
封装:ethernet|IP|TCP|PPTP
PPTP outgoing-call-request
83.233.168.2——>192.168.1.202
封装:ethernet|IP|TCP|PPTP
PPTP outgoing-call-Reply
192.168.1.202——>83.233.168.2
封装:ethernet|IP|TCP|PPTP
PPTP set-link-info
192.168.1.202——>83.233.168.2
封装:ethernet|IP|GRE|PPP
PPP LCP Configuration Request
83.233.168.2——>192.168.1.202
封装:ethernet|IP|GRE|PPP
PPP LCP Configuration Reject
192.168.1.202——>83.233.168.2
封装:ethernet|IP|GRE|PPP
PPP LCP Configuration Request
83.233.168.2——>192.168.1.202
封装:ethernet|IP|GRE|PPP
PPP LCP Configuration ACK
83.233.168.2——>192.168.1.202
封装:ethernet|IP|GRE|PPP
PPP LCP Configuration Request
192.168.1.202——>83.233.168.2
封装:ethernet|IP|GRE|PPP
PPP LCP Configuration ACK
192.168.1.202——>83.233.168.2
封装:ethernet|IP|TCP|PPTP
PPTP set-link-info
192.168.1.202——>83.233.168.2(两个)
封装:ethernet|IP|GRE|PPP
PPP LCP Identification
83.233.168.2——>192.168.1.202
封装:ethernet|IP|GRE|PPP
PPP LCP Echo Request
192.168.1.202——>83.233.168.2
封装:ethernet|IP|GRE|PPP
PPP LCP Echo Reply
83.233.168.2——>192.168.1.202
封装:ethernet|IP|GRE|PPP
PPP CHAP Challenge
192.168.1.202——>83.233.168.2
封装:ethernet|IP|GRE|PPP
PPP CHAP Response
83.233.168.2——>192.168.1.202
封装:ethernet|IP|GRE
GRE Encapsulated PPP
83.233.168.2——>192.168.1.202
封装:ethernet|IP|GRE|PPP
PPP CHAP Success
开始协商压缩算法
83.233.168.2——>192.168.1.202
封装: ethernet|IP|GRE|PPP
PPP CCP Configuration Request(CCP: Compression Control Protocol)
192.168.1.202——>83.233.168.2
封装:ethernet|IP|GRE|PPP
PPP CCP Configuration Request
192.168.1.202——>83.233.168.2
封装:ethernet|IP|GRE|PPP
PPP IPCP Configuration Request
192.168.1.202——>83.233.168.2
封装:ethernet|IP|GRE|PPP
PPP CCP Configuration ACK
83.233.168.2——>192.168.1.202
封装: ethernet|IP|GRE|PPP
PPP CCP Configuration Nak
83.233.168.2——>192.168.1.202
封装:ethernet|IP|GRE|PPP
PPP IPCP Termination Ack
83.233.168.2——>192.168.1.202
封装:ethernet|IP|GRE
GRE Encapsulated PPP
192.168.1.202——>83.233.168.2
封装:ethernet|IP|GRE|PPP
PPP CCP Configuration Request
83.233.168.2——>192.168.1.202
封装: ethernet|IP|GRE|PPP
PPP CCP Configuration Ack
83.233.168.2——>192.168.1.202
封装:ethernet|IP|GRE|PPP
PPP IPCP Configuration Request
192.168.1.202——>83.233.168.2
封装:ethernet|IP|GRE|PPP
PPP IPCP Termination Ack
83.233.168.2——>192.168.1.202
封装:ethernet|IP|GRE
GRE Encapsulated PPP
192.168.1.202——>83.233.168.2
封装:ethernet|IP|GRE|PPP
PPP IPCP Configuration Request
83.233.168.2——>192.168.1.202
封装:ethernet|IP|GRE|PPP
PPP IPCP Configuration Reject
192.168.1.202——>83.233.168.2
封装:ethernet|IP|GRE|PPP
PPP IPCP Configuration Request
83.233.168.2——>192.168.1.202
封装:ethernet|IP|GRE|PPP
PPP IPCP Configuration Nak
192.168.1.202——>83.233.168.2
封装:ethernet|IP|GRE|PPP
PPP IPCP Configuration Request
83.233.168.2——>192.168.1.202
封装:ethernet|IP|GRE|PPP
PPP IPCP Configuration Ack
83.233.168.2——>192.168.1.202
封装:ethernet|IP|GRE|PPP |RAW IP PACKET(这就是最终vpn传输数据的封装格式
)
PPP Comp Compressed data
服务器会定期发一个GRE包到客户端。
从客户机网卡上看,永远都是客户机与服务器之间的通信,而在ppp接口上sniffer得到的是不经过加密的,但看到的源ip地址是分配给客户机的vpn网内ip地址192.168.1.202。
标签: pptp vpn
2008年12月3日星期三
Fixing Linux: What's Broken And What To Do About It zz
Despite the fact that it's been around since 1991, Linux remains a work in progress. It's not perfect, nor does anyone pretend it is. The places where it needs the most immediate improvement are also a matter of debate: what's crucially important to some is only marginally important to others.
Still, there's no question that there are key areas where Linux is lacking -- not just missing individual features, but things that are actively dysfunctional and which need immediate attention. I'm going to run down several major areas where Linux, as an operating system and as a platform, needs work. linux缺乏个性。
The software that goes into a Linux distribution is dealt with in chunks called "packages" -- whole applications, support libraries for apps, programmer's tools, and so on. Firefox and OpenOffice.org, for instance, are present in most every Linux distribution's software repository as package sets.
Package Management
The way packages are managed within any individual distribution is entirely up to the maintainers of that distribution. Red Hat (NYSE: RHT) uses its own RPM system, the Debian distributions have their own .DEB format; and so on. Within the context of any one distribution, this isn't a problem: if you're using only Red Hat or Debian, odds are you obtain the software you need from that distribution's repository and are done with it.
This is one of the many fragmentation problems that makes it difficult for commercial software vendors to offer their products for Linux. No one package format will do the trick across distributions -- not without hassle, anyway.
To that end, potential program vendors have three choices: 1) devote time and effort -- and money -- to ensuring that their program installs, runs, and stays cohesive on a variety of distributions (maybe just Red Hat, Ubuntu, and SUSE to keep things simple); 2) make their programs available in a given distro's repositories; or 3) provide source-code packages so that the user can compile the code on any target platform. 解决包管理有三种方法:1)投入时间、精力和金钱,保证程序可以在不同发行版本安装、运行和驻留。2)使程序出现在给定发行版本的repository中。3)提供原代码级程序,使用户可以自己编译。
Option #3 is pretty much out of the question for any proprietary software vendor. #1 multiplies the amount of work involved to get any given program out the door -- not to a degree that makes it wholly unfeasible, but it does add more work. That leaves #2, which has the advantage of making applications immediately available to the user of any given distribution, and cuts down on the amount of work needed by an end user to get something installed.第三种选择对于专利软件商是不可能的。选择一使一款软件的出笼的工作量几倍化,虽然不至于完全不可行,但是增加很多工作。选择2使某一发行版本的用户可以立刻得到该软件,减少了终端用户为了使用一款软件而付出的努力。
Because the demand for commercial apps on Linux is relatively slender right now, the problem isn't as pronounced: most people just get their offerings from their local repository. In the long run, though, if commercial apps take root on Linux, it will become that much bigger an obstacle to making Linux a platform for same, especially where downloading apps freely from the Web is concerned.因为商业软件在linux上的需求还比较少,这个问题还不是太突出。大多数用户都从本地repository取得软件。从长远来看,如果商业应用要扎根linux,这个问题将更加突出。
One thing that might help is a kind of meta-package format: a file which, when downloaded, is run by a client native to the given distribution. The client then goes to the software repositories for the program maker and obtains all the right packages to make that program run on that particular machine. The folks at BitRock have something vaguely like this, where you can package a given open source application in such a way that it will run natively across multiple platforms, Linux included.一种解决方式是元包格式,它是一个文件,下载后被给定发行版本原生客户运行。(这一段不能很好的理解) Another major way this is being addressed is through the Linux Standards Base. In order to be LSB-compliant, a Linux distribution must either use Red Hat's RPM natively or have support for RPM. Given that the most popular distribution out there right now is Ubuntu -- a Debian-derived distribution that doesn't have much support for RPM -- there's been criticism that the LSB is "too Red Hat-centric" for this to work.
Configuration Files Any given Linux distribution is an agglomeration of components from thousands of different programmers, projects, and architectural initiatives. To that end, there's little or no centralized configuration: everything in the system is controlled through a welter of files, and there's no guarantee that the syntax of any one configuration file will apply to any other.各种配置文件的语法不同。 The problem is not as pronounced if you limit your exposure to only a few files and follow their internal formatting, but that's not a sustainable solution. A lot of this is due to retention of compatibility with legacy UNIX applications. One of the worst offenders has been sendmail, whose configuration files traditionally reached new lows of complexity and obscurity.配置文件语法多样性主要是因为unix的遗留。最典型的就是sendmail,他的配置文件复杂又晦涩。 There needs to be a consistent -- and whenever possible, self-documenting -- configuration system throughout, from the kernel to userland tools and user applications. Aside from making it easier for the user (and the programmer) to deal with, it might also simplify central administration issues.需要一个连续的、如果需要自己文档话的配置系统,从内核到用户态的工具及用户程序。同时也减轻了系统管理员的工作量。 Dictating something like that by fiat is probably impossible; a better approach would be to popularize the use of a toolset that makes it easy for applications to have a unified configuration approach. The GNOME project's Gconf is a good example of this sort of thing; even if the current iteration is intended for user preferences rather than system-wide configuration options, it's still a good real-world example for how to create such a thing.Gconf这个项目做了这方面的努力,但主要是在用户preference上。
Kernel Application Binary Interfaces(ABI)
If there is one complaint that comes up more often than any other about developing for Linux, it is the way the kernel application binary interfaces are a moving target.
The Linux kernel has been designed from the perspective that what's inside the kernel can change, but what's available to user applications through the ABIs cannot and must not break. The problem is not only philosophical, but also practical: the sheer breadth of kernel interfaces means it's entirely possible for something to break (or "regress") in a way that might not even show up in a fairly rigorous code review.
To that end, when something does break, it creates two problems: it means the exact source of the problem is sometimes a matter of argument (i.e., is this a kernel issue or a user-application issue?), and time and effort is lost in the process of fixing it.
There are a few ways to work around the problem in the short term. One of the most immediate and promising workarounds for certain projects is FUSE -- short for "Filesystem in Userspace" -- which allows file systems, normally the domain of the kernel, to be set up in the same space where user applications run. In the long run, though, Linux needs an ABI set that's not only stable but capable of handling long-term growth without becoming a rat's nest of potential compatibility issues.
Native File Versioning Native file versioning is another feature that can be added to Linux distributions, but does not yet exist by default. The concept is simple: an earlier iteration of a file can be produced on demand in case the current version is overwritten, damaged, or sabotaged. Windows users have this in the form of shadow copies, but no default incarnation yet exists in the standard-issue Linux file systems (e.g., ext2/3/4). It's obviously not intended as a substitute for file backups, but the ability to roll back a file to a given point in time as a default piece of functionality isn't a frivolity. It is possible to add this functionality to a Linux distribution after the fact. That said, the different projects that provide this each use a slightly different implementation: Wayback, ext3cow, copyfs, Tux3, and so on. Having a standard, "kernel-approved" methodology for versioning would provide a solid base on which to build and branch out, although a good argument can be made for providing these features as a non-kernel add-on.
I should also add that future iterations of the Linux file system (probably the forthcoming BTRFS) are intended to do all this and more -- but for now, there's no one direct solution that can serve as a starting point.
Audio Application Programming Interfaces
Look no further than Linux's implementations, plural, of audio for an example of how too many cooks can spoil the broth. The diversity of audio APIs and subsystems means that, yes, you can pick and choose one that suits your needs best -- but it also means a rat's nest of incompatibilities.
The kernel-level audio API, ALSA, is where most everything begins, but there are others -- primarily PulseAudio (used mainly to mix audio from multiple applications) and JACK (for pro-audio, low-latency settings). And then there are a slew of other audio tools for developers -- Gstreamer, PortAudio, and so on. Don Marti, at the Linux Plumber's conference in September, wrote a good summary of how conflicted and confusing the whole issue is. The quote that sums it up best: "If someone comes and says, 'I want to write an audio application. Which API should I use?' I don't have a good answer." (This fellow does, to some degree, but the fact that the whole jungle exists at all is depressing.)
In short, the audio API issue affects programmers more than end users. That said, everything that affects programmers also affects end users in the long run. PulseAudio is probably the best general-purpose solution and has enjoyed wide adoption. But in the long run, what's needed is a single kernel-up approach to audio that does not require use-case analysis on the part of an application developer.
With the kernel, there's little if any doubt about who's in charge: Linus and the kernel developers. With the Linux desktop -- maybe better to say free and open source software, or FOSS, desktop -- it's far more anarchic.
Before I go any further, let me define my terms. "Desktop" doesn't just refer to "whatever GUI conveniences make Linux/FOSS easier for non-technical users," but rather a graphical user interface that makes using and managing the system all the easier no matter what your level of technical expertise. This is not a matter of integrating the GUI completely with the system; no one is foolish enough to advocate that. Part of the problem is that kernel and desktop development in Linux took place in a highly parallelized fashion, and it was a one-way street to boot. There was no guarantee the kernel developers would implement features useful to desktop developers, but desktop devs had to hew to whatever happened in the kernel if it affected them. To that end, what's needed is a single steering committee for all GUIs that work on Linux, so that whatever GUIs are created -- be they GNOME, KDE, or not-yet-invented -- will have a consistency of implementation on the backend, and make it possible to have tight integration of features with the kernel, a la BeOS. The kernel would publish a generic series of hooks that a GUI could make use of, and the GUI would be free to represent them to the user in any number of ways. Another important thing Linux needs is clearer guidelines for how to implement default behaviors on the desktop, which requires people with UI design experience to make decisions that have lasting weight. This isn't about "dumbing down" the UI: what's often needed is not simpler controls, but better default handling of those controls so that the user does not have to make endless adjustments to achieve something comfortable.
Integration Of X11 With Apps
Most people who have used Linux for some time have probably encountered this problem: an X11 application, or the whole of X11 itself, freezes, and the only way to get things back is to kill and restart X11. The good news: it isn't hard to do that. The bad news: killing X11 means every other X11 application, problematic or not, dies along with it.
What would be useful is the option to have applications running under X killed along with it, so that if X needs to be killed and restarted, you don't wind up losing your entire user session. Failing this, it would also be useful to have a window-manager API that allows for the easy storing and resuming of a session in the event of a crash -- something that does happen on an app-by-app basis (Firefox, for instance, does this), but which would be useful to have available in a global implementation.
Commercially Hosted Backup And Restore If Linux will continue to draw regular PC users away from Windows, it'll need to have many of the same features as Windows. That includes for-pay network services that require Linux clients, such as remote backup.
A Linux user who wants to perform offsite backups generally has to resort to using a native Linux application (such as the Simple Backup Suite in Ubuntu) to back up to a remote server that isn't specifically for data protection. There's no shortage of Linux backup clients that can speak to a remote server, like the Simple Backup Suite that's available in Ubuntu, but again, integration with a commercial backup provider for regular users is what's missing.
One very likely possibility is that as things become that much less platform-centric, the idea of needing a platform-specific client to perform robust backups (not just data, but whole system states) may become as quaint as, say, only being able to access specific Web sites with specific types of Web browsers. The other, more likely possibility, is that full-state backup services dedicated to supporting Linux clients will step up.
Conclusions
Most of what's wrong with Linux isn't fatal: if it was, Linux would scarcely have achieved the degree of adoption it now enjoys (with the general exception of consumer computing). But there's little question these problems need to be fixed, and that doing so may require some challenges to the conventional Linux way of doing things and defending the results.
Nokia宣布完成对Symbian的收购 zz
标签: nokia symbian
2008年12月2日星期二
锟斤拷——经典Unicode乱码 zz
标签: unicode utf-8
Google OpenSocial 的最大用户群来自 51.com zz
COMSHARP CMS 写道 "几周前,我们庆祝了Google OpenSocial项目一周年, OpenSocial是一个社会网络站点API框架,Google的OpenSocial 博客最近发布了一份统计报告,目前,OpenSocial已经拥有6亿7500万注册用户,以及7500个应用程序。而最有趣的是,OpenSocial最大的拥护群不是MySpace,也不是Hi5,甚至不是Orkut,而是中国的51.com。 51.com据报道是中国最大的社会网络站点之一,拥有1亿3000万注册用户。很显然,中国是OpenSocial的主要市场,而最近创办的Xiaonei网也是一个社会网络,校内网拥有3000万注册用户。 "
担心成本的企业将转向开源 zz
标签: open source
诺基亚新的机王来了
标签: nokia n97
Bittorrent将引起互联网雪崩
这里的带宽应该叫做“有效带宽”更合适,指p2p之外用户能使用的带宽。
windows脚本编程相关
DOS在运行批处理时,会依次执行批处理中的每条命令,并且会在显示器上显示,如果你不想让它们显示,可以加一个“echo off”。当然,“echo off”也是命令,它本身也会显示,如果连这条也不显示,就在前面加个“@”。
2008年12月1日星期一
Linux文件系统现状 zz
Although the file system is one of the most important pieces of an operating system, we generally put little thought into them these days. Put bits in, pull bits out. It usually works well enough for desktop systems – until the power fails - but even that is usually pretty painless these days.
On Linux, there are many contenders in the file system arena. ext2 had been the standard for many years, though around 2001 and onward a few other choices become mainstream. Without delving into too much history: journaling support was added to ext2 in the form of ext3, ReiserFS is released, SGI ported XFS, and IBM ported JFS in no specific order. For a few reasons, mostly political, ext3 becomes the de facto file system for Linux.
Classic File Systems
In what I will refer to as “classic” file systems, the idea is basically the same. They essentially bolt journaling to the traditional file system UNIX layout. Here are the highlights from each of these:
- XFS is hailed by some for its excellent support of large files and large file systems, and has some nice modern amenities like extents, delayed allocation, and online defragmentation. [http://en.wikipedia.org/wiki/Xfs]
XFS is not without a fair share of faults though. It’s a somewhat half hearted port in my opinion. Mainly due to its IRIX roots, performance is usually comparable to the other era file systems but CPU usage is relatively high [http://www.debian-administration.org/articles/388]. Data atrocities after power outage or machine crashes seem to be common and even design decision. This LKML posting really struck a nerve with me: http://lkml.org/lkml/2007/3/28/316. A lot can go wrong on the hardware side of things, and if a file system is not privy to this it is a recipe for disaster. ZFS is a hero here with checksumming, which I will touch lightly later.
It is worth noting that XFS is still under active development and has a decent roadmap forward [http://www.xfs.org]
- ReiserFS (Reiser3) is one of the first journaling file systems for Linux. It has some initial growing pains, but is quite a nice file system by kernel 2.6.
Performance is excellent with small files, but its scalability is questioned by many of the Linux elite [http://en.wikipedia.org/wiki/Reiserfs]. Hans Reiser then goes on to work on Reiser4 which is essentially a rewrite. SUSE Linux keeps a few developers on it, but it becomes pretty clear that this is a doomed file system [http://www.linux.com/feature/57788].
- IBM’s JFS is another of the UNIX ports. JFS traces its lineage back to IBM’s AIX in 1990. An IBM team ports and improves it for use in OS/2 and later releases the code as free, open source software (FOSS).
The resulting Linux file system is noted for being scalable, resilient, and in particular easy on the CPU [http://en.wikipedia.org/wiki/JFS_(file_system)]. It also includes extents support. For whatever reason the kernel community and distros don’t really latch on to it. JFS is basically just slowly maintained throughout its life cycle.
- ext3 is a journaling extension of the Linux native ext2. Out of all the file systems in this generation, it is probably the least technologically advanced lacking features like extents. What makes up for this is the easy upgrade path for ext2 users, relatively simple code base, and broad upstream adoption. [http://en.wikipedia.org/wiki/Ext3]
Broad upstream adoption makes ext3 winner for most users and distributions, and it is now the most stable and supported Linux file system.
In hindsight it seems somewhat tragic that JFS or even XFS didn’t gain the traction that ext3 did to pull us through the “classic” era, but ext3 has proven very reliable and has received consistent care and feeding to keep it performing decently.
Nextgen File Systems
In 2005, Sun Microsystems released the bombshell ZFS file system. This ushered in the era of what I will call “nextgen” file systems. As hard disks have gotten larger, strategies for backup, integrity checking, and support for large files have become much more important. These file systems also aim to ease management by blurring the traditional VFS line or offering tight integration with LVM and RAID. Silent corruption by bad hardware is also cause for alarm, and checksumming has been baked into some of these “nextgen” file systems to counter this.
In many ways, Linux was caught completely off guard and most developers weren’t thinking very hard about the future of file systems prior to the ZFS release. Reiser4 explored some interesting ideas and aimed to be a killer file system (okay I’m really tasteless…) but Hans Reiser enjoyed a particularly bitter relationship with other kernel devs. Luckily, some even more advanced file systems have come into existence recently.
- Reiser4 was the first effort for a next generation Linux file system. Introduced in 2004, it seemed to have some excellent new technology including transactions, delayed allocation, and an interesting plugin architecture for adding features like encryption and compression. Hans Reiser even advertised using the file system directly as a database with advanced metadata.
Reiser, the primary developer, often rubbed other kernel developers the wrong way when championing his new file system. Hans seemed to get defensive when questioned about code style and design decisions – particularly that of the plugin architecture. I think that a lot of this was due to misunderstanding and bad tempers, but to this day Reiser4 has yet to enter Linus’s kernel tree. With Hans Reiser’s murder conviction in 2008, the future of Reiser4 was frequently called into question. At this point it seems unlikely that Reiser4 will ever see upstream adoption, but some of the ideas explored have already been integrated into other “nextgen” file systems. [http://en.wikipedia.org/wiki/Reiser4#Integration_with_Linux].
- ext4 was started as an effort to make a 64 bit ext3 to support large file systems. Later, others (Lustre, IBM, Bull - see Theodore T’so comment) got involved and added extents, delayed allocation, online defragmentation, and more. [http://en.wikipedia.org/wiki/Ext4]
ext4 enjoys forward compatibility with ext3, and limited backward compatibility if extents are not enabled. Again the clear advantage here is that it improves upon the stable ext3 base, provides an easy migration path, and has many great developers working on it. However, it needs to be said that ext4 is still somewhat of a “classic” file system and doesn’t have the level of features and scalability that the other “nextgen” file systems do.
- Btrfs is clearly Linux’s response to ZFS. Started by Oracle, this project has gained backing from all of the major Linux corporations. Traffic on LKML suggests that this will be the file system to carry on the torch from ext4.
Btrfs’ key design feature is copy-on-write which will allow for inexpensive snapshots useful for backup and recovery. The goal is to completely surpass ZFS however, and many exiting features such as data/journal checksums, tight device-mapper integration, built in RAID, online fsck, SSD optimization options and even in place ext3 upgrades are being worked on [http://btrfs.wiki.kernel.org/].
- On the tails of Btrfs, another advanced file system called Tux3 has been announced. The project’s developers have been making use of FUSE to quickly prototype and test ideas. The initial work on a kernel port has just been posted [http://lkml.org/lkml/2008/11/26/13].
This project aims to do away with traditional journaling, instead playing back the logs (or recovering) on every mount. It will also feature inexpensive snapshots and versioning. The project’s developers seem to be quite good at championing their ideas, but I predict it will be up to 3 years before we see this ready for mainstream use since coding has really just begun [http://tux3.org/].
Conclusions
With ext4 coming out in kernel 2.6.28, we should have a nice holdover until Btrfs or Tux3 begin to stabilize. The Btrfs developers have been working on a development sprint and it is likely that the code will be merged into Linus’s kernel within the next cycle or two [http://www.heise-online.co.uk/news/Kernel-Log-Ext4-completes-development-phase-as-interim-step-to-btrfs--/111742].
It seems pretty clear that Solid State Disks (SSD) will be here for good. Theoretically these should blow magnetic storage away in terms of speed. We are already starting to see competitive write performance, and random access and IOPS are very impressive with the latest Intel SSDs. It is good to know that Btrfs plans to incorporate SSD optimization from the start, but these new devices may warrant yet another file system to achieve maximum speed. I personally think that wear leveling and FAT emulation are holding these devices back and would be better implemented by the file system.
P.S.:
I’d been meaning to write this article for a while, but things have been changing rapidly with the introduction of ZFS, Btrfs, and Tux3. I plan on doing benchmarks soon with kernel 2.6.28 against all the classic file systems, ext4, and Btrfs so subscribe to my RSS feed if you are interested. Any comments, corrections, or questions would also be appreciated!
P.P.S.:
Wordpress seems to mangle the format of this post so the bullet justifications are off.
标签: linux filesystem
订阅 博文 [Atom]