posts - 813, comments - 170, trackbacks - 1, articles - 1
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

2012年2月7日

摘要: 什么应是可配置的Unix提倡建立机制而把策略决定权留给用户,往往会导致选项过多。不应该配置:能够可靠自动检测的东西;用户不应该看到优化开关;能用脚本包装器或简单管道完成的任务,就不要使用配置开关实现。配置放在哪里/etc目录:管理员设置的系统级选项支持#开头的注释不去别隐匿的空白符多个连续的空行视为单个空行词法上把文件视作简单的用空白符分割的标记序列,或多行标记,但支持以字符串语法对内嵌空白符的...阅读全文

posted @ 2012-02-07 21:58 feisky 阅读(76) 评论(0) 编辑

摘要: windows下很多人都使用source insight 编写和查看代码。linux下可以使用VIM,刚开始会觉得VIM像windows下的记事本,而如果使用得当,它并不比source insight 逊色。 在这里,我会尽我所能细致地讲清楚如何把vim变成source insight, 然而你仍然需要积极地思考,并且必须自己去摸索一些东西。 为了避免过于罗嗦,我把基础的部分放在后面,如果你越看越觉得太简单了,那么本文并不适合你;如果看完前面的仍有疑问或者看不懂前面说的是什么东西,不用担心,后面会有一些必备的知识介绍。一、用好系统自带软件ctags大部分的unix系统都有ctags软件,它..阅读全文

posted @ 2012-02-07 21:05 feisky 阅读(28) 评论(0) 编辑

2012年2月6日

摘要: 安装工具# yum install yum-utils设置源:[base-src]name=CentOS-5.4 - Base src - baseurl=http://vault.centos.org/5.4/os/SRPMS/#mirrorlist=http://mirrorlist.centos.org/?release=5.4&arch=SRPMS&repo=osgpgcheck=1g...阅读全文

posted @ 2012-02-06 21:40 feisky 阅读(65) 评论(0) 编辑

2012年2月5日

摘要: 安装Java JDK:到sun网站上下载jdkchmod +x jdk-6u30-linux-x64.bin ./jdk-6u30-linux-x64.bin下载Hadoopwget http://labs.renren.com/apache-mirror/hadoop/common/hadoop-0.20.205.0/hadoop-0.20.205.0.tar.gz tar zxvf ha...阅读全文

posted @ 2012-02-05 21:33 feisky 阅读(42) 评论(0) 编辑

摘要: Unix下有很强大的专用代码生成器,如用yacc/lex来构建语法分析器和词法分析器、用autoconf或automake生成makefile等。这些工具具有很强大的功能,但还有一些简单轻巧的代码生成方式,下面是《Unix编程艺术》中的两个例子。生成ASCII显示的代码如果在程序中直接通过初始化器来写出所有行,会出现对齐、每行很难保证79字符的问题。Ascii源码的解决方法是通过脚本生成这部分...阅读全文

posted @ 2012-02-05 15:32 feisky 阅读(43) 评论(0) 编辑

摘要: 首先安装dpkg-dev: apt-get install dpkg-dev设置源,将原来的源复制,但把deb改为deb-src:#vim /etc/apt/sources.listdeb http://mirrors.163.com/ubuntu/ lucid main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ lucid-security main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ lucid-updat阅读全文

posted @ 2012-02-05 14:43 feisky 阅读(37) 评论(0) 编辑

2012年2月4日

摘要: 本文示例代码采用的是c语言。之前介绍过数据驱动编程《什么是数据驱动编程》。里面介绍了一个简单的数据驱动手法。今天更进一步,介绍一个稍微复杂,更加实用的一点手法——表驱动法。关于表驱动法,在《unix编程艺术》中有提到,更详细的描述可以看一下《代码大全》,有一章专门进行描述(大概是第八章)。简单的表驱动:《什么是数据驱动编程》中有一个代码示例。它其实也可以看做是一种表驱动手法,只不过这个表相对比较简单,它在收到消息后,根据消息类型确定使用调用什么函数进行处理。复杂一点的表驱动:考虑一个消息(事件)驱动的系统,系统的某一模块需要和其他的几个模块进行通信。它收到消息后,需要根据消息的发送方,消息的类阅读全文

posted @ 2012-02-04 21:19 feisky 阅读(24) 评论(0) 编辑

摘要: 前言:最近在学习《Unix编程艺术》。以前粗略的翻过,以为是介绍unix工具的。现在认真的看了下,原来是介绍设计原则的。它的核心就是第一章介绍的unix的哲学以及17个设计原则,而后面的内容就是围绕它来展开的。以前说过,要学习适合自己的资料,而判断是否适合的一个方法就是看你是否能够读得下去。我对这本书有一种相见恨晚的感觉。推荐有4~6年工作经验的朋友可以读一下。正题:作者在介绍Unix设计原则时,其中有一条为“表示原则:把知识叠入数据以求逻辑质朴而健壮”。结合之前自己的一些经验,我对这个原则很有共鸣,所以先学习了数据驱动编程相关的内容,这里和大家分享出来和大家一起讨论。数据驱动编程的核心数据驱阅读全文

