erlang的简介和优点

[阴 2010/04/08 01:13 | by birdsky ]
     Erlang是一门被设计用于编写并发、实时、分布式系统的新语言。

   很多年来,并发实时系统的编程技术一直落后于串行应用的编程。当使用C或Pascal进行串行编程已经成为
实践标准时,大多数实时系统的程序员还在倒腾着汇编。如今的实时系统可以使用Ada、Modula2、Occam等为并发编程提供了显式支持的语言来编写,或是仍旧使用C这样缺乏并发结构的语言。

   我们对并发的兴趣源自于对一些展现出大规模并发的问题的研究。这是实时控制系统的一个典型属性。Erlang程序员可以显式指定哪些活动需要由并发进程来展现。这种观念与Occam、CSP、Concurrent
Pascal等语言类似,但与那些并不为了对现实世界的并发进行建模而引入并发的语言不同,这些语言引入
并发的目的只是为了将编译出可在并行处理器上运行的程序以获得更高的性能。

   现今Prolog和ML等语言已经被大范围用于工业应用之中,并极大地降低了设计、实现和维护应用的成本。
我们对Erlang的设计和实现也是为了将并发实时系统编程提高到一个相似的高度。

申明式语法
   Erlang具备申明式的语法,且大部分都无副作用。

并发
   Erlang具备一个使用消息传递的基于进程的并发模型。Erlang的并发机制是轻量级的,如进程只占用极少的内存,进程的创建、删除以及消息传递也都只涉及极少量的计算。

实时
   Erlang可用于对相应延迟在毫秒数量级的软实时系统进行编程。

持续运作
   Erlang具备替换运行时系统代码的原语,并允许新旧版本的代码同时执行。这在电话交换机、空中交通控制等“不停机”系统中有极大的用处,这些系统在软件变更时都不能停机。

健壮
   在上述系统中,安全性是一个关键需求。Erlang具备三种结构来检测运行时错误。这些可用于编写健壮的系统。

内存管理
   Erlang是一门具备实时垃圾回收机制的符号计算语言。内存在需要时自动分配,在不需要时自动回收。典型的内存管理相关的编程错误都不再存在。

分布式
   Erlang没有内存共享。所有进程间交互都通过异步消息传递完成。使用Erlang可以轻易地构建分布式系统。为单处理器编写的应用不花什么力气就可以移植到处理器网络上运行。

集成
   Erlang可以简单地调用其他语言编写的程序。通过Erlang的接口系统,这些程序对于程序员来看就好像是用Erlang编写的一样。

   我们从申明式语言和并发语言中借鉴了大量思想。早期Erlang的语法多半归功于STRAND,尽管当前的语
法让人觉得像是无类型的ML。其并发模型则与SDL类似。

   我们的目标是为健壮的大规模并发工业应用编程提供一种精炼、简单和高效的语言。因此,出于效率原因,我们放弃了许多现代函数式语言中的特性。Currying、高阶函数、延迟求值、ZF comprehension、逻辑变量、deep guards等,增强了申明式编程语言的表达能力,但对于工业控制应用而言,没有这些特性也不会有什么显著影响。倒是模式匹配语法的使用和Erlang变量的“单次赋值”属性,使得我们能够编写清晰、短小且可靠的程序。

   最初Erlang是边实现边设计的,第一个版本是一个使用Prolog编写的解释器。与此同时,我们非常幸运地
拥有了第一批热情的用户群,他们当时正在开发一个新电话交换机的原型。

   这便催生了一条极为有效的语言设计途径。不被使用的构件被抛弃,对于令我们的用户不得不编写令人费
解的代码的问题,则引入新的语言构件予以解决。尽管我们经常会对语言进行一些不向下兼容的更改,我们的用户还是飞速地编写了成千上万行的代码,并积极地鼓动其他人来使用这门语言。他们的努力催生了一种新的电话交换机编程方法,相关的一些内容被发表在[??]和[??]。

   第一版基于Prolog的Erlang解释器很早以前就被编译型的实现所替代了。其中的一个实现可以免费获取,
并使用非商业许可证。当前的Erlang实现在兼顾速度和轻量级并发的同时满足了我们的实时性要求。Erlang实现已经被移植到多种操作系统及多种处理器上。

   Erlang适用于对很大范围内的并发应用进行编程。不少工具被开发出来用于辅助Erlang编程,如X Window
System的接口、ASN.1编译器(使用Erlang编写并生成Erlang代码)、分析程序生成器、调试器……
Tags: , ,
CentOS设置系统时间和时区

一、设置时区

方法一:使用setup工具
setup

选择Timezone configuration

选择Asia/Shanghai

空格键勾选上System clock uses UTC

就OK了。


方法二:使用tzselect工具
tzselect

选择亚洲Asia
5

选择国家China
9

选择地区central China
3

确认选择Yes
1

设置好tzselect后,一定要重写/etc/localtime
rm /etc/localtime

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime


