Archive for August, 2004

Warp5500

Thursday, August 19th, 2004

        740)this.width=740″ border=undefined>

        Engadget的Japan’s schools adopt Lego Mindstorms

        乐高日本分公司Lego Japan与一家名为Eiwa System Management的日本公司(网站只有日文,看不懂……)合作推出了使用Lego Mindstorms技术的产品Warp5500。Warp5500可以用于日本教育部认可的初中课程教学,这门课程,不用说,是教孩子们如何建造机器人。

        我初中的时候?每天下午放学回家,拿玩具枪跟同学疯,或者跑到学校老师的菜园子里捣乱,我最擅长的是拿机床上用的砂轮横砍菜地里的大白菜……Engadget原文中有句话说得太对了,we’re wondering if we weren’t born too early……
        唉,知道什么叫时代的差距或者国与国的差距了?即便现在咱们的初中小朋友们,恐怕还是没有机会进行同样的动手和眼界教育。

BSD发行版之间的差别

Thursday, August 19th, 2004

        ServerWatch有篇讲BSD发行版之间差别的文章Differentiating Among BSD Distros,作者Martin Brown。

        文章介绍了4个主要的BSD发行版,FreeBSD, OpenBSD 和 NetBSD,另一个是,嗯…Mac OS X。前三个是完全free(自由/免费)的,Mac OS X的核心部分自然是BSD变种,虽然最终用户简直看不出来它和BSD有什么关系。

        1993年,386BSD分支为两个版本,NetBSD和FreeBSD,他们各有不同的预期目标。OpenBSD则在1996年出生,是专为安全因素考虑的BSD变种。融合进入Mac OS X的BSD即Darwin,他可以作为完全独立的组件。Darwin本身是从NextStep的BSD层派生的,从技术上讲,Mac OS X是基于FreeBSD核心的。OS X 10.3 基于 FreeBSD 5.x。当然,Apple的家伙们对基准BSD代码做了相当的定制工作--不能骂他们偷懒或者剽窃 ;-) Mac OS X的关键优势是Aqua GUI,用户像操作原来的Mac OS一样操作新系统,同时又不会丧失BSD内核的灵活和高效。

        和其他UNIX变种一样,这4个BSD发行版提供相似的基本功能,都包括下列核心组件:
        内核:拥有作业控制的可抢占多任务内核
        安全:基本的登陆与授权系统÷
        Shell界面:Bourne, C, Korn 和其他第三方shell
        网络:符合TCP|UDP/IP标准,支持所有的基本协议(比如telnet, NFS 和 FTP)
        第三方网络:支持Apache, Mac 文件共享(通过 NetAt)以及 Windows 文件共享(Samba)
        基本实用程序:丰富的内置程序,包括awk, cut, paste, sed 和 ed

        除了这些相似之处外,又哪些不同呢?

        FreeBSD
        FreeBSD是最流行的BSD之一,主要平台是X86,现在对AMD和INTEL的64位平台都支持--SUN的SPARC等其他CPU也不在话下。
        FreeBSD关注的主要焦点是性能,特别是TCP/IP,很多公司包括YAHOO都使用FreeBSD作为服务器。在传输数据方面,FreeBSD保持着一项非官方记录--运行该OS的一台服务器已经处理了超过2T的数据--这同时也说明FreeBSD够稳定。
        FreeBSD的开发者投入了大量精力使系统尽可能简单易用。FreeBSD是最易安装的UNIX了。安装完成后,可能通过内置的ports系统非常容易的下载,编译安装更多的软件包。

        NetBSD
        NetBSD是在FreeBSD发布几个月以后发布的。与FreeBSD对性能的追求和对主要目标平台的完美支持不同,NetBSD的目标是支持尽可能广泛的平台。要列出NetBSD的所有版本非常困难,它可以运行于超过50种CPU之上,从主流的那些--比如X86和SPARC--到偏门的--比如世嘉的Dreamcase和一些手持的嵌入式设备。
        运行于多种平台也给了NetBSD检验并提高自己的代码安全与效率的机会。

        OpenBSD
        在与NetBSD未来方向的抉择上发上争执后,Theo de Raadt开始了OpenBSD的开发,这个BSD发行版从诞生时起就把目标制定为“编写极为安全的操作系统”,这个目标确实一直延续到了今天。
        和其他UNIX变种或者各种Linux版本不同,OpenBSD安装时不会拉下一样东西,但是,连非常基本的服务,都是被禁止的。Linux用户们在安装完Linux后就有的NFS, Telnet, finger, FTP 和其他功能在OpenBSD都需要专门打开。OpenBSD就是这样设计的,这种策略就是为了防止那些偶然疏忽造成的安全隐患。
        OpenBSD还包括了各种加密标准,比如RSA, Blowfish, DES 以及对 IPSec TCP/IP 安全系统的完全支持。加密支持还通过OpenBSD对各种硬件加速器的支持得到了增强。
        OpenBSD非常适合用在网络路由器,防火墙以及安全Internet解决方案中--因为它具备如此高的安去和加密水准。
        OpenBSD的整体安全水平还通过严格的代码测试和审计方法等到了进一步增强。代码都被实质上一行一行地检查过,以发现潜在的错误。

        Mac OS X
        Darwin,Mac OS X所基于的内核,本身是基于FreeBSD代码的,不过自定义的Mac内核取代了标准的BSD内核。Darwin的主要目标是提供一个代码基础,在其上可以运行其余的Mac OS环境。尽管Darwin设计时并不是要成为另一种可用的BSD,不过它在BSD的世界里还是有一席之地。
        大多数远程登陆到OS X的用户很难发现环境上的差异。其实在真正的FreeBSD环境下有相同的实用程序和环境。
        Darwin项目是完全开放源代码的,Apple将系统和源码在线开放。Darwin现在支持PowerPC和X86。
        Darwin和其他3个发行版的区别是,它形成了Mac OS X的基础。一批专有的工具和一个用户环境Aqua构建在Darwin核心之上,提供了和Mac OS 9--甚至更早的Mac--没有太大差异的用户界面。通过Aqua,主要的定制和商业应用--比如Adobe InDesign, Illustrator 和 Microsoft Office --才可用。
        不管Aqua提供怎样的附加应用和界面,在Mac OS X之下,FreeBSD核心总是可用的,比如可以通过Terminal打开shell,可以运行基于X Windows System的应用,可以访问任何UNIX兼容的工具。
        开源的Darwin可以将自己的代码反馈会BSD社区。