posted @ 2012-02-04 21:16 feisky 阅读(30) 评论(0) 编辑

摘要: #!/usr/bin/pythonimportsocketimportstructimportfcntldefgetip(ethname):s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)returnsocket.inet_ntoa(fcntl.ioctl(s.fileno(),0X8915,struct.pack('256s',ethname[:15]))[20:24])if__name__=='__main__':printgetip('eth0')阅读全文

posted @ 2012-02-04 21:00 feisky 阅读(124) 评论(0) 编辑

摘要: 微型语言:小型、专门应用领域特制、大量减少程序行数的语言。1. 使用微型语言把编程问题的规格说明提升一个层次,更具表达力,更紧凑;2. 规格说明文件越来越像微型语言。理解语言分类法案例分析sng: 透明,结构化的数据文件使得相应的编辑、转换和生成工具无需要知道其他方的设计假定。 regexp:Glob表达式,基本正则表达式,扩展正则表达式,Perl正则表达式。正则表达式是微型语言能够多么简练的极端例子。 Glade:X,GTK(和Qt是两个流行开源X工具包),说明GUI窗体及属性、代码生成。 m4:扩展字符串,键值对。 XSLT:复杂,但是仍然是微语言:有限的分类,不包含数组和数据结构;有限.阅读全文

posted @ 2012-02-04 20:09 feisky 阅读(32) 评论(0) 编辑

摘要: LVM提供一个极妙的设备,它是snaphot。允许管理员创建一个新的块装置,在某个时间点提供了一个精确的逻辑卷副本。通常这将被用来当一些批量处理,备份,需要在逻辑卷执行,但你不想中止系统,改变数据。当快照设备已经完成系统管理员就可以直接删除该设备。snaphot:关于指定数据集合的一个完全可用的拷贝,该拷贝包括相应数据在某个时间点(拷贝的时间点)的映像。快照可以是其所表示的数据的一个副本也可以是数据的一个复制品。从具体细节上说,快照是指向保存在存储设备中的数据的引用标记或指针。如果快照逻辑卷变满,它将被丢弃变得不可用,因此分配给快照足够的空间是非常重要的。所需的空间大小取决于快照的使用,所以没阅读全文

posted @ 2012-02-04 19:28 feisky 阅读(19) 评论(0)  编辑

摘要: IntroductionToMiniosApplicationsMini-OS现有应用介绍Mini-OS是跟随Xen hypervisor发布的一款小内核操作系统,目前有一些基于Mini-OS的应用:HP实验室在2007年发布了基于Mini-OS的Xen Library OS;2008年剑桥大学进一步完善了HP的工作,完成了HVM stubdom并置于Xen源码树中;伊利诺伊大学芝加哥分校(UIC)正致力于开发一款基于Mini-OS的小内核系统—Ethos。Mini-OS 启动简介arch_init()trap_init()init_mm()Xen Library OSXen Library 阅读全文

posted @ 2012-02-04 16:11 feisky 阅读(32) 评论(0) 编辑

2012年2月2日

摘要: 首先分区:# fdisk /dev/sdaThe number of cylinders for this disk is set to 60801.There is nothing wrong with that, but this is larger than 1024,and could in certain setups cause problems with:1) software that runs at boot time (e.g., old versions of LILO)2) booting and partitioning software from other OSs阅读全文

posted @ 2012-02-02 18:17 feisky 阅读(29) 评论(0) 编辑

2012年1月31日

摘要: 多道程序设计:分离进程为独立的功能Unix的最具特点的程序模块化技法就是将大型程序分解成多个协作进程。Unix提倡把程序分解成更简单的子进程,并考虑接口:降低进程生成的开销。提供方法简化进程间通信。提倡使用能由管道和套接字传递的简单、透明的文本数据格式。真正的挑战不是协议语法而是协议逻辑:协议设计既要有充分的表达能力,又能防范死锁。从性能调整中分离复杂度控制在开发出可以把全局复杂度降至最低程度的干净体系之前,关注性能问题便是过早优化。线程提高了复杂度,应尽量少用线程。将程序划分为多个协作进程的另一重要原因是提高安全性:仅信任较少的代码,而让大部分操作都运行在用户级。Unix IPC方法1 把任阅读全文

posted @ 2012-01-31 21:22 feisky 阅读(36) 评论(0) 编辑

摘要: 透明性,来点光。Beauty is more important in computing than anywhere else in technology because software is so complicated. Beauty is the ultimate defense against complexity.透明性是被动品质,可显性是主动任务。透明性:没有阴暗的角落和隐藏的深度;能够预测到程序行为,能够看透机器干什么(整个)。可显性:做什么,怎么做。文档就是为了提高可显性。要必须尽力做到有帮助(具体)。可显性降低进入门槛;透明性则减少代码中的存在成本。研究实例audacit阅读全文

posted @ 2012-01-31 14:28 feisky 阅读(27) 评论(0) 编辑

无觅相关文章插件,快速提升流量