用户登录  |  傲看软件园 用户注册
文章中心广告代码ASP源码PHP源码JSP源码.NET源码源码相关傲看留言板繁體中文
当前位置:傲看软件园文章中心电脑安全安防新闻

资深Linux程序员的开发经验谈

减小字体 增大字体 作者:郁郁小蝎  来源:中国站长学院  发布时间:2008-10-20 20:31:01
  清单 3. get_update.sh

  
#!/bin/sh  
rh_ver=$1  
dest=$2  
echo "Retrieving updates for version ${rh_ver} to $dest"  
lftp << EOF  
open ftp.freshrpms.net     
  
mirror -n pub/redhat/linux/updates/${rh_ver}/en/os/i386 $dest/i386  
mirror -n pub/redhat/linux/updates/${rh_ver}/en/os/i486 $dest/i486  
mirror -n pub/redhat/linux/updates/${rh_ver}/en/os/i586 $dest/i568  
mirror -n pub/redhat/linux/updates/${rh_ver}/en/os/i686 $dest/i686  
mirror -n pub/redhat/linux/updates/${rh_ver}/en/os/SRPMS $dest/SRPMS  
mirror -n pub/redhat/linux/updates/${rh_ver}/en/os/noarch $dest/noarch  

  Java 和 Linux

  在Codemonks,相当多的开发工作是在 Linux 上用 Java 完成。这两个工具的组合为创建商业级质量的 Web 应用提供了一个平台,Murray 说。“在做这些项目的过程中,我们发现我们要总体上了解客户已有的应用代码”,他回忆说。locks.c (在下载得到的压缩文件中的 /developerworks/locks 目录下) 是一个代码片段,实现的是用于 Java Virtual Machine Profiler Interface (JVMPI) 的读/写锁以及大量的调试代码。

  Linux 开发人员的代表

  “在情况允许的时候,不要写特定于系统的代码”,Murray 说,而是克服困难去“写好的跨平台的代码”。受雇的 Murray 坚持认为他最大的资本永远是“写具有商业品质的代码,构建和提供网络服务,定制 OS 或内核,而且完全基于可靠的开放源代码的平台”。

  下面是一个代码片段,来自于一个跨平台的定制的 IMAP 服务器,这个服务器由 Linux 和 MacOS X 的开发人员共同开发。代码实现的是一个用来处理字符串的简单的增长缓存。这样避免了缓存溢出的问题(不要忘记那些安全漏洞),而不必要您每次做某些事情的时候重新分配空间。它是通过维护一个简单的可变长的缓存来实现的,这个缓存可以写满和清空。这个缓存已经被用于一个实验用的 IMAP 服务器,这个服务器是由一个团队紧张工作了一周完成的。

  除了一个简单的字符串缓冲区的实现之外,这段代码还实现了一个可变大小的字符串数组。它完成的是一个简单的接口,当您写完一个字符串以后,您可以标记它然后继续写下一个。此外,这样会节约空间分配,并且将比较乱的代码组织到一起。

  完整的 IMAP 服务器的代码将在今年某个时间发布。

  清单 4. 定制的 IMAP 服务器一部分

   
#ifndef HOED_BUF_H  
#define HOED_BUF_H  

typedef struct {  
char *str;  
int size;  
int length;  
int str_start;  
int max_size;  

int n_strings;  
int size_strings;  
int *str_posn;  
char **str_set;  
} hoed_buf_t;  

#if     __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)  
#define PRINTF(f, a)    __attribute__((format (printf, f, a)))  
#else  
#define PRINTF(f,a)  
#endif  

extern hoed_buf_t *hoed_buf_alloc(int init_size, int max_size);  
extern void hoed_buf_free(hoed_buf_t *);  
extern void hoed_buf_reset(hoed_buf_t *);  
extern void hoed_buf_new_string(hoed_buf_t *);  
extern char **hoed_buf_get_set(hoed_buf_t *, int *n_string);  

extern char *hoed_buf_put_char(hoed_buf_t *, char toadd);  
extern char *hoed_buf_sprintf(hoed_buf_t *, const char *format,...)  
   PRINTF(2,3);  
extern char *hoed_buf_strcat(hoed_buf_t *, const char *append);  
extern char *hoed_buf_cat_sprintf(hoed_buf_t *, const char *format, ...)  
   PRINTF(2,3);  

#endif /* HOED_BUF_H */  


  称为杀手级的 Linux 应用程序

  对Murray 来说,有两个杀手级的 Linux 应用程序:Emacs 和 Netscape Navigator。“Emacs 或许是给人印象最深而且广为应用的基于 Linux 的应用程序”,他说。“另一个是 Netscape Navigator。有一次,我们要支持20多种 UNIX,我在 Linux 上完成了所有的工作”。

  他继续说,“有趣的是,基于 Linux 的应用程序可能运行于许多不同风格的 UNIX 系统上,甚至安装了 Cygwin 的 Windows 系统。”

  Linux 的未来如何?

  当前,Murray 正在进行的 Linux 项目有好几个,从支持电子邮件、消息和共享数据库的分布式办公应用程序到使用标准工具的网络应用程序(标准工具包括:Apache/Tomcat, PHP, PostgreSQL, MySQL, 和 Linux)。 Murray 有他自己的公司专门为网络服务和网络应用提供主机服务。

  对Murray 来说,得益于 Linux 强大功能的应用程序的列表在不断地增长。“有很多”,他说。“Oracle, WebSphere, Apache, PostgresQL, MySQL, Cyrus IMAP... 这个列表很长而且在不断增长。”

  对 Murray 来说,Linux 到此为止了。“我们所有的服务器都运行 Linux;不管目标平台如何,我们主要的开发都在 Linux 上进行;我们把 Linux 推荐给用户来运行服务器应用程序”,他说。“ Linux 快速发展的步伐,开放源代码组织对它的广泛支持,低廉的开发费用,如果把这些结合在一起,您就知道它是一个难以击败的平台”。

上一页  [1] [2] 

Tags:

作者:郁郁小蝎

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论

精品栏目导航

关于本站 | 网站帮助 | 广告合作 | 下载声明 | 友情连接 | 网站地图
冀ICP备08004437号 | 客服Q:354766721 | 交流群83228313
傲看软件园 - 绿色软件,破解软件下载站! 源码网 源码之家 绿软之家
Copyright © 2003-2010 OkHan.Net. All Rights Reserved .
页面执行时间:56,234.38000 毫秒
Powered by:OkHan CMS Version 4.0.0 SP2