James Gosling: on the Java road…

Wednesday, August 18th, 2004

        740)this.width=740″ border=undefined>
        这个老头的blog,有很多照片。

CRAB

Wednesday, August 18th, 2004

        在Akihabara看到这个古怪的东东,这……是个机器人,来自Gakken的CRAB,这个好似只有骨架的玩意儿极端简单,功能有限,用红外遥控,只能前后两个方向行走,不过,好处是,它要你自己组装,可以练练手。

        这个所谓的机器人让我想起小时候单位食堂里的压面条机 ;-P

        视频

        740)this.width=740″ border=undefined>

        740)this.width=740″ border=undefined>

中国,下一个拉美?

Tuesday, August 17th, 2004

        FT.com英文版文章,Is China the next Latin America?作者China Economic Quarterly编辑。

        “失衡的中国”,老外中流行的看法。沿海地带比如北京,上海,广州空前繁荣,而身处内地8亿农民的处境,相比之下就落后很多。除了GDP和奥运会上的金牌外,衡量收入差距的基尼系数也正稳步增长,仅落后于几个拉美国家。国内外的分析家都有中国会成为下一个巴西的担忧--一小撮精英分子以及城市有产者们要维护自己的特权,同时希望维持一个廉价的供应充足的劳动力群体,所以不惜为此设置种种障碍,阻挠另一个阶层走向富裕。这是两个阶级之间的对立。

        和人们经常拿来比较的另两个地区--韩国和台湾--不同,后两者的人口并不庞大,他们有能力将全部务农人口转变为产业工人,进而成为城市中产阶级,这个工作在一代人的时间内即告完成,这样的工业化过程可以保证只造成最小程度的不平等差距。中国无法这样解决自己的城市化问题,庞大的人口数量可能会使这个过程持续数代,不平等问题会产生进而成为这期间多少年中国社会的主要问题。

        好消息是,中国政府与一些拉美国家政府大有不同。种种成绩大家还是自己看吧,暂不论公路,水坝怎样,现在农村基础设计建设确实提高很多。当然,原文有句话让鄙人百思不得其解,Cheap telephone costs help small business everywhere,莫非我们真的已经进入一个电信业充分竞争,消费者充分受益的时代了?此外,腐败和土地所有制问题中国也有自己的情况--以及自己的解决方法。某些时候,中国的处境,或者准确点说,中国农民的处境,要比他们的拉美兄弟好很多。

        所以啊,China’s real problem is not inequality per se,虽然这是个严重问题--文章甚至表示,中国会是21世纪最…不平等的国家。他们的理由是,这是个无可避免的算术题:看看使8亿农民融入城市成为中产阶级的时间,就知道了。

        那么真正问题是…The real problem is one of social justice。国民会忍受经济上的不平等--只要他们相信自己以及自己的下一代有可能改变自己的处境,就像老美曾经证实的那样--这就是潘多拉盒子里最后一样东西的作用啊~~所以,教育,财富等关键资源要有所分配而不会被绝对独占,只要能让大多数人感觉现在挺不错,还是很平等的,这就够了。哦,一个有效的能防止财富和权利滥用的司法系统,也必须存在--为什么我觉得这段似乎不是在解释问题,而是在提供方法。
        财富与教育因素已经在当今最高领导人的工作日程内,但是,第三个关键因素,建立有效的司法系统,可能会超出当前制度的能力。往背后深层的背景看,这要求人们接受普遍的“平等”概念--这会成为一个“可怕”的想法。我觉得这才是这篇文章最有意思的亮点,中国社会不是需要太多的深邃理论,是需要一点平实的想法和追求,比如平等。

        好的,最后,编辑们改编了一句话,all equal countries are the same but every unequal country is unequal in its own way。作为结论,编辑们认为,中国的经济不平等并不会使其走向停滞的拉美化未来--这无须操心--不过,人们应该讨论讨论中国的平等社会该是什么样子。