方法三:直接修改/etc/sysconfig/clock文件
vi /etc/sysconfig/clock

ZONE="Asia/Shanghai"
UTC=true
ARC=false

重写/etc/localtime
rm /etc/localtime

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime


二、重启系统使时区生效
reboot

三、更新时间
更新系统时间
ntpdate cn.pool.ntp.org

更新硬件时间
hwclock --systohc


四、crontab定时较对时间
设置crontab定时较对时间
crontab -e

30 1 * * * ntpdate cn.pool.ntp.org ;hwclock --systohc


PS:
ntpdate命令安装
yum -y install ntp

setup工具安装
yum -y install setuptool

crontabs安装
yum -y install gcc gcc-c++ autoconf vixie-cron crontabs
使用yum更新或者安装软件时,有时下载速度会很慢,这时可以安装自动选择最快源的插件yum-fastestmirror。
yum install yum-fastestmirror

装上之后,在yum更新或者安装时,它会自动选择最快的源来下载,如果你对它选择的源不满意,只要Ctrl+c一下,它就会自动更换一个源来下载了,如果新换的源还是慢,就再Ctrl+c一下,接着换,直到换到快的为止。

注意:千万别一次连着按几下Ctrl+c,那样会直接退出yum安装了。
Tags: ,

修改yum源为国内源

[阴 2010/04/07 18:04 | by birdsky ]
yum虽然很好用,但却有一个小问题,那就是更新速度。对于国内用户,尤其是你的网速还不够快的时候,使用yum意味着漫长的等待。我搜集了几个速度不错的国内源,大家可以自己选择、测试、修改。需要修改的文件是/etc/yum.repos.d/CentOS-Base.repo,记得备份!

首先,备份原yum源
cd /etc/yum.repos.d/
cp CentOS-Base.repo CentOS-Base.repo.bak

然后在下面的源中选择一个来用
vi CentOS-Base.repo
最后更新缓存
yum makecache

以下为收集到的源
1.默认的CentOS-Base.repo文件:

CentOS-Base.repo
# CentOS-Base.repo  
#  
# This file uses a new mirrorlist system developed by Lance Davis for CentOS.  
# The mirror system uses the connecting IP address of the client and the  
# update status of each mirror to pick mirrors that are updated to and  
# geographically close to the client.  You should use this for CentOS updates  
# unless you are manually picking other mirrors.  
#  
# If the mirrorlist= does not work for you, as a fall back you can try the    
# remarked out baseurl= line instead.  
#  
#  
 
[base]  
name=CentOS-$releasever - Base  
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os  
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/  
gpgcheck=1  
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5  
priority=1  
 
#released updates    
[updates]  
name=CentOS-$releasever - Updates  
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates  
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/  
gpgcheck=1  
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5  
priority=1  
 
#packages used/produced in the build but not released  
[addons]  
name=CentOS-$releasever - Addons  
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons  
#baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/  
gpgcheck=1  
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5  
priority=1  
 
#additional packages that may be useful  
[extras]  
name=CentOS-$releasever - Extras  
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras  
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/  
gpgcheck=1  
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5  
priority=1  
 
#additional packages that extend functionality of existing packages  
[centosplus]  
name=CentOS-$releasever - Plus  
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus  
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/  
gpgcheck=1  
enabled=0  
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5  
priority=2  

2.USTC源
该源由中国科学技术大学提供,合肥电信,每小时更新,CentOS官方镜像。编辑CentOS-Base.repo内容如下,下同。

USTC
[base]  
name=CentOS-$releasever - Base  
baseurl=http://centos.ustc.edu.cn/centos/$releasever/os/$basearch/  
gpgcheck=1  
gpgkey=http://centos.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5  
 
[updates]  
name=CentOS-$releasever - Updates  
baseurl=http://centos.ustc.edu.cn/centos/$releasever/updates/$basearch/  
gpgcheck=1  
gpgkey=http://centos.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5  
 
[addons]  
name=CentOS-$releasever - Addons  
baseurl=http://centos.ustc.edu.cn/centos/$releasever/addons/$basearch/  
gpgcheck=1  
gpgkey=http://centos.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5  
 
[extras]  
name=CentOS-$releasever - Extras  
baseurl=http://centos.ustc.edu.cn/centos/$releasever/extras/$basearch/  
gpgcheck=1  
gpgkey=http://centos.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5  
 
[centosplus]  
name=CentOS-$releasever - Plus  
baseurl=http://centos.ustc.edu.cn/centos/$releasever/centosplus/$basearch/  
gpgcheck=1  
enabled=0  
gpgkey=http://centos.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5  

3.mirror.centos.net.cn源
该源同样为CentOS官方镜像,属于北京网通,北方网通用户推荐。

mirror.centos.net.cn
[base]  
name=CentOS-$releasever - Base  
baseurl=http://mirror.centos.net.cn/$releasever/os/$basearch/  
gpgcheck=1  
gpgkey=http://mirror.centos.net.cn/RPM-GPG-KEY-CentOS-5  
 
