2007年2月 归档

OS变量

| 暂无评论 | 暂无引用通告
#!/usr/bin/perl
use strict;
use warnings;
use Config;

print "The OS is $Config{osname}, $Config{osvser}\n";

AIX简介

| 暂无评论 | 暂无引用通告

一、              AIX概述

二、              IBM Unix 历史

三、              AIX 5L性能特点

四、              AIX版本历史

 

 

一、AIX概述

 

AIXAdvanced Interactive eXecutive)是IBM开发的一套UNIX操作系统。它符合Open groupUNIX 98行业标准(The Open Group UNIX 98 Base Brand),通过全面集成对32-位和64-位应用的并行运行支持,为这些应用提供了全面的可扩展性。它可以在所有的IBM ~ p系列和IBM RS/6000工作站、服务器和大型并行超级计算机上运行。

 

二、IBM Unix 历史

 

1986 1 AIX v1推出以来, AIX 就成为 IBM 进入开放系统和标准( UNIX TCP/IP 和以太网)世界的催化剂。从 1990 年到 1994 年, AIX 为支持领先的硬件技术提供了一个优秀的操作系统。 AIX 从一个技术工作站平台发展为一个真正的服务器操作系统。与此同时, IBM 推出了 POWER 微处理器架构并将其与 AIX 结合在一起,制造出第一台 RISC 6000 系统,也就是后来人们所称的 RS/6000 系统。

 

1995 年到 2000 年, AIX 开始将重点放在支持商业和技术应用负载,提供对称多处理以及高端的可扩展性。 IBM 在高性能计算领域所处的领先地位源自运行 AIX 深蓝这样的高可用性系统以及高能集群。随着 2001 AIX 5L 的发布, IBM 开始在系统分区领域实现重大的创新。 AIX 利用虚拟技术实现了逻辑分区、动态逻辑分区和微分区,将系统灵活性和使用率提高到了一个新的水平。

 

IBM 2005 12 月宣布 AIX 协作中心投入运行。通过 2 2 亿美元的投入, IBM 将使用这一设在德州奥斯汀的中心与客户、开发人员、 ISV 和学术界进行合作,推动以 AIX 技术为中心的创新,同时开发、测试和使用各种用于支持 AIX 操作系统的新应用和中间件。

 

AIX 协作中心将重点推动关键技术领域的系统级创新,如虚拟、安全性、性能和可扩展性,该中心将帮助 ISV 们利用新的 IBM 硬件和软件功能来改进自己在 AIX 上运行的应用。另外,这一中心还将提供包括培训、设备、有经验的技术咨询顾问以及远程或现场测试功能在内的丰富资源,帮助这些 ISV AIX 和最新 64 POWER 系统上实现自己的应用。

 

下面这些"第一个"记录了IBM UNIX系统的技术成长过程.

  • 发明 RISC 技术 - 1975
  • 第一个可用的商用 RISC 系统 (RT/ PC) -1986
  • 第一个超标量体系结构 RISC (POWER) - 1990
  • 第一个支持TCP/ IP v6 UNIX (AIX) -1997
  • 第一个64- UNIX98 认证 (AIX) - 1998
  • 唯一通过 VPN认证的 UNIX (AIX)
  • 第一个可从Itanium启动的 UNIX (AIX) - 1999
  • 第一个使用铜技术的商业系统 (S80) - 1999
  • 第一个双处理器/ L3 cache 架构的RISC 芯片 (POWER4) - 1999
  • 第一个支持Java 2 V1. 3 UNIX (AIX) - 2000
  • 第一个紧密结合Linux UNIX (AIX5L) - 2001

 

三、AIX 5L性能特点

       AIX 5L AIX的当前使用版本,它支持IBM POWER Intel 64(IA-64)平台。“L” Linux affinity

 

    虚拟服务器

 

通过在AIX 5L V5.2中引入动态逻辑分区(DLPAR),IBM为基于POWER4p系列系统提供了高级的灵活性和可扩展性功能。

 

LPAR功能使得在一个单一p系列服务器上运行AIX 5LLinux的多个独立操作系统映像成为可能。逻辑分区不需要与系统的组建模块(资源集合)的物理边界相一致。LPAR允许客户以更小的粒度从整个可用资源池中选择组件,从而能够增加运行的灵活性。一个p系列分区所要求的最少资源包括一个处理器、256MB内存以及一个I/O适配器。

 

利用DLPAR,客户可以"在一个服务器的内部创建多个虚拟服务器",并能够从活动分区中动态地添加和删除处理器、物理内存和I/O插槽-每个分区都与其它分区相隔离,而且每个分区都运行自己的AIX 5L V5.2操 作系统;添加和删除操作都是在分区环境的内部进行,而且不要求重新执行系统引导。客户可以将系统资源分配给应用程序最需要的地方,在根据不断变化的系统优 先级和资源需求进行调整的同时,能够将多个分区上的负载整合到一个单一服务器上。此外,客户在完成这些工作的同时,能够将运行、服务和支持水平保持在所要 求的级别上。

 

运行效率和容量规划

 

为提供更高的灵活性、可扩展性和可用性,AIX 5L V5.2p650, p670p690系统上推出了动态随需应变容量升级(CUoD)功能。

 

CUoD允许客户在进行系统安装时安装比初始需要数量更多的处理器,保持这些处理器(处于休眠状态)直至业务的增长要求将其激活。CUoD选项将为系统管理员提供一个用于激活更多处理器的加密密钥,可以在不中断系统运行的情况下将新激活的处理器动态分配给各个分区。

 

CUoD提高了系统可用性。当一个处理器的出错频率到达一个错误阀值(尽管发生这种情况的可能性很小),AIX 5L V5.2将以透明的方式激活一个可用的CUoD处理器并使用它来替换故障处理器-直至客户准备好修复计划为止。此外,即使是单处理器分区也可以支持这一被称为动态处理器备用(Dynamic Processor Sparing)的功能,这一功能允许系统在保持处理能力不变的情况下继续运行,能够保证系统的性能和可用性不会受到影响。

 

集群管理

 

为实现快速同步和协调响应,集群环境要求节点之间能够进行全面的协作。AIX 5L使用基于AIX 5LLinux软件和IBM集群系统管理器(CSM)支持和优化集群服务器的管理。CSM为指定p系列和IBM eServer x系列服务器的安装、配置、维护和更新提供了一个单一的控制点。基于AIX 5LCSM以安装选项和单独许可产品的形式,包括在AIX 5L V5.2基本安装介质之中。

 

Linux亲和性

 

AIX 5LLinux之间的亲和性可以帮助以速度更快、成本更低的方式实现跨AIXLinux平台的多平台集成解决方案。对于很多在Linux上开发或为Linux开发的应用,只需对源代码进行一次简单的重编译,它们就可以在AIX 5L上运行。IBM免费为客户提供一个用于Linux应用的AIX工具箱,该工具箱由一组多个Linux版本中常见的开放源代码和GNU软件组成。因为这些应用运行在AIX上,所以公司可以将Linux的灵活性与AIX的高级功能结合在一起-这些高级功能包括先进的负载管理、完善的系统管理工具以及可扩展性和安全性功能。

 

安全性

 

通过C2级认证的AIX 5L提供并全面使用了强大的行业标准安全技术和目录技术。AIX 5L V5.2包括和扩展了这些技术,它提供了对可拔插身份验证模块(PAM)、基于用户的PKI证书、企业身份映射(EIM)、BIND V9SNMP V3、移动IPv6、无限访问协议(WAPv1.1OpenSSH v3.4的集成支持,并支持新的基于AESRijndael)、SEALMarsTwofish和其它算法的加密解密库。此外,AIX 5L V5.2继续支持IBM网络身份验证服务器(NAS)、IBM目录服务器v4.1ICSA认证IPsec/VPN安全组网功能。AIX 5L V5.2提供的Java安全技术包括JAASJCE/JCEJSSEJGSSJ-PKI

 

 

四、AIX版本历史

 

AIX 5L 5.3, 20048

NFS Version 4 支持

Advanced Accounting

虚拟 SCSI

虚拟以太网

SMT