GMail实用程序

Tuesday, August 17th, 2004

        不知道是第几次写GMail相关的东西了,GMail实用程序也不止一次了。

        再介绍个好地方,Aimless Words,搜集了更多的GMail周边软件,数量已经十分庞大,估计总有一款适合您。

Linux和uClinux编程

Monday, August 16th, 2004

        Linux Journal文章uClinux for Linux Programmers概括了Linux和uClinux编程的一些差别。

        主要讨论内容包括:
        内存管理
                从开发时起,uClinux就被规划为运行在没有MMU的CPU上的--所以很自然,uClinux没有虚存管理;uClinux上的进程也不能在运行时动态增加他们的可用“内存”--没有请求调页;任何进程都能访问任意内存,不能指望这些野蛮的代码相互隔离并被保护--所以,它们都有可能crash其他人乃至OS。

        内核
                uClinux不支持分页,或者tmpfs。标准的Linux ELF格式被换成flat format。uClinux下的驱动程序通常需要重写。内核的mmap当然也大有不同。

        内存分配(内核与应用)
                uClinux提供了另一个适用于小系统的内存分配器,当然,缺省的Linux分配器也可以使用。

        应用与进程
                uClinux可没有fork(),开发者得习惯使用vfork(),移植使用了fork()的应用可能非常困难。当然,好消息是,uClinux支持XIP execute in place--在工具链支持的平台上。XIP对减少内存使用有相当好处,应用可以直接在ROM上运行--而不是要预先搬进内存--说这么麻烦,我想他说的就是flash。

        共享库
                有很大不同--只是没有再进一步细化说明,还是自己看看吧 ;-)

        740)this.width=740″ border=undefined>
        SnapGear LITE2 VPN/Router 运行 uClinux。

        参考LinuxDevices

All Linux

Saturday, August 14th, 2004

        这些,都来自韩国mizi Linux 2.0-Tatooine,可爱的东西。mizi的势头似乎不错,可能是亚洲嵌入式Linux厂商中最成功的了吧。
        在嵌入式系统或者移动终端产品里,Linux会有攻城掠地,横扫千钧的那天吗?

740)this.width=740″ border=undefined>    740)this.width=740″ border=undefined>

740)this.width=740″ border=undefined>    740)this.width=740″ border=undefined>

740)this.width=740″ border=undefined>    740)this.width=740″ border=undefined>

740)this.width=740″ border=undefined>    740)this.width=740″ border=undefined>

740)this.width=740″ border=undefined>    740)this.width=740″ border=undefined>

740)this.width=740″ border=undefined>    740)this.width=740″ border=undefined>

740)this.width=740″ border=undefined>    740)this.width=740″ border=undefined>

740)this.width=740″ border=undefined>    740)this.width=740″ border=undefined>

740)this.width=740″ border=undefined>    740)this.width=740″ border=undefined>

740)this.width=740″ border=undefined>    740)this.width=740″ border=undefined>

似曾相识

Thursday, August 12th, 2004

        这几张广告是不是有点眼熟,总觉得像什么?

        来自Akihabara News

740)this.width=740″ border=undefined>

740)this.width=740″ border=undefined>

740)this.width=740″ border=undefined>

740)this.width=740″ border=undefined>

How Not to Program in C++

Wednesday, August 11th, 2004

        740)this.width=740″ border=undefined>

        Steve Oualline的How Not to Program in C++是部颇有特色的C/C++的书籍,全书有很多短小的实例程序,其中很多都故意隐藏着bug,Steve会用一小段介绍性的文字讲解一下这些最多一页篇幅的代码的意图,然后给出关于代码中bug的提示和答案。先自己阅读研究并解决这些代码然后再看答案的过程能让人受益匪浅。
        这本书的写作风格一点也不像一部C++专业技术书籍--市面上有太多面目可憎艰深晦涩的C++书了--文章中穿插着各式幽默,从人人都能会心一笑的This page Isn’t intentionally left blank到程序员才体会得到得0×2B | ~0×2B == 0xFF,哦,连To be or not to be?都有~~

        Steve Oualline是有35年经验的程序员,是许多部畅销计算机书籍的作者,他的作品包括Practical C Programming 和 Practical C++ Programming。

        看看Steve的Broken “Hello World” Gallery,有意思,考验考验自己 ;-)

        OSNews的书评Review of How Not to Program in C++