[update]  
name=CentOS-$releasever - Updates  
baseurl=http://mirror.centos.net.cn/$releasever/updates/$basearch/  
gpgcheck=1  
gpgkey=http://mirror.centos.net.cn/RPM-GPG-KEY-CentOS-5  
 
[addons]  
name=CentOS-$releasever - Addons  
baseurl=http://mirror.centos.net.cn/$releasever/addons/$basearch/  
gpgcheck=1  
gpgkey=http://mirror.centos.net.cn/RPM-GPG-KEY-CentOS-5  
 
[extras]  
name=CentOS-$releasever - Extras  
baseurl=http://mirror.centos.net.cn/$releasever/extras/$basearch/  
gpgcheck=1  
gpgkey=http://mirror.centos.net.cn/RPM-GPG-KEY-CentOS-5  
 
[centosplus]  
name=CentOS-$releasever - Plus  
baseurl=http://mirror.centos.net.cn/$releasever/centosplus/$basearch/  
gpgcheck=1  
enabled=1  
gpgkey=http://mirror.centos.net.cn/RPM-GPG-KEY-CentOS-5  
 
[contrib]  
name=CentOS-$releasever - Contrib  
baseurl=http://mirror.centos.net.cn/$releasever/contrib/$basearch/  
gpgcheck=1  
enabled=0  
gpgkey=http://mirror.centos.net.cn/RPM-GPG-KEY-CentOS-5  

4.网易源
http://mirrors.163.com, 该源由网易提供,杭州电信。下载CentOS-Base-163.repo, 放入/etc/yum.repos.d/,然后运行yum makecache生成缓存。

NETEASE:mirrors.163.com
[base]  
name=CentOS-$releasever - Base  
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/  
gpgcheck=1  
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-5  
 
[update]  
name=CentOS-$releasever - Updates  
baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/  
gpgcheck=1  
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-5  
 
[addons]  
name=CentOS-$releasever - Addons  
baseurl=http://mirrors.163.com/centos/$releasever/addons/$basearch/  
gpgcheck=1  
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-5  
 
[extras]  
name=CentOS-$releasever - Extras  
baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/  
gpgcheck=1  
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-5  
 
[centosplus]  
name=CentOS-$releasever - Plus  
baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/  
gpgcheck=1  
enabled=1  
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-5  
 
[contrib]  
name=CentOS-$releasever - Contrib  
baseurl=http://mirrors.163.com/centos/$releasever/contrib/$basearch/  
gpgcheck=1  
enabled=0  
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-5  

5.搜狐源
http://mirrors.sohu.com ,该源由搜狐提供,山东联通。下载CentOS-Base-sohu.repo, 放入/etc/yum.repos.d/,然后运行yum makecache生成缓存。

SOHU:mirrors.sohu.com
[base]  
name=CentOS-$releasever - Base  
baseurl=http://mirrors.sohu.com/centos/$releasever/os/$basearch/  
gpgcheck=1  
gpgkey=http://mirrors.sohu.com/centos/RPM-GPG-KEY-CentOS-5  
 
[update]  
name=CentOS-$releasever - Updates  
baseurl=http://mirrors.sohu.com/centos/$releasever/updates/$basearch/  
gpgcheck=1  
gpgkey=http://mirrors.sohu.com/centos/RPM-GPG-KEY-CentOS-5  
 
[addons]  
name=CentOS-$releasever - Addons  
baseurl=http://mirrors.sohu.com/centos/$releasever/addons/$basearch/  
gpgcheck=1  
gpgkey=http://mirrors.sohu.com/centos/RPM-GPG-KEY-CentOS-5  
 
[extras]  
name=CentOS-$releasever - Extras  
baseurl=http://mirrors.sohu.com/centos/$releasever/extras/$basearch/  
gpgcheck=1  
gpgkey=http://mirrors.sohu.com/centos/RPM-GPG-KEY-CentOS-5  
 
[centosplus]  
name=CentOS-$releasever - Plus  
baseurl=http://mirrors.sohu.com/centos/$releasever/centosplus/$basearch/  
gpgcheck=1  
enabled=1  
gpgkey=http://mirrors.sohu.com/centos/RPM-GPG-KEY-CentOS-5  
 
[contrib]  
name=CentOS-$releasever - Contrib  
baseurl=http://mirrors.sohu.com/centos/$releasever/contrib/$basearch/  
gpgcheck=1  
enabled=0  
gpgkey=http://mirrors.sohu.com/centos/RPM-GPG-KEY-CentOS-5  
Tags: ,
让history加上时间,加在/etc/bashrc文件上

vi /etc/bashrc

加入下面语句,然后重新登录就可生效

# add history time
export HISTTIMEFORMAT="%F %T "
Tags: ,
分页: 2/3 第一页 上页 [1] [2] [3] 下页 最后页 [ 显示模式: 摘要 | 列表 ]