微分区(Micro-Partitioning

JFS2 配额(quota)支持

JFS2 文件系统收缩(shrink)支持

AIX 5L 5.2, 200210

支持多路IO光纤信道磁盘

动态LPAR支持

AIX 5L 5.1, 20015

引入64位内核

JFS2

AIX 4.3.3, 19999

增加了在线备份功能

AIX 4.3.2, 199810

AIX 4.3.1, 19984

AIX 4.3, 199710

支持 64 体系

AIX v4, 1994

AIX v3, 1990

AIX v3.1

引入了日志文件系统 (JFSv1)

AIX v2

AIX v1, 1986

iptables

| 暂无评论 | 暂无引用通告

以本地为目标的包 

进入接口->mangle--PREROUTING(用来mangle数据包如改变TOS)
        ->nat--PREROUTING(用于做DNAT)
->路由判断
        ->mangle--INPUT
        ->filter--INPUT
->送达程序

以本地为源的包


地本程序->路由判断
        ->mangle--OUTPUT
        ->nat--OUTPUT
        ->filter--OUTPUT
        ->mangle--POSTROUTING
        ->nat--POSTROUTING

被转发的包


进入接口->mangle--PREROUTING
        ->nat--PREROUTING
->路由判断
        ->mangle--FORWARD
        ->filter--FORWARD
        ->mangle--POSTROUTING
->离开接口

常用命令 

iptables-save [-c] [-t table]

参数-c的作用是保存包和字节计数器的值。这可以使我们在重启防火墙后不丢失对包和字节的统计。带-c参数的iptables-save命令使重启防火墙而不中断统计记数程序成为可能。这个参数默认是不使用的。

参数-t指定要保存的表,默认是保存所有的表。
iptables-save -c >/root/iptables-backup

iptables-restore [-c] [-n]

参数-c要求装入包和字节计数器。如果你用iptables-save保存了计数器,现在想重新装入,就必须用这个参数。它的另一种较长的形式是--counters。

参数-n告诉iptables-restore不要覆盖已有的表或表内的规则。默认情况是清除所有已存的规则。这个参数的长形式是--noflush。

iptables-restore <back


iptables [-t table] command [match] [target/jump]

表包括nat mangle filter

命令包括
-A, --append
iptables -A INPUT ...
-D, --delete
iptables -D INPUT --dport 80 -j DROP或iptables -D INPUT 1
-R, --replace
iptables -R INPUT 1 -s 192.168.0.1 -j DROP
-I, --insert
iptables -I INPUT 1 --dport 80 -j ACCEPT
-L, --list
iptables -L INPUT
-F, --flush
iptables -F INPUT
-Z, --zero  把指定链(如未指定,则认为是所有链)的所有计数器归零。
iptables -Z INPUT
-N, --new-chain
iptables -N allowed
-X, --delete-chain
iptables -X allowed
-P, --policy
iptables -P INPUT DROP
-E, --rename-chain
iptables -E allowed disallowed
 

free输出参数

| 暂无评论 | 暂无引用通告

free的输出参数

[root@supersun ~]# free -t

total used free shared buffers cached

Mem: 459568 451368 8200 0 4760 126120

-/+ buffers/cache: 320488 139080

Swap: 514072 119348 394724

Total: 973640 570716 402924

     

我们使用total1used1free1used2free2 等名称来代表上面统计数据的各值,12 分别代表第一行和第二行的数据。

  • total1:表示物理内存总量。

  • used1:表示总计分配给缓存(包含buffers cache )使用的数量,但其中可能部分缓存并未实际使用。

  • free1:未被分配的内存。

  • shared1:共享内存,一般系统不会用到,这里也不讨论。

  • buffers1:系统分配但未被使用的buffers 数量。

  • cached1:系统分配但未被使用的cache 数量。buffer cache 区别见后面。

  • used2:实际使用的buffers cache 总量,也是实际使用的内存总量。

  • free2:未被使用的buffers cache 和未被分配的内存之和,这就是系统当前实际可用内存。

整理出如下等式:

total1 = used1 + free1

total1 = used2 + free2

used1 = buffers1 + cached1 + used2

free2 = buffers1 + cached1 + free1

参看原文:Linux中内存buffercache的区别

tips:将“-/+ buffers/cache”理解为第一行的used - “buffers/cache”第一行的free +“buffers/cache”

buffers: A buffer is something that has yet to be "written" to disk

cached: A cache is something that has been "read" from the disk and stored for later use.

 

 

 

内核编译步骤

| 暂无评论 | 暂无引用通告

解压内核

tar jzxvf linux-xxx.tar.bz2
cd linux-xxx

如果需要打补丁的话就打上

patch -pl <</dir/to/patchfile

make mrproper
进入配置菜单

make menuconfig
解决依赖关系

make dep (optional)
make clean
编译内核

make bzImage
编译模块

make modules
安装模块

make modules_install    #install to /lib/modules/kernel-version/
cd /boot
mkinitrd initrd-kernel-version.img kernel-version
cd /dir/to/kernel-source/
cp arch/i386/boot/bzImage /boot/vmlinuz-kernel-version
cp System.map /boot/System.map.kernel-version
cd /boot/
rm -rf System.map
ln -s System.map.kernel-version System.map


cat >>/boot/grub/grub.conf <<DATA
title linux-kernel-version
        root (hdn,n)
        kernel /boot/vmlinuz-kernel-version ro root=/dev/xxx
        initrd /boot/initrd-kernel-version.img
DATA

dhcpd

| 暂无评论 | 暂无引用通告

下载dhcp-3.0.5.tar.gz

tar zxvf dhcp-3.0.5.tar.gz
cd dhcp-3.0.5
./configure
make
make install

vi /etc/dhcpd.conf
touch /var/state/dhcp/dhcpd.leases

 

下面是dhcpd.conf的一个例子
[root@supersun dhcp]# cat dhcpd.conf
ddns-update-style interim;
ddns-update-style ad-hoc;
max-lease-time 86400;
default-lease-time 86400;

subnet 192.168.2.0 netmask 255.255.255.0 {
        range 192.168.2.220 192.168.2.249;
        option subnet-mask 255.255.255.0;
        option broadcast-address 192.168.2.255;
        option routers 192.168.2.254;
        option domain-name-servers 192.168.2.20;
        option domain-name "ns1.dareway.cn";

        host platinum {
                hardware ethernet 00:12:79:D5:53:25;
                fixed-address 192.168.2.20;
        }

#        host bchyi {
#                hardware ethernet 00:80:c8:e4:c1:e4;
#                fixed-address 172.25.39.2;
#        }

}

 

ipvs+ha

| 暂无评论 | 暂无引用通告

1、用rpm安装dep pack(相关包):


rpm -ivh ipvsadm-1.21-1.rh.el.1.i386.rpm

rpm Civh ipvsadm-debuginfo-1.21-1.rh.el.1.i386.rpm

rpm Civh libnet-1.1.0-1.rh.el.1.i386.rpm

rpm Civh perl-Digest-SHA1-2.01-15.1.i386.rpm

rpm Civh perl-Digest-HMAC-1.01-11.1.noarch.rpm

rpm Civh perl-Authen-SASL-2.03-1.rh.el.um.1.noarch.rpm

rpm Civh perl-Convert-ASN1-0.16-2.rh.el.um.1.noarch.rpm

rpm Civh perl-Net-SSLeay-1.23-1.rh.el.um.1.i386.rpm

rpm -ivh perl-IO-Socket-SSL-0.92-1.rh.el.um.1.noarch.rpm

rpm Civh perl-Net-SSLeay-debuginfo-1.23-1.rh.el.um.1.i386.rpm

rpm Civh perl-XML-NamespaceSupport-1.08-1.rh.el.um.1.noarch.rpm

rpm Civh perl-Parse-RecDescent-1.80-1.rh.el.um.1.noarch.rpm

rpm -ivh perl-Mail-IMAPClient-2.2.7-1.rh.el.um.1.noarch.rpm

rpm Civh libnet-debuginfo-1.1.0-1.rh.el.1.i386.rpm

rpm -ivh perl-HTTP-GHTTP-1.07-1.n0i.3.i386.rpm

rpm -ivh perl-XML-SAX-0.12-1.rh.el.um.1.noarch.rpm

rpm -ivh perl-ldap-0.2701-1.rh.el.um.1.noarch.rpm

rpm -ivh perl-libwww-perl-5.65-6.noarch.rpm

下面是最初的安装过程

rpm -ivh ipvsadm-1.21-1.rh.el.1.i386.rpm

rpm Civh ipvsadm-debuginfo-1.21-1.rh.el.1.i386.rpm

php安装过程中的依赖包

| 暂无评论 | 暂无引用通告

ftp://xmlsoft.org/libxml2/libxml2-2.6.20-1.i386.rpm

ftp://xmlsoft.org/libxml2/libxml2-devel-2.6.20-1.i386.rpm

flex-2.5.4a-29.i386.rpm 

Breaking The Habit

| 暂无评论 | 暂无引用通告

歌手:Linkin Park 专辑:Meteora Memories concern Like opening the wound I'm picking me apart again You all assume I'm safer in my room Unless I try to start again I don't want to be the one Who battles always choose Cuz inside I realize That I'm the one confused I don't know what's worth fighting for Or why I have to scream I don't know why I instigate And say what I don't mean I don't know how I got this way I know it's not alright So I'm breaking the habit I'm breaking the habit tonight Cultured my cure I tightly lock the door I try to catch my breath again I hurt much more Than anytime before I have no options left again I dont want to be the one Who battles always choose Cuz inside I realize That I'm the one confused I don't know what's worth fighting for Or why I have to scream I don't know why I instigate And say what I don't mean I don't know how I got this way I'll never be alright So, I'm breaking the habit I'm breaking the habit tonight I'll paint it on the walls Cuz I'm the one that falls I'll never fight again And this is how it ends I don't know what's worth fighting for Or why I have to scream But now I have some clarity to show you what I mean I don't know how I got this way I'll never be alright So, I'm breaking the habit I'm breaking the habit I'm breaking the habit tonight

爱上你这样的女人

| 暂无评论 | 暂无引用通告

春天的花会开
阳光照进来
心儿长了翅膀飞了起来
飞到你胸怀!
你的心事我明白
试着说出来
春天的味道四处飘散
太阳也升起来
爱上你这样的女人
给了你全部的温存
即使你有太多的疑问
我会陪你到清晨
爱上你这样的女人
每天每夜为你伤神,
哪怕你有一天会离开我
我会爱你到永远,——这一生

http://cn.stareastnet.com/music/NetFriend/MusicFile/3390.mp3

QuickImagePost测试

| 暂无评论 | 暂无引用通告

插件地址:

http://alogblog.com/movabletype/plugins/quickimagepost_a_blogging_tool_for_an_entry_with_representative_image/

下载地址:

http://alogblog.com/downloads/dn.cgi?QuickImagePost-3.3.02.tar.gz

解压文件并将内容复制到对应的目录

/mt-static/plugins/alogblog/QuickImagePost.xpi

文件复制到本地,使用浏览器运行,然后重启firefox

找到图片,右键就可以看到 QuickImagePost的图标了,设置后就可以图片一键发布了

文件的随机访问

| 暂无评论 | 暂无引用通告

#!/usr/bin/perl -w
use strict;

my $file=shift;
my $hostname=shift;
open FD,'+<',$file;
while(<FD>)
{
        if($_ =~ /(127.0.0.1\s+)(\S+$)/)
        {
                seek FD,-length($_),1;
                print FD $1,$hostname," ",$2;
                close FD;
                exit 0;
        }
}
close FD

 

[root@supersun changehostname]# cat hosts
127.0.0.1               localhost.localdomain localhost
192.168.2.11            newmail

[root@supersun changehostname]# ./host.pl hosts sun
[root@supersun changehostname]# cat hosts
127.0.0.1               sun localhost.localdomain localhost
192.168.2.11            newmail
[root@supersun changehostname]#
 

 

seek的用法

seek FH,$pos,0         这里的$pos是指针的绝对位置如: seek FH,0,0指针移到文件的开始处

seek FH,$pos,1          向前或向后移动$pos个字节,如果$pos为正则指针前移,$pos为负则指针后移

seek FH,$pos,2          相对于文件结尾处进很定位

linux主机名的修改

| 暂无评论 | 暂无引用通告

更改文件/etc/sysconfig/netwrok

系统启动时使用该文件定义主机名

[root@supersun changehostname]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=supersun
GATEWAY=192.168.1.245

另外使用命令

hostname supersun

vi /etc/hosts

127.0.0.1               supersun localhost.localdomain localhost 

 

1、什么是音乐:

    令人感觉愉悦的声音,就叫音乐。乐者,令人愉快之意。音者,声音也。加在一起就叫音乐。怎么样,比大家想象的包含范围要广阔的多吧,呵呵~~~~  在这里说一点题外话,声音的3要素是什么?那本是音质/音色/音量。音量不必多说,小了人们听不清,过大了人体本能的会有生理不适,那么声音的好不好听关键取决于什么呢?是音质!音质的好坏是决定声音是否好听的根本,这就是为什么说好琴是关键的原因,只有你拥有一把好琴的时候你才能真正体会所谓的好声音是什么样的。音色的好坏是建立在音质的基础上的,所以对于乐手(特别是bass)好音质应是第一追求,当拥有了好音质的时候你会发现好音色几乎是唾手可得,比音质不好的琴要追求好音色要容易无数倍。

2、什么是音阶:

    说来话长,很久以前,人们就发现了声音的高低中似乎总有一些音是听起来就像是一模一样,却不在一个高度上,于是人们把任意这样两个音之间的频率计算了一下,又捉摸了很久,终于发现按照频率把这任意两个音之间的频率分成12份,就几乎可以把见到听到过的音乐都鼓捣出来,于是人们把这个发现叫做“12平均律”,于是钢琴出现了,钢琴就是基于12平均律的理论制造的,所以钢琴的每一组键盘(5黑7白)相加就一共正好是12个键,同时人们发现,在音乐中,其实这12个键中只有7个使用率特高,于是人们把常用的7个键做得宽一点并放在一起,另外相对不常用的5个键做的窄一点,放到不碍事的地方且用不同的颜色以避免混乱,这就是钢琴的样子的由来。再往后,人们看到虽然那两个听起来就像是一模一样却不在一个高度上的音中间是隔着12个键,但是毕竟常用的只有7个啊,干脆一省事,就只给这7个音符起了名字。于是就有了大家知道的1234567。问题又来了,这时人们发现,在钢琴上只有34之间和71之间是连续的两个键,而其它的任意两个相邻的常用音符中间都夹着一个不常用的黑键,最后为了大家方便就规定了一些统一的概念,这样就不会糊涂了,比如1到2之间/2到3之间/4到5之间/5到6之间/6到7之间都夹着一个不常用的黑键,也就是说按照12平均律来说,它们之间不是相邻的键,但是谁让那几个黑键是不常用的呢,所以大家还是决定把1到2之间/2到3之间/4到5之间/5到6之间/6到7之间统一叫做全音关系,把34之间和71之间那种完全相邻的关系叫做半音关系。全音也正好等于2个半音相加的总和。但是如何表达音符与音符之间的远近呢?于是就产生了“度”这个概念,比如从1唱到2,一共只有2个音符,从一数到二,于是就叫1和2之间是2度的关系,但是1和2之间原本是有一个不常用的半音的,于是人们规定,两个音是半音关系的它们之间的远近叫做小2度,两个音是全音关系的它们之间的远近叫做大2度,所以1到2之间/2到3之间/4到5之间/5到6之间/6到7之间的远近关系都是大2度,34之间和71之间的远近关系叫做小2度。那么1和3之间呢?从1到3,不管你唱不唱那个2,这个2的音符也事实性的永远夹在1/3之间,出不出声不一定,但它永远存在,所以1和 3之间就是3度的关系,同理2和4之间/3和5之间/4和6之间/5和7之间都是3度关系。考虑到半音/全音的问题,最后规定,凡是两个大2度加在一起的 3度音都统一叫做大三度,1和3之间/4和6之间/5和7之间就是大三度关系。凡是由一个大2度和一个小2度加在一起的3度音都统一叫做小三度,2和4之间/3和5之间就是小三度关系。再数数看,1到4之间是4度,1到5之间是5度……,那么前面提到的那两个听起来就像是一模一样却不在一个高度上的音中间就是1234567再到一个高音的1,数一数,就是8度关系。同理,如果从2开始往上数23456712,高低的两个2之间也叫8度关系。 34567123的两个3也是……,说了这么长,都是为了对音阶概念的铺垫,这些“12平均律”“全音/半音”“度”的概念都是最基础的概念,各位一定要深入地整明白,这些基本概念糊涂,后面的乐理就会越来越难学的啊。好了,该说啥叫音阶了,其实,所谓音阶,就是在任意一个8度以内的音符的固定排列组合,比如,最最常用的12345671的组合,就是一种音阶,67123456就是又一种音阶,以此类推,所谓布鲁斯音阶/爵士音阶/阿拉伯音阶……很多音阶,其实都是在任意一个8度以内的音符的各种固定排列组合。当然,林子大了什么鸟都有,并不是叫8度关系的各种音阶内都一定是8个音符,比如中国的5声音阶就是123561,没有4和7,还有很多音阶模式也是如此。

3、什么是调:

    这也是个比较长的话题,像上一个问题一样也会涉及若干相关概念,且听老妖慢慢道来。人的名字有大名也有小名,音符也一样,人们给音符起了1234567这样的名字以后,发现有很多问题还是表达时容易混乱,于是又给音符起了个大名,1234567分别的大名叫做CDEFGAB。用来对不同的音乐问题做出定义。又规定了一个全世界人民不分种族不分男女老幼唱着都不高不低不费劲的音高作为最核心的一个C,于是就有了个人为规定的中央C的概念,以中央C这个音符为核心的不管往上还是往下的8度之间的音阶,就都规定叫做C调音阶。以此类推,高低之间2到2的音阶,因为2的大名叫做D,所以这样的音阶就叫做D调音阶。高低之间3到3的音阶,就是E调……。下面老妖就把与“调”紧密相关的几个重要的基本概念分别说一说,那么刚才我说的调的概念其实和大家日常接触的调的概念似乎不是很一样,没错,刚才说的是最基本概念。那么大家日常最常遇到的困惑其实是在清楚了基本概念和以下我要讲的几个问题后即可逐渐搞懂。首先,我们只讲最常用的音阶,特殊的以后再说,在最最常用的 12345671的音阶组合中,因为最常用,且人类近6成的音乐,可用此音节组合搞定,于是人们给它起了个名字叫做自然音阶。同时给音阶中的起始音和结束音(也就是那两个不同高度的1)起了个称呼叫做音阶中的主音。同时人们发现,12345671的音阶组合在记录音乐时,有不少音乐其实是从6起到6结束,也就是说是67123456的组合,于是人们规定把12345671的音阶组合叫做自然大调音阶,简称大调音阶。把67123456的组合叫做自然小调音阶,简称小调音阶。因为在12345671中主音是1,它的三度音是3,主音和三度音之间是大三度关系,在67123456中主音是6,它的三度音是1,之间是小三度关系,所以,前者叫大调,后者叫小调。比如,以C为主音的12345671的组合就叫做C大调音阶,67123456因为主音是6,它的大名是A , 所以67123456的组合就叫做A小调音阶。那么是不是23456712就是D大调音阶呢?不是!因为我们前面提出的排列组合概念是以连续音阶之间的半音关系为基础的,比如12345671的组合,这8个音符之间的连续半音关系是1到2之间是全音/2到3之间是全音/3到4之间是半音/4到5之间是全音 /5到6之间是全音/6到7之间是全音/7到高音1之间是半音,也就是大调的组合8个音符之间的连续半音关系是全/全/半/全/全/全/半,也就是说凡是在一个八度内的八个音符之间从低到高是满足全/全/半/全/全/全/半的关系的,就是大调音阶。同理,小调音阶就是在一个八度内的八个音符之间从低到高是满足全/半/全/全/半/全/全的音阶组合。所以23456712不是D大调音阶,23#4567#12才是D大调音阶。大小调音阶之所以听起来很不一样主要是由于主音到3音的大小三度不同造成的,仔细体会一下,大调音阶给人的感觉普遍有一种开放/庄重/大气的暗示,小调音阶则普遍有一种细腻/感性的暗示,所以多数大开大合的音乐,大气的音乐,特别是军乐/进行曲什么的都一定是大调的,流行歌曲中很多比较大气的作品也都是大调的音乐,同比,很多感情色彩十分浓厚的浪漫的音乐就都是小调的,而且在人类的听觉范围内,有一些音域是特别适合某种情绪的表达的,比如C/D/F/G大调就是最适合做激昂/大气/刚性音乐的音域,很多军乐/进行曲/各国国歌就都是这些调式。bE调是最感性的调式,性感乐器之王----中音萨克斯就是bE调的。bB是最适合伤感音乐的音域,蓝调爵士中最伤感的乐器----低音萨克斯就是bB调的。当然这些不是绝对的,只是一种听觉上的趋势而已。大可不必机械的套用,从而进入形而上的误区。

4、旋律与和声:

    凡是以单线条状态连续出现的一段音符,就是一段旋律,旋律有两个必需的条件,一是最少2个获2个以上音符,没有上限;二是连续出现,即不管是多少音符,不管排列紧密还是疏松,必须是连续的单线条状态,不可以有同时重叠出现的音符。满足以上条件的2个获2个以上音符的总称就叫旋律。和声与旋律正好相反,凡是同时重叠出现的2个获2个以上音符加在一起就叫做和声。不过好像大家最常见的名词不是和声而是和弦,没错,和弦是器乐演奏和声时的特殊称呼,严格的说,和声的外延最大,和声包括和弦,和弦的内容本质与和声的内容本质是一样的,只不过是特指器乐罢了,而和声既包括器乐也包括声乐。一个和声中最低的那个音符有个名字叫做根音,最高的那个音符名字叫做冠音。另外也有一种说法,叫做音乐的两个要素是旋律与节奏,为什么在这种理论下不提和声了呢?是这样的,在这种理论上认为,和声其实只不过是同时出现的旋律相互叠加出现的。不必单独在理论上注明。这也是一种很独特的理解。

5、三和弦:

    我们其实常说的和弦(为了大家看上去习惯这一段我基本沿用“和弦”的称呼,少用“和声”这个标准称呼)都是三和弦,只是约定成俗的大家都不写“三”这个字而已。为啥叫三和弦呢?话要从这里说起,在本文第三段落“什么是调”的最后,我们介绍了音域的趋势,其实,就是音阶本身,趋势性也是很明显的。我们还用最常见的自然大调12345671为例,我们知道音阶的主音是1,那么我们先议论旋律,用最简单的连续2 个音的旋律来听,以1开始,分别弹出12;13;14;15;16;17;11;仔细对比之,你会发现13;15;11听起来最顺耳,12;14次之, 16再次之,17就听着比较别扭了。这就是音符的趋势性,在更仔细的对比13;15;11你会发现,最不打架的是11,但缺少变化,最美的13,但又有些过于情调化,最好听的其实是15的旋律,既有感情又不失气度。我们再用和声理论印证一下,用最简单的2个音的和声来听,以1开始,分别同时弹出12; 13;14;15;16;17;11;仔细对比之,你会发现13;15;11;14;16听起来最顺耳,12次之,17还是听着非常别扭的,在更仔细的对比13;15;11;14;16你会发现,11;13的问题和弹旋律时一样,14;16的和弦也有类似的不完美的地方,相比之下最完美的和弦还是15的组合。这样就产生一个概念,在音阶12345671中,与主音最和谐的是五度音5,有人把音阶反过来弹,就是按照17654321的顺序研究,也发现最和谐的是五度音,不过反过来时,主音的五度就变成了4,这不难理解吧。17654321从第一个数到第五个,不就是4了么。于是人们就规定,在音阶中,主音的上方五度音(12345671的那个5)起个名字叫做属音。有主必有属嘛。下方五度音(17654321的那个4)的名字就叫做下属音。从上往下数的属音就叫下属音吧。呵呵~~~~  认真的朋友可能这会儿也在拿着琴做刚才的那几种两个音符的旋律和声的对比研究,细心的你发现没有,不管是旋律还是和声, 17放到一起就给人感觉很不舒服,总有一种非常别扭的感觉,这就是7这个音的特性,它总是让人觉得不稳定/不舒服,听到它时潜意识里总有一种要找个办法改变它一下的冲动,于是人们也它起了个名字叫做导音,就是一听到它就总是想要赶紧转到别的音符,有一种强烈的引导出其它音符的功能。闲话到此为止,我们接着说三和弦,既然任意同时重叠出现的2个获2个以上音符加在一起就叫做和弦,那么岂不是和弦可以有无数种了?没错。不过人们在多年的实践中总结出来的结论是,绝大多数时候三和弦是最常应用的。那么常说的三和弦到底有什么标准呢?常规的来说它有两个必需的组成条件,一是由三个音符共同组成,二是由任意的一个音符为根音加上这个音符的3度音再加上5度音。比如音阶12345671中135放到一起是三和弦,246也是三和弦,357也是,461还是……  那么126是不是三和弦呢?当然是,但为何它只符合条件一,不符合条件二也能是三和弦呢。这就是为什么前面我写到“常规的来说它有两个必需的组成条件”,既然是常规的,就一定有非常规的啦。当然它也有自己的名字,在基础讲义这里我们暂不做讨论。那么大小和弦是怎么分的呢?其实道理和分大小调的原理一样,从根音开始数,刚才不是讲根音+三度音+五度音=三和弦么,那么看看根音和三度音之间是大三度还是小三度,再看看三度音和五度音之间是大三度还是小三度,如果从根音开始数根音和三度音之间是大三度,三度音和五度音之间是小三度,就是说是先大后小,那这样的三和弦就叫做大三和弦。比如135/461就是大三和弦。反之,从根音开始数根音和三度音之间是小三度,三度音和五度音之间是大三度,就是说是先小后大,那这样的三和弦就叫做小三和弦。比如246/357就是小三和弦。同时为了避免混乱,人们还规定,在一个三和弦中,不管音高的位置如何变化,只要还是这三个基本音符,则和弦名称/属性都不变,比如135的大三和弦,根音是1。那么当在乐器上不管用135还是351还是513……的各种由低到高的音符来演奏的时候,只要音符还是这三个音符,哪怕之间差得很远,也还把它叫做大三和弦,根音永远是1。这就是所谓的原位和弦与转位和弦的概念。

什么是小型机

| 暂无评论 | 暂无引用通告
小型机是指运行原理类似于PC(个人电脑)和服务器,但性能及用途又与它们截然不同的一种高性能计算机,它是70年代由DCE(数字设备公司)公司首先开发的一种高性能计算产品。
    小型机具有区别PC及其服务器的特有体系结构,还有各制造厂自己的专利技术,有的还采用小型机专用处理器,比如美国Sun、日本Fujitsu(富士通)等公司的小型机是基于SPARC处理器架构,而美国HP公司的则是基于PA-RISC架构;Compaq公司是Alpha架构。另外I/O总线也不相同,Fujitsu是PCI,Sun是SBUS,等等。这就意味着各公司小型机机器上的插卡,如、显示卡、SCSI卡等可能也是专用的。此外,小型机使用的操作系统一般是基于Unix的,像Sun、Fujitsu是用Sun Solaris,HP是用HP-Unix,IBM是AIX。所以小型机是封闭专用的计算机系统。使用小型机的用户一般是看中Unix操作系统的安全性、可靠性和专用服务器的高速运算能力。 
    现在生产小型机的厂商主要有IBM和HP及浪潮、曙光等。IBM典型机器有RS/6000、AS/400等。它们的主要特色在于年宕机时间只有几小时,所 以又统称为z系列(zero 零)。AS/400主要应用在银行和制造业,还有用于Domino,主要的技术在于TIMI(技术独立机器界面),单级存储,有了TIMI技术可以做到硬件与软件相互独立。RS/6000比较常见,用于科学计算和事务处理等。

ONE STEP CLOSER UNEDITED

| 暂无评论 | 暂无引用通告
I cannot take this anymore
I'm saying everything I've said before
All these words they make no sense
I find bliss in ignorance
Less I hear the less you'll say
But you'll find that out anyway
Just like before...

Everything you say to me
Takes me one step closer to the edge
And I'm about to break
I need a little room to breathe
Cause I'm one step closer to the edge
And I'm about to break

I find the answers aren't so clear
Wish I could find a way to disappe ar
All these thoughts they make no sense
I find bliss in ignorance
Nothing seems to go away
Over and over again

shut up when I'm talking to you

PUSHING ME AWAY

| 暂无评论 | 暂无引用通告

I've lied to you
The same way that I always do
This is the last smile
That I'll fake for the sake of being with you

Everything falls apart
Even the people who never frown eventually break down
The sacrifice of hiding in a lie
Everything has to end
You'll soon find we're out of time left to watch it all unwind
The sacrifice is never knowing

Why I never walked away
Why I played myself this way
Now I see your testing me pushes me away

I've tried like you
To do everything you wanted too
This is the last time
I'll take the blame for the sake of being with you

 

Everything falls apart
Even the people who never frown eventually break down
The sacrifice of hiding in a lie
Everything has to end
You'll soon find we're out of time left to watch it all unwind
The sacrifice is never knowing

Why I never walked away
Why I played myself this way
Now I see your testing me pushes me away

We're all out of time
This is how we find how it all unwinds
The sacrifice of hiding in a lie
We're all out of time
This is how we find how it all unwinds
The sacrifice is never knowing

Why I never walked away
Why I played myself this way
Now I see your testing me pushes me away

Pushes me away...
Pushes my away 

IN THE END

| 暂无评论 | 暂无引用通告

It starts with one thing
I don't know why
It doesn't even matter how hard you try
keep that in mind
I designed this rhyme
To explain in due time
All I know
Time is a valuable thing
Watch it fly by as the pendulum swings
Watch it count down to the end of the day
The clock ticks life away
It's so unreal
Didn't look out below
Watch the time go right out the window
Trying to hold on, but didn't even know
Wasted it all just to watch you go
I kept everything inside and even though I tried, it all fell apart
What it meant to me will eventually be a memory of a time when

 

I tried so hard
And got so far
But in the end
It doesn't even matter
I had to fall
To lose it all
But in the end
It doesn't even matter


One thing, I don't know why
It doesn't even matter how hard you try
keep that in mind
I designed this rhyme, to explain in due time
I tried so hard
In spite of the way you were mocking me
Acting like I was part of your property
Remembering all the times you fought with me
I'm surprised it got so (far)
Things aren't the way they were before
You wouldn't even recognize me anymore
Not that you knew me back then
But it all comes back to me (in the end)
You kept everything inside and even though I tried, it all fell apart
What it meant to me will eventually be a memory of a time when I 

 

Chorus


I've put my trust in you
Pushed as far as I can go
And for all this
There's only one thing you should know (2x) Chorus

 

OpenGL

| 暂无评论 | 暂无引用通告
OpenGL是个专业的3D程序接口,是一个功能强大,调用方便的底层3D图形库。OpenGL的前身是SGI公司为其图形工作站开发的IRIS GL。IRIS GL是一个工业标准的3D图形软件接口,功能虽然强大但是移植性不好,于是SGI公司便在IRIS GL的基础上开发了OpenGL。OpenGL的英文全称是“Open Graphics Library”,顾名思义,OpenGL便是“开放的图形程序接口”。虽然DirectX在家用市场全面领先,但在专业高端绘图领域,OpenGL是不 能被取代的主角。

    OpenGL是个与.硬件无 关的软件接口,可以在不同的平台如Windows 95、Windows NT、Unix、Linux、MacOS、OS/2之间进行移植。因此,支持OpenGL的软件具有很好的移植性,可以获得非常广泛的应用。由于 OpenGL是3D图形的底层图形库,没有提供几何实体图元,不能直接用以描述场景。但是,通过一些转换程序,可以很方便地将AutoCAD、3DS等 3D图形设计软件制作的DFX和3DS模型文件转换成OpenGL的顶点数组。

    在OpenGL的基础上还有Open Inventor、Cosmo3D、Optimizer等多种高级图形库,适应不同应用。其中,Open Inventor应用最为广泛。该软件是基于OpenGL面向对象的工具包,提供创建交互式3D图形应用程序的对象和方法,提供了预定义的对象和用于交互 的事件处理模块,创建和编辑3D场景的高级应用程序单元,有打印对象和用其它图形格式交换数据的能力。

    OpenGL的发展一直处于一种较为迟缓的态势,每次版本的提高新增的技术很少,大多只是对其中部分做出修改和完善。1992年7月,SGI公司发布了 OpenGL的1.0版本,随后又与微软公司共同开发了Windows NT版本的OpenGL,从而使一些原来必须在高档图形工作站上运行的大型3D图形处理软件也可以在微机上运用。1995年OpenGL的1.1版本面 市,该版本比1.0的性能有许多提高,并加入了一些新的功能。其中包括改进打印机支持,在增强元文件中包含OpenGL的调用,顶点数组的新特性,提高顶 点位置、法线、颜色、色彩指数、纹理坐标、多边形边缘标识的传输速度,引入了新的纹理特性等等。OpenGL 1.5又新增了“OpenGL Shading Language”,该语言是“OpenGL 2.0”的底核,用于着色对象、顶点着色以及片断着色技术的扩展功能。

    OpenGL 2.0标准的主要制订者并非原来的SGI,而是逐渐在ARB中占据主动地位的3Dlabs。2.0版本首先要做的是与旧版本之间的完整兼容性,同时在顶点与像素及内存管 理上与DirectX共同合作以维持均势。OpenGL 2.0将由OpenGL 1.3的现有功能加上与之完全兼容的新功能所组成(如图一)。借此可以对在ARB停滞不前时代各家推出的各种纠缠不清的扩展指令集做一次彻底的精简。此 外,硬件可编程能力的实现也提供了一个更好的方法以整合现有的扩展指令。

    目前,随着DirectX的不断发展和完善,OpenGL的优势逐渐丧失,至今虽然已有3Dlabs提倡开发的2.0版本面世,在其中加入了很多类似于DirectX中可编程单元的设计,但厂商的用户的认知程度并不高,未来的OpenGL发展前景迷茫。

SOMEWHERE I BELONG

| 评论(1) | 暂无引用通告

[Verse 1]
I had nothing to say
and i get lost in the nothingness inside of me
(i was confused)
and i live it all out to find, but im not the only person wit these things in mind
(inside of me)
but all that they can see the words revealed
is the only real thing that i got left to feel
(nothing to lose)
just stuck hollow and alone
and the fault is my own and the fault is my own

[Chorus]
i wanna heal i wanna feel what i thought was never real
i wanna let go of the pain ive felt so long.
erase all the pain til its gone
i wanna heal i wanna feel like im close to something real.
i wanna find something ive wanted all along
somewhere i belong

and i got nothing to say. i cant believe i didnt fall right down on my face
(i was confused)
look at everywhere only to find.
it is not the way i had imagined it all in my mind.
(so what am i)
what do i have but negativity
cuz i cant trust no one by the way everyone is looking at me
(nothing to lose)
nothing to gain im hollow and alone
and the fault is my own
and the fault is my own

[repeat chorus]

[Verse 3] (Chester)
I will never know myself until i do this on my own
cuz i will never feel anything else until my wounds are healed
i will never be anything til i break away from me
i will break away. ill find myself today

[repeat chorus] 

5.sqlplus简介

| 暂无评论 | 暂无引用通告

5.2 数据定义语言

DDL Data Definition Language
基本的DDL子句
alter procedure
alter table
analyze
alter table add constraint
create table
create index
drop index
drop table
grant
revoke

测试

| 暂无评论 | 暂无引用通告

这是一个测试

标题1

标题2

标题3

正文 

  1. 列表项1
  2. 列表项2
  3. 列表项3

列表结束 

图片

Chinaunix的LOGO

粗体

斜体

下划线

 

测试结束,怎么没有代码引用啊!

perl-Digest-SHA1-2.01-15.1.i386.rpm
perl-Digest-HMAC-1.01-11.1.noarch.rpm
perl-Authen-SASL-2.03-1.rh.el.um.1.noarch.rpm
perl-Convert-ASN1-0.16-2.rh.el.um.1.noarch.rpm
perl-HTML-Tagset-3.03-28.noarch.rpm
perl-HTML-Parser-3.26-17.i386.rpm
libghttp-1.0.9-8.1.i386.rpm
libnet-1.1.0-1.rh.el.1.i386.rpm
libnet-debuginfo-1.1.0-1.rh.el.1.i386.rpm
perl-HTTP-GHTTP-1.07-1.n0i.3.i386.rpm
perl-Net-SSLeay-1.23-1.rh.el.um.1.i386.rpm
perl-Net-SSLeay-debuginfo-1.23-1.rh.el.um.1.i386.rpm
perl-IO-Socket-SSL-0.92-1.rh.el.um.1.noarch.rpm
perl-URI-1.21-7.noarch.rpm
perl-XML-NamespaceSupport-1.08-1.rh.el.um.1.noarch.rpm
perl-libwww-perl-5.65-6.noarch.rpm
perl-XML-Parser-2.31-15.i386.rpm
perl-XML-SAX-0.12-1.rh.el.um.1.noarch.rpm
perl-Parse-RecDescent-1.80-1.rh.el.um.1.noarch.rpm
perl-ldap-0.2701-1.rh.el.um.1.noarch.rpm
perl-Mail-IMAPClient-2.2.7-1.rh.el.um.1.noarch.rpm
openssl-perl-0.9.7a-33.12.i386.rpm
openssl096b-0.9.6b-16.i386.rpm
ipvsadm-1.21-1.rh.el.1.i386.rpm
ipvsadm-debuginfo-1.21-1.rh.el.1.i386.rpm
heartbeat-pils-1.2.3-2.rh.el.3.0.i386.rpm
heartbeat-stonith-1.2.3-2.rh.el.3.0.i386.rpm
heartbeat-1.2.3-2.rh.el.3.0.i386.rpm
heartbeat-ldirectord-1.2.3-2.rh.el.3.0.i386.rpm

/var/qmail/supervise/qmail-pop3d/run这个文件
更改前:
exec tcpserver -H -R -v -t 1 -c100 0 110 qmail-popup mail.xxxx.cn \
home/vpopmail/bin/vchkpw qmail-pop3d Maildir 2>&1
更改后:
exec tcpserver -H -R -v -l mail.xxxx.cn -c100 0 110 qmail-popup mail.xxxx.cn \
/home/vpopmail/bin/vchkpw qmail-pop3d Maildir 2>&1

-l localhost        不使用dns查找本地服务器主机名,而使用localhost

用法: wget [选项]… [URL]…

长选项必须用的参数在使用短选项时也是必须的。

启动:
-V, –version 显示 Wget 的版本并且退出。
-h, –help 打印此帮助。
-b, -background 启动后进入后台操作。
-e, -execute=COMMAND 运行‘.wgetrc’形式的命令。

日志记录及输入文件:
-o, –output-file=文件 将日志消息写入到指定文件中。
-a, –append-output=文件 将日志消息追加到指定文件的末端。
-d, –debug 打印调试输出。
-q, –quiet 安静模式(不输出信息)。
-v, –verbose 详细输出模式(默认)。
-nv, –non-verbose 关闭详细输出模式,但不进入安静模式。
-i, –input-file=文件 下载从指定文件中找到的 URL。
-F, –force-html 以 HTML 方式处理输入文件。
-B, –base=URL 使用 -F -i 文件选项时,在相对链接前添加指定的 URL。

Security-Enhanced Linux

| 暂无评论 | 暂无引用通告

一.前言
Security Enhanced Linux(以下简称为SELinux)是RedHat Enterprise Linux 4(以下简称为RHEL4)上新的安全机制,在以往的RHEL系统中从未使用,这使得很多资深的系统管理员已开始使用RHEL4时弄得一头雾水,出现了很 多莫名其妙的错误,随后寻找帮助才发现原来是SELinux弄的。由于SELinux有着严格的安全控制和管理权使得系统管理员一时不知如何设定,索性就 关闭了,很是可惜。究其原因,是当一个事物出现时,如果他给你带来了麻烦,增加了工作量,便对其产生了厌恶感,这是人之常情。本文暂不探讨SELinux 复杂的内部运作机制,只是先让读者对SELinux有个初步的认识和了解,希望能在您的心里对SELinux留下一个好的印象,并认识到尽管一开始时有些 麻烦,但当你熟悉了它以后,系统的管理会变得更轻松。

二.认识DAC与MAC
在介绍SELinux之前,读者需要了解两个基本的系统访问控制机制:
☆ DAC(Discretionary access control,自主访问控制):DAC机制就是指对象(比如程序、文件或进程等)的的拥有者可以任意的修改或授予此对象相应的权限。例如传统Linux,Windows等。
☆ MAC(Mandatory Access Control,强制访问控制):MAC机制是指系统不再允许对象(比如程序、文件或文件夹等)的拥有者随意修改或授予此对象相应的权限,而是透过强制的方式为每个对象统一授予权限,例如SELinux。

图1 DAC与MAC的不同(引自 Security Features in Red Hat Enterprise Linux 4)

三.SELinux的出身
National Security Agency(美国国家安全局,以下简称为NSA)一直非常关注计算机操作系统的安全领域。毕竟他们的工作任务之一就是要确保美国政府使用的计算机的安 全,保证在其面临没完没了的攻击时仍能安全可靠的运行。NSA发现大部分操作系统的安全机制,包括Windows和大部分UNIX以及Linux系统,都 是以DAC机制为安全认证基础的。由于DAC机制的设计很不利于系统安全,NSA便一直致力于开发出一套好的MAC安全认证机制。
MAC并不是由 NSA发明的,它很早就出现了,但由于MAC的诸多问题,使得大型系统提供商对于将MAC集成到自己的系统中始终没有兴趣。即使是那些集成了 MAC 的提供商也通常是将其做为可选件提供,而没有默认安装使用。原因很多,一是因为MAC还不够灵活,二是对于像Windows客户系统这种面向普通用户的系 统来说,MAC加大了系统管理和使用的复杂性,得不偿失。于是NSA的为了推广MAC,确立了MAC下一步的研究方向,为使MAC更灵活并且并更容易被嵌 入到操作系统。
起初,NSA的MAC系统是在LOCK系统上基于类型增强而且策略灵活的强制访问控制体系,并且随后发展为两个基于Mach的系统: DTMach和DTOS,后来在犹他大学的微内核操作系统Fluke上实现出来,并命名为Flask安全体系。NSA希望有操作系统商能支持其开发的 MAC机制,但由于所有的这些工作都是基于实验室,极少可以在实验室之外来进行尝试,以查看这些思想在真实的应用程序的可行性,加之为保密项目,因此很难 说服某个系统商采用,谁也不敢头一个吃这个螃蟹。于是,NSA决定选择开源代码的Linux系统为实际市场试验系统。NSA把Flask安全体系集成到 Linux操作系统中,SELinux便孕育而生,为了真正配合SELinux在Linux系统上的应用实施,NSA将SELinux作为一个开放源码项 目发布出来,从而能获得更加广泛的开发者和用户支持。
毫无意外,使用真正的系统让 NSA 研究人员可以更好的理解SELinux在实际中的应用,而其中体现出的问题是在试验系统中无法找到的。NSA的这一开源措施,在开源界犹如一颗原子弹,业 界普遍对此是欢迎的,但也不能说NSA是为此作出了牺牲,因为这是个双赢的举措,因为没有Linux这个试验田,NSA的SELinux很难修得正果。另 外选择Linux不是毫无理由的:首先,Linux系统拥有着众多的使用用户,而且很多用户本身具有很高的技术水平;其次,Linux基于开源,这样使得 SELinux不属用任何商业组织或公司,防止依此来牟利,也不利于SELinux的发展;最后,对于Linux,它作为新兴的操作系统,在桌面领域很难 打败Windows,因此它主要面对服务器领域,而安全就显得至关重要,SELinux正好是它所迫切需要的。RedHat是个很聪明的公司, Fedora是其领导的Linux开源组织。其实说穿了,Fedora就是其企业发行版的实验田。RedHat首先选择了Fedora Core 2作为第一个SELinux实验操作系统,但是预设为不开启,但SELinux在其平台上的表现还是取得了成功。到了Fedora Core3,SELinux已经默认为开启,然后经过修改,我们便在RHEL4上也看到SELinux。
另外需要补充说明的是,读者不要以为仅仅存在SELinux这一个MAC项目,还有很多其他的MAC实现项目,用于其他不同的系统中。

四.SELinux原理
在SELinux 中,每个对象(程序、档案、进程等)都拥有一个Security Context(安全上下文),它就像标签一样,贴在每个对象身上,上面记载着这个对象所具有的权限。而我们可以通过制定Security Policy(安全策略)来定义这些Security Context,从而定义哪种对象具有哪些权限。当一个对象需要执行某个动作时,系统会依照Security Policy所制定的内容来检查相对应的权限,如果全部权限都符合的话,系统就会允许这个操作的执行,否则都将遭到拒绝或失败。这些过程不会影响到其它正 常运行的对象,系统会保证它们的安全系统结构以及稳定运行。这里还要说明的是,到目前为止,SELinux系统中的某个对象需要执行某个动作的时,系统权 限认证不仅仅单独根据Security Policy所制定的内容来检查,同时还要根据传统DAC来检测,只有DAC以及SELinux全部认证通过了才能进行正常操作。
如果读者了解 chroot,那么就能很好的理解SELinux。 chroot 就是把某程序置于文件系统下的某一处,而当运行的时候,就不会离开这个文件系统的部份,也就是不会影响整个的文件系统。就好比如果把所有的对象都分配到不 同的domain(域)中。而不同的 domain 却彼此独立,而且如果没有经过授权的对象就不可以在domain之间传递数据,也就是说对象不能没有授权就由domain A 跳到 domain B中,情况就如 chroot 一样。
在传统的类Unix中,root拥有着所有权限,有些用户使用采用SELinux的Linux时发现自己就是root,但为何有些事情却不允许 执行。其实说穿了就是因为 root 所属的 domain 没有授权可以跳到所需要执行某程序的domain下,也就无法做希望的工作了。
在 SELinux系统启动的时候,会加载一个叫做 policy,* 的安全策略权限文件,这文件内中就定义了相关权限。如果你之前设定了 SELinux 是不能在开机后转回 permissive 模式的话,那你的 root 则可能无法修改当中的设定!也就是说root在SELinux中已经不具有默认的所有权限。那到底这有什么好处呢?其实好处就如 chroot 一样把系统内任何东西都加上一层保护层。那就算是入侵进入了你的计算机,也只能在他破坏他入侵的这个domain环境!
对于RHEL4系统,如何检测是否已经安装了SELinux呢。首先检查你的Linux系统的核心是否有支持ACL的功能。因为Linux系统并不是每一个版本的核心都有支持ACL的功能,而最简单的方法就是检查系统目前的核心能否支持:

# cat /boot/config-2.6.9-11.EL | grep ACL
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_FS_POSIX_ACL=y
注:config-2.6.9-11.EL位置根据系统的不同而不同,这里用的是RHEL4.1。
  
此时如果能看到上面的几项则表示已经编译到核心中,ext3文件系统已支持ACL功能,这些功能在编译核心选项中也可以找到。

五.传统Linux 与SELinux
传统Linux的安全认证基于内核的DAC机制,这种机制在遇到一个有缺陷或是恶意编写的程序时就会导致很大的问题出现,尤其是对于 setuid/setgid这种权限的设计。有些程序员在程序设计时,当需要设置执行权限的时候,为了省事就直接用 setuid root,这样的好处是给予程序最大的用户权限root来运行,避免了因权限引起的问题,大大简化程序的设计,但是这种方式是极其危险的。本文已经提及 过,类Unix系统中的root拥有绝对的权限,如果某个有缺陷的程序以root用户运行,可能会破坏系统文件甚至系统核心部分。如果是网络服务程序,其 漏洞很容易被黑客利用并发起攻击,造成不可预知的后果。
SELinux的安全认证基于内核外的MAC机制,这种机制使得系统管理员可以定义整个系统的安全策略,这个策略可以基于其他因素,例如用户的 角色、程序的可信性及预期使用、程序将要使用的数据的类型等等,来限制对象所具有的权限。当你正确配置了SELinux系统,不正常的应用程序只会影响自 己权限内的domain,而对其它domain中的对象没有丝毫影响。其它用户程序的安全性和他们的后台程序仍然可以正常运行,并保持着它们的安全系统结 构。例如你某个服务是以 root 的权限执行的。而此服务存在着一个极严重的 bug ,而使得入侵者可以通过这个服务的漏洞进入系统。但如果你的 Linux 系统有SELinux 保护的话,那么入侵者仍没有办法破坏整个系统,因为它被这个服务所属的 domain 所限制。但是没有 SELinux 保护的系统,它就可能因此而入侵整个系统,而产生不可预料的后果。
但是前提是要有好的安全原则,SELinux 最麻烦的就是需要配置一个好的Policy 才可以让 SELinux 发挥效果。制定的太宽松会使 SELinux 毫无用武之地,而太严格又会让使用者连日常工作都变的麻烦至极。NSA让制定安全原则的工作由系统地发行者来做,而像Fedora、Redhat、 Novell SUSE 、Debian、Gentoo 等都制定了一套基本的安全原则用于自己的系统。
凭借着SELinux在Linux 上这一个十分重要技术的应用,使其在加强了安全级别,传统的Linux 安全级别一直是 C1 级或 C2 级,和 Windows 服务器的安全级别相同,而 SELinux 把 Linux 的安全级别提升至 B1 级,达到了基本的军事级别。
在RHEL4中, SELinux 与一系列因特网服务加以整合,包括 BIND、Network Time Protocol (NTP)、Apache等,使得其优点能够更轻易地拓展。其要求极度安全环境的组织,可以于更多的应用程序上实作更广泛的SELinux 功能,甚至为
每一服务制定严格的SELinux 原则。。比如,传统的Linux 系统若遭黑客侵入Web Server,可能导致整个系统的瘫痪;但有了SELinux 的保护,我们可以很容易的建立一个只能在特定程序及特定的安全系络中才能执行的 Web 服务器,尽管Web Server被入侵,那么他也只能破坏这个Web Server,无法影响到其它的系统区域,将受害范围减至最少。

  列出或杀死匹配的程序
#!/bin/sh
#name:lkp
#comment:list or kill processor
if [ $# = "2" ] && [ $2 = "l" -o $2 = "k" ] ; then
{
        if [ -z "$2" -o "$2" = "l" ]; then
                ps aux |grep "$1" |grep -v "grep"|grep -v "/bin/sh"|awk '{print "\t" $1"\t"$2"\t"$11}'
        elif [ "$2" = "k" ]; then
                ps aux |grep "$1" |grep -v "grep"|grep -v "/bin/sh"|awk '{print $2}'|xargs kill
        else
                echo "Useage:$0 processname l|k";
        fi
}
else
{
        echo "usage:
                list the match processor: `basename $0` processor2match l
                kill the match processor: `basename $0` processor2match k"
}
fi

  去掉注释:
#!/bin/sh
#name:clcom
#clear the comment
grep -v -e "^#" -e "^  *#" -e "^$" $1

音频播放器

| 暂无评论 | 暂无引用通告
rhythmbox:

yum install rhythmbox gstreamer-plugins-ugly gstreamer-plugins
-bad

下面是我的/etc/yum.conf
[fc5]
name=vmmatrix
baseurl=http://mirror.vmmatrix.net/Fedora/core/5/i386/os/
[development]
name=vmmatrix1
baseurl=http://mirror.vmmatrix.net/Fedora/core/development/i386/os
[extra]
name=vmmatrix2
baseurl=http://mirror.vmmatrix.net/Fedora/extras/5/i386/

locale命令的输出

| 暂无评论 | 暂无引用通告

运行了一下locale命令,出现一堆输出,
LANG=C
LC_CTYPE="zh_CN.GB2312"
LC_NUMERIC="zh_CN.GB2312"
LC_TIME="zh_CN.GB2312"
LC_COLLATE="zh_CN.GB2312"
LC_MONETARY="zh_CN.GB2312"
LC_MESSAGES="zh_CN.GB2312"
LC_ALL=zh_CN.GB2312
它们都是什么意思?

ucspi-tcp的原理和设置

| 暂无评论 | 暂无引用通告

Qmail的开发者dan Bernstein 开发了ucspi-tcp(UNIX客户-服务器程序端口)包来取代inetd程序。Ucspi格式定义了一种程序来交换数据的方法,主要体现出三个优点:
1、 ucspi端口独立于底层的通讯介质。
2、 ucspi允许shell脚本程序利用网络的互联。
3、 ucspi程序建立了unix环境变量,这些变量定义了可以被程序和用户使用的网络信息。
Ucspi-tcp使用称为tool的程序在应用程序之间建立连接。有两种类型的ucspi tool  ---客户tool(tcpclient)和服务器tool(tcpserver)。

Ucspi-tcp的tcpserver程序就是替代unix的inetd程序的,有如下优点:
1、他能够把来自服务器端的所有输入和输出都记到一个文件中。
2、他能提供访问控制特征,拒绝或者允许来自客户端的连接。
3、它包含了并发限制,防止使unix系统过载。

/etc/skel

| 暂无评论 | 暂无引用通告

/etc/skel建立使用起来非常简单。它使所有在LFS系统上面的新用户拥有一样的初始设置。 /etc/skel目录是被 /usr/sbin/useradd 使用的。

阅读man useradd可以得到更多信息

开始需要建立一个/etc/skel 目录,最好使用root用户。然后把你想要新用户拥有的配置文件拷贝到/etc/skel目录。比如: .bash_profile, .bashrc, .bash_logout, dircolors, .inputrc, 和 .vimrc。

当使用 /usr/sbin/useradd建立新用户的时候使用 -m 参数,例如:

useradd -m -s/bin/bash jwrober

/usr/sbin/useradd使用了一系列缺省设置,位于 /etc/default/useradd(如果这个文件存在的话)。如果这个文件不存在,它会使用其内部缺省设置,可以用/usr/sbin/useradd -D 来列处这些设置。

如果想对这个缺省设置作一些变动,就要建立一个 /etc/default/useradd 文件,并使用和 /usr/sbin/useradd -D输出一样的内容。例如:

# /etc/default/useradd 开始

GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=
SKEL=/etc/skel

# /etc/default/useradd 结束

里面少了对缺省shell的设置。运行此命令添加:

/usr/sbin/useradd -D -s/bin/bash

这样 SHELL= 那一行将被设置成 SHELL=/bin/bash。这样使得在LFS系统增加新用户更加容易。 /usr/sbin/useradd 有很多参数可以在/etc/default/useradd中设置。可以阅读man手册来获取更多细节。

模块:Mail::POP3Client

| 暂无评论 | 暂无引用通告

#!/usr/bin/perl -w
#name:getmail.pl
use strict;
use Mail::POP3Client;

my $user="user";
my $passwd="password";
my $host="pop.163.com";
my $pop=new Mail::POP3Client(USER=>$user,PASSWORD=>$passwd,HOST=>$host);
for( my $i = 1; $i <= $pop->Count(); $i++ ) {
foreach( $pop->Head( $i ) ) {
print $_, "\n";
}
}
$pop->Close();

print "--------------------------------\n";
print " Over\n"
print "--------------------------------\n";
运行此脚本,就可以得到信件头部信息了,如果要运用该模块的其他功能,可以用
perldoc Mail::POP3Client
查阅。当然我们还可以写脚本进行过滤。

openssh中使用公钥验证

| 暂无评论 | 暂无引用通告

默认的情况下ssh是要输密码的,当然ssh也提供其他的验证方法,公钥认证就是其中的一种。
首先,在客户端生成一个对钥:
[root@supersun .ssh]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
fa:49:6c:0a:90:0e:0f:57:2e:21:79:f6:65:7f:8d:42 root@supersun
这里我们用的是rsa算法,我们也可以使用dsa算法:
ssh-keygen -t dsa

从上面可以看到,提示输入私钥的保护密码,我们也可以不选,直接ENTER就行了!
现在密钥已经生成:
id_rsa(私钥) id_rsa.pub(公钥)
如果是dsa算法生成的话:
id_dsa id_dsa.pub
我们将公钥传到服务器的.ssh目录下.
scp id_rsa.pub user@hostname:/home/user/.ssh/authorized_keys

将/etc/ssh/sshd_config
中的rsa认证功能打开.(去掉注释)
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
然后重新启动sshd就行了.
如果是dsa算法的话同理.

用openssl签发证书

| 暂无评论 | 暂无引用通告

参考:http://www.imacat.idv.tw/tech/sslcerts.html.zh-cn

配置环境

在/home目录下建立ssl目录:

cd /home
mkdir ssl
cd ssl

建立几个要用到的目录:

mkdir private certs newscerts crl

其中private主要用来存放私钥的.

certs用于存入签出的书

将配置文件复制到当前目录

cp /usr/share/ssl/openssl.cnf  /home/ssl/

设定环境变量
export OPENSSL_CONF="/home/ssl/openssl.cnf"

更改openssl.cnf中的配置:
dir = /home/ssl
产生一个随机数文件:
openssl rand -out /home/ssl/private/.rand

建立根证书:

1.制作私钥:

脚本:批量下载歌曲TOP500

| 暂无评论 | 暂无引用通告

[root@supersun perl]# cat getindex.pl
#!/usr/bin/perl -w
#function:get the index ;
#useage:
# getindex.pl filename url
use strict;
use LWP::Simple;

my $file=shift;
my $url=shift;
my $count=get $url;
open HD,'>',$file;
print HD $count;
close HD;

得到文件filename其中的内容为web页的内容;
如:
[root@supersun perl]# ./getindex.pl filename http://list.mp3.baidu.com/topso/mp3topsong.html#top2

下面我们再来解析文件filename
[root@supersun perl]# cat link.pl
#!/usr/bin/perl -w
use strict;

my $file=shift;
my @link;
open HD,$file;
my @count=;
my %result;
foreach my $util (@count)
{
if($util =~ m{http://mp3.baidu.com/} and $util =~ m| {
$util=~ s|||;
my @hello=split ' ',$util;
shift @hello;
$hello[1] =~ s|target.*?>||g;
$hello[1] =~ s|||;
$hello[0] =~ s/(href=|")//g;
$result{@hello[1]}=$hello[0];
}
}
foreach my $key (keys %result)
{
print "Key:$key\nLink:$result{$key}\n";
}

运行:
[root@supersun perl]# ./link.pl filename
部分结果如下:
Key:大女人
Link:http://mp3.baidu.com/m?tn=baidump3&ct=134217728&lm=-1&li=500&word=%B4%F3%C5%AE%C8%CB+%D5%C5%D3%EE
Key:娃娃
Link:http://mp3.baidu.com/m?tn=baidump3&ct=134217728&lm=-1&li=500&word=%CD%DE%CD%DE+%D5%C5%C9%D8%BA%AD
Key:星晴
Link:http://mp3.baidu.com/m?tn=baidump3&ct=134217728&lm=-1&li=500&word=%D0%C7%C7%E7+%D6%DC%BD%DC%C2%D7
此时,我们已经得到歌曲的名字及相应的搜地址了,下面的工作就是下载相应的mp3文件,待续。。。。。。。

用perl抓CU上的手册

| 暂无评论 | 暂无引用通告

  本来呢,用wget已经实现了,apple说在windows下用monad也很容易,我也写了一个perl脚本抓取:
http://man.chinaunix.net/tech/lyceum/linuxK/tlk.html
这个手册。脚本内容如下:

这样使用wget

| 暂无评论 | 暂无引用通告

  看到cu上的man手册页想下载下来,可是没有打包下载的,又不想手动一个一个下载页面。之前写过一个perl脚本,不过还是有点烦琐!这两天看了wget的手册页,发现wget可以这一功能。
  所下手册地址:
http://man.chinaunix.net/tech/lyceum/linuxK/tlk.html
  首先下载tlk.html
wget http://man.chinaunix.net/tech/lyceum/linuxK/tlk.html
得到tlk.html文件。
  下载tlk.htl中的链接:
wget -x -nc -B http://man.chinaunix.net/tech/lyceum/linuxK/ -F -nH --cut-dirs=3 -i tlk.html
得到以下两个文件:tlk-title.html  tlk-toc.html
  然后再下载以上两个文件中的链接
wget -x -nc -B http://man.chinaunix.net/tech/lyceum/linuxK/ -F -nH --cut-dirs=3 -i
 tlk-title.html
wget -x -nc -B http://man.chinaunix.net/tech/lyceum/linuxK/ -F -nH --cut-dirs=3 -i tlk-toc.html
  这样,整个手册就下完了!

ext3中常用术语

| 暂无评论 | 暂无引用通告

组成部分:

  • 一组索引节点(inode)存储单元
  • 一组分散的超级块(superblock)
  • 一份文件系统中磁盘块的映谢表
  • 一份磁盘块使用情况的汇总

    一组数组块 索引节点是长度固定的表项,每个索引节点保存一个文件的信息。 超级块是一个描述文件系统特性的记录。它包含的信息有:磁盘块的长度,索引节结点表的大小和位置,磁盘块的映射表和使用信息,块 簇的大小,以及其他几个重要文件系统参数。 系统调用sysc把被缓存的超级块冲洗(flush)到硬盘的永久位置上,让文件系统保持一致性同时sync冲洗被修改过的索引结点和缓存的数据块。update命令通常在引导时刻运行,启动守护进程bdflush每30秒执行一次sync ext3: mode: ordered(规则) writeback(写回) journal(日志) fstab date=mode fsck检查和修复文件系统 文件系统一致性检查 易于修复的5种损坏类型: 未被引用的索引节点 难以置信的超大链接数目 没有记录在磁盘块映射表中的空闲数据块 列出的空闲数损块还在某个文件中使用 超级块中的不正确汇总信息

7.DBA技术简介

| 暂无评论 | 暂无引用通告

常用术语

数据字典 分区 授权 块 系统全局区 用户进程 Oracle进程 Oracle实例=SGA+后台进程

7.3.1 系统全局区

使用connect username/password as sysdba连接到数据库
查看sga信息
SQL> show sga

Total System Global Area  135337420 bytes
Fixed Size                   452044 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes

关于此归档

这里是2007年2月的所有日记,它们按照时间从新到老排序。

下一篇日记2007年3月

首页归档页可以看到最新的日记和所有日记。