踏踏实实干工作,推进开源大发展!
  • Fedora 9 发布摘要:引领潮流 *

    2008-05-16 15:39:40

      美国东部时间5月13日,Fedora社区正式发布了代号”硫磺”的发行版 Fedora 9 (Sulphur) 。

      Fedora 9代号”硫磺”,是因为硫磺在神话中可以用来驱逐狼人,而”狼人”恰好就是 Fedora 8的代号。

      该版本有如下更新:

      * PackageKit : PackageKit 是一个跨发行版的包管理系统,目前拥有完整的 yum 后端。该软件的目标是统一所有发行版上的图形化包管理系统,所以采用了一些最新的技术如 PolicyKit 和 D-Bus。
       
      * GNOME 2.22:GNOME 2.22带来了诸多升级。其中之一是由 Fedora 的开发者AlexanderLarsson 完成的GVFS 和 GIO,它们被用来取代了陈旧的GNOME VFS。 GVFS 提供了性能上提升,队列式多文件传输,并协同 PolicyKit 提高了安全性。PolicyKit同样由 Fedora 开发者 DavidZeuthen 开发并维护,并首先于Fedora 8 中引入。GNOME 2.22 还带来了样式新颖的世界时钟桌面小程序,可以同时显示不同时区的时间和天气情况。另一个在该版本 GNOME 引入的变化是新设计的 GNOME 登陆管理器(GDM)。新功能包括对登陆屏幕的电源管理支持,动态显示支持,以及对 PolicyKit 的整合.
       
      * KDE Desktop 4.0.3:KDE Desktop 4.0.3 将全部 KDE 核心组件升级到了 Qt4 接口上,从而引入了一系列全新的框架:多媒体API Phonon;硬件整合框架 Solid; 全新的桌面及面板 Plasma;整合式桌面搜索;KWin 的混合特效和一个全新的视觉主题 Oxygen。在 Fedora 9 的生命周期里, KDE 将会持续得到来自上游项目的补丁升级,最终 Fedora 9 将包括今年7月发布的 KDE 4.1。
       
      * NetworkManager :Fedora 开发者 Dan Williams 使 NetworkManager 变得比以前更加好用。新功能包括:多个设备的同时激活;方便与周围无限设备建立网络的 Ad-hoc 支持;支持通过 GSM/CDMA 手机卡的 PPP 拨号以及 PolicyKit 的管理方式的支持。
       
      * Firefox 3 Beta 5: Firefox 3 Beta 5 带来了与当前桌面环境相一致的本地化视觉体验。其他改进包括整合了历史和收藏夹功能的地址栏,改进的收藏夹管理器。同时,浏览器引擎 XULRunner 也与用户界面分拆来,为其他有网页渲染需求的应用程序提供了一个独立于浏览器稳定接口。
       
      * SELinux : SELinux 现在可以将浏览器插件置于安全限定区域内执行,从而避免了由于不安全的浏览器插件导致的安全问题。Fedora SELinux 开发者 DanielWalsh 在他的 blog post 对此有详细描述。

      * Java: OpenJDK6 这一由 Sun 在开放源代码协议下发行的 Sun Java SDK 将成为默认的 Java 开发环境。极少的OpenJDK 私有产权代码被来自 IcedTea 项目的代码取代。现在,更多的 Java 程序无需任何额外设置就可以运行了。

      * Xorg 升级:X 的启动和关闭现在只需要大约一秒钟!同时还有更方便的显示配置,以及热拔插支持。

      * 统一化辞典:现在,OpenOffice.org,Firefox,Thunderbird,GNOME 和 KDE 将共享同一个拼写检查辞典,这项改进将大幅度减少资源及内存消耗。
       
      * 蓝牙功能强化:用蓝牙发送、接受文件,以及通过ODBX访问周边蓝牙设备将更加简单。

      * Anaconda 安装器:Fedora 系统安装器,Anaconda,得到不少强化,其中包括:支持安装时调整 ext2,ext3 和 NTFS 分区大小;支持创建和安装加密文件系统; 对 ext4 文件系统的安装时支持(需要添加 ext4 引导选项来启动该功能);支持 GRUB 在 EFI x86_64 设备上的原生安装;引入支持网络安装和系统恢复功能的安装小镜像  netinst.iso 。

      * 无缝升级:如果你已经安装了 Fedora 7或 Fedora 8,现在可以通过图形化的 PreUpgrade 工具安全、方便的升级到Fedora 9。



      * 永久性USB Live支持: 全新的 LivdCD 工具包支持将 LiveCD 镜像转化为自启动U盘 Live 系统,并且不会丢失原先U盘上的数据。而且对U盘中 Live 系统的改变可以永久储存在预先定义的空间内。现在,你可以将 Fedora 系统与文档随身携带,还可以对 Live 系统进行升级。同时,通过 liveusb-creator 也可以在 Windows 系统下制作Fedora Live U盘了。



      * Jigdo 下载支持:Fedora 9 的镜像可以通过 jigdo 或者 jigsaw下载。如果你所处地区有站点镜像或者你自己还保存有先前版本的光盘镜像,使用该方法将大大节省下载光盘镜像所需流量。

      * FreeIPA: FreeIPA 提供了对 Fedora Directory Server,FreeRADIUS,MIT Kerberos,NTP 和 DNS 服务的集中式的 Web 及命令行界面配置,它可以使网络管理员快速、方便的进行认证、确认、策略处理等工作。

      * Upstart 进程管理:Fedora 9 使用 Upstart 进程管理取代了System V 进程管理。这个变化帮助 Fedora 大幅度提升启动和关闭进程的速度。

      * 系统级应用程序升级:包括GCC升级到4.3,Perl升级到5.10,Kernel升级到2.6.25-rc5,以及用TeXLive取代了Tex。

      * 中文相关:默认中文字体包中增加了文泉驿正黑,默认包括了scim-python,并用scim-python-pinyin取代了原先的scim-pinyin。默认的中文输入法启动按键为Ctrl+Space。

      英文正式发布摘要见这里

      英文正式发布说明见这里

  • Linux 2.6 内核的嵌入式系统应用 *

    2008-05-15 15:38:32

      随着多媒体技术与通讯技术相结合的信息技术的快速发展和互联网的广泛应用,PC 时代也过渡到了后PC时代。在数字信息技术和网络

    技术高速发展的后PC时代,嵌入式技术越来越与人们的生活紧密结合。

     操作系统为 用户使用计算机及其外部设备提供最基本的接口程序,管理计算机上的资源。随着应用领域的扩大,为了适应不同的应用场合,考虑到系统的灵活性、可伸缩性以及 可裁剪性,一种以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗要求严格的专用计算机系统——嵌入式操作 系统随之延生。

      Linux 操作系统是一种性能优良、源码公开且被广泛应用的免费操作系统,由于其体积小、可裁减、运行速度高、良好的网络性能等优点,可以作为嵌入式操作系统。随着 2.6内核的发布,Linux向现有主流的RTOS提供商在嵌入式系统市场提出了巨大挑战,例如VxWorks和WinCE,具有许多新特性,将成为更优 秀的嵌入式操作系统。

      Linux的低成本和开放性,为其在嵌入式系统领域的应用营造了肥沃的土壤。本文着重介绍Linux 2.6内核的新特性及其嵌入式应用中的优势,并将其移植到嵌入式平台中,成功支持H.264编解码多媒体系统。

    1 Linux 2.6内核针对嵌入式开发显著特点

      实时可靠性是嵌入式应用较为普遍的要求,尽管Linux 2.6 并不是一个真正的实时操作系统,但其改进的特性能够满足响应需求。Linux 2.6 已经在内核主体中加入了提高中断性能和调度响应时间的改进,其中有三个最显著的改进:采用可抢占内核、更加有效的调度算法以及同步性的提高[4]。在企业服务器以 及嵌入式系统应用领域,Linux 2.6 都是一个巨大的进步。在嵌入式领域,Linux 2.6 除了提高其实时性能,系统的移植更加方便,同时添加了新的体系结构和处理器类型——包括对没有硬件控制内存管理方案的 MMU-less系统的支持,可以支持大容量内存模型、微控制器,同时还改善了I/O子系统,增添更多的多媒体应用功能[4]

    1.1 可抢占内核

      在先前的内核版本中(包括2.4内核)不允许抢占以核心态运行的任务(包括通过系统调用进入内核模式的用户任务),只能等待它们自己主动释放CPU。这样必然导致一些重要任务延时以等待系统调用结束。

      一个内核任务可以被抢占,为的是让重要的用户应用程序可以继续运行。这样做最主要的优势是极大地增强系统的用户交互性。

      2.6内核并不是真正的RTOS(Real Time Operation System),其在内核代码中插入了抢占点,允许调度程序中止当前进程而调用更高优先级的进程,通过对抢占点的测试避免不合理的系统调用延时。2.6内 核在一定程度上是可抢占的,比2.4内核具备更好的响应性。但也不是所有的内核代码段都可以被抢占,可以锁定内核代码的关键部分,确保CPU的数据结构和 状态始终受到保护而不被抢占。

      软件需要满足最终时间限制与虚拟内存请求页面调度之间是相互矛盾的。慢速的页错误处理将会破坏系统的实时响应性,而2.6内核可以编译无虚拟内存系统避免这个问题,这是解决问题的关键,但要求软件设计者有足够的内存来保证任务的执行。

    1.2 有效的调度程序

      2.6版本的 Linux内核使用了由 Ingo Molnar开发的新的调度器算法,称为O(1)算法,如图1所示。它在高负载情况下执行得极其出色,并且当有很多处理器并行时也可以很好地扩展[2]。 过去的调度程序需要查找整个ready task队列,并且计算它们的重要性以决定下一步调用的task,需要的时间随task数量而改变。O(1)算法则不再每次扫描所有的任务,当task就 绪时被放入一个活动队列中,调度程序每次从中调度适合的task,因而每次调度都是一个固定的时间。任务运行时分配一个时间片,当时间片结束,该任务将放 弃处理器并根据其优先级转到过期队列中。活动队列中任务全部调度结束后,两个队列指针互换,过期队列成为当前队列,调度程序继续以简单的算法调度当前队列 中的任务。这在多处理器的情况更能提高SMP的效率,平衡处理器的负载,避免进程在处理器间的跳跃。

     

    图1 O(1)调度算法

    1.3 同步原型与共享内存

      多进程应用程序需要共享内存和外设资源,为避免竞争采用了互斥的方法保证资源在同一时刻只被一个任务访问。Linux内核用一个系统调 用来决定一个线程阻塞或是继续执行来实现互斥,在线程继续执行时,这个费时的系统调用就没有必要了。Linux2.6所支持的Fast User-Space Mutexes 可以从用户空间检测是不是需要阻塞线程,只在需要时执行系统调用终止线程。它同样采用调度优先级来确定将要执行的进程[4]。多处理器嵌入式系统各处理器 之间需要共享内存,对称多处理技术对内存访问采用同等优先级,在很大程度上限制了系统的可量测性和处理效率。Linux2.6 则提供了新的管理方法——NUMA(Non Uniform Memory Access)。NUMA根据处理器和内存的拓扑布局,在发生内存竞争时,给予不同处理器不同级别权限以解决内存抢占瓶颈,提高吞吐量。

    1.4 POSIX线程及NPTL

      新的线程模型基于一个1:1的线程模型(一个内核线程对应一个用户线程),包括内核对新的 NPTL(Native POSIX Threading Library)的支持,这是对以前内核线程方法的明显改进。2.6内核同时还提供POSIX signals和POSIX high-resolution timers。POSIX signals不会丢失,并且可以携带线程间或处理器间的通信信息。嵌入式系统要求系统按时间表执行任务,POSIX timer可以提供1kHz的触发器使这一切变得简单,从而可以有效地控制进度。

    1.5 微控制器的支持

      Linux2.6内核加入了多种微控制器的支持。无MMU的处理器以前只能利用一些改进的分支版本,如uClinux,而2.6内核已 经将其整合进了新的内核中,开始支持多种流行的无MMU微控制器,如Dragonball、ColdFire、Hitachi H8/300。Linux在无MMU控制器上仍旧支持多任务处理,但没有内存保护功能。同时也加入了许多流行的控制器的支持,如S3C2410等。

    1.6 面向应用

      嵌入式应用有用户定制的特点,硬件设计都针对特定应用开发,这给系统带来对非标准化设计支持的问题(如IRQ的管理)。为了更好地实 现,可以采用部件化的操作系统。Linux2.6采用的子系统架构将功能模块化,可以定制而对其他部分影响最小。同时Linux2.6提供了多种新技术的 支持以实现各种应用开发,如Advanced Linux Sound Architecture(ALSA)和Video4Linux等,对多媒体信息处理更加方便;对USB2.0的支持,提供更高速的传输,增加蓝牙无线接口、音频数据链接和面向链接的数据传输L2CAP,满足短距离的无线连接的需要;而且在2.6内核中还可以配置成无输入和显示的纯粹无用户接口系统。

    2 应用研究

      在S3C2410开发板上移植嵌入式Linux 2.6.11.7内核系统,应用于构建H.264多媒体系统。

    2.1 建立交叉编译环境

      在RedHat9的主机上进行内核移植开发,首先需要建立交叉编译环境。由于2.6内核中采用了一些新的特性和指令,需要采用较新的工 具集, 采用binutils-2.15、gcc-3.4.2、glibc-2.2.5、linux-2.6.8、glibc-linuxthreads- 2.2.5来建立交叉编译工具链,建立之后将工具链路径加入系统路径$PATH中。

    2.2 内核修改

      Linux 2.6.11.7内核加入了对S3C2410芯片的支持,不再需要任何补丁文件。修改内核源码中Makefile的交叉编译选项ARCH=arm, CROSS_COMPILE=arm-linux-。针对硬件配置,需要在arch/arm/mach-s3c2410/devs.c或者 smdk2410.c中添加FLASH的分区信息s3c_nand_info,如表1。

    表1 NAND FLASH分区表

    分区名 起始地址 大 小
    Vivi 0x00000000 0x00020000
    Param 0x00020000 0x00010000
    Kernel 0x00030000 0x001c0000
    Root 0x00200000 0x00200000
    Usr 0x00400000 0x03c00000

      然后在s3c_device_nand中增加.dev={.platform_data= &s3c_nand_info},在arch/arm/mach-s3c2410/mach-smdk2410.c中的__initdata部分 增加&s3c_device_nand,使内核在启动时初始化NAND FLASH信息。

    2.3 内核编译加载

      对内核进行适当的配置是一个量体裁衣的过程。由于2.6内核会根据本地系统配置进行初始设置,可以导入内核源码默认s3c2410的配 置文件,方便加载内核基本配置,然后再选择所需选项。对MTD配置选择支持MTD设备驱动以及NAND FLASH驱动;选择支持要用到的各类文件系统(DEVFS、TMPFS、CRAMFS、YAFFS、EXT2、NFS)以及网络设备和协议,本系统加载 了网络芯片CS8900以及USB支持;在H.264多媒体系统中还需要加载Frame buffer以支持LCD显示功能。使用交叉编译工具编译内核源码后, 会在arch/arm/boot/下生成名为zImage的内核映像,在Boot loader的命令提示模式下使用下载命令完成内核加载到开发板的存储设备FLASH中。编译过程(相对以前版本的编译过程,2.6内核编译有所简化):

      make mrproper

      make menuconfig(字符界面,或者用make xconfig图形界面,但需要Qt库的支持,而make gconfig则需要GTK库的支持)

      make

      make bzImage

    2.4 文件系统

      Linux采用文件系统组织系统中的文件和设备,为设备和用户程序提供统一接口。Linux 支持多种文件系统,本系统使用CRAMFS格式的只读根文件系统,而将FLASH中的USER区使用支持可读写的YA FFS文件系统格式,方便添加自己的应用程序。

      在根文件系统中,为保护系统的基本设置不被更改,采用CRAMFS格式。采用DEVFS来实现基本设备的建立挂载,同时使用 BusyBox也是一个缩小根文件系统的办法,提供了系统的基本指令;还需要建立一些必备的目录,添加所需配置文件,如fstab、inittab等;还 有一个重要的工作就是添加系统应用必备的动态函数库。使用生成工具mkcramfs 将整个根文件目录里的内容制作成映像文件。

      mkcramfs rootfs rootfs.ramfs

      YAFFS文件系统格式的支持需要将驱动加入到内核代码树下fs/yaffs/,修改内核配置文件,就可以在内核编译中加载对该文件系 统的支持。使用mkyaffs工具将NAND FLASH分区格式化为YAFFS分区,将mkyaffsimage生成的应用程序镜像烧写进YAFFS分区,在启动时通过写入fstab自动加载 YAFFS分区即可。

    2.5 网络设备驱动

      系统中采用CS8900A的10M网络芯片,它使用S3C2410的nGCS3和IRQ_EINT9,相应修改 linux/arch/arm/mach-s3c2410/irq.c,并在mach-smdk2410.c的smdk2410_iodesc[]中增加 {SMDK2410_ETH_IO,S3C2410_CS2, SZ_1M, MT_DEVICE},内核源码中加入芯片的驱动程序drivers/net/arm/cs8900.h和cs8900.c,并且配置网络设备驱动的 Makefile和Kconfig文件,加入CS8900A的配置选项,这样可以在内核编译时加载网络设备的驱动。

      在Linux2.6应用的同时,也要看到其与以前版本内核比较存在的一些问题。在内核的编译时间、内核镜像大小、内核占用RAM空 间大小、系统启动时间相对Linux2.4而言都存在不同程度的不足,但在硬件条件日益进步的现今可以接受,而且一部分也是由于功能加强必然带来的。虽然 Linux并非一个真正的实时操作系统,但2.6内核的改进能够满足大部分的应用需求,所以Linux2.6内核将会在嵌入式系统领域大展身手。

    参考文献

    1 Alessandro Rubini,Jonathan Corbet著,魏永明,骆刚,姜 君译.Linux设备驱动[M].

      北京:中国电力出版社,2004

    2 Anand K Santhanam. 走向Linux2.6[EB/OL]. Dec. 2003.

      http://www-128.ibm.com/deve loperworks/cn/linux/ l-inside/index.html

    3 S3C2410X 32-Bit RISC Microprocessor User´s Manual[Z]. SAMSUNG Electronics. Revision 1.2

    4 Brandon White. Linux 2.6: A Breakthrough for Embedded

      Systems[EB/OL].http://linuxdevices.com/articles/AT7751365763.html Sep.9,2003

    5 Karim Yaghmour. Building Embedded Linux Systems[M]. O’Reilly. April, 2003

    来自:IT168

  • 开源软件企业如何作好无本生意

    2008-05-15 13:22:37

      开源软件就意味着免费吗?其实不然。若开源企业没有利润的话,那也不有这么多的软件企业,去搞开源项目了。其实,开源软件项目的话,还是很有“钱途”的,有很多可以赚钱的点。下面我以COMPIERE项目为例。谈谈如何做好开源项目这个无本生意。

      一、靠翻译赚钱。

      我们知道,现在国内基本没有人搞开源项目。现在市场上的开源软件基本上都是国外的产物。所以,国内企业要使用国外的开源软件项目的话,第一个要突破的难关就是语言关。也就是说,要把英文的语言环境或者其他的外文语言环境翻译成中文。国内的用户,只要把这个中文的语言包导入到COMPIERE系统中取,就可以完成汉化的目的。

      所以,开源软件的第一个赚点的地方就是卖这个中文包,这也是最好赚的。因为若企业自己去翻译的话,那一个人估计半年都翻译不好,而且,企业还不一定有这方面的专业人才。即使有这方面的人才,那养他的成本的话,购买这个中文语言包就绰绰有余了。所以说,卖这个中文语言包的话,市场潜力还是很大的。据我所知,很多人把这个语言包买过去的话,还会再次转手卖出去,进行贩卖,从中牟利。

      所以,开源企业在开源软件项目中,挖掘的第一桶金就是这个中文包。不过,说实话,现在市场上的中文包很多都是根据英文直译过来的,而没有转换为跟中国国情相适应的专业名词。这主要是因为翻译的人基本上都没做过企业管理实务。所以翻译的内容可能会跟中国的实际管理环境脱节。虽然如此,中文包还是很手用户欢迎。因为这是国内企业实施开源项目的基础。

      二、靠实施资料赚钱。

      语言的问题解决之后,企业面临的另外一个问题,就是系统的实施文档了。但是,跟中文语言包一样,很少有中文的开源软件实施文档。为什么呢?这大概是中国人的劣根性了。一是很少人乐于分享。现在国内使用COMPIERE项目的企业已经不在少数,而且,我们也提供了完整的实施文档资料。但是,你网上找找看,很难找到有关这个项目的中文实施资料。为什么呢?其实我从事这行这么久,给我的感觉就是国内的人没有国外人那种资源共享的心态。虽然我们的实施文档资料有版权控制,但是,通过这个资料编制出一些实用的实施文档,还是很容易的,可是,就是没有人去做这方面的控制。二是国内的人太强调一种回报。做什么事都强调回报,所以,对于开源这些他们认为没有多少“钱途”的项目来说,他们就不会花心思去研究。他们宁愿去研究SAP、ORACLE这种大型管理软件。基于以上种种原因,关于COMPIERE这些开源项目的中文实施文档少的可怜。我们公司在写COMPIERE的中文实施文档的时候,也主要是借鉴国外的英文资料,加上自己对于系统测试而得出来的。不过,反过来说,也可以说国人版权意识比较强。若每个人都有这么无私的共享精神,那么我们这些开源企业也就没有生存的余地了。

      所以,开源企业的第二块赚钱的蛋糕就是实施资料。

      三、靠开发文档赚钱。

      众所周知,开源软件有一个很大的缺陷,就是功能上没有商业软件那么强大,漏洞相对来说也比较多。但是,其也有一个其他商业软件无法比拟的优点,就是其源代码是公开的,企业可以根据自己的需求,进行定制开发。但是,其有一个前期条件,就必须要先了解系统的内部结构、数据库结构、程序接口等等技术性资料。

      而因为像COMPIERE这些比较复杂的信息化管理系统,其代码是非常复杂的,其各个模块之间的关联关系也让人眼花缭乱。所以说,要是没有开发技术资料的话,那你想做好开发的话,那难度是可想而知的。所以,我们公司就编写了开发文档,出来卖钱。我们公司的开发文档包括了COMPIERE系统开发需要用到的大部分内容。如系统的架构设计,可以帮助用户了解COMPIERE系统的大致开发框架,让用户先从整体上对于COMPIERE系统的开发平台有所了解;如应用字典介绍,应用字典是COMPIERE系统的一个自定义平台,利用这个平台,可以不用通过编写代码就实现相关的自定义功能,如字段的添加等等;如数据库模型资料,这个资料可以帮助开发人员迅速理清后台数据库中表与表之间的关联,方便用户进行导入导出工具的开发及报表的创建等等;再如接口的详细实现,如此,可以开发人员可以通过这些接口顺利的跟外部程序进行集成;再这份资料中,还提供了一些常见功能的开发案例,开发人员按部就班的根据这些案例进行开发,可以最快的了解系统的开发流程。

      所以,用户有了开发文档后,就可以省取自己研究系统代码的麻烦,缩短程序开发的周期。现在这些开发技术文档资料,已经是我们公司赚钱的第三大法宝。

      四、靠合作伙伴赚钱。

      除了卖资料外,我们还会在全国各地招收合作伙伴,让他们给我们赚钱。我们除了给合作伙伴提供资料外,还会对他们进行系统的培训等等,让他们具备独立实施COMPIERE项目的能力。我们现在合作伙伴的招募速度还是很快的,平均每个月的话,大概有3-5个合作伙伴。所以,从这里也可以看出,开源软件项目,在国内还是比较有前途的,因为用户群正在逐渐扩大。

      而且,因为我们COMPIERE项目主要是针对中小企业,项目周期一般在三个月。所以,项目投资回抱比较快,很受软件公司、企业的欢迎。故,大部分企业对这个项目的前景看好。所以,我们现阶段的目标就是不断的扩大招呼合作伙伴,让他们给我们去赚钱。

      五、靠实施、个案定制赚钱。

      我们除了招募合作伙伴外,我们自己还做软件实施、提供个案定制服务。这也是我们公司发展的一个非常重要的资金来源。不过为了不给合作伙伴的利益产生冲突,我们的客户主要在于海外,如香港、台湾、澳门等等。对于国内的企业,我一般只招募合作伙伴,而不接受直接的实施定制服务。

      现在提供定制服务的收费是很高的。如有的企业,费用高达500元每小时每人。其实,我们定义这么高的开发费用,除了开发人员本身成本高以外,还有另外一个目的,就是限制用户对系统进行过多的二次开发。不然的话,有个非常大的问题,就是后续维护的话,很麻烦。因为没有进行二次开发的系统,我们任何一个技术人员,都非常的清楚;而若进行了过多的二次开发,就比较麻烦了,因为我们还需要去额外的了解二次开发的内容。这对于我们提供服务了说,是一大挑战。所以,很多公司在进行二次开发的时候,价格定义的都比较高。

      除了个案开发以外,其实,提供项目的实施服务也是蛮赚钱的。我们可以根据用户的不同需求、采用模块的多少等因素,向客户收取不菲的实施费用。不过,总的来说,因为开源软件企业不需要软件的授权版本,所以总的项目实施成本跟商业软件来说,是还有一定差距的。故,在跟商业软件竞争的时候,比较具有价格优势。就凭着这价格优势,及源代码开放,用户可以根据自己的需要进行软件二次开发,所以,才能够跟商业软件抗衡,在管理软件市场上,获得一席之地。

    来自:硅谷动力 作者:东明
  • 全球10大软件盗版国 亚美尼亚居首美国最低

    2008-05-15 09:07:27

      据美国商业软件联盟(BSA)周三公布的报告显示,2007年全球盗版软件所带来的损失高达480亿美元.
    报告显示,2007年全球软件盗版率为38%,增长了3个百分点.在所调查的108个国家中,67个国家的盗版率出现下滑,但仍有不少国家软件盗版率居高不下.

      例如,亚美尼亚以93%的盗版率高居全球榜首,而孟加拉国以92%紧随其后.相比之下,美国的软件盗版率只有20%,为全球盗版率最低的国家.以下分别为2007年软件盗版率最高和最低的10个国家:

      软件盗版率最高的10个国家:

    1. 亚美尼亚

    2. 孟加拉

    3. 阿塞拜疆

    4. 摩尔多瓦

    5. 津巴布韦

    6. 斯里兰卡

    7. 也门

    8. (空缺)

    9. 利比亚

    10. 委内瑞拉

    软件盗版率最低的10个国家:

    1. 美国

    2. 卢森堡

    3. 新西兰

    4. 日本

    5. 奥地利

    6. 比利时

    7. 丹麦

    8. 芬兰

    9. 瑞典

    10. 瑞士
  • 云计算:构建基于互联网的应用

    2008-05-12 10:13:00

      什么是云计算

      IBM公司于2007年年底宣布云计算计划,云计算的概念仿佛在一夜间就出现在大众的面前,对于云计算的各方解读也众说纷纭。

      在展开对云计算的具体实现技术的讨论之前,先让我们看一下云计算的一些基本概念。首先需要回答什么是云计算。

      在IBM的技术白皮书“Cloud Computing”中,我们可以看到如下的定义: “云计算”一词同时用来描述一个系统平台或者一种类型的应用程序。一个云计算的平台可按需进行动态的供给(provision)、配置(configuration)、重新配置(reconfigure)以及取消服务(deprovision)等。在云计算平台中的服务器可以是物理的服务器或者虚拟的服务器。高级的计算云通常包含一些其他的计算资源,例如存储区域网络(SANs)、网络设备、防火墙以及其他的安全设备等。

      云计算的本质

      在应用方面,云计算描述了一种可以通过互联网进行访问的可扩展的应用程序。“云应用”使用大规模的数据中心以及功能强劲的服务器来运行网络应用程序与网络服务。任何一个用户通过合适的互联网接入设备以及一个标准的浏览器都能够访问一个云计算应用程序。

      从IBM的定义中我们看到,云计算的含义有两个方面。它一方面描述了一种方便的基础设施,用来构造应用程序,其地位相当于PC机上的操作系统; 另外一方面则描述了建立在这种基础设施之上的云计算应用。一个计算云是虚拟化的计算资源池,用来容纳各种不同的工作模式,并且这些工作模式可以通过快速部署的方式部署到物理设施上。由于使用了分布式的计算技术,云计算能够将计算扩展到更多的计算资源,以及使用冗余的资源进行容错处理。

      在IBM的白皮书中我们还可以看到,云计算能够通过快速提供物理以及虚拟服务器来支持网格应用的运行。网格程序能够将一个大的任务分解成很多小的任务并行地运行在不同的集群以及服务器上。我们可以把云计算看做是一个具有更广泛含义的计算平台,除了能够支持网格的应用之外,云计算还能够支持非网格的应用,例如在网络服务程序中的网络服务器、应用服务器和数据库服务器三层应用程序架构模式。特别值得注意的是云计算模型支持当前Web 2.0模式的网络应用程序。云计算是能够提供动态资源池、虚拟化和高可用性的下一代计算平台。

      几种典型云计算平台

      当前,工业界已经有很多公司聚集在云计算这样一个新型计算概念下面,分别提出了自己针对云计算的理解,用不同的技术来实现上述目标,主要包括下面重要的云计算实现系统。

      亚马逊的弹性计算云。事实上,网络零售商亚马逊公司是最早也是一个非常重要的云计算实践者之一。亚马逊公司在构建自身零售平台的时候,也使用了云计算的方法,将自己的购物平台构建在其基础之上。亚马逊公司将自己的云计算平台开放给外部开发人员使用,建立了弹性计算云(Elastic Compute Cloud,EC2),使得独立的开发人员也能够使用亚马逊公司内部的计算资源来建立自己的网络应用程序。

      Google的云计算平台及其云计算网络应用程序。主要包括Google针对云计算提出的大规模分布式计算的基础架构以及Google在此基础之上构造的云计算应用服务程序。Google将自己的整个基础计算平台以及相应的应用称为云计算,并且成为云计算最大的实践者。

      IBM公司在与Google的合作过程中,提出了自己对于云计算的理解以及相应的技术解决方案。IBM公司于 2007年11月15日在上海宣布了蓝云“Blue Cloud”计划,使得公司内部的数据中心能够按照互联网应用服务程序的形式进行组织,将计算能力分配到分布式全局可以访问的资源组织中,而不是局限于本地的一些服务节点或者固定远端的服务器机群中。IBM在云计算的白皮书中也提出了蓝云计划的基础设施结构,这些基础设施结构构建在IBM本身的x服务器之上。在蓝云中采用了Xen的系统级虚拟化方法,同时提供虚拟化的服务器以及物理服务器的计算资源。在IBM的云计算架构中也采用了类似于Google进行大规模数据处理的基础设施,在其蓝云计算环境中部署了Goolge File System 以及MapReduce用以实现Hadoop。Hadoop是Apache旗下的一款有关大规模数据的开源软件,Yahoo在其中做出了不少贡献。

      未来展望

      当前已经有很多公司参与到云计算的研究与发展当中。

      Yahoo公司就参与了云计算平台Hadoop的开发,雇佣了Hadoop软件的创始人员,并且为此软件贡献了很多代码。同时为了测试与部署Hadoop系统,在Yahoo公司内部也使用了Hadoop软件,建立了世界上最大的Hadoop集群系统,这个集群系统包含了1万个Linux节点,规模还是很大的。现在,Yahoo公司的很多应用程序都构建在云计算平台之上。而上述的最大Hadoop平台则用来计算网络搜索的页面连接图,处理海量的数据。

      微软自然也不甘落后,与Google类似,微软重构了自己的搜索引擎平台。除此之外,微软也构建了自己的云计算平台,并在此平台之上推出了云计算的应用。与 Google类似,微软的云计算平台只是为自己的网络应用程序服务,现在还没有看到相应的云计算软件模块公开出来以帮助其他开发商构建云计算平台。微软的网络平台服务Windows Live就可以看成是云计算应用的一个典型,它是一个Web 2.0应用程序形式的云计算用户平台。用户在这个应用平台上可以进行照片的共享,文件的存储以及运行其他的应用程序。这些应用都建立在新型的云计算平台之上,也是微软针对网络实施的重大战略之一。在Live平台上,用户可以访问自己的电子邮件,可以使用SkyDrive来存储数据以及构建自己的网络发布平台等。

      另外,硬件公司Dell提供了DCS(Dell Cloud Computing Solution)解决方案,帮助用户构建云计算平台,该解决方案能够降低数据中心的运维成本,提升计算速度、简化数据中心管理,具有良好的可扩展性。软件公司RedHat则与亚马逊公司合作,在亚马逊公司的弹性计算云中部署了RedHat Enterprise Linux,并通过虚拟化的方式部署整个弹性计算云平台。

      在云计算研究方面,在Google与IBM的支持下,美国的多所大学参与到云计算中来,包括6所非常著名的大学: 卡内基·梅隆大学、麻省理工学院、斯坦福大学、加州大学伯克利分校、马里兰大学和华盛顿大学。

      Google在去年年底之前投入了一个小的计算中心,计算中心的地点未知,但在规模上会超过1600颗处理器。同时,IBM公司也将为这一项创新计划配置一个数据中心。这些中心将运行Google数据中心软件的开源版本,IBM也会提供开源的软件来帮助学生编写互联网应用程序以及相关的数据中心管理软件。虽然说这些数据中心的规模相对于Google内部的集群来说还是非常小的,但是已经开始做一些互联网规模的研究了。两家公司将在前未来年共同投入3000万美元来促进相关的研究工作。

      随着越来越多的参与者加入到云计算的研究与发展中,云计算会出现一些新的结构模式,为开发者提供优秀的开发平台,建立下一代的网络应用程序,同时也为用户提供更加优秀的网络应用。
  • PHP开发框架的现状和展望

    2008-05-09 09:54:33

      Ruby on Rails催生变革

      在RoR流行之前,PHP领域也有不少开发框架,例如Mojavi、WACT、PHPMvc和Seagull等。这些框架虽然也采用了MVC模式、数据库抽象层等技术。但由于当时PHP本身不像现在这样流行,所以这些框架都没有得到大量应用,最终归于沉寂。

      而在感受到RoR提供的快速开发能力后,PHP社区像被注入了兴奋剂。各种应用技术和开发框架层出不穷。

      新一代框架的诞生

      PHP社区在被RoR震晕后,没有陷入过多的争论。而是立即行动起来,开始了新一代框架的设计。首先出现的第一批框架几乎都是RoR的克隆。例 如PHP on Trax(连名字都借鉴Ruby on Rails)和TaniPHP、Akelos等。这些框架最大的特点就是力求100%克隆RoR,不管是采用的架构、设计模式,还是使用方法。

      这几个框架一开始确实吸引了开发者的注意,但随着开发者的深入了解,这些框架头上的光环逐步褪色。晦涩难懂的架构、糟糕的性能,以及太多的限制,让这些框架难以在实际项目中运用。

      此时,许多PHP开发者认为可以借鉴RoR的设计思想,但不应照搬RoR的结构和实现。为此,一些同样推崇快速开发的框架开始在PHP社区出现。这些框架中,CakePHP和Symfony可谓佼佼者。

      CakePHP(http://www.cakephp.org/)

      CakePHP充满了RoR的影子,从ActiveRecord模式到视图的布局管理都和RoR非常相似。而且CakePHP一开始也尝试实现与 RoR一样的许多东西。但CakePHP的开发团队后来发现PHP语言和Ruby语言存在巨大区别,因此RoR中的许多设计即便能够在PHP中实现,也是缺乏实用价值的。

      CakePHP在发展中逐步走出了RoR的阴影,开始探索更能发挥PHP语言本身优势的架构和实现。因此有一段时间CakePHP的API发生了剧烈的变化,以致其他开发者纷纷停下脚步处于观望状态。

      但由于前期一些架构的不合理和对RoR太多的模仿,导致CakePHP的核心部分越来越难以理解,运行性能也不尽人意。而且CakePHP将一个庞大的数据库操作对象作为所有业务对象的基础。这虽然利于快速开发,但却导致对业务逻辑对象的测试非常困难。

      对于较小型的项目,CakePHP非常理想。出色的快速开发能力、丰富的API和详尽的文档都可以帮助开发者很快完成工作。但随着项目规模的增加,CakePHP的局限性也变得突出。

      Symfony(http://www.symfony-project.com/)

      Symfony是一个非常成熟的框架,大量利用了已有的开源项目。Symfony使用Mojavi的核心代码实现了框架的MVC模式,利用 Propel作为数据库抽象层。Symfony不仅功能强大,而且对Ajax有全面的支持。加上官方网站提供的大量文档和教程,并拥有一个活跃的社区,因 此受到许多开发者的欢迎。

      但是,Symfony最大的问题也在于使用了太多风格迥异的开源项目来组合成框架。由于Mojavi和Propel本身都相当复杂,因此Symfony的结构非常复杂,难以理解和学习。

      不过对于希望选择一个框架作为企业内部系统基础架构的企业来说,Symfony的成熟度、丰富的文档和活跃的社区都是值得考虑的。毕竟企业内部系统更为看重的是稳定性和长期的支持。

    商业利益与大道至简

      看到PHP开发框架的潜在商业价值后,Zend.com联合IBM宣布将要推出一个真正能够发挥PHP优势的开发框架。一时间,这个消息在整个PHP社区引起了地震。大家都开始期盼这个具有“官方”背景的开发框架能够为PHP开发者指出一条正确的道路。

      不过世事难测,就在Zend Framework团队公布几个代码片断后,立即就有开发者指出这些代码片段是不可能实现的。事实证明这些代码片段不过是美好的理想。限于PHP语言本身的能力,Zend Framework最终没有实现当初承诺提供的类似RoR中ActiveRecord模式的实现品。

      Zend Framework(http://framework.zend.com/)

      Zend Framework大量应用了PHP5中面向对象的新特征:接口、异常、抽象类、SPL等等。这些东西的应用让Zend Framework具有高度的模块化和灵活性。同时,因为严格遵循“针对接口编程”和“单一对象职责”等原则,让Zend Framework很有希望成为一个出色的企业应用开发框架。

      但不幸的是Zend Framework直到今天,也没有做出更多的突破。在使用Zend Framework开发时,框架对应用程序自身最重要的领域逻辑分离没有提供任何帮助。如果希望开发出真正健壮的企业应用,仍然需要开发者做出相当的努 力,并且在Zend Framework之上建造自己的基础设施。

      针对这点,批评者指出Zend Framework虽然大量应用PHP5的新特征,但却没有将这些相对于PHP4的优势转化为能够为开发者提供帮助的东西。

      对于简单和小型的项目来说,Zend Framework不但不能提高开发效率。反而因为在框架中应用了大量面向对象设计和PHP5的新特征,对开发者提出了更高的要求,间接增加了项目的开发成本。而对于较大的项目和企业应用,Zend Framework倒是一个不错的基础。但要创建一个成功的应用,仍然需要付出不小的努力。并且要时刻注意Zend Framewok的性能问题。

      Code Igniter(http://www.codeigniter.com/)

      Code Igniter可以说是一匹黑马。Code Igniter出现之时正是Symfony和CakePHP大行其道、Zend Framework万众期待的时刻。可凭借着独特的设计思想,Code Igniter吸引了大批开发者。这点从其火爆的官方论坛就可得到证实。

      Code Igniter推崇“简单就是美”这一原则。没有花哨的设计模式、没有华丽的对象结构,一切都是那么简单。几行代码就能开始运行,再加几行代码就可以进行输出。大部分日常开发中用到的东西都可以立即找到,并且可以很容易的使用。Code Igniter可谓是“大道至简”的典范。

      但是,Code Igniter本身的实现不太理想。内部结构过于混乱,虽然简单易用,但缺乏扩展能力。因此在发展到1.5系列版本时,作者不得不通过增加各种hooks来为框架提供扩展能力。

      国内PHP开发框架

      国内虽然过去也曾有开发者发布过一些框架,但这些框架要么太过简单,要么和某一类型的应用紧密耦合,缺乏通用性。直到进入2006年,随着PHP在国内的大量应用和追捧,真正的国产PHP开发框架才陆续发布。

      FCS(http://fcs.org.cn/)

      FCS是从Java的Struts 结构移植过来的中文PHP开发框架,使用面向对象的开发结构和MVC模式,并且模拟实现了Struts的标签库,借鉴了国外一些不错的思想,尤其是Java框架方面,因此熟悉Java的开发人员相对比较容易上手,其模版引擎、缓存机制、认证机制和扩展性方面均表现不凡。

      在借鉴国外优秀思想的同时,FCS也更多地考虑了国内的应用开发需要。PHP4兼容、完全支持UTF-8,以及PATHINFO支持等,更加有利于国内的主机环境和开发需要。秉着易用和易扩展的原则,FCS采用容易理解的项目、模块和操作机制加上内置的一些自动化操作方法,让应用开发变得更加简单,其功能可以通过基类库以及各种插件的形式灵活扩展,从而满足日益增长的业务需求。正是因为具备良好的开发结构,使得FCS在开发大型应用的时候并不会显得有很多障碍,基于构件的方式,以及配合框架的项目管理机制同样可以让你在处理大型应用的时候一展所长。

    FCS力求精简的代码和全中文化的文档、注释,有利于国内PHP开发人员学习和掌握,不过根据目前的情况来看,官方的文档和社区支持目前还比较缺乏,而且对Ajax的支持还不够全面,因此国内的应用成熟度还不够。

      FleaPHP(http://www.fleaphp.org/)

      FleaPHP从发展上看,是一个具有一定历史的框架。在过去三年中,FleaPHP是作者发布了从PFC1到PFC3系列和flea1试验框架后,推出的第一个真正成熟、稳定的开发框架。

      与许多其他框架不同,FleaPHP设计之初,就是围绕快速开发和充分利用PHP自身优势两个重点展开的。因此FleaPHP最大的特点就是极高的模块化程度和扩展能力。

      FleaPHP框架的核心非常小,但通过灵活的配置,可以组合出各种类型的基础架构。对于简单的脚本页面,FleaPHP不需要载入MVC模式,只需要为应用程序提供业务逻辑和数据库服务。而对于复杂的应用程序,FleaPHP可以完成从MVC模式调用、访问控制、数据验证到文件上传、图片处理等各种各样的任务。

      正是因为这种出色的定制和扩展能力,FleaPHP真正接近了“满足从简单应用到企业开发的各种需求”这个目标。而且与许多其他框架不同, FleaPHP是一个完全在实际开发中精炼出来的框架。因此伴随着FleaPHP的发展,各种各样的实际应用也相继出现。在FleaPHP官方网站上,可以看到各种各样的实际应用。从最简单的企业宣传网站,到复杂的社区网站、企业内部系统等等,不一而足。

      FleaPHP作为一个完全国产的框架,具有完全中文化的文档、代码注释,并且在扩展功能上也注重考虑国内开发者的实际需求。因此相对于国外的各种框架,FleaPHP更容易被国内开发者所接受。

      但是,也正因为处在国内,FleaPHP面临比国外同行多得多的困难。缺乏足够的贡献者、无礼的责难,以及充满怀疑的眼光,这些都让 FleaPHP的开发团队成员需要更多的奉献精神。而且由于缺乏足够的贡献者,FleaPHP框架目前在文档和扩展功能方面,与其他成熟框架相比还有不小的差距。

      并且与其他所有的PHP开发框架一样,FleaPHP也没有找到帮助开发者分离应用程序领域逻辑的途径。虽然有指导文档,但对于初级开发者来说,一个可以拿来就用的领域逻辑基础会显得很实用。

      反思与进取

      RoR带来的冲击波还远为平息,但PHP开发者们已经在开始反思一味追随RoR的脚步是否真的能够为PHP开发带来质变?

      RoR之所以能够取得如此巨大的成功,除了RoR本身的设计思想外,还有一个重要原因就是RoR充分利用了Ruby这种语言的特长。将Ruby 动态语言的优势发挥得淋漓尽致。而在PHP中如果只是单纯照搬RoR中设计,则要处处遇到PHP语言本身的限制。为了绕开这些限制,开发者不得不用一些难以理解的技巧来解决问题。但这样一来通常会导致框架的结构变得晦涩难懂、性能受到损害。

      在这种反思中,Code Igniter、FleaPHP等框架就是对这个问题的最好回答。只有充分利用PHP语言本身的优势,才能真正让PHP开发变得更简单、更有趣。

      发展到今天,各种PHP开发框架虽然具有各自的特色,但几乎都是为了提高开发效率而努力。但是,虽然其中部分框架注意到了提高应用程序可维护性的问题,但都没有为领域逻辑分离这个至关重要的问题提出解决方案。而这正是这些框架在未来的发展目标。

      对于简单的Web应用和复杂的企业应用,两者之间的差别就注定了采用一种固定的架构是无法满足需求的。因此像FleaPHP这样能够提供自定义架构能力的框架,可以让开发者尝试用一个框架的不同组合来解决从简单到复杂的不同程度的需求。

      未来,PHP将成为Web开发领域中越来越重要的平台。因此我们相信会出现更多更好的开发框架。虽然作为开发者来说,并不一定需要采用某一个框架来解决问题。但正是因为这些不断出现的框架,我们对使用PHP开发Web应用的理解和把握得到了一次次的推动。  
  • Google CEO Eric Schmidt 访谈录续

    2008-05-08 16:28:18

    新闻来源:翻译自CNBC  作者:35公里

    这是 Google CEO Eric Schmidt 接受 CNBC 记者 Bartiromo 专访的第三部分,谈到了 Google 的福利,Google 广告业务的优势,谈到了创新,最后再次谈到微软对Yahoo!的收购。

    Bartiromo:
    长期以来,人们说,看,Google 有那么令人难以置信的园区,舍得花钱,舍得给员工提供福利,确保人人都快乐。你是否开始对员工的增长以及开销有新的管理办法,或者比以前更甚。

    Schmidt:
    每天我四处看看,都能看到我们为员工提供的新福利,这是 Google 文化的一部分,我们乐于这样做。当然,我们的毛利率也允许我们这样做。出于几个原因,我们已经放慢新员工的招募速度,最大原因是我们目前想不出让他们做什么。但今年我们仍然会雇佣一千人左右。

    Bartiromo:
    让我们再回过头谈谈 DoubleClick 的收购,你的广告客户有没有对此有抗拒心理?他们可能说,看,我们已经在 Google 的搜索广告中花了这么多钱,为什么还要在搜索之外的地方再投入?你是什么让他们在搜索之外的其它广告媒介上花更多钱?

    Schmidt:
    因为他们能挣得回来,也能看到效果。我们从不要客户花看不到效益的钱,也不是好生意。所以,当我们进入这些市场,我希望说,我们有一些工具,可以向你证明,如果你将钱放在那里,你确实会获得销售收入。所以,我们的创新模式在各种广告领域,非独文字广告,都可以带来真实的销售收入,我们能做到,如果我们能做到,就是好生意,如果做不到,就不该做这样的生意。

    Bartiromo:
    因为能看到效果,所以,即使在现在的经济衰退中你仍然没有看到广告业务的萎缩。

    Schmidt:
    ...

    Bartiromo:
    你同意吗?

    Schmidt:
    那时我们的希望。我们的希望是,即使在衰退中,人们也说,我们会把钱放在那些值得花的地方。现在,我看不出我们在衰退。

    Bartiromo:
    你以前说过,增长速度需要放缓,那什么是合适的幅度?

    Schmidt:
    我不知道,但很显然,我们不会设定一个增长幅度,我们会设定一个创新幅度。我们的观念是,持续投资新的事物,让它尽可能成长,而我们也有能力将这些新产品交给消费者。当然,他们必须学习如何使用,我们会和他们交谈,这里面牵扯到很多市场营销的事情,它们不会自己去做。有了新主意,人们必须感到满意,一旦他们感到满意了,我们发现增长就会...

    Bartiromo:
    作为一个从事技术的人,创新就是你终身的事业。你能告诉我最创新的事是什么吗?从你的角度看,下一个巨大创新会是什么?

    Schmidt:
    我一直觉得理解知识,语言翻译是最大的创新。如果我不知道一些东西,看着电脑,读读英文,分析一下那是什么,把它翻译成另外一种语言,说那种语言的人看了,说,啊,真难以相信。对我来说,这很神奇,但实际上不是,这只是好的计算机科技,我们现在就出在这个水平。而真正让我折服的东西是,计算机做一些人不不能做的事,同时将事情翻译成00种语言,帮我做出总结,为我找到一些我不知道但感兴趣的东西,我们目前还达不到这个程度。

    Bartiromo:
    Eric,你的股票在很短的时间内从750美元跌到450美元,你认为这是什么引起的?


    Schmidt:
    我不知道。我们不会盯着短期内的股票价格。我们说过,因为公司已经上市,我们走上漫漫征途,我们需要股东和我们在一起。短期的波动不是我们所关心的,我们也不谈论它。我们关心我们前面的巨大机会,那是个数万亿美元的广告市场,我们不会全部吃下,但我们会得到其中非常可观的一部分。我们的目标是将这些变成持久的东西,这就是这个领域中最大的技术创新。

    Bartiromo:
    所以,你们当前的首要任务仍然是继续追逐那个巨大的广告市场,还有别的吗?


    Schmidt:
    我们第一位任务是最终用户满意。比如,人们对 Google 搜索结果满意吗,每天我们都推出新的改进,更多的分类,更多内容,这些是使 Google 成为伟大公司的基础。这是我们的首要任务,甚至比广告还重要。

    我们的下一个大动作是进入应用领域,在这个领域,人们每天都花大量时间在信息上,我们可以帮助他们,比如,Email,还有很多别的,如,他们的个人数据,他们的电子表格,日历,我们可以帮他们搜索,帮他们生活在数字时代,如果我们做得好,也可以在移动设备上实现这一切。

    Bartiromo:
    对消费者来说这很精彩,它们免费,他们已经可以使用这些,不必付钱,但...

    Schmidt:
    这是非常好的模式。

    Bartiromo: Yeah.

    Schmidt:
    工作得很好。

    Bartiromo:
    但那些企业用户怎么样?我知道现在正进行一些测试,你们从企业用户听到了什么?

    Schmidt:
    我们正在企业网络的内部做一些我们已经在消费用户中做过的事情。企业用户和消费用户不同,他们对可靠性有更高的需求,所以我们签署了一些协议保证一定层级的服务质量,然后我们向企业收费,在这些情形,用户会付钱得到一些免费用户得不到的东西。他们还有其它需求,他们需要更高的安全,他们需要同他们已有的系统进行集成,这是一个漫长的过程,但很有价值,这些用户会花费20,30或40年进入我们的模式,我们喜欢这个模式,这是企业市场,是我涉足已久的市场,一个最终会对 Google 非常有利的领域。

    Bartiromo:
    你是否曾回首看一下 Google 成长历程,我的意思是,长期以来,Google 是最受艳羡的公司之一,然后变成一个庞然大物,接着当 Google 越来越大,人们就会感到害怕,就象当初微软一样。你是否害怕这种感觉?

    Schmidt:
    我们确实害怕这种感觉,因为我们要保证自己的这种感觉和我们所做的一致。Google 有一套准则,每个公司都如此,我们的准则是不做恶,这个准则为最终用户服务。我们的创始人之一,Larry Page,曾写过一篇关于如何做一个大公司的文章,比如,他写到,我们永远不会窃取用户的数据,如果你对我们不满意,你可以很容易投奔我们的对手,很多公司做不到这一条。我们会在公司的结构,可预知性以及我们的真正使命间达到平衡。如果我们拿你当最终用户提供服务,而你对我们不满,我们就对你做手脚,那是不对的,我们不是这样,我们会让你选择别人。

    Bartiromo:
    最后一个问题,Eric,我们不得不面对这样的现实,微软需要Yahoo!,如果它们走到了一起,你认为 Google 会处于什么样的不利境地?

    Schmidt:
    很多人为此争论,我们内部也有很多争论。一方面,有人说,我走我的阳关道,他们走他们的独木桥;另一方面,也有人想到前车之鉴,我前面提过,还有这种合并的可能性。所以,我不知道,我们一直为此争论。

    Bartiromo:
    Eric,你还有补充的吗?

    Schmidt:
    没有,我很好。谢谢。

    Bartiromo:
    谢谢你接受我们采访。
  • Linux手机研发要过五大难关 *

    2008-05-08 13:34:36

      Linux手机的前途似乎很少有人怀疑过。曾经做过的,现在正在做的,即将打算做的,在国内估计不下数十家公司。大家都想从中淘一桶金,不过大多是乘兴而来败兴而归,少则损失几百万,多则数千万,有的甚至整个公司因此一厥不振。在真正意义把Linux手机做成功的,在国内可以说曲指可数。本来以为可以靠开源软件与国外大公司站在同一起跑线上的,结果还是起了大早赶了晚集。

      Linux手机研发是一项浩大的工程,据说国外一般的估计是,Linux手机平台的研发至少要耗资2000万美元,历时3-5年时间才可能取得成功。当我们开始broncho项目时,有个Trolltech公司的老外发邮件给我们说,不要把你们的时间和资金浪费在GTK上了,MOTO和XXX(忘记了)公司耗资几亿美金,结果还是买了QT才搞成功的。

      有那么多开源软件可以免费使用,看似只需要做下简单的集成就行了,为什么还会那样难呢?据笔者的经验来看,国内Linux手机研发要过五大难关:

      人才关:人无疑是软件开发中最重要的因素,而国内Linux开发方面的人才稀缺,真正参与到开源项目中的人更是凤毛麟角。据这几年的面试经验来看,很多在简历上号称有N年工作经验,精通N多技术,面试之前让我都诚惶诚恐的牛人,面试之后才发现其水平实在让人难以恭维。后来听人说高手是不会出来找工作的(都是工作机会找上门的),我才死心了,静下心来做人才培养和团队建议。即使有机会把一些高手聚集一起,以国内的企业文件和高手的特质来说,让他们溶合为一个团队不是不可能,至少也是要花相当的时间才行。另外一方面就是团队成员的稳定性,Linux手机研发相对门槛比较高,换人代价相对比较大,如果团队没有凝聚力,那就别想把它做成功了。在前一家公司,我见过一个日程模块换了四个人,代码乱七八糟,膨胀到3W多行,维护两年后达到数百个BUG,整个模块无人敢碰。

      时间关:软件工程里关于时间比喻,用得最多的莫过了女人怀孩子了,一个女人十月怀胎可以生一个BABY,但十个女人不可能一个月把BABY生下来。软件项目一样,时间是必不可少的因素,人多只能在一定范围内缩短时间。在国内,无论是个人还是公司,心浮气躁的居多,半年以上的研发时间都是不可接受的,很多水货手机正常项目周期是45天,要做3到5年时间,恐怕没有老板愿意去投资。结果大家都把计划订得相当短,我见过一些搞笑的计划,我私下里说,他们能厉害到能在这么短时间内搞定,我可能只有转行了。计划时间短了,老板同意立项了,接下来以进度为维一的目标,拼命赶工,计划还是一再延期,老板给的压力越来越大,所谓欲速则不达,结果可想而知。我见过一个名片模块,从设计到提交测试只花了两周时间,结果调试了两年多时间,其中发现600多个BUG。(我非常庆幸broncho有老魏这样高瞻远瞩的领导者,我们才能始终坚持质量第一进度第二的原则,每走一步都是真正前进了一步。)

      稳定性:有位大师说过,要评估增加一个新特征需要多少时间相对容易,但很难评估将充满BUG的代码修改成最终发布的产品需要多少时间。实际几乎所有Linux手机都把功能做出来了,多半是以牺牲质量为代价的,东西是出来了,但到出产品的时间没有人可以估计。听说几个公司把Linux手机做出来了,小批量生产之后,再也不敢生产了,原因就在于稳定性太差了。把这么大项目通过调试和测试变稳定,可以说比推倒重来代价更大。有次和一个芯片厂家的销售总监聊天,他见多识广,开门见山就问我们项目的稳定性如何,他说现在大家做智能手机,面临最大的问题是稳定性,特别是Linux智能手机,如果不能解决这个问题,什么都白做了。前期我们在设计和编码投入的大量精力没有白费,经过这两周的压力测试,修改一些BUG之后,稳定性已经达到不错的程度了。

      扩展性:我的上司老魏有句口头禅,做一款产品不容易吗,闭着眼睛也可以搞定,做一个平台,在平台上建立一个产品线那才叫有挑战。这话也是源自于前一家公司的一个项目,老魏是那个项目的事实上的负责人,历时两年多把那个项目做完了,到产品化时,几个最基本的手法,调整屏幕大小,横屏和国际化,居然都非常困难,原因是在设计时根本就没有考虑到产品化的问题。后来我写过一篇<建立手机平台的产品线>的BLOG, 没有引起什么反响,甚至连评论都没有一条。不过让我非常高兴的是,收到了台湾著名的开源软件高手黄敬群老师的来信,说想在他的报告中引用那篇BLOG。国内关于这方面的考虑实在太少了,部分原因可能是很多Linux手机的开发人员都是传统嵌入时开发(动则就是几W行汇编)转过来的,还没有意识到Linux智能手机与传统嵌入式开发的不同吧。

      特色关:现在水货手机大部分都用MTK和展讯的方案,除了手机外观之外,里面的东西基本上都是一样一模的,最多换一下铃音和图片而已。没有特色就意味着软件失去价值,只能拼硬件,从PC的经验的来看,硬件的利润是透明的,除了上游的芯片厂家外,下游的集成商只能赚点蝇头小利。所以大家除了拼了价格之外还是拼价格,已经进入微利时代了,有什么办法呢,没有研发实力,最终只能沦为代工厂。如果没有特色,Linux手机的研发成本将无法消化,根本不可能与MTK的水货机和Windows mobile等智能手机去竞争。

    作者联系方式:李先静 <xianjimli at hotmail dot com>
  • Google CEO Eric Schmidt 访谈录 *

    2008-05-05 13:03:06

    来自:solidot 作者:35公里

      CNBC 的 Maria Bartiromo 周二在洛山矶的 Milken Conference 上对 Google CEO Eric Schmidt 博士做了一次访谈,谈到 Google 的成长,美国经济的衰退,微软对 Yahoo! 的收购,在线广告等话题。

    Maria Bartiromo:
    Eric, 谢谢接受我们的访谈。

    Eric Schmidt:
    谢谢再次采访我。

    Bartiromo:
    华尔街正在酝酿一场关于 Google 增长率的争论,Google 第三季度增长46%,第四季度增长40%,接着是30%,以后每个季度的增长率会有1.5%的下滑,在目前经济衰退的大环境下,你认为 Google 能独善其身吗?

    Schmidt:
    你刚才提到的是 Google 在美国的增长数字,在全球来讲,我们有很好的增长率,而且,美国的数字要考虑以下因素,一年前,我们有一个非常强劲的季度增长率,所以我们在美国的真实增长率是不错的。虽然总体增长在减慢,但将就我们的规模,我们的业务仍旧是很好的。

    Bartiromo:
    当你们到达一定规模,已经拥有70%的市场份额,再争取更多份额就不是那么容易了。

    Schmidt:
    但我们保持增长的渠道有多种,现在有更多的人使用 Internet,更多人使用电子商务,更多人点击广告,而我们的广告技术也越来越好,这些因素中任何一种都可以让我们保持增长。我们对宏观经济环境不是那么敏感,至少现在是这样。我们对经济倒退也不是非常敏感,但我们对新产品的改进是很敏感的。

    Bartiromo:
    comScore 的数据让所有人的预测都不容乐观,人们也争论这些数据是否准确。你如何保证你们的增长,在人人都捂紧钱袋的时候,你们的广告客户也许会减少预算,我的意思是,2004年到2007年的增长已经不再了。

    Schmidt:
    我说过,如果你拿5,6或7年做一个考量点,那增长是趋缓的,所以我不觉得那是多么大的变换,你知道,很多事情今天是一个样,明天是另一个样。就我们而言,我关注质量,而且我们的业务模式非常简单。如果我们少投放一些广告,那那些广告被关注的就会多,那些广告的价值就更高,所以,我们目前处于这样一种奇妙的境地,我们投放的广告少反而更砖钱,因为我们的广告的质量高,这是 Google 的一个秘密。

    Bartiromo:
    是的,Mary Meeker 也这样说,她曾经说,你们其实是从经济衰退中受益,因为这样你们可以把广告做得更好。

    Schmidt:
    你知道,如果你经营一个公司,你需要非常谨慎地支配你的市场营销开支,我们认为,你应当把这些开支放在一些你可以测算效果的地方,这样你才会知道自己的广告是否有效,我们所做的就是这个。

    Bartiromo:
    我们来说说 DoubleClick,你们收购了这个公司,目前合并工作进展得怎么样?

    Schmidt:
    工作才刚开始。大约3周前我们才着手做这些事,我们正在将他们的产品和我们的产品进行融合,让用户得到更好的工具,广告客户可以部署更多广告,出版者可以有更多地方可以投放他们的信息,这是我们长期以来一直等待的一种融合,现在正在进行,大约要6个月的时间才能将所有这一切集成到一起。

    Bartiromo:
    你认为融合过程要6个月,是吗?

    Schmidt:
    我们是这样要求的,当然,在 Google 任何事都是一种尝试,我们尝试这个,尝试那个,前期的一些迹象表明我们很有可能在这个时间内完成这些工作。

    Bartiromo:
    Google 拥有搜索广告,这不是秘密,但,那些视觉广告的情形是怎么样?我们可以说那个市场还有待争夺吗?你们得到了 DoubleClick,微软有 aQuantis,你们会争夺那个市场吗?

    Schmidt:
    可以说,Google 在视觉广告领域不是领先者,但我们的客户需要同时购买文字广告,视觉广告以及其他的广告模式,我们正在开发的一系列工具,加上 DoubleClick 会让我们为这样的客户提供一套简单的方案,这将加强我们在视觉广告上的竞争力。我认为我们的技术更好,我们现在需要做的只是赢得客户的尊重与认知。

    Bartiromo:
    你怎样保证那是一项正确的收购,而不是让它自行其事,或你们自己来做。

    Schmidt:
    我们自己尝试过。但客户很喜欢 DoubleClick。我们的观察也表明,有时候,其它公司可以做出更好的产品,DoubleClick 就是这样的产品,这是我们进行这项收购的原因。

    Bartiromo:
    就测试而言,你们在 Yahoo! 那边做了些什么?你上次说,你们正在 Yahoo! 那里部署广告,进展得怎么样?

    Schmidt:
    我们做了两个星期的测试,现在已经结束,Yahoo!将他们的一小部分广告换成我们的,这是我们商业对话的一小部分,很显然,我无法进入,但我相信这是目前 Yahoo! 正在考虑的一个战略选项。

    Bartiromo:
    事情过去之后,我猜想司法部认为那是一次询价,你听说过司法部关于此事的说法吗?

    Schmidt:
    任何人可以对任何交易进行评论,如果收购 Yahoo!,司法部也会做出评论,反托拉斯法允许政府对商业交易和收购都进行观察。

    Bartiromo:
    你和 Yahoo! 有什么可以融合的,你希望看到一种什么样的伙伴关系。

    Schmidt:
    我们喜欢和 Yahoo! 一起共事,我们之间也有竞争,他们是一家运行良好,令人印象深刻的公司。我们非常关注微软对 Yahoo! 的收购,鉴于微软的历史,鉴于 Yahoo! 资产的价值,我们担心这样的优秀资产进入一个错误的买家手中,会步入歧途。

    Bartiromo:
    你说微软的历史,你的意思是?

    Schmidt:
    我想人们知道10年前的反托拉斯案,微软在这方面是有前科的。

    Bartiromo:
    关于微软和Yahoo!我们知道什么?我们正在等待消息,也许是个不怀好意的消息,我们不知道接下来会发生什么,但微软同Yahoo!的组合对 Google 将是一个什么样的挑战?

    Schmidt:
    目前而言,我们还不知道会发生什么,我们从新闻中看到一些讨论。如果最终的合并顺利实现,对微软而言,将是一些产品的合并,同时也消除了用户的选择,尤其是电子邮件,即时消息,以及那些他们已经拥有80%到90%市场的东西,微软乐于看到用户失去选择。

    Bartiromo:
    Google 也有这些杀手级的应用,不管是 Gmail 还是地图,或者电子表格,最终的游戏将是你们直接和微软竞争?

    Schmidt:
    Google 其实是一个创新者,我们一直重视竞争。我们发现,如果我们可以开发一种简单的全新产品,解决一些让你头疼的问题,我们就可以得到你的生意,得到你的关注,得到你的流量。我们正在尝试一种叫做云计算的技术,这是一个强大的Web服务,可以做一些常规的任务,如电子邮件,字处理,而数据却是保存在“云”里,被别的地方的其他专业人员保存,管理。你不必关心将信息放在哪里,我们非常喜欢这个模式,对其它公司,这是一个技术威胁,是一种技术突破。

    Bartiromo:
    如果微软恶意收购,你会任何反应?

    Schmidt:
    那要看他们的战略最终是否成功。简单讲,我们已经指出了坏结果的可能性,但那确实要看发生了那些恶意行为。

    Bartiromo:
    你知道事情会如何进展吗?我的意思是他们可以到公开的股票市场,购买 Yahoo! 的股票,接着开始一场股东代理权争夺战。

    Schmidt:
    我所知道的和媒体所说的一样,实质上就是你取代董事会,然后强迫交易。

    Bartiromo:
    让我们谈谈 YouTube 和 MySpace。YouTube 的发展非常快,你觉得是什么推动了它。

    Schmidt:
    视频是很强大的东西,也很令人着迷。你知道,我们一开始是做滑稽视频,但现在,因为人们有那么多数码相机,他们可以上载任何东西。将来,我们会在 YouTube 上看到一些专业视频,人们在使用这个平台,因为它有非常大的受众,他们在学习如何接近这些受众,我们目前还没有在赢利方面获得突破。虽然我们有很大的流量,我们有很多有趣,有创意的人,以及争议,我们在一些国际被封杀,我还没有找出一个完美的赢利模式,我们在做,这是今年头等重要的事。

    Bartiromo:
    很多人觉得这是你们的一个绝佳机会,那么让 YouTube 赢利会花多长时间,会是1年,还是5年,你有没有一个时间框架?

    Schmidt:
    我相信今年就会出现最好的产品,它们是新产品,我们尚未宣布,它们不仅仅将广告放到人们正在用的那些内容中,我们还有很多,当然,Google 是个创新的地方(Schmidt 讲话从来都是语无伦次 - 译者)。Yahoo! 团队正在尝试各种不同的广告形式,一些更容易参与其中,更有创意,更有趣的形式。Google 相信广告有其自身的价值,对客户受众也有价值,不仅仅是广告发布者,还包括受众。

    Bartiromo:
    人们就是想看。

    Schmidt:
    当人们看到自己想要的广告,看到他们关心的事情。

    Bartiromo:
    但是,你知道,这让我想起 MySpace,我想知道,入股 MySpace 包含着收入方面的期许,那会影响未来两年的利润吗?

    Schmidt:
    我们已经指出,我这里再重复一遍,整个的社会网络空间对我们来说,要在其中实现赢利,比起其他我们已经涉足的领域要难。这与人们的出发点有关,当你在社会网络中,你在看人们的照片,你在想你的朋友在哪里,你可能不会想着要买辆新车,买件衣服或书。所以,在这里开发广告,比我们想的更难,但我们在做,并且充满希望。

    Bartiromo: 你们现在有120亿现金,是吗?

    Schmidt: 还稍多一点。

    Bartiromo:
    这些钱你计划怎么花?很多人说,看这个公司经营良好,增长依然强劲,尤其是全球增长,为什么不派发红利,为什么不回购股票?

    Schmidt:
    我们喜欢看着那些钱躺在银行里。

    Bartiromo:
    所以你可以干脆地排除派发红利的可能?

    Schmidt:
    首先,我们从来没有排除任何事情。但现在,我们很高兴看到我们的现金在积攒,现金代表未来的战略可能,你知道,我们甚至可以参与无线频谱的竞拍,虽然我们失败了,但我们的财务资源允许我们参与一场46.5亿美金的竞拍,如果没有现金,这是不可想象。

    Bartiromo: 你从中获得了什么?

    Schmidt:
    从一个公司的角度讲,我们参与了一项重要的活动。从消费者的角度看,我们知道,我们的参与证明了网络仍然是公开的,消费者仍然有选择的权利,还有比这更好的吗?

    Bartiromo:
    是,FCC 也为此高兴。关于移动,我记得你曾在一次会议中称移动是一个公司头等重要的事,你对此的预想是什么?

    Schmidt:
    我所认识的任何人,你所认识的所有人都有手机,在每个国家都这样。

    Bartiromo:
    我平时并不带着自己的电脑出门。

    Schmidt:
    在发达国家,手机的覆盖率几乎是100%,所以这是一个很庞大的人群,在未来三五年,将有另外的超过10亿的新手机用户出现,最终世界上将有50到60亿手机用户,这种规模是空前的。所以,这是一个我们可以利用的平台,我们的手机应用,不管是搜索还广告都发展迅猛,我觉得人们会利用手机做越来越多的有趣的事,我指的是所有小手机,大手机,大屏幕手机,那些不象手机的东西,那些可以移动的设备。

    将来,通讯业我帮助我们活得更好,因为他们把数以十亿的钱用来在各地建设网络,不管我去哪里,打开 iPhone 或BlackBerry,都可以立刻进入我自己的世界,即使我去的是一个完全陌生的国家,这是了不起的成就。

    Bartiromo:
    你刚才说的那个世界,我们怎么才能进入?换句话说,我们需要他们提供不同屏幕吗?我的意思是,你是否需要一个更大一点的屏幕来访问那些数据?我们怎样才能实现?

    Schmidt:
    其中一个问题是我们还不知道如何改变指尖的大小。

    Bartiromo: 对。

    Schmidt: 这个是没有什么方案可以解决的。

    Bartiromo: 对。

    Schmidt:
    我们需要一定尺寸的屏幕。但有另外的技术,比如,手机的处理器变得更快,电池持续的时间更久,屏幕变得更亮,整个设备遍得更轻,在我们谈论这些的时候,这些事正在发生,我们知道现在已经有这样的设备,因为我们知道地图的使用在剧增,Google Maps 获得巨大成功。这些手机带 GPS,所以如果我要找一家星巴客,我只要输入星巴客,就会告诉我那边有一家。在我看来,这是非常巨大的进步,而且这些服务在几乎全世界都可以得到。

    Bartiromo:
    真的很神奇。全球变成 Google 的一个热点,请告诉我你是如何保持这些东西继续发展,对 Google 而言,美国之外的最大机会是什么?

    Dr. Schmidt:
    首先,Internet 在美国之外的国家发展得比美国都快,另外,美国之外在线广告的增长率也高于美国,我们现在实行弱势美元策略,因为美元变得很弱,这对我们也有帮助,基于所有这些因素,美国之外的收入在显著增长。

    就我们而言,美国市场和美国之外的市场最大的区别,其实是唯一的区别,是语言。除此之外,很简单,任何人的需要都是一样的,他们需要时装,信息,需要产品,需要电子商务,他们现在就要,他们需要乐趣,要使用信用卡或借记卡。所以我们努力工作以在全球实现这些。我想,如果美国绝大多数大型公司都这样做好自己的全球年定位,都可以实现这样的成长。

    Bartiromo:
    你环目四望,什么是最重要的,是那些最富裕的地区吗?

    Schmidt:
    对我们来说,当然欧洲是最重要的,而我们的欧洲市场非常好,我们在那里有相对更高的市场占有率。那里有非常老练的消费者,有非常成熟的广告使用率。如果你放眼全球广告市场,美国,日本,中国,英国,法国,欧洲,它们是最大的5个或6个市场。当然,我们在欧洲做得非常好,在日本做得非常好,而我们也一直在进入中国市场,我们在那里的成长也不错。

    Bartiromo:
    那里是怎么了?你们在所有市场都是第一名,除了亚洲的一些国家。你们怎么打破这个局面并站稳脚跟?

    Schmidt:
    不同情况不同对待,在中国,当然,那里有制度和审查,我们没有及时进入,现在,我们在那里不是第一名,在其它一些国家,我们存在一些语言方面的问题,亚洲语言在断句上很莫名其妙,比如,在泰语中,所有单词都放在一个长长的句子中,他们没有断句,所以,开发针对这种语言的搜索和索引技术对我们来说需要稍微长一点的时间。

    Bartiromo:
    那你现在遇到的最大的挑战是什么?

    Schmidt:
    是 Goole 内部的事,我们管理创新过程的能力,管理一个这样大公司,进人而言,什么人该做什么事。我们全球有50个开发中心,人们位于不同时区,你在做这个吗,你在做那个吗,我在和你一起工作吗,我如何提交代码,诸如此类的事情。
  • 高效使用Linux的七个习惯

    2008-05-04 14:03:45

      刚开始使用Linux时你也许会感到不习惯,许多高手也都有这样的经历。毕竟,曾经他们也都是新手。但是现在Linux团体已经在为新用户提供有关指南,手册和基本的技术文档来使他们尽快上手方面做的相当出色。三年前我首次接触Linux,很多人通过论坛,在线聊天和电子邮件等帮助我,这些“企鹅”们真是相当热心。

      对此,我深感应该为无私帮助我的团体做一些力所能及的贡献,我应该给刚使用Linux的朋友写点什么。这里我编译了七个当我刚入门时别人告诉我的七个习惯。我相信如果你运用了这七个习惯,在你使用Linux时你会感觉更安全,便利,学到很多实用的东西,最终你会发现使用Linux也是那样的愉悦。

      1-不要以根用户登录

      这是你首先应该注意和遵守的。以前我们可能已经习惯了Windows,我们一直以为权限越高越好,所以我们喜欢以管理员帐户登录。但是这也许是Windows经常被病毒骚扰和不安全的重要原因,现在太多人都在用根用户登录。

      权限越高责任越大,拥有管理员权限你需要谨慎对待你所做的任何事情,但是错误还是不可避免。我记得我最先使用的是Suse Linux,有很多事项需要管理但是没有图像用户界面我不知道如何做,于是我天真的注销并登录到了根用户的图形界面。根用户图形界面的默认壁纸是一排排的高亮地雷。这些符号在我脑海里盘旋,我很小心没有终于没有做错什么。

      那么以根用户登录有那些危险那?

      1.你可以想象你在没有保护网的情况下打秋千,会不会感到害怕?这和你以根用户登录的道理是一样的,你会不经意间毁掉你的系统。

      2.你可能会不小心运行恶意软件。通常在根用户模式下任何程序的启动都默认给予所有权限的。

      3.如果你的系统有安全漏洞没有修补,你就可能被别人完全控制。

      4.这是使用Unix的惯例,除非必须那么不要轻易在根用户下运行任何东西。如果一个不是自己触发的程序请求根用户权限,那么你就要小心了。

      通常,我们不必登录根用户界面,下面是几条技巧:

      *使用“sudo”或“su”命令,并在你完成管理时退出

      *如果你不知道如何使用命令行完成这些,你可以使用“gksu”或“kdesu”。比如,按 Alt+F2并打出“gksu nautilus”,并在你完成时马上结束程序。

      2-合理的命名你的文件

      Linux环境下,你可以按照你的意愿命名文件,但是以下两点是不允许的:1)“/”是根目录专用的;2)不要使用无效字符。其它的在技术上都是可以的,但是为了避免以后的麻烦这里有几点经验你可以遵守:

      *经验上,只使用字母、数字、连接符(-)和下划线(_)

      *避免使用美元符($),括弧和百分号(%)等特殊字符,这些字符对于shell有着特殊意义,可能会引起冲突

      *避免使用空格,在终端上处理含有空格的文件是很愚蠢的。你可以用连接符或下划线来代替空格。

      这些已经基本上成为我的习惯,并且我在使用Windows和MAC时也不自觉的遵守这些准则。

      3-将你的home目录放在一个独立的分区上

     这样做会给你很大的灵活性。将home目录放在一个独立的分区上,可以在你重装系统甚至升级你的整个版本而不会丢失你的数据和个人设置。你可以在根目录下重新设置你所需要的而保留home分区。现在你可以将你需要的随意分类而不必担心的数据和个人设置,你可以随时使用它们。

      如果碰巧在你安装系统之后才懂得这一点,不要失望。你可以按照Carthik在ubantu Blog上的一片名为“Move /home to it’s own partition”的指导道一步步的完成。

      4-合理的灾难管理

      Linux是比较强大和稳定的,但是任何系统都会崩溃。在你CTRL-ALT-DEL,重启之前,你应该学会如何处理你遇到的事故。你需要知道如何在不重启的情况下轻松恢复你的系统。我个人认为这种情况分为几个不同的层次,如果前一步不奏效的话请转向下一步:

      1.我将“强制关闭”程序放在我的任务栏上,如果哪个程序出现问题可以单击“强制关闭”图标并结束该程序

      2.如果上一步不奏效,调用终端,用“ps -A”,记下那个出问题程序的进程号,结束它

      3.使用“killall”命令,比如“killall firefox-bin”

      4.如果整个图形界面都冻结,你已经不可能调用终端,按CTRL-ALT-F1,这样可以转到另一个终端,这样你就可以使用步骤2和3来结束出问题的程序。

      5.还不行的话,你可以使用CTRL-ALT-Backspace组合重启你的图形界面,但是要注意的是,这样会结束你正在运行的GUI程序。

      6.调用CTRL-ALT-F1再使用CTRL+ALT+DEL这样不会立即重启你的系统,只是按照正常模式重启,所以是安全的(假定你想要重启并且CTRL-ALT-F1可用)。

      7.如果这一切都不管用,也不用记着按强制重启按钮,尝试Raise a Skinny Elephant 。

      5-主动尝试

      你可能对朋友给你设置设计的当前版本和配置很满意,这适合你。这很好,但是可能会有比这更好的。为什么不尝试下Linux和开源的灵活性和丰富性呢?不要害怕尝试不同的程序,图形管理和桌面。实验直到你找到最适合你的。你可以这样想,你现在居住在世界上最好的地方,但是环球旅行也不会有什么坏处的?或许说不定你还可以找到一个更好的居住地,就算不能,你旅行的时间也值得好好品味,你对其它国家,它们的人和风俗,思考方式了解的更多,最终说不定你会喜欢上这样的尝试。你尝试的任何新事物都会增加你的学识,一年左右的时间你将会对Linux和开源世界有一个很好的把握。

      我个人曾尝试过至少10种分配方式,4种桌面和五种桌面管理。我最近的文章《 Etymology of A Distro》使我对更多的分配感兴趣,象Zenwalk, Foresight和 Sabayon等。朋友,主动尝试,这对你有好处。

      在你尝试之前,你可以参考以下几点:

      *设置好你感觉最舒服的系统,因为你需要一个时刻工作的系统。这样你就可以按照下面的几点进行尝试

      *你可以利用虚拟机来完成。安装一个Vmware或Virtualbox,用它们来做测试

      *如果你不知道如何运用虚拟机,你可以设置一个独立分区来尝试

      *最好的,你可以用一个设置好的PC,再有一个当作测试用。这样你就可以随心所欲的进行尝试

      6-熟悉使用你的命令行

      虽然我不提倡你一定要学习命令行,有太多的文章一直强调学习命令行的重要性。这里我假设你已经知道他的重要性并且已经知道怎样用它处理一些简单的管理任务。你可以按照指导书和手册做相应的配置。但是不要一味的复制和粘贴。就是说,不止不加思考的执行命令许多有自由天性的人劝诫你要尽量深刻的理解每条命令行的含义,它能做什么。为什么手册上这样做的,而不是那样做?理解你所做步骤的基本原理。

      过了一段时间你就会感觉你已经能很好的运用它了。最后你会发现它仅仅是种伪装的语言。每条命令可能只是一些词语的首字母,或一个单词的缩写。你希望你的狗理解“Spike fetch ball”这样的长句,为什么不尝试理解下“sudo mv /file1 /file2”那?

      7-为你的用武之地做些准备

      我有过很多这样的经历,当有个朋友请求我在他的电脑上做些东西,但是由于他所选择的操作系统会出现糗事。有时候我有急事但是仅有的电脑有很挫的操作系统。不必痛苦,随身戴上你的linux系统,不管是存储在 U盘或CD上。有相当多的linux版本很方便的,象Knoppix, DSL和 Puppy Linux等。很惭愧,事实上我自己还没用上这个习惯,我想我也需要言行一致。 
  • 解答Ubuntu 8.04 中gvfs-fuse-daemon的疑惑

    2008-04-30 16:37:12

      这两天很多刚刚装好Ubuntu 8.04 的朋友给我反映说,他们打开系统监视器后在文件系统中看到一个叫 gvfs-fuse-daemon 的“奇怪”设备,其挂载点为"~/.gvfs",类型为"fuse.gvfs-fuse-daemon"。

      gvfs-fuse-daemon 还“占用“了大量的磁盘空间,而且更奇怪的是 gvfs-fuse-daemon 这个设备的磁盘空间占用的情况和“/”目录是一样的,进入到这个“奇怪”磁盘的挂载点去里看,里面没有任何文件。种种疑惑我都会在下文给大家解答!

      什么是GVFS

      GVFS是GNOME新一种虚拟文件系统。GVFS是用来代替过时的Gnome VFS虚拟文件系统。GVFS算是Gnome 2.22中一个比较大的改动,也Gnome 2.22中一个主要的新特性。而Ubuntu 8.04 也把这一新的特性集成了。  
      gvfs-fuse-daemon 怎么在这里



      细心的Ubuntuer可能已经发现了系统监视器里多出来了一个gvfs-fuse-daemon的“奇怪”设备,在以前的发行版里都没有见过个设备,而且这个设备还“占据”了很大一部分磁盘空间。这是因为让不支持 gvfs 的一些程序也能利用 gvfs 的强大功能, gvfs-fuse-daemon 把 gvfs 上的文件挂载到 ~/.gvfs目录下.我们在系统监视器看到的它占用的空间都是虚拟出来的,它并没有占用这么大的物理空间。

      GVFS包括两个部分

      GIO,是一个新的共享库,其为GLib中的一部分,负责为GVFS提供API接口

      GVFS本身,这是一个新的软件包后端封装载有各种类型的文件系统和协议,比如sftp, dav, smb, obexftp等等.
     
      GVFS有什么用

      GVFS带来了一系列的新功能,由于篇幅有限我就说几个大家平时常用的。 gvfs-fuse-daemon 可以把网络连接挂载在本地系统的"~/.gvfs"目录上,让你在操作是时候就像是在本地上系统上操作一样。同时你所挂载的网络以及别的文件系统将会被保存在"~/.gvfs"目录下。你还可以在最新的Nautilus中,你可以直接使用cdda://协议来访问CD,CD音轨将以WAV文件的形式可以直接得到。下面常用的FTP协议为例简单介绍GVFS的作用。




      在Nautilus中输入ftp://ftp.ubuntu.com后,FTP的目录就挂载在了 /home/ownlinux/.gvfs 目录上了(即为“~/.gvfs 目录”)。



    远程的FTP目录也被自动挂载到了桌面上

     


    卸载该目录也很新简单,只需要点击鼠标右键然后点卸载

     


    同时也被挂载到了computer:///目录上,即为文件浏览器中“计算机”的那个目录

      后记:我只是简单的给大家介绍了一下 gvfs-fuse-daemon ,主要目的就让大家对 gvfs-fuse-daemon 有一定的了解。其实系统监视器告诉你它”占用“的空间都是虚拟出来,不要被它“庞大”的体积吓倒。GVFS的功能远远不止我说的这些,由于篇幅有限,我就是一一介绍了。我会在以后的使用过程中给大家进一步的讲解。 
  • 女人最喜欢问题的标准答案

    2008-04-30 13:50:55

    想要生活要和谐,社会要先进——此教程不学好,已婚的容易搞分,未婚的容易终生,喜欢泡妞的容易发春,打算结婚的容易踹蹬,不想离婚的容易被扔~~~~ 回复可看标准答案(绿色部分)和相关分析



    问题一:你爱我吗?   

    错误答案A:“爱。”

    错误答案B:“这还用问吗?”

    错误答案C:“你烦不烦啊?

    标准答案:

    ==============================

    目光怜爱的望着对方三秒,然后神情的点一下头,同时发出“嗯”的声音,然后一把把她揽在怀里......

    解析:答案A会让她觉得你太不严肃了,纯粹胡弄她;答案B会让她觉得你对她的爱不够坚定,而且她一定会喋喋不休的问到底,让你给她明确的答案,够你烦的;答案C过后一定是一顿大架或冷战。其实女人对男人是不是爱她这件事儿心里特有数,她这么问纯粹就是撒娇调情,你抱抱她亲亲她比回答什么都让她高兴。

    ==============================

    问题二:你看我这件衣服好看吗?(衣服也可以换成新剪的头发、新修的指甲等。)

    错误答案A:“挺好看的。”

    错误答案B:“还行。”  

    错误答案C:“真好看,我老婆穿什么都好看。”   

    标准答案:

    ==============================

    “来来来,转一圈让我看看......”待她害羞的转完一圈后,把她拉过来,拉着她的手微笑的看着他说:“真挺好看的。”
    解析:答案A会让她觉得你应付她;答案B会让她觉得没自信,在她心里她穿什么你都应该觉得好;可是如果真说好看,像答案C一样她又会觉得你花言巧语不真诚。所以啊,你要表示出对她提的这个问题的认真程度,必须要仔细的看看再说。

    ==============================


    问题三:在她把她的闺蜜介绍给你认识之后,回到家她问:“你觉得我这朋友怎么样啊?”  

    错误答案A:“挺漂亮的。”

    错误答案B:“不怎么样,比你差远了。”

    错误答案C:“我都没怎么注意她。”   

    标准答案:

    ==============================

    “我觉得她对你挺真诚的,应该好好珍惜这样的朋友。”如果那闺蜜确实人品不怎么样,你就说:“你呀,就是傻孩子一个,交友要慎重,以后交朋友一定要让我见见,我给你把把关。”  

    解析:答案A纯粹是没事儿找抽型的,女人是绝不能允许你在她面前说别的女人好的(当然,母亲除外。);答案B听着就太假了;答案C你一定觉得回答得挺高明的吧,她压根儿就不会信,而且她会展开想像分析你为什么不愿意对她的朋友进行评价。所以,要避开问题,转个弯儿回答,让她觉得你一切都是为她着想,连见她的朋友都是为她把关,她会有被呵护照顾的感觉。

    ==============================


    问题四:你觉得我胖了吗?

    错误答案A:“没胖。”

    错误答案B:“好像是胖了。”

    错误答案C:“呦,是不是最近太累啊,怎么都瘦成这样了?”   

    标准答案:

    ==============================

    “过来让我抱抱”,等抱过之后你再说:“我就喜欢你这样的,有点肉的,摸着舒服。”  

    解析:答案A回答得太干脆了吧,她听着不过瘾。答案B纯属找骂,女孩子怎么能喜欢听别人说她胖呢?即使你再三强调你喜欢胖的,她还会不高兴;答案C听着都那么虚伪,现在的女人哪那么好蒙啊。其实,在女人的心里,她还是希望男人不在乎她的胖瘦,虽然嘴上说为了你减肥,其实是为了自己更漂亮,能穿更多好看的衣服。所以你用肢体语言表示出你喜欢她有点儿肉就可以了。

    ==============================


    问题五:我和你前女友比起来,你更喜欢哪一个?   

    错误答案A:“废话,当然是你了,要不然干吗跟你在一起。”

    错误答案B:“嗯,怎么说呢,如果让我说实话,各有千秋吧。”

    错误答案C:“她比你差远了。”   

    标准答案:

    ==============================

    狠狠的咬她一口或亲她一下或捏她的小脸蛋,等到她撒娇的嗷嗷叫的时候你就说:“下次再问这种无聊的问题,还得这么惩罚你。”

    解析:答案A也太生硬直接了吧,她接下来就会问:“那你以后碰见比我好的是不是也得把我踹了啊?”答案B您就等着分手吧,忒实在了也。答案C听上去还不错,但你这不是抽自己嘴巴嘛,你说自己前女友不好会让女人很得意而降低了你自己的身价。其实在女人心里,她特别希望你的前女友是个特别优秀的女人,而偏偏是你不愿意跟她好了,这样女人心里会有成就感的。可是你又不能直接说前女友有多好,所以就用她喜欢的方式来回避问题吧(至于她是喜欢你捏她的脸蛋儿还是咬她一口我们就不知道了)。

    ==============================


    问题六:如果我和你妈妈同时掉进水里,你会救哪一个?   

    错误答案A:“你有聊无聊啊?”

    错误答案B:“一块儿救。”

    错误答案C:“宝贝儿,别难为我,再说这种情况也不会发生的。”

    标准答案:

    ==============================

    1“哦,我没告诉你吧,我妈是游泳健将。” 标准答案:2“走,咱现在去买泳衣,我教你游泳去。”

    解析:虽说问这个问题确实很无聊但你也不能像答案A那样,这会引来喋喋不休的争吵;答案B她一定会不甘心的追问下去,你不想清静清静吗?答案C听上去还不错,但还是很牵强。不如就幽默一回,别让她一天到晚的老杞人忧天没事儿找事儿了。

    ==============================

    问题七:如果我老了难看了你还会爱我吗?

    错误答案A:“不可能,你老了也好看。”

    错误答案B:“女人不同的年龄段有不同年龄段的魅力......”

    错误答案C:“没事儿,你老了我也好不到哪儿去,咱俩谁也别嫌弃谁。”  

    标准答案:

    ==============================

    “我巴不得你难看点儿老点儿呢,这样放在家里多放心啊。”   

    解析:答案A她听着也高兴,但心里知道这是绝对不可能的;答案B就赶紧打住吧,唐僧来了;答案C不就说她老了肯定不好看了嘛,她怎么能接受呢?所以啊,最聪明的答案就是既让她打消顾虑又让她知道你特别在意她特别怕失去她。
  • IBM对抗微软的新王牌:廉价Notes/Domino软件

    2008-04-29 09:19:35

      对比Windows,Linux平台最大的弱项是通讯/协作软件。MS Outlook 加Exchange是一对非常好的组合,为多数商业公司所信赖,Linux平台没有相匹配的应用程序——无论是服务端还是客户端。在该领域能与微软一较高下的是IBM的Lotus Notes / Domino,只是它的名声不佳——昂贵、臃肿和不友好,小型公司多数只会考虑微软的产品。

      但是最新的Domino Express Licensing和Notes 8却出人意料,它提供了Mac和 Linux平台的原生服务端和客户端版本。Notes 8,基于Eclipse,整合了办公组件Lotus Symphony,可以让用户依靠一款软件完成所有工作。服务端和客户端组件的许可证只需100美元/用户(对小公司来说可能还是太贵),适合1000人或更少员工的商业公司。

      IBM扔下一只银弹对付一群MS产品,不知道以后它还会搞什么大动作?
  • 用Java快速开发Linux GUI应用

    2008-04-29 09:12:15

      1、为什么要用Java开发Linux GUI应用

      1.1 Linux GUI应用开发现状

      目前Linux操作系统在市场上呈现一种"叫好不叫座"的局面,在一定的程度上与在其上运行的好用的应用程序数量太少有着的密切的关系。尽管能在Linux上运行的应用程序已经很多,但大多数都较难安装与使用,而且很多不是很稳定。

      要改善Linux应用程序的易用性,大量采用GUI(图形用户界面)是一个必然的趋势。但是目前Linux平台GUI应用程序的开发仍然不太容易。尽管有不少的开放源码开发工具在极力增强其GUI应用程序开发能力,但是由于标准不统一、资料太少等原因很难推广。Kylix等商业开发工具尽管具有大公司的技术实力支撑,但由于价格等因素也难以很快推广。这种局面不尽快打破,Linux的应用就不可能得到很快的普及。

      综上所述,目前Linux应用软件开发领域急需一种容易学习、成本低、效率高的GUI应用程序开发方法。

      1.2 Java的特点

      自1995年Sun Microsystem推出Java语言以来,Java语言与Java技术均得到了飞速的发展。因其强大的网络功能、良好的跨平台特性、较高的开发效率成为国内外软件开发领域的一种强大工具。

      目前Java程序已经能运行在从Windows系列、Unix系列、Mac OS系列到Linux等几乎所有操作系统平台上,而且特别重要的是它已经能做到"一次编写,到处运行";另一方面,与C++等传统程序设计语言相比,用Java来开发GUI应用程序的难度已经大大降低;加上Java语言所具有的纯面向对象、网络功能强大等特性,使得Java非常适于用来编制应用软件。

      1.3 用Java开发Linux GUI应用的优点

      正由于Java语言的特点以及Linux操作系统的发展现状,使得用Java语言来开发Linux平台GUI应用程序成为了一种很好的方法。

      一方面,用Java语言在Linux平台上开发GUI应用程序对于习惯了在Windows平台上用Java编程的程序员来说无须改变编程习惯。因为Java有良好的跨平台特性,在Linux下编程与在Windows下编程没什么两样,如果用纯Java编程,则程序中使用的类、属性、方法等等都不用改变,甚至还可以在Windows下编辑、编译好Java程序再直接移植到Linux下执行。

      另一方面,由于在Linux平台上存在大量的优秀的开放源代码软件开发工具,包括用于Java程序开发的如NetBeans等工具,这样如果在Linux平台上用这些开放源代码软件开发工具进行Java软件开发,其所需的成本可以比在Windows下进行开发低得多。当然在Linux下也存在像Borland Jbuilder、IBM Visual Age等商业Java软件开发工具,它们都具有强大的功能、完备的文档,更有利于在Linux上进行Java软件开发。

      2、用Java开发Linux GUI应用的基本方法

      2.1 开发环境的安装与配置

      *JDK的安装

      要Linux平台上开发Java应用,最基本的方式需要下载一个JDK,这是由Sun公司免费提供的一个Java软件开发包。下载得到的文件一般形如j2sdk1.3-linux.rpm.bin,首先将其拷贝到合适的目录(如/usr/src或/usr/local等)下,执行. /j2sdk1.3-linux.rpm.bin,会产生一个j2sdk1.3-linux.rpm文件,这是一个典型的RPM软件包,再用RPM软件包管理工具就可直接安装JDK,在安装过程中会提示许可信息,同意其协议就可很顺利地安装了。

      *路径的配置

      为了做到在任意路径下均可直接执行Java编程相关命令,需要修改/etc/profile文件,在其中设置路径。具体方法是在其中加入这样一行:

      PATH="$PATH/usr/jdk1.3"

      这里/usr/jdk1.3是JDK的安装路径。

      2.2 基本开发过程

      ①编辑源程序

      在Linux下有很多优秀的程序编辑器软件,例如在控制台下有著名的Emacs、vi、 jed等,在X window下有Xemacs、gedit、kedit等,这些软件通常都有语法着色、自动缩进等非常适合于程序编辑的功能。要在Linux系统下开发 Java程序,首先需要用这些编辑器编辑Java源程序。至于具体用哪种编辑器要依个人的喜好而定,反正可用的软件很多。

      ②编译源程序

      正确的编辑好Java源程序后,需要对其进行编译,以生成字节码文件。假定源程序文件名为Test.java,则可用如下形式:

      javac Test.java

      ③调试运行程序

      执行守编译命令后,对于源程序中的每一个类,系统将产生一个字节码文件,文件名为对应的类名,而其扩展名为class。一般地,每一个Java程序中应该有一个主类,该类是整个程序的入口。开发Java程序的下一步就是调试运行,仍以上面提到的情况为例,运行该Java程序的方法为:

      java Test

      事实上解释器将解释执行Test.class文件并按其中的调用解释执行其它字节码文件。

      2.3 基本开发方法

      其实无论在什么平台下,GUI应用程序的基本开发方法都是相似的。一般都包括下面这样四个步骤:

      ①创建容器

      首先要创建一个GUI应用程序,需要创建一个用于容纳所有其它GUI组件元素的载体,Java中称为容器。典型的包括窗口(Window)、框架(Frame/JFrame)、对话框(Dialog/JDialog)、面板(Panel/JPanel)等。只有先创建了这些容器,其它界面元素如按钮(Button/JButton)、标签(Label/JLabel)、文本框(TextField/JTextField)等才有地方放。

      ②添加组件

      为了实现GUI应用程序的功能,为了与用户交换,需要在容器上添加各种组件/控件。这需要根据具体的功能要求来决定用什么组件。例如,如果需要提示信息,可用标签(Label/JLabel);如果需要输入少量文本,可用文本框(TextField/JTextField);如果需要输入较多文本,可用文本区域(TextArea/JTextArea);如果需要输入密码,可用密码域(JPasswordField)等等。

      ③安排组件

      与传统的Windows环境下的GUI软件开发工具不同,为了更好地实现跨平台,Java程序中各组件的位置、大小一般不是以绝对量来衡量,而 是以相对量来衡量。例如有时候,程序的组件的位置是按"东/East"、"西/West"、"南/South"、"北/North"、"中 /Center"这种方位来标识的。因此,在组织界面时,除了要考虑所需的组件种类外,还需要考虑如何安排这些组件的位置与大小。这一般是通过设置布局管 理器(Layout Manager)及其相关属性来实现的。事实上上述按方位来安排组件就是采用了Java中多种布局管理器里的BorderLayout布局管理器。

      ④处理事件

      为了完成一个GUI应用程序所应具备的功能,除了适当地安排各种组件产生美观的界面外,还需要处理各种界面元素事件,以便真正实现与用户的交 换,完成程序的功能。在Java程序中这一般是通过实现适当的事件监听者接口来完成的。比如如果需要响应按钮事件,就需要实现 ActionListener监听者接口;如果需要响应窗口事件,就需要实现WindowListener监听者接口。

      3、开发实例

      下面是一个在Linux下用Java开发GUI应用程序的实例。该程序的主要功能是提供一个用于输入用户名与密码以登录到某一系统的界面,如果 用户输入相关信息后单击"登录"按钮,系统将在窗口的下半部分显示所输入的用户名与密码信息,如果单击"退出"按钮,程序将停止运行。如下图1所示:

      本程序没有提供很强的功能,目的只在于介绍在Linux上用Java编写GUI应用程序的基本方法。以下是程序的源代码,其中的注释说明了GUI应用具体的创建步骤:

      //以下三行用于引入添加组件、设置布局管理器及处理事件所需的软件包

      

          import java.awt.*;

      import java.awt.event.*;

      import javax.swing.*;

      //下行说明主类派生自JFrame/框架类,要实现ActionListener接口以处理动作事件

      class LoginFrame extends JFrame implements ActionListener {

      //以下四行用于声明要加到框架窗口中的所有组件

      JLabel UserLabel,PasswordLabel,UserResult,PasswordResult;

      JTextField User;

      JPasswordField Password;

      JButton LoginButton,ExitButton;

      public LoginFrame() {

      super("登录");//调用父类构造方法,设置窗口标题

      setSize(300,200);//设置窗口大小

      getContentPane().setLayout(new GridLayout(5,2,10,10));//设置布局管理器,将窗口分成5行2列,行、列间保留10个像素的空白

      //以下8行具体创建组件实例

      UserLabel=new JLabel("用户名称:");

      PasswordLabel=new JLabel("用户密码:");

      UserResult=new JLabel(" ");

      PasswordResult=new JLabel(" ");

      User=new JTextField(10);

      Password=new JPasswordField(10);

      LoginButton=new JButton("登录");

      ExitButton=new JButton("退出");

      //以下两行设置用于保存结果的标签的前景色属性

      UserResult.setForeground(Color.blue);

      PasswordResult.setForeground(Color.blue);

      //以下两行为"登录"按钮与"退出"按钮注册监听者

      LoginButton.addActionListener(this);

      ExitButton.addActionListener(this);

      //以下八行将所有组件加入到框架窗口中

      getContentPane().add(UserLabel);

      getContentPane().add(User);

      getContentPane().add(PasswordLabel);

      getContentPane().add(Password);

      getContentPane().add(LoginButton);

      getContentPane().add(ExitButton);

      getContentPane().add(UserResult);

      getContentPane().add(PasswordResult);

      //以下一行用于窗口事件监听者注册

      addWindowListener(new WindowManager());

      setVisible(true);//使框架窗口变为可见

      }

      //以下函数用于处理按钮动作事件

      public void actionPerformed(ActionEvent evt)

      {

      if(evt.getSource()==LoginButton)//表明按下了"登录"按钮

      {

      UserResult.setText("用户名称:"+User.getText());

      PasswordResult.setText("用户密码:"+Password.getPassword());

      }

      else

      if(evt.getSource()==ExitButton)//表明按下了"退出"按钮

      {

      dispose();

      System.exit(0);

      }

      }

      //以下为系统主函数,是程序的入口

      public static void main(String args[]) {

      LoginFrame mainFrame = new LoginFrame();//创建框架窗口实例

      }

      }

      class WindowManager extends WindowAdapter//窗口事件监听者类

      {

      public void windowClosing(WindowEvent evt)//本方法用于窗口关闭事件

      {

      JFrame frame=(JFrame)(evt.getSource());

      frame.dispose();

      System.exit(0);

      }

      }

      4、总结

      用Java语言来开发Linux平台的图形用户界面应用程序,容易理解、容易学习、环境要求低、开发效率高,而且开发出来的应用程序可移植性 好,可以直接移植到其它平台上运行而不会发生多大变化。这对于快速开发Linux GUI应用软件,丰富Linux平台应用软件的种类,增强Linux应用软件功能,从而更好地普及Linux系统的应用都有巨大的推动作用。

    来自:IT专家网
  • 2007年度中国软件盗版率数字正式发布 *

    2008-04-28 14:43:56

      由国家知识产权局组织专家评审组召开的“2007年度中国软件产业盗版率调查”课题评审会今天上午在京举行。会上此专项课题研究成果通过了专家评审,并正式对外发布2007年度中国软件盗版率数字。中国软件盗版率年度调查是国家知识产权战略制定过程中的一个重要课题,由国家知识产权局委托互联网实验室承担课题研究任务。2007年度软件盗版率调查是在2005年、2006年专项研究的方法论和数据积累基础上,连续第三年开展的专项研究。据互联网实验室发布的《2007年度中国软件盗版率调查报告》的研究结果表明,2007年盗版软件折算为市值计算,则相对于软件产业的盗版率由2006年的24%下降为20%,相对于全部软件产品的盗版率由2006年的36%下降为31%,相对于计算机软件的盗版率由2006年的52%下降为41%。按当年安装的计算机软件总套数计算,盗版率由2006年20%下降为13%;按当年安装的收费计算机软件套数计算,盗版率由2006年的63%下降为56%,其中单位用户由39%下降至35%,个人用户由78%下降至69%。

      盗版率下降的主要原因在于,一方面政府部门和企业推广的软件正版化工作已取得成效;另一方面收费计算机软件比例明显下降,免费、开源软件和预装正版软件快速发展。

      调查结果也揭示了软件盗版行为发展趋势。首先,政府的有关措施成效显著,盗版行为及其损失均明显下降。其次,用户安装软件的总套数水平有所上升,显示计算机用户软件需求的增长趋势。另外,涉及收费的软件安装数量基本没有变化,但是收费软件占全部安装软件的比例明显下降,说明软件安装数量的增加主要源自于合法免费资源,反映了免费软件和开源软件的快速发展。最后,与上一年对比,正版软件销售数量和销售额呈现持续增长趋势,而套数盗版率与价值盗版率均有明显下降,尤其是价值盗版率下降幅度更为显著。

      与会的评审组专家认为本课题的研究成果非常有价值、有意义,不仅可以让全球公众了解中国软件盗版的真实情况,而且为有效调整和实施软件产权保护政策,发展中国软件产业提供了决策依据,必将有效促进中国软件产业的发展。建议有关部门持续开展年度盗版率调查工作,并加大支持力度,逐步建立并健全软件盗版的信息监测体系和专业队伍,使研究结果的质量得到不断提高,从而为开展软件产权保护工作提供强有力的决策支持。
  • 用户自评Firefox对IT行业的八大影响

    2008-04-28 11:06:52

      Firefox 3正式版还未亮相,连环推出的Beta版就已经引来了如潮的好评,近日,业内专家Erik Larkin近日对IE 8、Firefox 3和Safari 3.1三款浏览器进行了对比分析,得出的结论是:Firefox 3是用户的首选,Safari 3.1次之,而IE 8的表现最差。而另一项测试表明,Firefox浏览器的运行速度非常快,占用的系统资源相当少,速度惊人,比普通浏览器快5倍。

      日益壮大的Firefox不但推动着浏览器在安全性、易用性,以及稳定性方面的日益完善,同时Firefox的发展也对IT行业带来不小的震荡:

      一、IE不再是唯一的选择

      IE,以及IE为核心的浏览器(Maxthon,腾讯TT等)独霸浏览器市场逾10 年,一直没有出现强劲的竞争对手,直到Firefox不声不响,一下子拿下欧洲28%的,全球17%的浏览器市场,才让这位IT巨人嗅到了空气中浓重的硝烟味,重新捣鼓起了那个还处在老式状态下的IE,IE7的推出仅仅是这场浏览器大战的开始,Firefox对IE的挑战无疑是成功的,这让Safari、Opera等老牌浏览器也兴起了大干一场的念头。

      二、非Windows操作系统得以快速发展

      对于所有的非Windows操作系统来说,Firefox绝对是不二的选择(apple除外),今年最火的莫过于程序员中盛行的ubuntu了,我也继和IE说ByeBye以后,再次和Windows说ByeBye了,曾经的非Windows操作系统被认为是技术人员和偏执狂的专利,现在依然是这样,但是从2009 年或者2010年的某个时候开始,桌面版的ubuntu很有可能会逐渐改变这一切,最重要的原因就是因为有了Firefox给开源社区带来的这款优质的浏览器。

      三、网页标准大势所趋

      所谓网页标准化,就是要让同一段代码,在不同的浏览器中显示相同的内容。在那个只有 Windows和IE的年代,所有互联网行业的标准,都被微软毫无顾忌的抛弃,直到Firefox的出现,让微软不得不重新审视网页标准化技术,现在的 IE可以说是积重难返,一方面要符合标准,另一方面要兼容老式IE浏览器,IE7,IE8,IE9,FireFox2,FireFox3, FireFox4正在一起努力实现CSS3.0、Javascrīpt2.0等好几年前就制定了的标准。

      四、开源技术成为可能

      长久以来,开源世界一直对商业发展缺乏信心(甚至敌视),而Firefox则做到了开源和商业的协同发展,在Firefox给出的这份答案中,我们可以看到他充分地利用了商业程序不具有的环境,比如强大的社区,世界各地的志愿人员, Beta+Update机制等,更重要的一点是作为没有商业机密开源程序,可以获得任何商业公司的支持,甚至是竞争对手,比如微软对Firefox支持,这里面颇有一点“无欲则刚”的味道。

      五、扩展机制渐成气候

      如果07 年技术领域能有一个关键词的话,那就是扩展(是插件的进一步发展),和06年的Ajax一样,扩展也不是什么新技术,但是Firefox的扩展机制,真的是被发挥的淋漓尽致,无懈可击。现在主流的程序,都在以这种机制为基础,不断演进:IDE当然是Eclipse,php的 wordpress、joomla、drupal,JS的jquery等,从趋势上来看,以后的开源程序如果没有动则成百上千和插件,没有完备的插件开发技术文档,也许就不算是一个好程序了。

      六、专业领域的搜索引擎得到发展

      在Firefox中使用搜索引擎,并不需要再登陆Google或者Baidu的官方主页,只需要在浏览器的搜索框中输入,就可以在特定的搜索引擎中搜索,这让所有的搜索引擎拥有了相同的起点,给专业领域的搜索提供了机会,Google 已经不再是唯一的选择,词条解释直接搜索wikipedia,字幕直接搜索shooter,英文单词搜索dict.cn。Firefox的对搜索引擎植入的良好扩展性,绝对是一项重大的变革。

      七、中小软件有了新需求

      Firefox可以在所有的平台上(Windows, Mac OS X 和 Linux)运行,所以理论上说只要将软件做成Firefox的插件,就可以做出一款梦寐以求的跨平台软件,现在已经有了Gtalk,FTP传输,BT下载,电驴下载,CHM阅读器,RSS阅读器等等中小软件,都可以集成为一个个的 Firefox的插件。对于很多中小软件来说,做一个Firefox插件也许比较困难,但是不能输给竞争对手!哪怕只是一个非完全功能版。

      八、杀毒软件有点伤心

      Firefox是一个以安全性著称的浏览器,对于一个可以在120小时内,让全球95%以上用户安装升级包的软件来说,开发病毒是完全没有必要的,更何况这还是一款人人都可以提供杀毒补丁的开源软件,杀毒软件厂商真的有点伤心了,因为这样的软件开发和升级机制,总有一天会成为操作系统的一部分,到时候,杀毒软件真的就只能退出历史舞台了,无奈巧妇难为无米之炊。
  • Phusion Passenger/mod_rails令Rails部署变得更容易

    2008-04-25 09:50:44

      一个旨在从Apache网页服务器上更便捷的部署Ruby on Rails的新项目诞生了。Phusion Passenger/mod_rails似乎已经实现了这个目标,并得到了Rails官方和很多人的推荐。我们采访了Phusion Passenger的创建者之一,Ninh Bui,想了解一下项目背后的故事和它未来的发展方向。

      首先,我们想弄清楚名字的问题──这个项目的网站是modrails.com,但是名字却起为Phusion Passenger。Ninh Bui是这么解释的:

    Phusion是我们公司的名字,然而Phusion Passenger是mod_rails官方的名称。大多数社区的朋友都会从mod_rails这个名字中了解它的用途,因为它的命名方式为传统的mod_*,所以我们由此保留了这个别名。

    尽管起初我们打算就只叫它mod_rails,但是Ruby on Rails核心团队和我们都认为“Passenger”(乘客)要比用一个Rails词汇更贴切。特别是,我们想让Phusion Passenger(也就是mod_rails)为用户带来的体验与(火车)乘客是一致的:只要坐在那里,便可享受乘坐的乐趣;-)。

      另一个问题是关于Phusion Passenger所发放的许可:

    对于许可来说,我们使用的是GPLv2,并附加了一个额外的条款。大家通常都会对许可产生误解,也正好趁此机会把这些问题一并加以解释:我们实际上已经允许社区对源代码做更广泛的应用,而不是限制这个许可。

    同样,我们有很多在开源社区工作的经验,我们是与它一起成长的。我们相信,将开源的开发模式与商业公司的驱动结合起来,会令我们提供更好的产品。换句话说,我们认为,对于商业机构来说,这是一种回馈社区最好的方式。

    拿Phusion Passenger为例,它的设计和开发是为了追求产品环境(production environments)下的稳定与高效。然而,可能会有人在部署的时候遇到问题,或者需要某些特定的功能。我们会为这些人提供付费的商业技术支持。我 们团队的技术专家在各个领域都有着丰富的经验──特别是基于Linux的环境下──并且对Ruby的内在机理、Ruby on Rails和Passenger都很熟悉。

      我们都很好奇,Phusion Passenger在应对Rails部署中类似的解决方案时是如何进行叠加的:

    与Swifiply、Mongrel Cluster等不同,Phusion Passenger的应用池(application pool)是在当前流量的基础上进行自动管理的。还有就是,如果Rails应用程序崩溃了,它会自动重启。这意味着,配置或者进程监控都是多余的,而且这 会削减系统管理的成本。有很多种配置选项是可用的,它们都被记录在用户指南中了。

      我们感兴趣的是,究竟如何用Phusion Passenger去部署和重新部署Rails应用程序。

    只要花费你两分钟的时间,不过这要看你的网速如何了;-)。开个玩笑。用Phusion Passenger更新并且重新部署你的Rails应用程序只需再上传一次应用程序,并调用restart.txt。要做的,就这么多。如果你想重新启动 Apache(我认为大多数人可能都想这么做;-)),就必须做第二步。

    从技术角度来讲,第二步是用来更新restart.txt文件中时间戳的,Phusion Passenger会根据那个时间戳决定是否重启你的Rails应用程序。

      Rails部署并不是Phusion开发者试图解决的唯一的问题。当运行很多Rails进程时,内存占用过多也是一个问题。每 个Ruby进程都必须把Ruby和Rails函数库载入到内存中──因为这些是不同的进程,此时它是没有被共享的(Ruby代码是储存在堆栈中的,所以不 像共享的函数库,在不同进程中是无法共享的)。

      Phusion的一位开发人员,Hongli Lai试图通过Unix系统函数fork()让Ruby不同进程之间共享数据。它的核心思想是首先获取一个设置好函数库的Ruby进程,然后通过fork()让进程去获取其他的进程。在进程中调用fork(),可以说是一种非常有效复制进程的方式。这两个进程基本上是一样的,在它们的地址空间中包含有相同的数据。但是,这不是共享内存,而是系统的虚拟内存,操作系统调用了一个名为Copy On Write(写 时复制,简写成COW)的方法让不同进程可以读取相同的数据,但是却没有修改它们私有的拷贝。只要数据是只读的,那么有一份数据就够用了。不过,一旦进程 开始对数据进行了修改,数据的拷贝就只能归属于这个进程了。很明显,共享只读数据(例如函数库代码或其他类似的)是一种非常可行的方法。

      然而,对于使用垃圾回收的编程语言来说,存在一个问题:完整的垃圾回收会遍历堆栈,并将所有遍历到的对象作标记。这里面很重要的一个词是“作标记”──在对象上插上一面旗。如果这些对象中的任何一个被其他进程(通过fork())共享了,COW便会起作用,并将数据拷贝过来──这意味者数据不会再被共享,所有进程都拥有它自己的拷贝。

      Hongli Lai针对这个问题的解决方案是令Ruby的垃圾回收器COW的更友好,也就是说,回收的时候不会再引起数据的拷贝。Ninh对这个问题和它与Phusion产品之间的关联进行了详细的阐述:

    COW垃圾回收器已经基本上完成了。我们现在正准备发布并建立它的官网。而且,我们还在屯特大学(University of Twente)的ir. Hans Scholten帮助下撰写了一篇相关的论文。未来几周内,我们就会发布一个版本。我们理解大家可能不太喜欢为Ruby打补丁,所以我们付出很多额外的努 力来确保安装尽可能的简单,而且要完全独立,不要涉及任何的系统文件。

    我们会把它同“Ruby企业版”(是的,我们很清楚这个名字,但是请允许我们在Railsconf上对它作详细说明;-))一 起发布。恳请大家对我们有一些耐心,我们向你保证,那将是非常值得关注的东西。还有一点要注意的是,Ruby企业版是完全与标准Ruby版(1.8)向后 兼容的。

    如果Phusion Passenger被应用到Ruby企业版上,那么Passenger会自动使用COW语义。这可令Rails应用程序大幅节省使用的内存。实际上,先前的测试已经表明平均会节省33%的内存使用量。

    认真的读者将会注意到,Ruby企业版是以一种透明的方式完成这些工作的,而且同样为程序开发者提供了在运行时打开和关闭GC优化的功能。因为这个原因,Ruby企业版应当算作Ruby的一个超集(superset)。

    由此,我们不得不改变Ruby堆栈的执行方式。它现在使用了一组作了标记的位阈(bitfield),而不是在对象中对二进制 位(bit)进行标记。它的性能有些不确定,这要取决于应用程序和工作量的大小。在一些Rails应用程序中,我们进行了测试,有的提高了5%,有的提高 了20%,有的则是0%,也就是说,性能没有变化。如果您想了解更多的相关内容,我们会在Railsconf上对这个现象作详细的阐述,或者日程上允许的 话,可能会提前给大家讲讲。

      如果大家想试用一下Phusion Passenger,Phusion网站上提供了一个基础视频教程或者直接查看安装文档。Phusion Passenger是一个开源项目,你可以到Phusion Passenger的GitHub的repository中获取源代码。

  • 22项Windows或Mac不能而Linux可以的事

    2008-04-25 09:30:37

    新闻来源:forum.ubuntu.org.cn

    1. Upgrade to the newest version legally and without paying money
    1。合法升级到最新版本却不花一分钱
    2. Have the latest version of the operating system run faster than the previous version on the same hardware
    2。同一个硬件平台上最新的操作系统却比老的更快。
    3. Easily install and run different graphical interfaces if I don't like the default setup
    3。如果你不喜欢默认的桌面环境,可以非常容易的自行安装其他的界面。
    4. Install twenty programs with one command
    4。一个命令就可以安装二十个程序。 5. Have the system automatically update all my installed programs for me.
    5。让系统自动为我所安装的软件更新。
    6. Install the same copy of my OS (Ubuntu) on multiple computers without worrying about license restrictions or activation keys
    6。可以在N台机器上安装同一份OS拷贝而无须担心协议限制或激活码。
    7. Give away copies of the operating system and other programs that run on it without breaking any laws, governmental or ethical or moral, because it was all intended to be used this way
    7。可以自由分发该操作系统及其他运行其上的软件而不会违犯法律,政治或伦理道德,因为他本身就提倡这么做的。
    8. Have full control over my computer hardware and know that there are no secret back doors in my software, put there by malicious software companies or governments
    8。完全控制我的电脑硬件,并可知晓我的软件中没有什么被政府或者某某公司蓄意安放的秘密后门。
    9. Run without using a virus scanner, adware/spyware protection, and not reboot my computer for months, even when I do keep up with all of the latest security updates
    9。可以裸奔(无杀毒软件,反广告/间谍防护软件),以及可以数月不用重启机器,我甚至一直在更新着安全补丁。
    10. Run my computer without needing to defragment my hard drive, ever
    10。从来不用磁盘碎片整理。
    11. Try out software, decide I don't like it, uninstall it, and know that it didn't leave little bits of stuff in a registry that can build up and slow down my machine
    11。尝试软件,觉得不喜欢,就删掉他,而且知道他不会在什么注册表里留下一些垃圾可能导致把我的系统搞慢。
    12. Make a major mistake that requires a complete reinstallation and be able to do it in less than an hour, because I put all of my data on a separate partition from the operating system and program files
    12。犯了重大错误而导致全新重装系统,也不过花去了1小时不到的时间,因为我把我的数据放在了独立于操作系统和程序的分区。
    13. Boot into a desktop with flash and effects as cool as Windows Vista on a three year old computer...in less than 40 seconds, including the time it takes me to type my username and password to login
    13。在一台3岁的老电脑上可以有如vista那样超酷的登录效果...少于40秒,这已经是将我输入用户名和密码并登录计算在内了。
    14. Customize anything I want, legally, including my favorite programs. I can even track down the software developers to ask them questions, contribute ideas, and get involved in the actual design/software writing process if I want to
    14。合法自定义任何我想要的东西,包括我最喜爱的程序。我甚至可以跟踪软件开发者并向他们问问题,提意见,如果我愿意的话,也可以参与到真正的软件设计和开发进程中去。
    15. Have 4+ word processor windows open working on papers, listen to music, play with flashy desktop effects, have contact with a largely happy community and have firefox, instant messaging, and email clients all open at the same time, without ever having had to beg someone for a code to make my os work, and without the system running so slow it is useless
    15。超过4个的文字处理窗口,听音乐,玩超酷的桌面效果,联系一个大型的社区,并同时运行着firefox,即时通讯以及email客户端,而不必求爷爷告奶奶的要什么令我的系统可以运作的代码,而不会把系统变慢。
    16. Use the command "dpkg --get-selections > pkg.list" to make a full, detailed list of all software I have installed, backup my /etc and /home directories on a separate partition, and you are able to recover your system any time, easily
    16。使用"dpkg --get-selections > pkg.list"命令来获得一个完整详尽的已装软件列表,备份我的/etc和/home文件夹到一个独立分区,然后你就可以随时恢复你的系统了,而且超简单。
    17. Run multiple desktops simultaneously, or even allow multiple users to log in and use the computer simultaneously
    17。同时运行多个桌面,甚至可以让多用户同时登录并使用该机器。
    18. Resize a hard disk partition without having to delete it and without losing the data on it
    18。无损调整分区大小而不用担心会丢失数据。(译者注:应该是LVM)
    19. Use the same hardware for more than 5 years before it really needs to be replaced...I have some hardware that is nearly 10 years old, running Linux, and still useful
    19。硬件可以使用超过五年而无须更换...我甚至有一些硬件都超过10年的历史了,还依然健在。
    20. Browse the web while the OS is being installed!
    20。可以在OS安装的同时浏览网页!
    21. Use almost any hardware and have a driver for it included with the operating system...eliminating the need to scour the internet to find the hardware manufacturer's website to locate one
    21。使用几乎所有的硬件,因为系统已经自带了驱动...而不必再去硬件供应商的主页上去苦苦搜寻。
    22. Get the source code for almost anything, including the OS kernel and most of my applications
    22。可以任意获得源代码,包括OS内核以及我的大多数应用程序。
  • 来算算微软的专利

    2008-04-24 15:28:59

      就在大约一年前,微软官方掷出专利杀手锏,声称免费及开源软件侵犯了其 235 项专利,但已经拒绝(且继续拒绝)说明具体是哪些专利。

      今天,多亏了我在 ZDNet 的同事 Jason Perlow,我们获取到了一点点关于微软专利的详细信息,那些喜欢暗中竞争的人可能会对此感兴趣。

      去年微软官方表示 Linux 侵犯了 42 项微软专利;Linux GUI(图形用户界面)侵犯了 65 项;Open Office 侵犯了 45 项;许多免费/开源的电子邮件程序又侵犯了 15 项;还有一些杂七杂八的免费/开源程序侵犯了 68 项微软专利.这些就是雷蒙德的家伙们愿意告诉我们的全部信息.

      今天,多亏了 Linux/Unix 独立软件供应商 Centrify 的 CEO Tom Kemp 非常深入的分析,我们能得到更多的关于微软在 Windows 领域已有专利的信息.

      利用受欧盟委托的反垄断监督者要求微软公开的信息,Kemp 计算出了 Windows Server 到底申请了多少项专利,被批准的又有多少项.

      按照 Kemp 给出的结果:

      “在 Windows Server MSDN 上贴出的 125 种协议里,其中 99 种还没有相关的美国专利,也就是说 80% 的 Windows server 协议没有相关的美国专利”
    (我的注释:换句话说,其中 20% 都已经注册专利了.)

      “如果只算那些连专利申请都没有的协议,其中 76 种协议没有相关的美国专利或专利申请(60%),也就是说其中 49 种(40%)有美国专利或专利申请.”

      这只是 Windows 专利中的一小部分.“贴出的协议只是用于 Windows Server 的文件与打印,用户与用户组管理以及网络通讯功能而已,并不包括诸如 IIS 之类的功能.WSPP(工作组服务器协议程序)的协议也有大约 25 项欧盟专利和专利申请.”
  • 如何使用Linux加密软件Cryptmount

    2008-04-23 16:49:04

      Cryptmount是一种Linux加密工具,能够进行强大的文件加密,让没有权限的Linux用户更方便地进行管理和让管理员轻松创建高级的设置。你能够加密整个硬盘分区或者通过把每一个加密的文件系统存储在一个文件中来创建若干个加密的分区。Cryptmoun还能够用来加密交换空间。加密的卷需要根权限才能创建。然后,普通用户能够打开和关闭加密的卷,不需要根权限。

      Cryptmoun的功能还有:

      ·用户能够改变自己的口令

      ·加密的文件系统能够在启动时或者根据需要进行初始化。因此,加密的文件系统很容易管理。这种文件系统只是偶尔需要。

      ·加密的访问密钥是兼容OpenSSL的。Cryptmount支持把访问密钥存储在移动介质上。

      ·它提供对脚本的支持。

      Cryptmount是一种前台的和标准的Linux加密工具、映射机和dm-crypt加密工具。它使用Linux内核中的环回(loopback)设备在文件中创建加密的文件系统。但是,用户并不需要知道这些事情,因为Cryptmount为这种文件提供了一个友好的外观。

      在为一个加密卷进行初始化设置时,第一步是运行Cryptmount设置指令。它创建一个加密密钥,要求得到位置和规格,创建正确的 /etc/cryptmount/cmtab目录,然后再要求你创建一个口令。接下来,没有权限的用户就可以使用了。这种用户仅需要知道口令和两个指令: cryptmount [卷名]和cryptmount --卸载[卷名]。如果你确实要做得更漂亮一些,你可以创建一些菜单图标供用户点击。

    来自:IT专家网 作者:王娟