<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Allove Passion - Mobile Life &#187; 分享技术</title>
	<atom:link href="http://blog.allove.org/archives/category/share-technology/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.allove.org</link>
	<description>Allove Team 致力于移动应用的开发和服务(Android,J2ME,iphone,ophone)</description>
	<lastBuildDate>Sat, 04 Sep 2010 15:44:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Linux网络应用服务配置</title>
		<link>http://blog.allove.org/archives/linux%e7%bd%91%e7%bb%9c%e5%ba%94%e7%94%a8%e6%9c%8d%e5%8a%a1%e9%85%8d%e7%bd%ae.html</link>
		<comments>http://blog.allove.org/archives/linux%e7%bd%91%e7%bb%9c%e5%ba%94%e7%94%a8%e6%9c%8d%e5%8a%a1%e9%85%8d%e7%bd%ae.html#comments</comments>
		<pubDate>Thu, 19 Mar 2009 04:00:16 +0000</pubDate>
		<dc:creator>孙建</dc:creator>
				<category><![CDATA[[配置及开发]Linux]]></category>
		<category><![CDATA[linux服务器]]></category>

		<guid isPermaLink="false">http://blog.allove.org/?p=791</guid>
		<description><![CDATA[仅仅是分享，我为人人，人人为我 &#8230; 《Linux网络应用服务配置指南》PDF下载 第1章Linux 服务器的安装 第2章Linux安全与优化概要 第3章TCP/IP网络管理 第4章Linux Apache Web 服务器 第5章Linux FTP服务器 第6章Linux 邮件服务器 第7章Linux域名服务器 第8章Linux代理服务器 PS:点击上面的链接即可转到PDF下载页面 随机日志欢迎大家下载测试 免费短信宝典&#8212;在线升级版本 v1.0测试版本 (5)写在花谢花开时 (14)易行 2.0.0正式下载地址 (11)Android 平台交通查询软件即将发布(名字待定) (0)从项目中学习-构建一个成熟的软件系统 (3)提醒自己时常记住疼老婆 (0)关于人肉搜索中的社交网络和信息网络整合问题 (9)]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" src="http://yustar.joomlar.cn/wp-content/linux.jpg" alt="" width="233" height="159" />仅仅是分享，我为人人，人人为我 &#8230; 《Linux网络应用服务配置指南》PDF下载</p>
<p>第1章<a href="http://rapidshare.com/files/210919808/01_installation.pdf">Linux 服务器的安装</a><br />
第2章<a href="http://rapidshare.com/files/210919809/02_security_and_optimization.pdf">Linux安全与优化概要</a><br />
第3章<a href="http://rapidshare.com/files/210919810/03_TCP_IP.pdf">TCP/IP网络管理</a><br />
第4章<a href="http://rapidshare.com/files/210919811/04_Linux_Apache_Web_Server.pdf">Linux Apache Web 服务器</a><br />
第5章<a href="http://rapidshare.com/files/210919812/05_Linux_FTP_Server.pdf">Linux FTP服务器</a><br />
第6章<a href="http://rapidshare.com/files/210919813/06_Linux_Email_Server.pdf">Linux 邮件服务器</a><br />
第7章<a href="http://rapidshare.com/files/210919814/07_Linux_DNS_Server.pdf">Linux域名服务器</a><br />
第8章<a href="http://rapidshare.com/files/210919815/08_Linux_Proxy_Server.pdf">Linux代理服务器</a></p>
<p>PS:点击上面的链接即可转到PDF下载页面</p>
<h3  class="related_post_title">随机日志</h3><ul class="related_post"><li><a href="http://blog.allove.org/archives/web20-name-gam.html" title="web2.0 小游戏&#8212;你能说出下面图片中每个LOGO 代表的名称吗？">web2.0 小游戏&#8212;你能说出下面图片中每个LOGO 代表的名称吗？</a> (6)</li><li><a href="http://blog.allove.org/archives/1255.html" title="基于移动网络的旅游信息系统的设计及实现">基于移动网络的旅游信息系统的设计及实现</a> (0)</li><li><a href="http://blog.allove.org/archives/upyoung.html" title="UPyoung 啊扑羊&#8211;路还长呢&#8212;">UPyoung 啊扑羊&#8211;路还长呢&#8212;</a> (7)</li><li><a href="http://blog.allove.org/archives/macworld-%e7%94%b5%e5%ad%90%e8%89%ba%e6%9c%af%e5%a4%a7%e4%bc%9a.html" title="macworld-电子艺术大会">macworld-电子艺术大会</a> (0)</li><li><a href="http://blog.allove.org/archives/yellow-music.html" title="三首限制级的歌曲 &#8212; 十八禁,请慎重观看">三首限制级的歌曲 &#8212; 十八禁,请慎重观看</a> (4)</li><li><a href="http://blog.allove.org/archives/wordpress-theme-wp-max-by-gabfire.html" title="wordpress 主题 &#8212; WP MAX by Gabfire">wordpress 主题 &#8212; WP MAX by Gabfire</a> (11)</li><li><a href="http://blog.allove.org/archives/develop-matters.html" title="写在花谢花开时">写在花谢花开时</a> (14)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.allove.org/archives/linux%e7%bd%91%e7%bb%9c%e5%ba%94%e7%94%a8%e6%9c%8d%e5%8a%a1%e9%85%8d%e7%bd%ae.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Linux系统下的多线程编程</title>
		<link>http://blog.allove.org/archives/linux%e7%b3%bb%e7%bb%9f%e4%b8%8b%e7%9a%84%e5%a4%9a%e7%ba%bf%e7%a8%8b%e7%bc%96%e7%a8%8b.html</link>
		<comments>http://blog.allove.org/archives/linux%e7%b3%bb%e7%bb%9f%e4%b8%8b%e7%9a%84%e5%a4%9a%e7%ba%bf%e7%a8%8b%e7%bc%96%e7%a8%8b.html#comments</comments>
		<pubDate>Tue, 03 Mar 2009 06:38:04 +0000</pubDate>
		<dc:creator>孙建</dc:creator>
				<category><![CDATA[[技术分享]C/C++]]></category>
		<category><![CDATA[[配置及开发]Linux]]></category>
		<category><![CDATA[c/c++]]></category>
		<category><![CDATA[Linux编程]]></category>
		<category><![CDATA[多线程编程]]></category>

		<guid isPermaLink="false">http://blog.allove.org/?p=769</guid>
		<description><![CDATA[线程（thread）技术早在60年代就被提出，但真正应用多线程到操作系统中去，是在80年代中期， solaris是这方面的佼佼者。传统的Unix也支持线程的概念，但是在一个进程（process）中只允许有一个线程，这样多线程就意味着多进程。现在，多线程技术已经被许多操作系统所支持，包括Windows/NT，当然，也包括Linux。 为什么有了进程的概念后，还要再引入线程呢？使用多线程到底有哪些好处？什么的系统应该选用多线程？我们首先必须回答这些问题。 使用多线程的理由之一是和进程相比，它是一种非常&#8221;节俭&#8221;的多任务操作方式。我们知道，在Linux系统下，启动一个新的进程必须分配给它独立的地址空间，建立众多的数据表来维护它的代码段、堆栈段和数据段，这是一种&#8221;昂贵&#8221;的多任务工作方式。而运行于一个进程中的多个线程，它们彼此之间使用相同的地址空间，共享大部分数据，启动一个线程所花费的空间远远小于启动一个进程所花费的空间，而且，线程间彼此切换所需的时间也远远小于进程间切换所需要的时间。 使用多线程的理由之二是线程间方便的通信机制。对不同进程来说，它们具有独立的数据空间，要进行数据的传递只能通过通信的方式进行，这种方式不仅费时，而且很不方便。线程则不然，由于同一进程下的线程之间共享数据空间，所以一个线程的数据可以直接为其它线程所用，这不仅快捷，而且方便。当然，数据的共享也带来其他一些问题，有的变量不能同时被两个线程所修改，有的子程序中声明为static的数据更有可能给多线程程序带来灾难性的打击，这些正是编写多线程程序时最需要注意的地方。 除了以上所说的优点外，不和进程比较，多线程程序作为一种多任务、并发的工作方式，当然有以下的优点： 1) 提高应用程序响应。这对图形界面的程序尤其有意义，当一个操作耗时很长时，整个系统都会等待这个操作，此时程序不会响应键盘、鼠标、菜单的操作，而使用多线程技术，将耗时长的操作（time consuming）置于一个新的线程，可以避免这种尴尬的情况。 2) 使多CPU系统更加有效。操作系统会保证当线程数不大于CPU数目时，不同的线程运行于不同的CPU上。 3) 改善程序结构。一个既长又复杂的进程可以考虑分为多个线程，成为几个独立或半独立的运行部分，这样的程序会利于理解和修改。 下面我们先来尝试编写一个简单的多线程程序。 简单的多线程编程 Linux系统下的多线程遵循POSIX线程接口，称为pthread。编写Linux下的多线程程序，需要使用头文件pthread.h，连接时需要使用库libpthread.a。顺便说一下，Linux下pthread的实现是通过系统调用clone（）来实现的。clone（）是Linux所特有的系统调用，它的使用方式类似fork，关于clone（）的详细情况，有兴趣的读者可以去查看有关文档说明。下面我们展示一个最简单的多线程程序 example1.c。 /* example.c*/ #include ＜stdio.h＞ #include ＜pthread.h＞ void&#160;thread(void) { int&#160;i; for(i=0;i＜3;i++) printf(&#34;This is a pthread.n&#34;); } &#160; int&#160;main(void) { pthread_t&#160;id; int i,ret; ret=pthread_create(&#38;amp;id,NULL,(void *)&#160;thread,NULL); if(ret!=0){ printf&#160;(&#34;Create pthread error!n&#34;); exit&#160;(1); } for(i=0;i＜3;i++) printf(&#34;This is the main process.n&#34;); pthread_join(id,NULL); return&#160;(0); } [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>线程（thread）技术早在60年代就被提出，但真正应用多线程到操作系统中去，是在80年代中期， solaris是这方面的佼佼者。传统的Unix也支持线程的概念，但是在一个进程（process）中只允许有一个线程，这样多线程就意味着多进程。现在，多线程技术已经被许多操作系统所支持，包括Windows/NT，当然，也包括Linux。<br />
为什么有了进程的概念后，还要再引入线程呢？使用多线程到底有哪些好处？什么的系统应该选用多线程？我们首先必须回答这些问题。<br />
使用多线程的理由之一是和进程相比，它是一种非常&#8221;节俭&#8221;的多任务操作方式。我们知道，在Linux系统下，启动一个新的进程必须分配给它独立的地址空间，建立众多的数据表来维护它的代码段、堆栈段和数据段，这是一种&#8221;昂贵&#8221;的多任务工作方式。而运行于一个进程中的多个线程，它们彼此之间使用相同的地址空间，共享大部分数据，启动一个线程所花费的空间远远小于启动一个进程所花费的空间，而且，线程间彼此切换所需的时间也远远小于进程间切换所需要的时间。<br />
使用多线程的理由之二是线程间方便的通信机制。对不同进程来说，它们具有独立的数据空间，要进行数据的传递只能通过通信的方式进行，这种方式不仅费时，而且很不方便。线程则不然，由于同一进程下的线程之间共享数据空间，所以一个线程的数据可以直接为其它线程所用，这不仅快捷，而且方便。当然，数据的共享也带来其他一些问题，有的变量不能同时被两个线程所修改，有的子程序中声明为static的数据更有可能给多线程程序带来灾难性的打击，这些正是编写多线程程序时最需要注意的地方。</p></blockquote>
<p>除了以上所说的优点外，不和进程比较，多线程程序作为一种多任务、并发的工作方式，当然有以下的优点：<br />
1) 提高应用程序响应。这对图形界面的程序尤其有意义，当一个操作耗时很长时，整个系统都会等待这个操作，此时程序不会响应键盘、鼠标、菜单的操作，而使用多线程技术，将耗时长的操作（time consuming）置于一个新的线程，可以避免这种尴尬的情况。<br />
2) 使多CPU系统更加有效。操作系统会保证当线程数不大于CPU数目时，不同的线程运行于不同的CPU上。<br />
3) 改善程序结构。一个既长又复杂的进程可以考虑分为多个线程，成为几个独立或半独立的运行部分，这样的程序会利于理解和修改。<br />
<span id="more-769"></span><br />
下面我们先来尝试编写一个简单的多线程程序。<br />
简单的多线程编程<br />
Linux系统下的多线程遵循POSIX线程接口，称为pthread。编写Linux下的多线程程序，需要使用头文件pthread.h，连接时需要使用库libpthread.a。顺便说一下，Linux下pthread的实现是通过系统调用clone（）来实现的。clone（）是Linux所特有的系统调用，它的使用方式类似fork，关于clone（）的详细情况，有兴趣的读者可以去查看有关文档说明。下面我们展示一个最简单的多线程程序 example1.c。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">/* example.c*/</span></li>
<li><span style="color: Gray;">#</span><span style="color: Blue;">include</span><span style="color: Gray;"> ＜</span><span style="color: Blue;">stdio</span><span style="color: Gray;">.</span><span style="color: Blue;">h</span><span style="color: Gray;">＞</span></li>
<li><span style="color: Gray;">#</span><span style="color: Blue;">include</span><span style="color: Gray;"> ＜</span><span style="color: Blue;">pthread</span><span style="color: Gray;">.</span><span style="color: Blue;">h</span><span style="color: Gray;">＞</span></li>
<li><span class="hl-types">void</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">thread</span><span style="color: Olive;">(</span><span class="hl-types">void</span><span style="color: Olive;">)</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span class="hl-types">int</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">i</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">for</span><span style="color: Olive;">(</span><span style="color: Blue;">i</span><span style="color: Gray;">=</span><span style="color: Maroon;">0</span><span style="color: Gray;">;</span><span style="color: Blue;">i</span><span style="color: Gray;">＜</span><span style="color: Maroon;">3</span><span style="color: Gray;">;</span><span style="color: Blue;">i</span><span style="color: Gray;">++</span><span style="color: Olive;">)</span></li>
<li><span style="color: Blue;">printf</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">This is a pthread.n</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span class="hl-types">int</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">main</span><span style="color: Olive;">(</span><span class="hl-types">void</span><span style="color: Olive;">)</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">pthread_t</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">id</span><span style="color: Gray;">;</span></li>
<li><span class="hl-types">int</span><span style="color: Gray;"> </span><span style="color: Blue;">i</span><span style="color: Gray;">,</span><span style="color: Blue;">ret</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">ret</span><span style="color: Gray;">=</span><span style="color: Blue;">pthread_create</span><span style="color: Olive;">(</span><span style="color: Gray;">&amp;</span><span style="color: Blue;">amp</span><span style="color: Gray;">;</span><span style="color: Blue;">id</span><span style="color: Gray;">,</span><span style="color: Blue;">NULL</span><span style="color: Gray;">,</span><span style="color: Olive;">(</span><span class="hl-types">void</span><span style="color: Gray;"> *</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">thread</span><span style="color: Gray;">,</span><span style="color: Blue;">NULL</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Blue;">ret</span><span style="color: Gray;">!=</span><span style="color: Maroon;">0</span><span style="color: Olive;">){</span></li>
<li><span style="color: Blue;">printf</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Create pthread error!n</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">exit</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Maroon;">1</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Green;">for</span><span style="color: Olive;">(</span><span style="color: Blue;">i</span><span style="color: Gray;">=</span><span style="color: Maroon;">0</span><span style="color: Gray;">;</span><span style="color: Blue;">i</span><span style="color: Gray;">＜</span><span style="color: Maroon;">3</span><span style="color: Gray;">;</span><span style="color: Blue;">i</span><span style="color: Gray;">++</span><span style="color: Olive;">)</span></li>
<li><span style="color: Blue;">printf</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">This is the main process.n</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">pthread_join</span><span style="color: Olive;">(</span><span style="color: Blue;">id</span><span style="color: Gray;">,</span><span style="color: Blue;">NULL</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Maroon;">0</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>我们编译此程序：<br />
gcc example1.c -lpthread -o example1<br />
运行example1，我们得到如下结果：<br />
This is the main process.<br />
This is a pthread.<br />
This is the main process.<br />
This is the main process.<br />
This is a pthread.<br />
This is a pthread.<br />
再次运行，我们可能得到如下结果：<br />
This is a pthread.<br />
This is the main process.<br />
This is a pthread.<br />
This is the main process.<br />
This is a pthread.<br />
This is the main process.<br />
前后两次结果不一样，这是两个线程争夺CPU资源的结果。上面的示例中，我们使用到了两个函数，pthread_create和pthread_join，并声明了一个pthread_t型的变量。<br />
pthread_t在头文件/usr/include/bits/pthreadtypes.h中定义：<br />
typedef unsigned long int pthread_t;<br />
它是一个线程的标识符。函数pthread_create用来创建一个线程，它的原型为：<br />
extern int pthread_create __P ((pthread_t *__thread, __const pthread_attr_t *__attr,void *(*__start_routine) (void *), void *__arg));<br />
第一个参数为指向线程标识符的指针，第二个参数用来设置线程属性，第三个参数是线程运行函数的起始地址，最后一个参数是运行函数的参数。这里，我们的函数thread不需要参数，所以最后一个参数设为空指针。第二个参数我们也设为空指针，这样将生成默认属性的线程。对线程属性的设定和修改我们将在下一节阐述。当创建线程成功时，函数返回0，若不为0则说明创建线程失败，常见的错误返回代码为EAGAIN和EINVAL。前者表示系统限制创建新的线程，例如线程数目过多了；后者表示第二个参数代表的线程属性值非法。创建线程成功后，新创建的线程则运行参数三和参数四确定的函数，原来的线程则继续运行下一行代码。<br />
函数pthread_join用来等待一个线程的结束。函数原型为：<br />
extern int pthread_join __P ((pthread_t __th, void **__thread_return));<br />
第一个参数为被等待的线程标识符，第二个参数为一个用户定义的指针，它可以用来存储被等待线程的返回值。这个函数是一个线程阻塞的函数，调用它的函数将一直等待到被等待的线程结束为止，当函数返回时，被等待线程的资源被收回。一个线程的结束有两种途径，一种是象我们上面的例子一样，函数结束了，调用它的线程也就结束了；另一种方式是通过函数pthread_exit来实现。它的函数原型为：<br />
extern void pthread_exit __P ((void *__retval)) __attribute__ ((__noreturn__));<br />
唯一的参数是函数的返回代码，只要pthread_join中的第二个参数thread_return不是NULL，这个值将被传递给 thread_return。最后要说明的是，一个线程不能被多个线程等待，否则第一个接收到信号的线程成功返回，其余调用pthread_join的线程则返回错误代码ESRCH。<br />
在这一节里，我们编写了一个最简单的线程，并掌握了最常用的三个函数pthread_create，pthread_join和pthread_exit。下面，我们来了解线程的一些常用属性以及如何设置这些属性。</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
<strong>下载完整文档继续阅读:<a href='http://blog.allove.org/wp-content/uploads/2009/03/linux-threads-programing.doc' rel='点击下载Linux系统下的多线程编程入门' target="_blank">点击下载Linux系统下的多线程编程入门.doc</a></strong><br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<h3  class="related_post_title">读过本文的朋友还浏览过下面这些：</h3><ul class="related_post"><li><a href="http://blog.allove.org/archives/c-cpp-pointer-expressions.html" title="[C/C++]指针详解(3) &#8212; 指针表达式">[C/C++]指针详解(3) &#8212; 指针表达式</a> (20)</li><li><a href="http://blog.allove.org/archives/setup-concurrent-version-system-on-linux.html" title="Linux配置CVS服务器 &#8212; Setup Concurrent Version System">Linux配置CVS服务器 &#8212; Setup Concurrent Version System</a> (17)</li><li><a href="http://blog.allove.org/archives/pointer-operator.html" title="[C/C++]指针详解(2) &#8212; 指针运算与运算符">[C/C++]指针详解(2) &#8212; 指针运算与运算符</a> (8)</li><li><a href="http://blog.allove.org/archives/data-and-pointer.html" title="[C/C++]指针详解(1) &#8212; 复杂数据类型与指针">[C/C++]指针详解(1) &#8212; 复杂数据类型与指针</a> (10)</li><li><a href="http://blog.allove.org/archives/what-is-linux.html" title="简述Linux &#8212; What&#8217;s Linux , Here is your Answer">简述Linux &#8212; What&#8217;s Linux , Here is your Answer</a> (13)</li><li><a href="http://blog.allove.org/archives/cpp-linear-list.html" title="[C/C++]线性表的基本操作 &#8212; 初始化和插入">[C/C++]线性表的基本操作 &#8212; 初始化和插入</a> (9)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.allove.org/archives/linux%e7%b3%bb%e7%bb%9f%e4%b8%8b%e7%9a%84%e5%a4%9a%e7%ba%bf%e7%a8%8b%e7%bc%96%e7%a8%8b.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Windows 2003 服务器安全设置</title>
		<link>http://blog.allove.org/archives/windows-2003-%e6%9c%8d%e5%8a%a1%e5%99%a8%e5%ae%89%e5%85%a8%e8%ae%be%e7%bd%ae.html</link>
		<comments>http://blog.allove.org/archives/windows-2003-%e6%9c%8d%e5%8a%a1%e5%99%a8%e5%ae%89%e5%85%a8%e8%ae%be%e7%bd%ae.html#comments</comments>
		<pubDate>Thu, 26 Feb 2009 14:10:14 +0000</pubDate>
		<dc:creator>孙建</dc:creator>
				<category><![CDATA[[技术及娱乐]Windows]]></category>
		<category><![CDATA[[配置及开发]windows Server]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[服务器安全]]></category>

		<guid isPermaLink="false">http://blog.allove.org/?p=716</guid>
		<description><![CDATA[维护服务器的安全，通过禁用某些权限并且删除某些权限以及相关的操作文件，不失为一种简单快捷的方式，一是可以有效的遏制恶意入侵，还有就是操作简单。只要我们能满足服务器上面我们所需求的功能，那么一些不相干的，而且有可能产生安全隐患的就可以完全KILL掉他们。下面的很多操作就是通过这样一种思想来做的，一些是我写的，一些是网上收集的，希望给需要者。 删除以下的注册表主键: WScript.Shell WScript.Shell.1 Shell.application Shell.application.1 WSCRIPT.NETWORK WSCRIPT.NETWORK.1 regsvr32/u wshom.ocx回车、regsvr32/u wshext.dll回车 Windows 2003 硬盘安全设置 c:\ administrators 全部 system 全部 iis_wpg 只有该文件夹 列出文件夹/读数据 读属性 读扩展属性 读取权限 c:\inetpub\mailroot administrators 全部 system 全部 service 全部 c:\inetpub\ftproot everyone 只读和运行 c:\windows administrators 全部 Creator owner 不是继承的 只有子文件夹及文件 完全 Power Users 修改，读取和运行，列出文件夹目录，读取，写入 system 全部 IIS_WPG 读取和运行，列出文件夹目录，读取 Users 读取和运行(此权限最后调整完成后可以取消) C:\WINDOWS\Microsoft.Net administrators 全部 [...]]]></description>
			<content:encoded><![CDATA[<p>维护服务器的安全，通过禁用某些权限并且删除某些权限以及相关的操作文件，不失为一种简单快捷的方式，一是可以有效的遏制恶意入侵，还有就是操作简单。只要我们能满足服务器上面我们所需求的功能，那么一些不相干的，而且有可能产生安全隐患的就可以完全KILL掉他们。下面的很多操作就是通过这样一种思想来做的，一些是我写的，一些是网上收集的，希望给需要者。</p>
<p><strong>删除以下的注册表主键:</strong><br />
WScript.Shell<br />
WScript.Shell.1<br />
Shell.application<br />
Shell.application.1<br />
WSCRIPT.NETWORK<br />
WSCRIPT.NETWORK.1</p>
<p>regsvr32/u wshom.ocx回车、regsvr32/u wshext.dll回车</p>
<p><strong>Windows 2003 硬盘安全设置</strong></p>
<p>c:\<br />
administrators 全部<br />
system 全部<br />
iis_wpg 只有该文件夹<br />
列出文件夹/读数据<br />
读属性<br />
读扩展属性<br />
读取权限<br />
<span id="more-716"></span><br />
c:\inetpub\mailroot<br />
administrators 全部<br />
system 全部<br />
service 全部</p>
<p>c:\inetpub\ftproot<br />
everyone 只读和运行</p>
<p>c:\windows<br />
administrators 全部<br />
Creator owner<br />
不是继承的<br />
只有子文件夹及文件<br />
完全<br />
Power Users<br />
修改，读取和运行，列出文件夹目录，读取，写入<br />
system 全部<br />
IIS_WPG 读取和运行，列出文件夹目录，读取<br />
Users 读取和运行(此权限最后调整完成后可以取消)</p>
<p>C:\WINDOWS\Microsoft.Net<br />
administrators 全部<br />
Creator owner<br />
不是继承的<br />
只有子文件夹及文件<br />
完全<br />
Power Users<br />
修改，读取和运行，列出文件夹目录，读取，写入<br />
system 全部<br />
Users 读取和运行，列出文件夹目录，读取<br />
&amp;apos;www.knowsky.com<br />
C:\WINDOWS\Microsoft.Net<br />
administrators 全部<br />
Creator owner<br />
不是继承的<br />
只有子文件夹及文件<br />
完全<br />
Power Users<br />
修改，读取和运行，列出文件夹目录，读取，写入<br />
system 全部<br />
Users 读取和运行，列出文件夹目录，读取</p>
<p>C:\WINDOWS\Microsoft.Net\temporary ASP.NET Files<br />
administrators 全部<br />
Creator owner<br />
不是继承的<br />
只有子文件夹及文件<br />
完全<br />
Power Users<br />
修改，读取和运行，列出文件夹目录，读取，写入<br />
system 全部<br />
Users 全部</p>
<p>c:\Program Files<br />
Everyone 只有该文件夹<br />
不是继承的<br />
列出文件夹/读数据<br />
administrators 全部<br />
iis_wpg 只有该文件夹<br />
列出文件/读数据<br />
读属性<br />
读扩展属性<br />
读取权限</p>
<p>c:\windows\temp<br />
Administrator 全部权限<br />
System全部权限<br />
users 全部权限</p>
<p>c:\Program Files\Common Files<br />
administrators 全部<br />
Creator owner<br />
不是继承的<br />
只有子文件夹及文件<br />
完全<br />
Power Users<br />
修改，读取和运行，列出文件夹目录，读取，写入<br />
system 全部<br />
TERMINAL SERVER Users(如果有这个用户)<br />
修改，读取和运行，列出文件夹目录，读取，写入<br />
Users 读取和运行，列出文件夹目录，读取</p>
<p>c:\Program Files\Dimac(如果有这个目录)<br />
Everyone 读取和运行，列出文件夹目录，读取<br />
administrators 全部</p>
<p>c:\Program Files\ComPlus Applications (如果有)<br />
administrators 全部<br />
c:\Program Files\GflSDK (如果有)<br />
administrators 全部<br />
Creator owner<br />
不是继承的<br />
只有子文件夹及文件<br />
完全<br />
Power Users<br />
修改，读取和运行，列出文件夹目录，读取，写入<br />
system 全部<br />
TERMINAL SERVER Users<br />
修改，读取和运行，列出文件夹目录，读取，写入<br />
Users 读取和运行，列出文件夹目录，读取<br />
Everyone 读取和运行，列出文件夹目录，读取</p>
<p>c:\Program Files\InstallShield Installation Information (如果有)<br />
c:\Program Files\Internet Explorer (如果有)<br />
c:\Program Files\NetMeeting (如果有)<br />
administrators 全部</p>
<p>c:\Program Files\WindowsUpdate<br />
Creator owner<br />
不是继承的<br />
只有子文件夹及文件<br />
完全<br />
administrators 全部<br />
Power Users<br />
修改，读取和运行，列出文件夹目录，读取，写入<br />
system 全部</p>
<p>c:\Program Files\Microsoft SQL(如果SQL安装在这个目录)<br />
administrators 全部<br />
Service 全部<br />
system 全部</p>
<p>d:\ (如果用户网站内容放置在这个分区中)<br />
administrators 全部权限</p>
<p>d:\FreeHost (如果此目录用来放置用户网站内容)<br />
administrators 全部权限<br />
SERVICE 读取与运行</p>
<p>从安全角度，我们建议WebEasyMail(WinWebMail)安装在独立的盘中，例如E:<br />
E:\(如果webeasymail安装在这个盘中)<br />
administrators 全部权限<br />
system 全部权限<br />
IUSR_*，默认的Internet来宾帐户(或专用的运行用户)<br />
读取与运行<br />
E:\WebEasyMail (如果webeasymail安装在这个目录中)<br />
administrators 全部<br />
system 全部权限<br />
SERVICE全部<br />
IUSR_*，默认的Internet来宾帐户 (或专用的运行用户)<br />
全部权限</p>
<p>C:\php\uploadtemp<br />
C:\php\sessiondata<br />
everyone<br />
全部</p>
<p>C:\php\<br />
administrators 全部<br />
system 全部权限<br />
SERVICE全部<br />
Users 只读和运行</p>
<p>c:\windows\php.ini<br />
administrators 全部<br />
system 全部权限<br />
SERVICE全部<br />
Users 只读和运行</p>
<p><strong>防止海洋木马列出WIN服务器的用户和进程</strong></p>
<p>禁用服务里面倒数第二个 workstation 服务，可以防止列出用户和服务</p>
<h3  class="related_post_title">随机日志</h3><ul class="related_post"><li><a href="http://blog.allove.org/archives/android-shanting-widget.html" title="善听&#8211;Android widget 播放介绍">善听&#8211;Android widget 播放介绍</a> (1)</li><li><a href="http://blog.allove.org/archives/long-time-no-see.html" title="Long time NO see !!!">Long time NO see !!!</a> (5)</li><li><a href="http://blog.allove.org/archives/colorful-wordpress-themes.html" title="Colorful Wordpress Themes | Wordpress主题">Colorful Wordpress Themes | Wordpress主题</a> (11)</li><li><a href="http://blog.allove.org/archives/android%e6%a8%a1%e6%8b%9f%e5%99%a8%e5%92%8c%e5%ae%89%e8%a3%85apk%e6%96%87%e4%bb%b6.html" title="Android模拟器和安装APK文件 ">Android模拟器和安装APK文件 </a> (0)</li><li><a href="http://blog.allove.org/archives/joomla-15x-template-ja-helio.html" title="Joomla 1.5.X Template &#8212; JA Helio">Joomla 1.5.X Template &#8212; JA Helio</a> (9)</li><li><a href="http://blog.allove.org/archives/setup-concurrent-version-system-on-linux.html" title="Linux配置CVS服务器 &#8212; Setup Concurrent Version System">Linux配置CVS服务器 &#8212; Setup Concurrent Version System</a> (17)</li><li><a href="http://blog.allove.org/archives/system-ico.html" title="JAVA实现windows 系统托盘图标">JAVA实现windows 系统托盘图标</a> (8)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.allove.org/archives/windows-2003-%e6%9c%8d%e5%8a%a1%e5%99%a8%e5%ae%89%e5%85%a8%e8%ae%be%e7%bd%ae.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>比较下网络带宽?回答正确有奖</title>
		<link>http://blog.allove.org/archives/network-transmit-speed.html</link>
		<comments>http://blog.allove.org/archives/network-transmit-speed.html#comments</comments>
		<pubDate>Sun, 11 Jan 2009 10:27:01 +0000</pubDate>
		<dc:creator>孙建</dc:creator>
				<category><![CDATA[[专注]网络工程]]></category>
		<category><![CDATA[3g]]></category>
		<category><![CDATA[网络传输]]></category>

		<guid isPermaLink="false">http://blog.allove.org/?p=644</guid>
		<description><![CDATA[现在3G炒得火热，也不知道TD-SCDMA WCDMA CDMA2000的数据率能达到个什么水平。今天突然想来考考大家，走过路过的都有份啊！！！ 从下面的选项中选择一个数据传输速率最快的网络数据传输方式，哈哈~~答对有奖&#8230;不要问奖什么！！！ 请注意，再说一次问题： 下列选项中，数据传输速率最快的是哪一项？ 调制解调器上网(假设16QAM)； xDSL (HDSL,ADSL,VDSL) 等专线接入； 千兆以太网； 综合业务数字网(ISDN)； 高速光纤局域网； 载满磁带在高速公路上疾驰的大卡车； 公共电话交换网(PSTN)。 幸运52，我猜猜猜&#8230;. 哈哈，不知道碰碰运气也有七分之一,哈哈 ～～～ 随机日志一个梦，两个人！&#8212;&#8212;&#8212;&#8212;&#8212;恩师！ (10)暗黑破坏神3 &#8212; Diablo3 游戏截图,提前体验暗黑破坏神的魅力 (11)多国语言在线翻译(英语,日语,法语,韩语等) (2)张飞渡- (1)结绳记事 &#8212; 2008深秋秋十月 (13)冬日的北海 (2)Android 商务通(HiTravel) for 中国移动Ophone (1)]]></description>
			<content:encoded><![CDATA[<p>现在3G炒得火热，也不知道TD-SCDMA WCDMA CDMA2000的数据率能达到个什么水平。今天突然想来考考大家，走过路过的都有份啊！！！ 从下面的选项中选择一个数据传输速率最快的网络数据传输方式，哈哈~~答对有奖&#8230;不要问奖什么！！！</p>
<p>请注意，再说一次问题：</p>
<p>下列选项中，数据传输速率最快的是哪一项？</p>
<ol>
<li>调制解调器上网(假设16QAM)；</li>
<li>xDSL (HDSL,ADSL,VDSL) 等专线接入；</li>
<li>千兆以太网；</li>
<li>综合业务数字网(ISDN)；</li>
<li>高速光纤局域网；</li>
<li>载满磁带在高速公路上疾驰的大卡车；</li>
<li>公共电话交换网(PSTN)。</li>
</ol>
<p>幸运52，我猜猜猜&#8230;. 哈哈，不知道碰碰运气也有七分之一,哈哈 ～～～</p>
<h3  class="related_post_title">随机日志</h3><ul class="related_post"><li><a href="http://blog.allove.org/archives/blog.html" title="blog">blog</a> (5)</li><li><a href="http://blog.allove.org/archives/up.html" title="攀登&#8212;">攀登&#8212;</a> (0)</li><li><a href="http://blog.allove.org/archives/zhougongjiemeng.html" title="周公解梦-手机版开发分享">周公解梦-手机版开发分享</a> (21)</li><li><a href="http://blog.allove.org/archives/what-is-dse.html" title="什么是DSE">什么是DSE</a> (0)</li><li><a href="http://blog.allove.org/archives/easily-lifewith-mobile.html" title="Easily life.with Mobile ">Easily life.with Mobile </a> (0)</li><li><a href="http://blog.allove.org/archives/2010-05-22google-logogoogle%e5%a4%aa%e5%a5%bd%e7%8e%a9%e4%ba%86.html" title="2010.05.22,Google Logo,Google太好玩了">2010.05.22,Google Logo,Google太好玩了</a> (1)</li><li><a href="http://blog.allove.org/archives/busuanzi-huaxin.html" title="卜算子.话心">卜算子.话心</a> (14)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.allove.org/archives/network-transmit-speed.html/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>DNS被强制更改(弹窗广告popup.adv.net)</title>
		<link>http://blog.allove.org/archives/trojan-dns-changer-popup-adv-net.html</link>
		<comments>http://blog.allove.org/archives/trojan-dns-changer-popup-adv-net.html#comments</comments>
		<pubDate>Tue, 09 Dec 2008 03:49:44 +0000</pubDate>
		<dc:creator>孙建</dc:creator>
				<category><![CDATA[[技术及娱乐]Windows]]></category>
		<category><![CDATA[DNS Changer]]></category>
		<category><![CDATA[popup.adv.net]]></category>
		<category><![CDATA[病毒]]></category>

		<guid isPermaLink="false">http://blog.allove.org/?p=450</guid>
		<description><![CDATA[貌似很久以前苹果上面出现过一个叫做DNS Changer的病毒，打破了苹果无病毒的神话。最近郁闷的遇到一个病毒，然我很是不爽，其工作方式就是强制修改你的DNS然后使坏。有点了解你的PC链接互联网原理的人应该都知道，当你的DNS被自动修改为一个非你的ISP(Internet Service Provider)的时候是一件多么恐怖的事情。简单的说，当你的DNS被修改为你未知的DNS之后，你所能在你的电脑上面看到的任何来自互联网的东西都有可能变色，呵呵，回味一下前不久VeryCD的DNS劫持事件吧。现在来说一下这个病毒的简单表现，如下： 杀毒软件不能更新，我用的是卡巴斯基，升级时候链接不上服务器器； 很搞笑的一点：不能打开Google首页，或者说不能使用Google搜索，而Google的其他产品都是好的，比如Adsense，Reader等； 使用Firefox的时候出现弹窗广告：popup.adv.net (来自这个网站的弹窗广告) 导致以上几点的原因：DNS被强制更改为：85.225.112.185，后面两个字段可能不同的电脑中毒之后不一样，大致是会被更改为像85.225.***.***这样的DNS地址。 创建启动项：C:/WINDOWS/SYSTEM32/KDRPS.EXE (【注】我的是kdrps.exe有可能你中毒之后就不是了，因为我见网上有人说他的是kdware.exe 这应该是一个随机的，但是都是以kd开头的)； 普通模式下你不能在C:/WINDOWS/SYSTEM32下面找到注册表RUN项所指向的kdrps.exe文件。(这一点让我疑惑了,也麻痹了我，以为一个无用项，没管它)； 即使在安全模式下无法删除RUN注册表项，更不用说在普通模式下了； 这个病毒很温和，中了之后基本不会影响到一半用户的正常使用，但是偏偏我就是一般只Google不baidu所以，我愤怒了，决定搞定它。处于习惯先是搜索了几下，当然现在是百度了，很明显，没有答案。后来用童鞋的电脑Google了一下，终究得出一个结论，很少少人认为这是一个病毒，大多数的人都任务这是ISP的问题，但是很明显这是病毒的作为，因为，在我同一个局域网里的其他PC没有问题。 居然很少人认为这是病毒，这点体现出了这个病毒的成功，就像我刚刚才说的：这个病毒很温和。比如它的弹窗广告一点也不暴力，firefox很轻易就拦截下来了，而且是间歇性的，并不是你每次打开firefox都会弹出来，大概我两天遇到过四五次吧，但是我开firefox的次数应该能有上百次。这也是为什么这东西在我电脑上两天我都没有管他的其中一个原因，另外的原因也就是被Allove.org的速度问题纠结着，被短信助手的开发忙碌着，被Linux的进程控制烦恼着&#8230;等等，反正最近是有点慢。扯远了，扯回来&#8230;而且这个来自病毒的popup.adv.net弹窗广告不会再IE或者是safari里面出现，也许是因为它的温和性，我没有遇到罢了。大致就这些了。 Internet未果之后，决定自己搞定，很明显，第一想到的方法是去安全模式删掉它，但是事情总是山重水复。 安全模式删除RUN下的C:/WINDOWS/SYSTEM32/KDRPS.EXE注册表项和System32下的kdrps.exe文件 【结果：失败，因为注册表删不掉，kdrps.exe也删不掉，很明显，病毒在安全模式同样会启动】； Win PE下删除上述两项【结果：成功】 简述之：当你发现你的电脑的DNS被自动修改为类似于85.225.***.***的形式之后，你只需要查看你的启动项，确定里面多了的那个位于system32下面类似于kd***.exe的启动项，然后到 Win PE下面删除就OK了，或者DOS下删除。如果你不知到怎么找到注册表中的RUN或者是不知道怎么进WIN PE或者DOS的话，建议先百度之后再回来看看。 随机日志比较下网络带宽?回答正确有奖 (13)易行2.0-软件重构感悟 (1)t (0)开心时刻 恶搞 Android 手机帅哥鉴定器 (5)2008年6月英语四级考试答案&#8212;腾讯!你何必呢?! (11)如何在C#中实现DATAGRIDVIEW 数据打印 (2)Android 程序获取、设置铃声和音量 (0)]]></description>
			<content:encoded><![CDATA[<p>貌似很久以前苹果上面出现过一个叫做<span style="text-decoration: underline;">DNS Changer</span>的病毒，打破了苹果无病毒的神话。最近郁闷的遇到一个病毒，然我很是不爽，其工作方式就是<span style="text-decoration: underline;">强制修改你的DNS</span>然后使坏。有点了解你的PC链接互联网原理的人应该都知道，当你的<span style="text-decoration: underline;">DNS被自动修改</span>为一个非你的ISP(Internet Service Provider)的时候是一件多么恐怖的事情。简单的说，当你的DNS被修改为你未知的DNS之后，你所能在你的电脑上面看到的任何来自互联网的东西都有可能变色，呵呵，回味一下前不久<a href="http://www.google.cn/search?hl=zh-CN&amp;newwindow=1&amp;client=firefox-a&amp;rls=org.mozilla%3Azh-CN%3Aofficial&amp;q=verycd+dns+%E5%8A%AB%E6%8C%81&amp;btnG=Google+%E6%90%9C%E7%B4%A2&amp;meta=&amp;aq=f&amp;oq=" target="_blank">VeryCD的DNS劫持事件</a>吧。现在来说一下这个病毒的简单表现，如下<span id="more-450"></span>：</p>
<ul>
<li><strong>杀毒软件不能更新</strong>，我用的是卡巴斯基，升级时候链接不上服务器器；</li>
<li>很搞笑的一点：不能打开Google首页，或者说<strong>不能使用Google搜索</strong>，而Google的其他产品都是好的，比如Adsense，Reader等；</li>
<li>使用Firefox的时候<strong>出现弹窗广告：popup.adv.net</strong> (来自这个网站的弹窗广告)<em><br />
</em></li>
<li>导致以上几点的原因：DNS被强制更改为：<span><strong>85.225.112.185</strong>，后面两个字段可能不同的电脑中毒之后不一样，大致是会被更改为像<strong>85.225.***.***</strong>这样的DNS地址。</span></li>
<li><span>创建启动项：C:/WINDOWS/SYSTEM32/KDRPS.EXE (【注】我的是kdrps.exe有可能你中毒之后就不是了，因为我见网上有人说他的是kdware.exe 这应该是一个随机的，但是都是以kd开头的)；</span></li>
<li><span>普通模式下你不能在</span><span>C:/WINDOWS/SYSTEM32下面找到注册表RUN项所指向的kdrps.exe文件。(这一点让我疑惑了,也麻痹了我，以为一个无用项，没管它)；</span></li>
<li><span>即使在安全模式下无法删除RUN注册表项，更不用说在普通模式下了；</span></li>
</ul>
<p>这个病毒很温和，中了之后基本不会影响到一半用户的正常使用，但是偏偏我就是一般只Google不baidu所以，我愤怒了，决定搞定它。处于习惯先是搜索了几下，当然现在是百度了，很明显，没有答案。后来用童鞋的电脑Google了一下，终究得出一个结论，很少少人认为这是一个病毒，大多数的人都任务这是ISP的问题，但是很明显这是病毒的作为，因为，在我同一个局域网里的其他PC没有问题。</p>
<p>居然很少人认为这是病毒，这点体现出了这个病毒的成功，就像我刚刚才说的：这个病毒很温和。比如它的弹窗广告一点也不暴力，firefox很轻易就拦截下来了，而且是间歇性的，并不是你每次打开firefox都会弹出来，大概我两天遇到过四五次吧，但是我开firefox的次数应该能有上百次。这也是为什么这东西在我电脑上两天我都没有管他的其中一个原因，另外的原因也就是被Allove.org的速度问题纠结着，被<a href="http://blog.allove.org/archives/%e7%9f%ad%e4%bf%a1%e5%8a%a9%e6%89%8b-%e5%8d%b3%e5%b0%86%e9%9d%a2%e4%b8%96.html" target="_blank">短信助手</a>的开发忙碌着，被Linux的进程控制烦恼着&#8230;等等，反正最近是有点慢。扯远了，扯回来&#8230;而且这个来自病毒的<strong>popup.adv.net</strong>弹窗广告不会再IE或者是safari里面出现，也许是因为它的温和性，我没有遇到罢了。大致就这些了。</p>
<p>Internet未果之后，决定自己搞定，很明显，第一想到的方法是去安全模式删掉它，但是事情总是山重水复。</p>
<ul>
<li>安全模式删除RUN下的<span>C:/WINDOWS/SYSTEM32/KDRPS.EXE注册表项和System32下的kdrps.exe文件 【结果：失败，因为注册表删不掉，kdrps.exe也删不掉，很明显，病毒在安全模式同样会启动】；</span></li>
<li><span>Win PE下删除上述两项【结果：成功】</span></li>
</ul>
<p>简述之：当你发现你的电脑的DNS被自动修改为类似于85.225.***.***的形式之后，你只需要查看你的启动项，确定里面多了的那个位于system32下面类似于kd***.exe的启动项，然后到 Win PE下面删除就OK了，或者DOS下删除。如果你不知到怎么找到注册表中的RUN或者是不知道怎么进WIN PE或者DOS的话，建议先百度之后再回来看看。</p>
<h3  class="related_post_title">随机日志</h3><ul class="related_post"><li><a href="http://blog.allove.org/archives/%e6%88%91%e7%9a%84%e4%b8%80%e5%ae%b6.html" title="我的一家">我的一家</a> (5)</li><li><a href="http://blog.allove.org/archives/searching-the-heavens-for-life-%e5%af%bb%e6%89%be%e5%a4%a9%e5%a4%96%e6%9d%a5%e5%ae%a2.html" title="Searching the heavens for life 寻找天外来客">Searching the heavens for life 寻找天外来客</a> (0)</li><li><a href="http://blog.allove.org/archives/%e8%bd%af%e4%bb%b6%e8%b4%a8%e9%87%8f%ef%bc%8c%e5%ae%a2%e6%88%b7%e8%bd%af%e4%bb%b6%e7%94%9f%e5%91%bd%e5%88%b0%e5%ba%95%e6%9c%89%e5%a4%9a%e9%95%bf%ef%bc%9f.html" title="软件质量，客户软件生命到底有多长？">软件质量，客户软件生命到底有多长？</a> (3)</li><li><a href="http://blog.allove.org/archives/upyoung.html" title="UPyoung 啊扑羊&#8211;路还长呢&#8212;">UPyoung 啊扑羊&#8211;路还长呢&#8212;</a> (7)</li><li><a href="http://blog.allove.org/archives/834.html" title="File Extension 1 FILE DRIVER">File Extension 1 FILE DRIVER</a> (1)</li><li><a href="http://blog.allove.org/archives/how-to-get-imei-in-java-me.html" title="(如何利用J2ME获得IMEI编码)How to get IMEI in Java ME">(如何利用J2ME获得IMEI编码)How to get IMEI in Java ME</a> (4)</li><li><a href="http://blog.allove.org/archives/wordpress-tags.html" title="Wordpress Tags &#8212; 解决Wordpress中文Tag不能正常访问的问题">Wordpress Tags &#8212; 解决Wordpress中文Tag不能正常访问的问题</a> (115)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.allove.org/archives/trojan-dns-changer-popup-adv-net.html/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>简述Linux &#8212; What&#8217;s Linux , Here is your Answer</title>
		<link>http://blog.allove.org/archives/what-is-linux.html</link>
		<comments>http://blog.allove.org/archives/what-is-linux.html#comments</comments>
		<pubDate>Wed, 12 Nov 2008 08:18:23 +0000</pubDate>
		<dc:creator>孙建</dc:creator>
				<category><![CDATA[[配置及开发]Linux]]></category>

		<guid isPermaLink="false">http://www.allove.org/?p=357</guid>
		<description><![CDATA[L i n u x操作系统是U N I X操作系统的一个版本，它的源头是B S D和System V这两种久经考验的U N I X操作系统变体。它的核心其实就是一个面向命令行的操作系统，因为它的前身U N I X操作系统就是设计为一个供程序员们建立更多工具程序的工具程序。即使你不是一个程序员，也不打算使用这个操作系统实现编程的目的，了解怎样才能通过命令行来使用L i n u x操作系统也是非常重要的。在一台提供着繁重的服务器功能的计算机上使用某种图形化的图形用户界面（G U I）是对系统内存R A M和处理器时间的浪费。但是，虽然L i n u x操作系统已经在某些方面提供了某种程度的G U I，但是Red Hat和C a l d e r a这两种发行版本还是包括了越来越多的有用的图形化工具程序以配合系统的工作。掌握了使用命令行和G U I这两套方法之后，L i n u x操作系统的最大功效就能够被发挥出来。 L i n u x操作系统有哪些特殊之处: L i n u x操作系统之所以会频频出现在新闻当中是因为那些开发操作系统的人们大力支持的开放源代码的概念。 在当今的科技社会中，公众检查已经不再是什么新鲜的东西了，但是在目前充斥着“代码财产化”的软件开发世界里，开放源代码的概念多少有一些逆潮流而动的革命意味。说它逆潮流而动是因为开放源代码运动通过科学的方法把编程工作又带回到编程的计算机科学范畴中去了。 [...]]]></description>
			<content:encoded><![CDATA[<p><strong>L i n u x操作系统</strong>是U N I X操作系统的一个版本，它的源头是B S D和System V这两种久经考验的U N I X操作系统变体。它的核心其实就是一个面向命令行的操作系统，因为它的前身U N I X操作系统就是设计为一个供程序员们建立更多工具程序的工具程序。即使你不是一个程序员，也不打算使用这个操作系统实现编程的目的，了解怎样才能通过命令行来使用L i n u x操作系统也是非常重要的。在一台提供着繁重的服务器功能的计算机上使用某种图形化的图形用户界面（G U I）是对系统内存R A M和处理器时间的浪费。但是，虽然L i n u x操作系统已经在某些方面提供了某种程度的G U I，但是Red Hat和C a l d e r a这两种发行版本还是包括了越来越多的有用的图形化工具程序以配合系统的工作。掌握了使用命令行和G U I这两套方法之后，L i n u x操作系统的最大功效就能够被发挥出来。<br />
<span id="more-357"></span><br />
<strong>L i n u x操作系统有哪些特殊之处:</strong></p>
<p>L i n u x操作系统之所以会频频出现在新闻当中是因为那些开发操作系统的人们大力支持的<strong>开放源代码</strong>的概念。</p>
<p>在当今的科技社会中，公众检查已经不再是什么新鲜的东西了，但是在目前充斥着“代码财产化”的软件开发世界里，开放源代码的概念多少有一些逆潮流而动的革命意味。说它逆潮流而动是因为开放源代码运动通过科学的方法把编程工作又带回到编程的计算机科学范畴中去了。<br />
L i n u x操作系统和供它使用的工具程序的开发是国际化的努力结果，是这个操作系统众多的用户和L i n u x内核最初的作者Linus To r v a l d s共同努力的结果。在开发工具方面， L i n u x操作系统目前已经得到了一些主要开发商的支持。比如说， I B M公司和C o r e l公司就正在把它们商业化的产品转移到L i n u x操作系统中来；而即使没有它们，在L i n u x操作系统中也已经有数以千计的程序和工具程序可以使用。这些工具程序中的相当一部分是由L i n u x操作系统的用户从其他的U N I X原型中引入或者转换过来的。</p>
<p>对于<span style="text-decoration: underline;">L i n u x操作系统</span>众多的用户来说，它最令人激动的特色之一就是这个操作系统的<strong>源代码</strong>是开放的，也就是说它的全部源代码都是公开的。这不仅仅是这个操作系统的软件开发人员的福音，还意味着广大的用户们也都可以根据自己的需求与水平对自己的系统进行进一步的配置。在有关软件和L i n u x操作系统本身的能力之外，限制其创造力的就只有他们的才智。注意许多工业界的权威认为其他的操作系统也将步L i n u x操作系统的后尘，最终走上开放源代码的道路，公开它们的源代码供公众检查和改进。但是在现实中这一切是否会发生还需要时间来检验。</p>
<h3  class="related_post_title">读过本文的朋友还浏览过下面这些：</h3><ul class="related_post"><li><a href="http://blog.allove.org/archives/linux%e7%b3%bb%e7%bb%9f%e4%b8%8b%e7%9a%84%e5%a4%9a%e7%ba%bf%e7%a8%8b%e7%bc%96%e7%a8%8b.html" title="Linux系统下的多线程编程">Linux系统下的多线程编程</a> (8)</li><li><a href="http://blog.allove.org/archives/setup-concurrent-version-system-on-linux.html" title="Linux配置CVS服务器 &#8212; Setup Concurrent Version System">Linux配置CVS服务器 &#8212; Setup Concurrent Version System</a> (17)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.allove.org/archives/what-is-linux.html/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Windows 创建进程 &#8212; 详解API函数CreateProcess()</title>
		<link>http://blog.allove.org/archives/windows-api-createprocess.html</link>
		<comments>http://blog.allove.org/archives/windows-api-createprocess.html#comments</comments>
		<pubDate>Sat, 08 Nov 2008 18:04:26 +0000</pubDate>
		<dc:creator>孙建</dc:creator>
				<category><![CDATA[[技术及娱乐]Windows]]></category>
		<category><![CDATA[CreateProcess]]></category>
		<category><![CDATA[windows线程]]></category>
		<category><![CDATA[windows进程]]></category>

		<guid isPermaLink="false">http://www.allove.org/?p=354</guid>
		<description><![CDATA[【关于操作系统进程和线程的编程实例】在windows NT 环境 下创建进程的和子进程的方法可以调用windows 的 API 函数 CreateProcess . 实际上即是 在一个 CreateProcessTest.exe 的程序中使用了 CreateProcess() 函数调用了另外一个可执行模块，而这个可执行模块即是CreateProcessTest.exe 的子进程 。 用很简单明了的话来说就是 在一个 可执行文件中调用了 另外一个可执行文件作为子进程(初步理解，有待深入，望高人能指点指点)。通过在下下面的细细到来，您如果未曾涉猎这个领域的话，应该能很快的学会如何在windows中创建进程，以及线程句柄的控制。以及获取进程和线程的相关信息。Thx. 下面首先来具体说一下这个API 函数： //&#60;strong&#62; Windows CreateProcess 函数原型 &#60;/strong&#62; &#160; &#160; *********************************** BOOL&#160;WINAPI CreateProcess( &#160; __in&#160; &#160; &#160; &#160; &#160; LPCTSTR&#160;lpApplicationName,&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; [指定可执行模块的字符串] &#160; __in_out&#160; &#160; &#160; LPTSTR&#160;lpCommandLine,&#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>【关于操作系统进程和线程的编程实例】在<a href="http://www.allove.org/index.php/archives/category/computer/windows-os" target="_blank" title="windows 操作系统编程">windows NT</a> 环境 下创建进程的和子进程的方法可以调用<a href="http://www.allove.org/index.php/archives/category/computer/windows-os" target="_blank" title="windows 操作系统编程">windows</a> 的 API 函数 CreateProcess . 实际上即是 在一个 CreateProcessTest.exe 的程序中使用了 CreateProcess() 函数调用了另外一个可执行模块，而这个可执行模块即是CreateProcessTest.exe 的子进程 。 用很简单明了的话来说就是 在一个 可执行文件中调用了 另外一个可执行文件作为子进程(初步理解，有待深入，<a href="http://www.allove.org/index.php/footmark" target="_blank" title="给我留言吧！">望高人能指点指点</a>)。通过在下下面的细细到来，您如果未曾涉猎这个领域的话，应该能很快的学会如何在<strong>windows中创建进程</strong>，以及<strong>线程</strong>句柄的控制。以及获取<strong>进程和线程</strong>的相关信息。Thx.<span id="more-354"></span><br />
下面首先来具体说一下这个API 函数：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">//&lt;strong&gt; Windows CreateProcess 函数原型 &lt;/strong&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; ***********************************</span></li>
<li><span style="color: Blue;">BOOL</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">WINAPI</span><span style="color: Gray;"> </span><span style="color: Blue;">CreateProcess</span><span style="color: Olive;">(</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">__in</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">LPCTSTR</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">lpApplicationName</span><span style="color: Gray;">,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Olive;">[</span><span style="color: Gray;">指定可执行模块的字符串</span><span style="color: Olive;">]</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">__in_out</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">LPTSTR</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">lpCommandLine</span><span style="color: Gray;">,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span></li>
<li><span style="color: Olive;">[</span><span style="color: Gray;">从命令行读入执行模块</span><span style="color: Olive;">]</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">__in</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">LPSECURITY_ATTRIBUTES</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">lpProcessAttributes</span><span style="color: Gray;">,&nbsp; </span></li>
<li><span style="color: Olive;">[</span><span style="color: Gray;">决定所返回的句柄是否可以被子进程继承</span><span style="color: Olive;">]</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">__in</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">LPSECURITY_ATTRIBUTES</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">lpThreadAttributes</span><span style="color: Gray;">,&nbsp; </span></li>
<li><span style="color: Olive;">[</span><span style="color: Gray;">决定所返回的句柄是否可以被子线程继承</span><span style="color: Olive;">]</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">__in</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">BOOL</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">bInheritHandles</span><span style="color: Gray;">,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span></li>
<li><span style="color: Olive;">[</span><span style="color: Gray;">如果这个参数为</span><span class="hl-prepro">TRUE</span><span style="color: Gray;">，这所有句柄会被子进程继承</span><span style="color: Olive;">]</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">__in</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">DWORD</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">dwCreationFlags</span><span style="color: Gray;">,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Olive;">[</span><span style="color: Gray;">控制优先级和创建过程</span><span style="color: Olive;">]</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">__in</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">LPVOID</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">lpEnvironment</span><span style="color: Gray;">,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span></li>
<li><span style="color: Olive;">[</span><span style="color: Gray;">指向一个新进程的环境块。如果此参数为空，新进程使用调用进程的环境。</span><span style="color: Olive;">]</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">__in</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">LPCTSTR</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">lpCurrentDirectory</span><span style="color: Gray;">,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span></li>
<li><span style="color: Olive;">[</span><span style="color: Gray;">子进程的工作路径</span><span style="color: Olive;">]</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">__in</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">LPSTARTUPINFO</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">lpStartupInfo</span><span style="color: Gray;">,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Olive;">[</span><span style="color: Gray;">决定新进程的主窗体如何显示</span><span style="color: Olive;">]</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">__out</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Blue;">LPPROCESS_INFORMATION</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">lpProcessInformation</span><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Olive;">[</span><span style="color: Gray;">接收新进程的识别信息</span><span style="color: Olive;">]</span></li>
<li><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; ************************************</span></li></ol></div>
<p>    //适用平台：<br />
    Client ：Requires Windows Vista, Windows XP, Windows 2000 Professional, Windows NT Workstation, Windows Me, Windows 98, or Windows 95.<br />
    Server ：Requires Windows Server 2008, Windows Server 2003, Windows 2000 Server, or Windows NT Server.<br />
    //需求　：<br />
    Header ：    Declared in Winbase.h; include Windows.h.</p>
<p>    Library ：    Use Kernel32.lib.</p>
<p>    DLL ：    Requires Kernel32.dll.</p>
<p>    Unicode ：    Implemented as CreateProcessW (Unicode) and CreateProcessA (ANSI).</p>
<p>在调用该函数的时候可以传入两种可执行模块，一个是直接在函数参数中传递，通过<strong>LPCTSTR lpApplicationName</strong>,参数 。另一种是通过MS-DOS命令行，通过<strong>LPTSTR lpCommandLine</strong>, 实现 。<br />
在接下来的实例中是这样的：<br />
if( !CreateProcess( NULL,<br />
        argv[1],      //在这里读入控制台参数，创建进程<br />
…..) ; //为了简洁，只写了第一二个参数 。<br />
接下来是源码，注释还算详细，细细看看，应该就明白了：</p>
<div class="hl-title">&#19979;&#36733;: <a href="http://blog.allove.org/wp-content/plugins/coolcode/coolcode.php?p=354&amp;download=CreateProcessTest.cpp">CreateProcessTest.cpp</a></div><div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">//　created by daniel sun @ 2008.11.09 wellcome to my homepage www.Allove.org </span></li>
<li><span class="hl-prepro">#include </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">stdafx.h</span><span style="color: #8b0000;">&quot;</span><span class="hl-prepro"></span></li>
<li><span class="hl-prepro">#include </span><span style="color: #8b0000;">&lt;</span><span style="color: Red;">windows .h</span><span style="color: #8b0000;">&gt;</span><span class="hl-prepro"></span></li>
<li><span class="hl-prepro">#include </span><span style="color: #8b0000;">&lt;</span><span style="color: Red;">stdio .h</span><span style="color: #8b0000;">&gt;</span><span class="hl-prepro"></span></li>
<li><span class="hl-prepro">#include </span><span style="color: #8b0000;">&lt;</span><span style="color: Red;">tchar .h</span><span style="color: #8b0000;">&gt;</span><span class="hl-prepro"></span></li>
<li><span class="hl-prepro">#include </span><span style="color: #8b0000;">&lt;</span><span style="color: Red;">iostream</span><span style="color: #8b0000;">&gt;</span><span class="hl-prepro"></span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span class="hl-types">void</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">_tmain</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span class="hl-types">int</span><span style="color: Gray;"> </span><span style="color: Blue;">argc</span><span style="color: Gray;">, </span><span style="color: Blue;">TCHAR</span><span style="color: Gray;"> *</span><span style="color: Blue;">argv</span><span style="color: Olive;">[]</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">STARTUPINFO</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">si</span><span style="color: Gray;">;&nbsp; </span><span style="color: #ffa500;">//Specifies the window station, </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: #ffa500;">//desktop, standard handles, and appearance of </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: #ffa500;">//the main window for a process at creation time.</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">PROCESS_INFORMATION</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">pi</span><span style="color: Gray;">; </span><span style="color: #ffa500;">//进程信息,原始结构体如下：</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span class="hl-mlcomment">/*</span></li>
<li><span class="hl-mlcomment">&nbsp; &nbsp; typedef struct _PROCESS_INFORMATION </span></li>
<li><span class="hl-mlcomment">&nbsp; &nbsp; {&nbsp; HANDLE hProcess;&nbsp; </span></li>
<li><span class="hl-mlcomment">&nbsp; &nbsp; HANDLE hThread;&nbsp; </span></li>
<li><span class="hl-mlcomment">&nbsp; &nbsp; DWORD dwProcessId;&nbsp; </span></li>
<li><span class="hl-mlcomment">&nbsp; &nbsp; DWORD dwThreadId;</span></li>
<li><span class="hl-mlcomment">&nbsp; &nbsp; } PROCESS_INFORMATION,&nbsp; *LPPROCESS_INFORMATION;</span></li>
<li><span class="hl-mlcomment">&nbsp; &nbsp; */</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">//Fills a block of memory with zeros. 初始化内存块,全部填充值</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">ZeroMemory</span><span style="color: Olive;">(</span><span style="color: Gray;"> &amp;</span><span style="color: Blue;">si</span><span style="color: Gray;">, </span><span style="color: Green;">sizeof</span><span style="color: Olive;">(</span><span style="color: Blue;">si</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">si</span><span style="color: Gray;">.</span><span style="color: Blue;">cb</span><span style="color: Gray;"> = </span><span style="color: Green;">sizeof</span><span style="color: Olive;">(</span><span style="color: Blue;">si</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">ZeroMemory</span><span style="color: Olive;">(</span><span style="color: Gray;"> &amp;</span><span style="color: Blue;">pi</span><span style="color: Gray;">, </span><span style="color: Green;">sizeof</span><span style="color: Olive;">(</span><span style="color: Blue;">pi</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">argc</span><span style="color: Gray;"> != </span><span style="color: Maroon;">2</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: #ffa500;">//控制台读入两个字符串，一个是本程序的名字，另一个是要建立子的进程</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">printf</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">用法: %s [cmdline]</span><span style="color: Navy;">\</span><span style="color: Red;">n</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: Blue;">argv</span><span style="color: Olive;">[</span><span style="color: Maroon;">0</span><span style="color: Olive;">])</span><span style="color: Gray;">; </span><span style="color: #ffa500;">//提示用户如何传入参数</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">printf</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">运行方式不正确！系统退出..</span><span style="color: Navy;">\</span><span style="color: Red;">n</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">; </span><span style="color: #ffa500;">//用于测试</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">system</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">pause</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">; </span><span style="color: #ffa500;">//用于测试</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">// 创建子进程</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Gray;"> !</span><span style="color: Blue;">CreateProcess</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span class="hl-prepro">NULL</span><span style="color: Gray;">,&nbsp;&nbsp; </span><span style="color: #ffa500;">// No module name (use command line)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">argv</span><span style="color: Olive;">[</span><span style="color: Maroon;">1</span><span style="color: Olive;">]</span><span style="color: Gray;">,&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// Command line&nbsp; //TEXT(&quot;D:\\MyDocuments\\Visual Studio 2005\\project\\Stack_TCC\\debug\\Stack_TCC.exe&quot;),</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="hl-prepro">NULL</span><span style="color: Gray;">,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: #ffa500;">// Process handle not inheritable</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="hl-prepro">NULL</span><span style="color: Gray;">,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: #ffa500;">// Thread handle not inheritable</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="hl-prepro">FALSE</span><span style="color: Gray;">,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// Set handle inheritance to FALSE</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Maroon;">0</span><span style="color: Gray;">,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// No creation flags</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="hl-prepro">NULL</span><span style="color: Gray;">,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: #ffa500;">// Use parent's environment block</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="hl-prepro">NULL</span><span style="color: Gray;">,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: #ffa500;">// Use parent's starting directory </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &amp;</span><span style="color: Blue;">si</span><span style="color: Gray;">,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// Pointer to STARTUPINFO structure</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &amp;</span><span style="color: Blue;">pi</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: #ffa500;">// Pointer to PROCESS_INFORMATION structure</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">printf</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">创建进程失败(%d)</span><span style="color: Navy;">\</span><span style="color: Red;">n</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: Blue;">GetLastError</span><span style="color: Olive;">()</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//printf(&quot;创建进程失败..&quot;);</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">system</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">pause</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">; </span><span style="color: #ffa500;">//用于测试</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">//打印进程信息</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">printf</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">一下是子进程的信息：</span><span style="color: Navy;">\</span><span style="color: Red;">n</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">printf</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">进程ID pi.dwProcessID: %d </span><span style="color: Navy;">\</span><span style="color: Red;">n</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span><span style="color: Blue;">pi</span><span style="color: Gray;">.</span><span style="color: Blue;">dwProcessId</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">printf</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">线程ID pi.dwThreadId: %d </span><span style="color: Navy;">\</span><span style="color: Red;">n</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span><span style="color: Blue;">pi</span><span style="color: Gray;">.</span><span style="color: Blue;">dwThreadId</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">//printf(&quot;句柄进程pi.hProcess: %s \n&quot;,pi.hProcess);</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">//printf(&quot;句柄线程pi.hThread: %s \n&quot;,pi.hThread);</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">// 等待知道子进程退出...</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">WaitForSingleObject</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">pi</span><span style="color: Gray;">.</span><span style="color: Blue;">hProcess</span><span style="color: Gray;">, </span><span style="color: Blue;">INFINITE</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">//WaitForSingleObject()函数检查对象的状态，如果是未确定的则等待至超时</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span class="hl-mlcomment">/* </span></li>
<li><span class="hl-mlcomment">&nbsp; &nbsp; &nbsp; &nbsp; //WaitForSingleObject()函数原型：</span></li>
<li><span class="hl-mlcomment">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; DWORD WINAPI WaitForSingleObject(</span></li>
<li><span class="hl-mlcomment">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; __in&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; HANDLE hHandle, </span></li>
<li><span class="hl-mlcomment">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; __in&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DWORD dwMilliseconds&nbsp; //超时时限 INFINITE 为无穷</span></li>
<li><span class="hl-mlcomment">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; );</span></li>
<li><span class="hl-mlcomment">&nbsp; &nbsp; */</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">//子进程退出</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">printf</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">子进程已经退出... </span><span style="color: Navy;">\</span><span style="color: Red;">n</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">//关闭进程和句柄</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">CloseHandle</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">pi</span><span style="color: Gray;">.</span><span style="color: Blue;">hProcess</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">CloseHandle</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">pi</span><span style="color: Gray;">.</span><span style="color: Blue;">hThread</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">system</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">pause</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">exit</span><span style="color: Olive;">(</span><span style="color: Maroon;">0</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&lt;/</span><span style="color: Blue;">iostream</span><span style="color: Gray;">&gt;&lt;/</span><span style="color: Blue;">tchar</span><span style="color: Gray;">&gt;&lt;/</span><span style="color: Blue;">stdio</span><span style="color: Gray;">&gt;&lt;/</span><span style="color: Blue;">windows</span><span style="color: Gray;">&gt;</span></li></ol></div>
<p>编译上面这段代码应该能得到一个二进制文件，假设你将它命名为 ：CreateProcessTest.exe<br />
使用方法是这样的：<br />
在命令行中执行 CreateProcessTest.exe yourProgramName.exe<br />
【程序运行之后可以在任务管理器里面查看进程】<br />
【为了不引起不必要的麻烦建议yourProgramName.exe使用一个win32控制台程序(你可以简单的写一个HelloWord.exe来测试)，这里所谓的不必要的麻烦是程序中传的参数决定的，今天暂时不讲】</p>
<p>就到这里吧！小结一下子 ： 详细介绍了windows API 函数 CreateProcess() 各个参数及其意义与用法，通过一个实例来阐释了如何在windows系统中创建进程，和获取进程信息，以及相关的句柄。下面呢？没了。</p>
<h3  class="related_post_title">随机日志</h3><ul class="related_post"><li><a href="http://blog.allove.org/archives/%e7%94%9f%e5%91%bd%e8%84%86%e5%bc%b1-%e4%bb%8e%e7%8e%b0%e5%9c%a8%e5%bc%80%e5%a7%8b%e7%8f%8d%e6%83%9c%e5%91%a8%e5%9b%b4%e7%9a%84%e4%b8%80%e5%88%87.html" title="生命脆弱-从现在开始珍惜周围的一切">生命脆弱-从现在开始珍惜周围的一切</a> (4)</li><li><a href="http://blog.allove.org/archives/%e7%b2%be%e7%be%8e%e5%85%a8%e8%83%bdwordpress%e4%b8%bb%e9%a2%98-one-theme.html" title="精美全能wordpress主题 &#8212; One Theme">精美全能wordpress主题 &#8212; One Theme</a> (22)</li><li><a href="http://blog.allove.org/archives/%e4%b8%80%e4%b8%aa%e6%a2%a6%ef%bc%8c%e4%b8%a4%e4%b8%aa%e4%ba%ba%ef%bc%81-%e6%81%a9%e5%b8%88%ef%bc%81.html" title="一个梦，两个人！&#8212;&#8212;&#8212;&#8212;&#8212;恩师！">一个梦，两个人！&#8212;&#8212;&#8212;&#8212;&#8212;恩师！</a> (10)</li><li><a href="http://blog.allove.org/archives/linkify%e5%af%b9%e8%b1%a1%e7%9a%84%e4%bd%bf%e7%94%a8%e2%80%94%e2%80%94%e5%af%b9%e8%be%93%e5%85%a5string%e5%81%9a%e5%87%ba%e5%88%a4%e6%96%ad.html" title="Linkify对象的使用——对输入String做出判断">Linkify对象的使用——对输入String做出判断</a> (0)</li><li><a href="http://blog.allove.org/archives/many-beautiful-wallpapers.html" title="精美壁纸 &#8212; 上传了250多张精美壁纸?!你想看吗!">精美壁纸 &#8212; 上传了250多张精美壁纸?!你想看吗!</a> (8)</li><li><a href="http://blog.allove.org/archives/diablo-3-screenshort.html" title="暗黑破坏神3 &#8212; Diablo3 游戏截图,提前体验暗黑破坏神的魅力">暗黑破坏神3 &#8212; Diablo3 游戏截图,提前体验暗黑破坏神的魅力</a> (11)</li><li><a href="http://blog.allove.org/archives/joomla-15x-template-ja-helio.html" title="Joomla 1.5.X Template &#8212; JA Helio">Joomla 1.5.X Template &#8212; JA Helio</a> (9)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.allove.org/archives/windows-api-createprocess.html/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>硬盘工作原理&#8212;在下载和游戏中如何保护硬盘</title>
		<link>http://blog.allove.org/archives/hard-disk.html</link>
		<comments>http://blog.allove.org/archives/hard-disk.html#comments</comments>
		<pubDate>Sat, 20 Sep 2008 03:43:58 +0000</pubDate>
		<dc:creator>孙建</dc:creator>
				<category><![CDATA[[技术及娱乐]Windows]]></category>
		<category><![CDATA[下载伤硬盘]]></category>
		<category><![CDATA[保护硬盘]]></category>
		<category><![CDATA[硬盘工作原理]]></category>

		<guid isPermaLink="false">http://www.allove.org/?p=112</guid>
		<description><![CDATA[【写在前面】自己操作系统学得不精通啊，硬件原理也不甚明白，下载又怕伤自己硬盘，所以关心之，找到了这篇文章，个人认为是非常清楚的啦，一定分享，转载出来，还望不要见笑！ 原文地址：http://www.emule.org.cn/topic/harddisk/ 先说一下现代硬盘的工作原理 　　现在的硬盘,无论是IDE还是SCSI,采用的都是&#8221;温彻思特“技术,都有以下特点：1。磁头，盘片及运动机构密封。2。固定并高速旋转的镀磁盘片表面平整光滑。3。磁头沿盘片径向移动。4。磁头对盘片接触式启停，但工作时呈飞行状态不与盘片直接接触。 　　盘片：硬盘盘片是将磁粉附着在铝合金（新材料也有用玻璃）圆盘片的表面上.这些磁粉被划分成称为磁道的若干个同心圆，在每个同心圆的磁道上就好像有无数的任意排列的小磁铁，它们分别代表着0和1的状态。当这些小磁铁受到来自磁头的磁力影响时，其排列的方向会随之改变。利用磁头的磁力控制指定的一些小磁铁方向，使每个小磁铁都可以用来储存信息。 　　盘体：硬盘的盘体由多个盘片组成，这些盘片重叠在一起放在一个密封的盒中，它们在主轴电机的带动下以很高的速度旋转，其每分钟转速达3600，4500，5400，7200甚至以上。 　　磁头：硬盘的磁头用来读取或者修改盘片上磁性物质的状态，一般说来，每一个磁面都会有一个磁头，从最上面开始，从0开始编号。磁头在停止工作时，与磁盘是接触的，但是在工作时呈飞行状态。磁头采取在盘片的着陆区接触式启停的方式，着陆区不存放任何数据，磁头在此区域启停，不存在损伤任何数据的问题。读取数据时，盘片高速旋转，由于对磁头运动采取了精巧的空气动力学设计，此时磁头处于离盘面数据区0.2&#8212;0.5微米高度的”飞行状态“。既不与盘面接触造成磨损，又能可靠的读取数据。 　　电机：硬盘内的电机都为无刷电机，在高速轴承支撑下机械磨损很小，可以长时间连续工作。高速旋转的盘体产生了明显的陀螺效应，所以工作中的硬盘不宜运动，否则将加重轴承的工作负荷。硬盘磁头的寻道饲服电机多采用音圈式旋转或者直线运动步进电机，在饲服跟踪的调节下精确地跟踪盘片的磁道，所以在硬盘工作时不要有冲击碰撞，搬动时要小心轻放。 　　原理说到这里，大家都明白了吧？ 　　首先，磁头和数据区是不会有接触的，所以不存在磨损的问题。 　　其次，一开机硬盘就处于旋转状态，主轴电机的旋转可以达到4500或者7200转每分钟，这和你是否使用FLASHGET或者ED都没有关系，只要一通电，它们就在转.它们的磨损也和软件无关。 　　再次，寻道电机控制下的磁头的运动，是左右来回移动的，而且幅度很小，从盘片的最内层（着陆区）启动，慢慢移动到最外层，再慢慢移动回来，一个磁道再到另一个磁道来寻找数据。不会有什么大规模跳跃的（又不是青蛙）。所以它的磨损也是可以忽略不计的。 那么，热量是怎么来的呢？ 　　首先，是主轴电机和寻道饲服电机的旋转，硬盘的温度主要是因为这个。 　　其次，高速旋转的盘体和空气之间的摩擦。这个也是主要因素。而硬盘的读写？很遗憾，它的发热量可以忽略不记！ 　　硬盘的读操作，是盘片上磁场的变化影响到磁头的电阻值,这个过程中盘片不会发热，磁头倒是因为电流发生变化，所以会有一点热量产生。写操作呢？正好反过来，通过磁头的电流强度不断发生变化，影响到盘片上的磁场，这一过程因为用到电磁感应，所以磁头发热量较大。但是盘片本身是不会发热的，因为盘片上的永磁体是冷性的，不会因为磁场变化而发热。 　　但是总的来说，磁头的发热量和前面两个比起来，是小巫见大巫了。热量是可以辐射传导的，那么高热量对盘片上的永磁体会不会有伤害呢？其实伤害是很小的，永磁体消磁的温度，远远高于硬盘正常情况下产生的温度。当然，要是你的机箱散热不好，那可就怪不了别人了。 这里不得不说一下某人的几个错误： 　　一、高温是影响到磁头的电阻感应灵敏度，所以才会产生读写错误，和永磁体没有关系。 　　二、所谓的热膨胀，不会拉近盘体和磁头的距离，因为磁头的飞行是空气动力学原理，在正常情况下始终和盘片保持一定距离。当然要是你大力打击硬盘，那么这个震动…… 　　三、所谓寻道是指硬盘从初使位置移动到指定磁道。所谓的复位动作，并不是经常发生的。因为磁道的物理位置是存放在CMOS里面，硬盘并不需要移动回0磁道再重新出发。只要磁头一启动，所谓的复位动作就完成了，除非你重新启动电脑，不然复位动作就不会再发生。 　　四、IDE硬盘和SCSI硬盘的盘体结构是差不多的。只是SCSI硬盘的接口带宽比同时代的IDE硬盘要大，而且往往SCSI卡往往都会有一个类似CPU的东西来减缓主CPU的占用率。仅此而已，所以希捷才会把它的SCSI硬盘的技术用在IDE硬盘上。 　　五、硬盘的读写是以柱面的扇区为单位的。柱面也就是整个盘体中所有磁面的半径相同的同心磁道，而把每个磁道划分为若干个区就是所谓的扇区了。硬盘的写操作，是先写满一个扇区，再写同一柱面的下一个扇区的，在一个柱面完全写满前，磁头是不会移动到别的磁道上的。所以文件在硬盘上的存储，并不是像一般人的认为，是连续存放在一起的（从使用者来看是一起，但是从操作系统底层来看，其存放不是连续的）。所以FLASHGET或者ED开了再多的线程，磁头的寻道一般都不会比你一边玩游戏一边听歌大。当然，这种情况只是单纯的下载或者上传而已，但是其实在这个过程中，谁能保证自己不会启动其它需要读写硬盘的软件？可能很多人都喜欢一边下载一边玩游戏或者听歌吧？更不用说WINDOWS本身就需要频繁读写虚拟内存文件了。所以，用FG下载也好，ED也好，对硬盘的折磨和平时相比不会太厉害的。 　　六、再说说FLASHGET为什么开太多线程会不好和ED为什么硬盘读写频繁。首先，线程一多，cpu的占用率就高，换页动作也就频繁，从而虚拟内存读写频繁，至于为什么，学过操作系统原理的应该都知道，我这里就不说了。ED呢？同时从几个人那里下载一个文件，还有几个人同时在下载你的文件，这和FG开多线程是类似的。所以硬盘灯猛闪。但是，现在的硬盘是有缓存的，数据不是马上就写到硬盘上，而是先存放在缓存里面,，然后到一定量了再一次性写入硬盘。在FG里面再怎么设置都好，其实是先写到缓存里面的。但是这个过程也是需要CPU干预的，所以设置时间太短，CPU占用率也高，所以硬盘灯也还是猛闪的，因为虚拟文件在读写。 　　七、硬盘读写频繁，磁头臂在寻道伺服电机的驱动下移动频繁，但是对机械来说这点耗损虽有，其实不大。除非你的硬盘本身就有机械故障比如力臂变形之类的（水货最常见的故障）。真正耗损在于磁头，不断变化的电流会造成它的老化，但是和它的寿命相比。。。。。应该也是在合理范围内的。除非因为震动，磁头撞击到了盘体。 　　八、受高温影响的最严重的是机械的电路，特别是硬盘外面的那块电路板，上面的集成块在高温下会加速老化的。所以IBM的某款玻璃硬盘，虽然有坏道，但是一用某个软件，马上就不见了。再严重点的，换块线路板，也就正常了。就是这个原因。 　　总之，硬盘会因为环境不好和保养不当而影响寿命，但是这绝对不是软件的错。FLASHGET也好,ED也好,FTP也好,它们虽然对硬盘的读写频繁,但是还不至于比你一般玩游戏一般听歌对硬盘伤害大.说得更加明白的话,它们对硬盘的所谓耗损,其实可以忽略不计.不要因为看见硬盘灯猛闪,就在那里瞎担心.不然那些提供WEB服务和FTP服务的服务器，它们的硬盘读写之大，可绝非平常玩游戏，下软件的硬盘可比的。 　　硬盘有一个参数叫做连续无故障时间。它是指硬盘从开始运行到出现故障的最长时间，单位是小时，英文简写是MTBF。一般硬盘的MTBF至少在 30000或40000小时。具体情况可以看硬盘厂商的参数说明。这个连续无故障时间，大家可以自己除一下，看看是多少年。然后大家自己想想，自己的硬盘平时连续工作最久是多长时间。 　　目前我使用的机器，已经连续开机1年了，除了中途有几次关机十几分钟来清理灰尘外，从来没有停过（使用金转6代40G）。另外还有三台使用 SCSI硬盘的服 务器，是连续两年没有停过了，硬盘的发热量绝非平常IDE硬盘可比（1万转的硬盘啊）。在这方面，我想我是有发言权的。 最后补充一下若干点： 　　一、硬盘最好不要买水货或者返修货。水货在运输过程中是非常不安全的，虽然从表面上看来似乎无损伤，但是有可能在运输过程中因为各种因素而对机械体造成损伤。返修货就更加不用说了。老实说，那些埋怨硬盘容易损坏的人，你们应该自己先看看，自己的硬盘是否就是这些货色。 　　二、硬盘的工作环境是需要整洁的，特别是注意不要在频繁断电和灰尘很多的环境下使用硬盘。机箱要每隔一两个月清理一下灰尘。 　　三、硬盘的机械最怕震动和高温。所以环境要好，特别是机箱要牢固，以免共震太大。电脑桌也不要摇摇晃晃的。 　　四、要经常整理硬盘碎片。这里有一个大多数人的误解，一般人都以为硬盘碎片会加大硬盘耗损，其实不是这样的。硬盘碎片的增多本身只是会让硬盘读写所花时间比碎片少的时候多而已，对硬盘的耗损是可以忽略的（我在这里只说一个事实，目前网络上的服务器，它们用得最多的操作系统是UNIX，但是在UNIX下面是没有磁盘碎片整理软件的。就连微软的NT4,本身也是没有的）。不过，因为磁头频繁的移动，造成读写时间的加大，所以CPU的换页动作也就频繁了，而造成虚拟文件（在这里其实准确的说法是换页文件）读写频繁，从而加重硬盘磁头寻道的负荷。这才是硬盘碎片的坏处。 　　五、在硬盘读写时尽量避免忽然断电，冷启动和做其他加重CPU负荷的事情（比如在玩游戏时听歌，或者在下载时玩大型3D游戏），这些对硬盘的伤害比一般人想象中还要大。 　　总之，只要平常注意使用硬盘，硬盘是不会那么快就和我们说BYEBYE的。当然，如果是硬盘本身的质量就不行，那我就无话可说了。 随机日志Joomla 1.5.X Template &#8212; JA Helio (9)j2me 实现GPS定位指南针 (26)Choosing An Oriental Area Rugs To Warm You [...]]]></description>
			<content:encoded><![CDATA[<p>【写在前面】自己操作系统学得不精通啊，硬件原理也不甚明白，下载又怕伤自己硬盘，所以关心之，找到了这篇文章，个人认为是非常清楚的啦，一定分享，转载出来，还望不要见笑！<br />
原文地址：http://www.emule.org.cn/topic/harddisk/<br />
<strong>先说一下现代硬盘的工作原理</strong></p>
<p>　　现在的硬盘,无论是IDE还是SCSI,采用的都是&#8221;温彻思特“技术,都有以下特点：1。磁头，盘片及运动机构密封。2。固定并高速旋转的镀磁盘片表面平整光滑。3。磁头沿盘片径向移动。4。磁头对盘片接触式启停，但工作时呈飞行状态不与盘片直接接触。</p>
<p>　　盘片：硬盘盘片是将磁粉附着在铝合金（新材料也有用玻璃）圆盘片的表面上.这些磁粉被划分成称为磁道的若干个同心圆，在每个同心圆的磁道上就好像有无数的任意排列的小磁铁，它们分别代表着0和1的状态。当这些小磁铁受到来自磁头的磁力影响时，其排列的方向会随之改变。利用磁头的磁力控制指定的一些小磁铁方向，使每个小磁铁都可以用来储存信息。<br />
<span id="more-112"></span><br />
　　盘体：硬盘的盘体由多个盘片组成，这些盘片重叠在一起放在一个密封的盒中，它们在主轴电机的带动下以很高的速度旋转，其每分钟转速达3600，4500，5400，7200甚至以上。</p>
<p>　　磁头：硬盘的磁头用来读取或者修改盘片上磁性物质的状态，一般说来，每一个磁面都会有一个磁头，从最上面开始，从0开始编号。磁头在停止工作时，与磁盘是接触的，但是在工作时呈飞行状态。磁头采取在盘片的着陆区接触式启停的方式，着陆区不存放任何数据，磁头在此区域启停，不存在损伤任何数据的问题。读取数据时，盘片高速旋转，由于对磁头运动采取了精巧的空气动力学设计，此时磁头处于离盘面数据区0.2&#8212;0.5微米高度的”飞行状态“。既不与盘面接触造成磨损，又能可靠的读取数据。</p>
<p>　　电机：硬盘内的电机都为无刷电机，在高速轴承支撑下机械磨损很小，可以长时间连续工作。高速旋转的盘体产生了明显的陀螺效应，所以工作中的硬盘不宜运动，否则将加重轴承的工作负荷。硬盘磁头的寻道饲服电机多采用音圈式旋转或者直线运动步进电机，在饲服跟踪的调节下精确地跟踪盘片的磁道，所以在硬盘工作时不要有冲击碰撞，搬动时要小心轻放。</p>
<p>　　原理说到这里，大家都明白了吧？</p>
<p>　　首先，磁头和数据区是不会有接触的，所以不存在磨损的问题。</p>
<p>　　其次，一开机硬盘就处于旋转状态，主轴电机的旋转可以达到4500或者7200转每分钟，这和你是否使用FLASHGET或者ED都没有关系，只要一通电，它们就在转.它们的磨损也和软件无关。</p>
<p>　　再次，寻道电机控制下的磁头的运动，是左右来回移动的，而且幅度很小，从盘片的最内层（着陆区）启动，慢慢移动到最外层，再慢慢移动回来，一个磁道再到另一个磁道来寻找数据。不会有什么大规模跳跃的（又不是青蛙）。所以它的磨损也是可以忽略不计的。<br />
<strong>那么，热量是怎么来的呢？</strong></p>
<p>　　首先，是主轴电机和寻道饲服电机的旋转，硬盘的温度主要是因为这个。</p>
<p>　　其次，高速旋转的盘体和空气之间的摩擦。这个也是主要因素。而硬盘的读写？很遗憾，它的发热量可以忽略不记！</p>
<p>　　硬盘的读操作，是盘片上磁场的变化影响到磁头的电阻值,这个过程中盘片不会发热，磁头倒是因为电流发生变化，所以会有一点热量产生。写操作呢？正好反过来，通过磁头的电流强度不断发生变化，影响到盘片上的磁场，这一过程因为用到电磁感应，所以磁头发热量较大。但是盘片本身是不会发热的，因为盘片上的永磁体是冷性的，不会因为磁场变化而发热。</p>
<p>　　但是总的来说，磁头的发热量和前面两个比起来，是小巫见大巫了。热量是可以辐射传导的，那么高热量对盘片上的永磁体会不会有伤害呢？其实伤害是很小的，永磁体消磁的温度，远远高于硬盘正常情况下产生的温度。当然，要是你的机箱散热不好，那可就怪不了别人了。<br />
<strong>这里不得不说一下某人的几个错误：</strong></p>
<p>　　一、高温是影响到磁头的电阻感应灵敏度，所以才会产生读写错误，和永磁体没有关系。</p>
<p>　　二、所谓的热膨胀，不会拉近盘体和磁头的距离，因为磁头的飞行是空气动力学原理，在正常情况下始终和盘片保持一定距离。当然要是你大力打击硬盘，那么这个震动……</p>
<p>　　三、所谓寻道是指硬盘从初使位置移动到指定磁道。所谓的复位动作，并不是经常发生的。因为磁道的物理位置是存放在CMOS里面，硬盘并不需要移动回0磁道再重新出发。只要磁头一启动，所谓的复位动作就完成了，除非你重新启动电脑，不然复位动作就不会再发生。</p>
<p>　　四、IDE硬盘和SCSI硬盘的盘体结构是差不多的。只是SCSI硬盘的接口带宽比同时代的IDE硬盘要大，而且往往SCSI卡往往都会有一个类似CPU的东西来减缓主CPU的占用率。仅此而已，所以希捷才会把它的SCSI硬盘的技术用在IDE硬盘上。</p>
<p>　　五、硬盘的读写是以柱面的扇区为单位的。柱面也就是整个盘体中所有磁面的半径相同的同心磁道，而把每个磁道划分为若干个区就是所谓的扇区了。硬盘的写操作，是先写满一个扇区，再写同一柱面的下一个扇区的，在一个柱面完全写满前，磁头是不会移动到别的磁道上的。所以文件在硬盘上的存储，并不是像一般人的认为，是连续存放在一起的（从使用者来看是一起，但是从操作系统底层来看，其存放不是连续的）。所以FLASHGET或者ED开了再多的线程，磁头的寻道一般都不会比你一边玩游戏一边听歌大。当然，这种情况只是单纯的下载或者上传而已，但是其实在这个过程中，谁能保证自己不会启动其它需要读写硬盘的软件？可能很多人都喜欢一边下载一边玩游戏或者听歌吧？更不用说WINDOWS本身就需要频繁读写虚拟内存文件了。所以，用FG下载也好，ED也好，对硬盘的折磨和平时相比不会太厉害的。</p>
<p>　　六、再说说FLASHGET为什么开太多线程会不好和ED为什么硬盘读写频繁。首先，线程一多，cpu的占用率就高，换页动作也就频繁，从而虚拟内存读写频繁，至于为什么，学过操作系统原理的应该都知道，我这里就不说了。ED呢？同时从几个人那里下载一个文件，还有几个人同时在下载你的文件，这和FG开多线程是类似的。所以硬盘灯猛闪。但是，现在的硬盘是有缓存的，数据不是马上就写到硬盘上，而是先存放在缓存里面,，然后到一定量了再一次性写入硬盘。在FG里面再怎么设置都好，其实是先写到缓存里面的。但是这个过程也是需要CPU干预的，所以设置时间太短，CPU占用率也高，所以硬盘灯也还是猛闪的，因为虚拟文件在读写。</p>
<p>　　七、硬盘读写频繁，磁头臂在寻道伺服电机的驱动下移动频繁，但是对机械来说这点耗损虽有，其实不大。除非你的硬盘本身就有机械故障比如力臂变形之类的（水货最常见的故障）。真正耗损在于磁头，不断变化的电流会造成它的老化，但是和它的寿命相比。。。。。应该也是在合理范围内的。除非因为震动，磁头撞击到了盘体。</p>
<p>　　八、受高温影响的最严重的是机械的电路，特别是硬盘外面的那块电路板，上面的集成块在高温下会加速老化的。所以IBM的某款玻璃硬盘，虽然有坏道，但是一用某个软件，马上就不见了。再严重点的，换块线路板，也就正常了。就是这个原因。</p>
<p>　　总之，硬盘会因为环境不好和保养不当而影响寿命，但是这绝对不是软件的错。FLASHGET也好,ED也好,FTP也好,它们虽然对硬盘的读写频繁,但是还不至于比你一般玩游戏一般听歌对硬盘伤害大.说得更加明白的话,它们对硬盘的所谓耗损,其实可以忽略不计.不要因为看见硬盘灯猛闪,就在那里瞎担心.不然那些提供WEB服务和FTP服务的服务器，它们的硬盘读写之大，可绝非平常玩游戏，下软件的硬盘可比的。</p>
<p>　　硬盘有一个参数叫做连续无故障时间。它是指硬盘从开始运行到出现故障的最长时间，单位是小时，英文简写是MTBF。一般硬盘的MTBF至少在 30000或40000小时。具体情况可以看硬盘厂商的参数说明。这个连续无故障时间，大家可以自己除一下，看看是多少年。然后大家自己想想，自己的硬盘平时连续工作最久是多长时间。</p>
<p>　　目前我使用的机器，已经连续开机1年了，除了中途有几次关机十几分钟来清理灰尘外，从来没有停过（使用金转6代40G）。另外还有三台使用 SCSI硬盘的服 务器，是连续两年没有停过了，硬盘的发热量绝非平常IDE硬盘可比（1万转的硬盘啊）。在这方面，我想我是有发言权的。<br />
最后补充一下若干点：</p>
<p>　　一、硬盘最好不要买水货或者返修货。水货在运输过程中是非常不安全的，虽然从表面上看来似乎无损伤，但是有可能在运输过程中因为各种因素而对机械体造成损伤。返修货就更加不用说了。老实说，那些埋怨硬盘容易损坏的人，你们应该自己先看看，自己的硬盘是否就是这些货色。</p>
<p>　　二、硬盘的工作环境是需要整洁的，特别是注意不要在频繁断电和灰尘很多的环境下使用硬盘。机箱要每隔一两个月清理一下灰尘。</p>
<p>　　三、硬盘的机械最怕震动和高温。所以环境要好，特别是机箱要牢固，以免共震太大。电脑桌也不要摇摇晃晃的。</p>
<p>　　四、要经常整理硬盘碎片。这里有一个大多数人的误解，一般人都以为硬盘碎片会加大硬盘耗损，其实不是这样的。硬盘碎片的增多本身只是会让硬盘读写所花时间比碎片少的时候多而已，对硬盘的耗损是可以忽略的（我在这里只说一个事实，目前网络上的服务器，它们用得最多的操作系统是UNIX，但是在UNIX下面是没有磁盘碎片整理软件的。就连微软的NT4,本身也是没有的）。不过，因为磁头频繁的移动，造成读写时间的加大，所以CPU的换页动作也就频繁了，而造成虚拟文件（在这里其实准确的说法是换页文件）读写频繁，从而加重硬盘磁头寻道的负荷。这才是硬盘碎片的坏处。</p>
<p>　　五、在硬盘读写时尽量避免忽然断电，冷启动和做其他加重CPU负荷的事情（比如在玩游戏时听歌，或者在下载时玩大型3D游戏），这些对硬盘的伤害比一般人想象中还要大。</p>
<p>　　总之，只要平常注意使用硬盘，硬盘是不会那么快就和我们说BYEBYE的。当然，如果是硬盘本身的质量就不行，那我就无话可说了。</p>
<h3  class="related_post_title">随机日志</h3><ul class="related_post"><li><a href="http://blog.allove.org/archives/web-design.html" title="网页设计常用小图标(按钮)&#8212;分享装饰您网页的素材">网页设计常用小图标(按钮)&#8212;分享装饰您网页的素材</a> (433)</li><li><a href="http://blog.allove.org/archives/one-suggest-for-you-to-imporve-traffics-of-your-website.html" title="One suggest for you to Imporve traffics of your website">One suggest for you to Imporve traffics of your website</a> (4)</li><li><a href="http://blog.allove.org/archives/%e6%89%8b%e6%9c%ba%e8%af%be%e7%a8%8b%e8%a1%a8.html" title="手机课程表">手机课程表</a> (7)</li><li><a href="http://blog.allove.org/archives/teamwork-learn.html" title="[转载]老板不喜欢的15种人">[转载]老板不喜欢的15种人</a> (9)</li><li><a href="http://blog.allove.org/archives/wordpress-themes.html" title="wordpress Theme &#8212; 分享一些精美的Wordpress主题！">wordpress Theme &#8212; 分享一些精美的Wordpress主题！</a> (27)</li><li><a href="http://blog.allove.org/archives/require-change.html" title="勇敢面对需求的变化">勇敢面对需求的变化</a> (13)</li><li><a href="http://blog.allove.org/archives/google-chrome-web-browser.html" title="明日之星Chrome浏览器 &#8212; 来自Google">明日之星Chrome浏览器 &#8212; 来自Google</a> (4)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.allove.org/archives/hard-disk.html/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Ubuntu的3D效果&#8212;Windows Vista 无法企及的支离破碎</title>
		<link>http://blog.allove.org/archives/ubuntu-3d.html</link>
		<comments>http://blog.allove.org/archives/ubuntu-3d.html#comments</comments>
		<pubDate>Fri, 12 Sep 2008 14:48:26 +0000</pubDate>
		<dc:creator>孙建</dc:creator>
				<category><![CDATA[[技术及娱乐]Ubuntu]]></category>
		<category><![CDATA[ubuntu 3d]]></category>

		<guid isPermaLink="false">http://www.allove.org/?p=105</guid>
		<description><![CDATA[Ubuntu 的图形界面，他不但是玻璃，还是橡胶般的玻璃！ 读过本文的朋友还浏览过下面这些：Ubuntu 基本环境快速搭建 (4)]]></description>
			<content:encoded><![CDATA[<p><strong>Ubuntu 的图形界面，他不但是玻璃，还是橡胶般的玻璃！</strong><br />
<a title="来YUPOO看我的照片" href="http://www.yupoo.com/photos/view?id=ff8080811c54270f011c56fccc3e0a14"><img src="http://pic.yupoo.com/jianghudiyi/6424862df41b/medium.jpg" border="0" alt="Screenshot-3" width="500" height="312" /></a><br />
<span id="more-105"></span></p>
<p><a title="来YUPOO看我的照片" href="http://www.yupoo.com/photos/view?id=ff8080811c54270f011c56fccd030a15"><img src="http://pic.yupoo.com/jianghudiyi/2653262df41b/medium.jpg" border="0" alt="Screenshot" width="500" height="312" /></a></p>
<p><a title="来YUPOO看我的照片" href="http://www.yupoo.com/photos/view?id=ff8080811c54270f011c56fccf3f0a16"><img src="http://pic.yupoo.com/jianghudiyi/2082262df41b/medium.jpg" border="0" alt="Screenshot1" width="500" height="312" /></a></p>
<p><a title="来YUPOO看我的照片" href="http://www.yupoo.com/photos/view?id=ff8080811c54270f011c56fccb400a12"><img src="http://pic.yupoo.com/jianghudiyi/2468462df41c/medium.jpg" border="0" alt="Screenshot-2" width="500" height="312" /></a></p>
<h3  class="related_post_title">读过本文的朋友还浏览过下面这些：</h3><ul class="related_post"><li><a href="http://blog.allove.org/archives/ubuntu-environment-fast-foundation.html" title="Ubuntu 基本环境快速搭建">Ubuntu 基本环境快速搭建</a> (4)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.allove.org/archives/ubuntu-3d.html/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Ubuntu 基本环境快速搭建</title>
		<link>http://blog.allove.org/archives/ubuntu-environment-fast-foundation.html</link>
		<comments>http://blog.allove.org/archives/ubuntu-environment-fast-foundation.html#comments</comments>
		<pubDate>Tue, 09 Sep 2008 13:06:39 +0000</pubDate>
		<dc:creator>孙建</dc:creator>
				<category><![CDATA[[技术及娱乐]Ubuntu]]></category>
		<category><![CDATA[ubuntu应用环境]]></category>

		<guid isPermaLink="false">http://www.allove.org/?p=103</guid>
		<description><![CDATA[所谓快速搭建 UBUNTU 应用环境就是安装完成之后配置好源列表，中文支持，即时通讯工具，下载工具，为了平时工作之余的需要呢还要准备一些影音娱乐之类的。因为我很初级，所以针对比我还初级的用户，如果都没我初级就当我废话好了。好了，今天的主要任务就是基本使用环境，而不是开发环境，OK，LET‘S BEGIN &#8230;.. Ubuntu的安装步骤略过，因为Ubuntu的安装实在是简单。 如果不懂就看这里 1.安装个完成之后一般第一件事就是配置源列表： ~$ sudo gedit /etc/apt/sources.list 源地址列表在这里 你可以选择一个对于你来说相对比较快的源地址列表复制到刚才用 sudo gedit /etc/apt/sources.list 打开的窗口里面，然后保存之。就可以了，然后呢最好就是 sudo apt-get update 一下 2.接下来一般会有这么一个问题，硬件驱动! 系统 &#8212; 系统管理 &#8212; 硬件驱动 然后在里面启用一下就好了。这时一般会在线下载最新的驱动，所以确保你ONLINE！安装完驱动后重启就好了。 你也可以手动:sudo apt-get install nvidia-glx-new 3.中文环境： sudo apt-get install language-pack-zh-* 搞定! 4.应用软件配置 对于Ubuntu的应用软件的安装实在是太方便了，因为他的新德里软件管理器，所以里面有的就不介绍了。下面是常用的： Ubuntu下daniel推荐的下载工具 MultiGet (支持多线程，多任务，断点续传，图形界面) http://mesh.dl.sourceforge.net/sourceforge/multiget/multiget_1.1.2-0getdeb1_i386.deb Ubuntu下的电影播放工具：Realplayer http://www.real.com/linux realplayer下载之后是一个bin包，安装就很简单了 $ sudo chmod +x filename $sudo ./filename [...]]]></description>
			<content:encoded><![CDATA[<p>所谓快速搭建 UBUNTU 应用环境就是安装完成之后配置好源列表，中文支持，即时通讯工具，下载工具，为了平时工作之余的需要呢还要准备一些影音娱乐之类的。因为我很初级，所以针对比我还初级的用户，如果都没我初级就当我废话好了。好了，今天的主要任务就是基本使用环境，而不是开发环境，OK，LET‘S BEGIN &#8230;..<br />
Ubuntu的安装步骤略过，因为Ubuntu的安装实在是简单<span id="more-103"></span>。</p>
<h2><a href="http://wiki.ubuntu.org.cn/index.php?title=%E9%A6%96%E9%A1%B5&amp;variant=zh-cn" target="_blank">如果不懂就看这里</a></h2>
<p><!--adsense--><br />
1.安装个完成之后一般第一件事就是配置源列表：</p>
<p>~$ sudo gedit /etc/apt/sources.list</p>
<p><a href="http://wiki.ubuntu.org.cn/index.php?title=%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E6%88%91%E4%BB%AC%E6%8E%A8%E8%8D%90%E7%9A%84%E6%BA%90&amp;variant=zh-cn#Hardy.288.04.29_.E7.89.88.E6.9C.AC">源地址列表在这里</a></p>
<p>你可以选择一个对于你来说相对比较快的源地址列表复制到刚才用  sudo gedit /etc/apt/sources.list 打开的窗口里面，然后保存之。就可以了，然后呢最好就是 sudo apt-get update 一下</p>
<p>2.接下来一般会有这么一个问题，硬件驱动!</p>
<p>系统 &#8212; 系统管理 &#8212; 硬件驱动 然后在里面启用一下就好了。这时一般会在线下载最新的驱动，所以确保你ONLINE！安装完驱动后重启就好了。</p>
<p>你也可以手动:sudo apt-get install nvidia-glx-new</p>
<p>3.中文环境：</p>
<p>sudo apt-get install language-pack-zh-*</p>
<p>搞定!</p>
<p>4.应用软件配置</p>
<p>对于Ubuntu的应用软件的安装实在是太方便了，因为他的新德里软件管理器，所以里面有的就不介绍了。下面是常用的：</p>
<p><span style="text-decoration: underline;">Ubuntu下daniel推荐的下载工具</span> <strong>MultiGet</strong> (支持多线程，多任务，断点续传，图形界面)</p>
<p>http://mesh.dl.sourceforge.net/sourceforge/multiget/multiget_1.1.2-0getdeb1_i386.deb</p>
<p><span style="text-decoration: underline;">Ubuntu下的电影播放工具：Realplayer</span></p>
<p>http://www.real.com/linux</p>
<p>realplayer下载之后是一个bin包，安装就很简单了</p>
<p>$ sudo chmod +x filename</p>
<p>$sudo ./filename</p>
<p>这样就搞定了，real的安装还算人性化，期间会让你选择安装路径，这些都是一看就懂的，就不赘述了。</p>
<p><span style="text-decoration: underline;">Ubuntu 环境下的 QQ</span>， 也许几个月以前还只能用lamqq 或者pidgin之类的，但是现在腾讯出了个Linux版的，而且还有deb包，方便吧!下载完双击，不用我说了吧！(虽然很鄙视腾讯但是很多朋友多用QQ，妥协之)</p>
<p>地址:http://im.qq.com/qq/linux</p>
<p>至于用MSN的就用Ubuntu自带的pidgin吧，很好很强大。</p>
<p>至于web浏览器吗，就firefox嘛，挺好，就是可能有个中文语言包问题，点击下面这个连接就可以了。</p>
<p><span class="postbody"><a class="postlink" href="http://stage.mozilla.org/pub/mozilla.org/firefox/nightly/3.0.1-candidates/build1/linux-xpi/zh-CN.xpi" target="_blank">http://stage.mozilla.org/pub/mozilla.org/firefox/nightly/3.0.1-candidates/build1/linux-xpi/zh-CN.xpi</a></span></p>
<h3  class="related_post_title">读过本文的朋友还浏览过下面这些：</h3><ul class="related_post"><li><a href="http://blog.allove.org/archives/ubuntu-3d.html" title="Ubuntu的3D效果&#8212;Windows Vista 无法企及的支离破碎">Ubuntu的3D效果&#8212;Windows Vista 无法企及的支离破碎</a> (7)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.allove.org/archives/ubuntu-environment-fast-foundation.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>诉说 IIS 用户名和密码的残酷命运</title>
		<link>http://blog.allove.org/archives/iis-password.html</link>
		<comments>http://blog.allove.org/archives/iis-password.html#comments</comments>
		<pubDate>Tue, 02 Sep 2008 13:37:04 +0000</pubDate>
		<dc:creator>孙建</dc:creator>
				<category><![CDATA[[技术及娱乐]Windows]]></category>
		<category><![CDATA[IIS不能登录]]></category>
		<category><![CDATA[IIS配置]]></category>

		<guid isPermaLink="false">http://www.allove.org/?p=100</guid>
		<description><![CDATA[[摘要]本文主要讲的是DANIEL在这次第一次使用 windows IIS 5.0 +  ASP.NET + MS SQL 2000 的曲折经历，问题主要在于正常完成IIS5.0的安装之后不能由默认的匿名用户在浏览器里面通过LOCALHOST访问IIS服务器。而是需要输入用户名和密码，另外就是当使用Administrator作为匿名登录用户之后不能执行脚本文件，只能执行静态文件。 基本症状一：我安装完IIS5.0之后不能从HTTP://LOCALHOST直接进入，而是弹出一个WINDOWS登录框，需要输入用户名和密码。 但是IIS默认是允许匿名登录的，所以就郁闷了，服务器必然是有问题的。 【解】解绝这个问题有三个思路： 一是在IIS设置里面集成windows的身份验证，我满以为这种小问题应该就这样迎刃而解的，但是，当简单的集成WINDOWS身份认证之后，出来的却是这么一个东西，失望之&#8230; 技术信息（用于支持人员） 错误类型： Microsoft VBScript 运行时错误 (0x800A0046) 没有权限: &#8216;GetObject&#8217; /localstart.asp, 第 40 行 浏览器类型： Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; CIBA; .NET CLR 2.0.50727) 网页： GET /localstart.asp 时间： 2008年8月28日, 16:15:20 详细信息： Microsoft 支持 二是在组策略里面修改IUSER_****的密码，以备他用，也就是不集成windows身份认证在打开localhost的时候用这个账户登录，但实践证明这个是不奏效的，应为权限问题，不能打开，提示GETOBJECT()错误！非常遗憾。 我想到的第三个方法就是我使用了Administrator来作为IIS的匿名登录用户。因为通过前面的情况分析来看，就是一个用户权限不够的问题。OH!YEAH. 行了！。。。汗，高兴得太早，无语。使用VS调试的时候说服务器配置不正确，不能执行脚本，但是HTML就没有问题，于是乎，郁闷之。(PS: 有人通过我介绍的这个方法更改账户之后解决了所有问题，所有遇到类似问题的朋友可以试试这个方案) 哎。。。回到IIS后台，仔细斟酌！发现在目录安全性里面，有这么一处说明： “ 使用以下身份认证方法，并在下列条件下，需要用户名和密码： [...]]]></description>
			<content:encoded><![CDATA[<p>[摘要]本文主要讲的是DANIEL在这次第一次使用 windows IIS 5.0 +  ASP.NET + MS SQL 2000 的曲折经历，问题主要在于正常完成IIS5.0的安装之后不能由默认的匿名用户在浏览器里面通过LOCALHOST访问IIS服务器。而是需要输入用户名和密码，另外就是当使用Administrator作为匿名登录用户之后不能执行脚本文件，只能执行静态文件。<br />
基本症状一：我安装完IIS5.0之后不能从<a href="http://LOCALHOST">HTTP://LOCALHOST</a>直接进入，而是弹出一个WINDOWS登录框，需要输入用户名和密码。 但是IIS默认是允许匿名登录的，所以就郁闷了，服务器必然是有问题的。</p>
<p>【解】解绝这个问题有三个思路<span id="more-100"></span>：<br />
<!--adsense--></p>
<p>一是在IIS设置里面集成windows的身份验证，我满以为这种小问题应该就这样迎刃而解的，但是，当简单的集成WINDOWS身份认证之后，出来的却是这么一个东西，失望之&#8230;</p>
<p style="line-height: 11pt;"><span style="font-size: 9pt; color: #000000;"><span style="font-family: 宋体;">技术信息（用于支持人员）</span></span></p>
<ul type="disc">
<li class="MsoNormal" style="margin: 0cm 0cm 0pt; color: black; line-height: 11pt; text-align: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt;"><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">错误类型：</span><span style="font-size: 9pt;" lang="EN-US"><br />
<span style="font-family: Times New Roman;">Microsoft VBScript </span></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">运行时错误</span><span style="font-size: 9pt;" lang="EN-US"><span style="font-family: Times New Roman;"> (0x800A0046)<br />
</span></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">没有权限</span><span style="font-size: 9pt;" lang="EN-US"><span style="font-family: Times New Roman;">: &#8216;GetObject&#8217;<br />
<strong>/localstart.asp, </strong></span></span><strong><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">第</span></strong><strong><span style="font-size: 9pt;" lang="EN-US"><span style="font-family: Times New Roman;"> 40 </span></span></strong><strong><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">行</span></strong></li>
<li class="MsoNormal" style="margin: 0cm 0cm 0pt; color: black; line-height: 11pt; text-align: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt;"><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">浏览器类型：</span><span style="font-size: 9pt;" lang="EN-US"><br />
<span style="font-family: Times New Roman;">Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; CIBA; .NET CLR 2.0.50727) </span></span></li>
<li class="MsoNormal" style="margin: 0cm 0cm 0pt; color: black; line-height: 11pt; text-align: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt;"><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">网页：</span><span style="font-size: 9pt;" lang="EN-US"><br />
<span style="font-family: Times New Roman;">GET /localstart.asp </span></span></li>
<li class="MsoNormal" style="margin: 0cm 0cm 0pt; color: black; line-height: 11pt; text-align: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt;"><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">时间：</span><span style="font-size: 9pt;" lang="EN-US"><br />
<span style="font-family: Times New Roman;">2008</span></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">年8</span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">月28</span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">日</span><span style="font-size: 9pt;" lang="EN-US"><span style="font-family: Times New Roman;">, 16:15:20 </span></span></li>
<li class="MsoNormal" style="margin: 0cm 0cm 0pt; color: black; line-height: 11pt; text-align: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt;"><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">详细信息：</span><span style="font-size: 9pt;" lang="EN-US"><br />
<a href="http://www.microsoft.com/ContentRedirect.asp?prd=iis&amp;sbp=&amp;pver=5.0&amp;ID=500;100&amp;cat=Microsoft+VBScript+%D4%CB%D0%D0%CA%B1%B4%ED%CE%F3&amp;os=&amp;over=&amp;hrd=&amp;Opt1=&amp;Opt2=%2D2146828218&amp;Opt3=%C3%BB%D3%D0%C8%A8%CF%DE%3A+%27GetObject%27"><span style="font-size: 10.5pt; mso-bidi-font-size: 12.0pt;"><span style="font-family: Times New Roman;">Microsoft </span></span><span style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';"><span lang="EN-US">支持</span></span></a><span style="font-family: Times New Roman;"> </span></span></li>
</ul>
<p>二是在组策略里面修改IUSER_****的密码，以备他用，也就是不集成windows身份认证在打开localhost的时候用这个账户登录，但实践证明这个是不奏效的，应为权限问题，不能打开，提示GETOBJECT()错误！非常遗憾。</p>
<p>我想到的第三个方法就是我使用了Administrator来作为IIS的匿名登录用户。因为通过前面的情况分析来看，就是一个用户权限不够的问题。OH!YEAH. 行了！。。。汗，高兴得太早，无语。使用VS调试的时候说服务器配置不正确，不能执行脚本，但是HTML就没有问题，于是乎，郁闷之。(PS: 有人通过我介绍的这个方法更改账户之后解决了所有问题，所有遇到类似问题的朋友可以试试这个方案)</p>
<p>哎。。。回到IIS后台，仔细斟酌！发现在目录安全性里面，有这么一处说明：</p>
<p>“</p>
<p>使用以下身份认证方法，并在下列条件下，需要用户名和密码：</p>
<p>&#8212;禁用了匿名访问；</p>
<p>&#8212;使用NTFS访问控制列表权限限制了访问权限。</p>
<p>”</p>
<p>我不是很明白第二项“NTFS权限控制列表”是怎么实现或者需要怎么操作 (如果有哪位高手知道的话还请留言告诉我一声，我知道在WINDOWS的高级文件共享里面有相关选项，做了不奏效) ，大概可以理解为用户对磁盘的操作权限控制这么一个东西吧。于是乎，我这么做了一下，就是使用CACLS赋予IUSER_***用户更高的权限(一下是我经常写的工作日志一部分)：</p>
<p>使用cacls 修改目录权限， 尝试 给IIS匿名用户‘“IUSR_******” 赋予对文件夹<br />
C:\Inetpub\wwwroot 的读写权限， 效果不明显，似乎没有成功。<br />
语法：cacls Inetpub /T /G user_name:R/W/C/F<br />
Cacls 说明如下：<br />
CACLS filename [/T] [/E] [/C] [/G user:perm] [/R user [...]]<br />
               [/P user:perm [...]] [/D user [...]]<br />
   filename      显示 ACL。<br />
   /T            更改当前目录及其所有子目录中<br />
                 指定文件的 ACL。<br />
   /E            编辑 ACL 而不替换。<br />
   /C            在出现拒绝访问错误时继续。<br />
   /G user:perm  赋予指定用户访问权限。<br />
                 Perm 可以是: R  读取<br />
                              W  写入<br />
                              C  更改(写入)<br />
                              F  完全控制<br />
   /R user       撤销指定用户的访问权限(仅在与 /E 一起使用时合法)。<br />
   /P user:perm  替换指定用户的访问权限。<br />
                 Perm 可以是: N  无<br />
                              R  读取<br />
                              W  写入<br />
                              C  更改(写入)<br />
                              F  完全控制<br />
   /D user       拒绝指定用户的访问。<br />
在命令中可以使用通配符指定多个文件。<br />
也可以在命令中指定多个用户。</p>
<p>缩写:<br />
   CI &#8211; 容器继承。<br />
        ACE 会由目录继承。<br />
   OI &#8211; 对象继承。<br />
        ACE 会由文件继承。<br />
   IO &#8211; 只继承。<br />
        ACE 不适用于当前文件/目录。</p>
<p> </p>
<p>最后的结果仍然是：失败！</p>
<p>没办法了，哎，反正我是没办法了。最后开是了GOOGLE 百度 ， 没办法的办法啊。在我搜索过程中，逐渐发现一些问题，也就是我的IIS有可能是由于我是WINDOWS SP3导致的。呵呵 ， 搜索一下&#8221;IIS XP SP3&#8243;这几个关键词你能找到一些东西的，我就不说了，但是最后还是不行。哎、、、狂晕死</p>
<p>最后我重装系统了，并且把盘格式化为FAT32了&#8230;.如果有高手知道该怎么办的话，麻烦知会我下，DANIEL感之不尽，下次我就好走了&#8230;THANKS</p>
<h3  class="related_post_title">读过本文的朋友还浏览过下面这些：</h3><ul class="related_post"><li><a href="http://blog.allove.org/archives/develop-matters.html" title="写在花谢花开时">写在花谢花开时</a> (14)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.allove.org/archives/iis-password.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>写在花谢花开时</title>
		<link>http://blog.allove.org/archives/develop-matters.html</link>
		<comments>http://blog.allove.org/archives/develop-matters.html#comments</comments>
		<pubDate>Tue, 02 Sep 2008 10:08:30 +0000</pubDate>
		<dc:creator>孙建</dc:creator>
				<category><![CDATA[[技术及娱乐]Windows]]></category>
		<category><![CDATA[IIS配置]]></category>
		<category><![CDATA[MYSQL安装实例挂起]]></category>
		<category><![CDATA[MYSQL无法安装]]></category>

		<guid isPermaLink="false">http://www.allove.org/?p=99</guid>
		<description><![CDATA[最近要做点作业，开发一个简单的CMS，基于 WINDOWS IIS5.0 + ASP.NET2.0 + MS SQL 2000 的开发任务。幸，不如使命，基本功能实现，只是界面实在是奇丑无比就不拿出来献丑了。大致介绍下我的小系统的功能，有后台，有会员注册管理，有会员验证，反正就是基本的内容管理系统功能都有。哈哈，别以为我有多XX哈，呵呵，其实DANIEL是不会ASP.NET的，因为我只会一点点JAVA，呵呵，那些东西都是用VS图形话，拖出来的。废话就不说了，接下来主要讲一下开发环境搭建中遇到的棘手问题。 先插一个我们班的美女遇到的问题，我到没有遇到这个问题，也是一个很常见的问题，就是在非第一安装MYSQL的时候， (我们是老师要求用ASP.NET做，但是不硬性规定，所以很多高手都用PHP,JSP之类的，由于我没有学过ASP.NET所以挑战一下，选择了它)有时候安不了，会提示你已经有一个安装实例挂起，请重启电脑，还是怎么的，大致就是这样吧。然后呢，我们那位美女就乖乖的听系统提示的话，重启了电脑，然后再安装之。。不料，由此反复多次、、、重启了四五次吧、、她怒了不听话了，，呵呵，，幸好遇见我，嘿嘿，有英勇救美的机会当然抓住啦。 其实呢这个问题，我以前见过，呵呵，这个重启是没有用的，就是重启得电脑虚不胜补了也不行。解决办法如下： 删除 注册表项： HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\ControlSession \Manager  下的 ：PendingFileRenameOperations  再次安装就可以了 其实这个问题就是MYSQL的安装临时文件导致的，当你查看那个注册表项的时候就会发现的，如果你用优化大师这种东西清除所有临时文件也是可以达到目的的。在此就不再赘述啦。 【本段关键词：MYSQL无法安装，系统提示有一个已经存在的安装实例挂起，请重启电脑】（JUST ABOVE） 接下来说一个我遇到的问题，就是在安装完IIS之后呢，别人都是直接用HTTP://LOCALHOST就进去了，可是倒霉的我不知道为什么，浏览器一打开，硬是要我输入用户名和密码，这个过程可谓是艰难困苦，一眼难尽啊，我吃饭去了，回来再说结局。BYE!     读过本文的朋友还浏览过下面这些：诉说 IIS 用户名和密码的残酷命运 (5)]]></description>
			<content:encoded><![CDATA[<p>最近要做点作业，开发一个简单的CMS，基于 WINDOWS IIS5.0 + ASP.NET2.0 + MS SQL 2000 的开发任务。幸，不如使命，基本功能实现，只是界面实在是奇丑无比就不拿出来献丑了。大致介绍下我的小系统的功能，有后台，有会员注册管理，有会员验证，反正就是基本的内容管理系统功能都有。哈哈，别以为我有多XX哈，呵呵，其实DANIEL是不会ASP.NET的，因为我只会一点点JAVA，呵呵，那些东西都是用VS图形话，拖出来的。废话就不说了，接下来主要讲一下开发环境搭建中遇到的棘手问题。<br />
<span id="more-99"></span><br />
先插一个我们班的美女遇到的问题，我到没有遇到这个问题，也是一个很常见的问题，就是在非第一安装MYSQL的时候， (我们是老师要求用ASP.NET做，但是不硬性规定，所以很多高手都用PHP,JSP之类的，由于我没有学过ASP.NET所以挑战一下，选择了它)有时候安不了，会提示你已经有一个安装实例挂起，请重启电脑，还是怎么的，大致就是这样吧。然后呢，我们那位美女就乖乖的听系统提示的话，重启了电脑，然后再安装之。。不料，由此反复多次、、、重启了四五次吧、、她怒了不听话了，，呵呵，，幸好遇见我，嘿嘿，有英勇救美的机会当然抓住啦。<br />
<!--adsense--><br />
其实呢这个问题，我以前见过，呵呵，这个重启是没有用的，就是重启得电脑虚不胜补了也不行。解决办法如下：</p>
<p>删除 注册表项：<br />
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\ControlSession \Manager  下的 ：PendingFileRenameOperations  再次安装就可以了</p>
<p>其实这个问题就是MYSQL的安装临时文件导致的，当你查看那个注册表项的时候就会发现的，如果你用优化大师这种东西清除所有临时文件也是可以达到目的的。在此就不再赘述啦。</p>
<p><strong><span style="text-decoration: underline;">【本段关键词：MYSQL无法安装，系统提示有一个已经存在的安装实例挂起，请重启电脑】（JUST ABOVE）</span></strong></p>
<p>接下来说一个我遇到的问题，就是在安装完IIS之后呢，别人都是直接用<a href="http://LOCALHOST">HTTP://LOCALHOST</a>就进去了，可是倒霉的我不知道为什么，浏览器一打开，硬是要我输入用户名和密码，这个过程可谓是艰难困苦，一眼难尽啊，我吃饭去了，回来再说结局。BYE!<br />
 </p>
<p> </p>
<h3  class="related_post_title">读过本文的朋友还浏览过下面这些：</h3><ul class="related_post"><li><a href="http://blog.allove.org/archives/iis-password.html" title="诉说 IIS 用户名和密码的残酷命运">诉说 IIS 用户名和密码的残酷命运</a> (5)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.allove.org/archives/develop-matters.html/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Linux 下 Oracle 的安装 (三)</title>
		<link>http://blog.allove.org/archives/setup-oracle-on-linux-3.html</link>
		<comments>http://blog.allove.org/archives/setup-oracle-on-linux-3.html#comments</comments>
		<pubDate>Mon, 25 Aug 2008 17:34:59 +0000</pubDate>
		<dc:creator>孙建</dc:creator>
				<category><![CDATA[[管理.开发.应用]数据库]]></category>
		<category><![CDATA[linux安装oracle]]></category>
		<category><![CDATA[oracle 10g 安装]]></category>
		<category><![CDATA[Oracle安装]]></category>
		<category><![CDATA[[技术分享]J2EE]]></category>

		<guid isPermaLink="false">http://www.allove.org/?p=97</guid>
		<description><![CDATA[由于今晚工作到深夜，没办法，工作又有空闲，不是属于无人值守型所以就将前两次没有整理完的LINUX 下的ORACLE 安装笔记清理干净。受人所托，忠人之事啊！今晚让服务器陪我到天亮吧！！！本来一个很简单的系统UPDATE，但是这个系统偏偏就是被HACK了所以才需要UPDATE，所以要升级还要先搞定攻击，不然也不能可怜了我的睡眠啊！！郁闷之&#8230;不过到此时已经快搞定了，估计到三点的时候我就可以睡觉了。汗死&#8230;明天还要上课! 废话完了下面是 Red Hat Enterprise Linux 4 下安装 Oracle 10g 剩下的全部内容！ Daniel 就送君到此啦,多珍重！ 5.3 设置在安装Oracle的机器上以oracle用户安装 # xhost localhost:oracle 二、以oracle用户登录, 进行如下操作 1 配置oracle用户的环境变量 1.1 切换到Oracle用户 # su &#8211; oracle $ cd 1.2 设置环境变量 $ vi .bash_profile (在文件后面添加如下内容) 复制内容到剪贴板 代码: export ORACLE_BASE=/usr/app/oracleexport ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1export ORACLE_SID=SHDBexport PATH=$PATHHOME/binORACLE_HOME/binexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/libexport LANG=zh_CN.GBKexport NLS_LANG=&#34;SIMPLIFIED CHINESE_CHINA&#34;.ZHS16GBK 1.3 使环境变量生效 $ source .bash_profile 1.4 [...]]]></description>
			<content:encoded><![CDATA[<p>由于今晚工作到深夜，没办法，工作又有空闲，不是属于无人值守型所以就将前两次没有整理完的LINUX 下的ORACLE 安装笔记清理干净。受人所托，忠人之事啊！今晚让服务器陪我到天亮吧！！！本来一个很简单的系统UPDATE，但是这个系统偏偏就是被HACK了所以才需要UPDATE，所以要升级还要先搞定攻击，不然也不能可怜了我的睡眠啊！！郁闷之&#8230;不过到此时已经快搞定了，估计到三点的时候我就可以睡觉了。汗死&#8230;明天还要上课!</p>
<p>废话完了下面是 <span style="text-decoration: underline;"><strong>Red Hat Enterprise Linux 4 下安装 Oracle 10g</strong></span> 剩下的全部内容！ Daniel 就送君到此啦,多珍重！<br />
<!--adsense--><br />
<span id="more-97"></span></p>
<p>5.3 设置在安装Oracle的机器上以oracle用户安装<br />
# xhost localhost:oracle</p>
<p>二、以oracle用户登录, 进行如下操作</p>
<p>1 配置oracle用户的环境变量<br />
1.1 切换到Oracle用户<br />
# su &#8211; oracle<br />
$ cd</p>
<p>1.2 设置环境变量<br />
$ vi .bash_profile (在文件后面添加如下内容)<br />
复制内容到剪贴板<br />
代码:</p>
<div class="hl-surround"><div class="hl-main">export ORACLE_BASE=/usr/app/oracle<br />export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1<br />export ORACLE_SID=SHDB<br />export PATH=$PATHHOME/binORACLE_HOME/bin<br />export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib<br />export LANG=zh_CN.GBK<br />export NLS_LANG=&quot;SIMPLIFIED CHINESE_CHINA&quot;.ZHS16GBK</div></div>
<p>1.3 使环境变量生效<br />
$ source .bash_profile</p>
<p>1.4 设置本地字符集类型<br />
$ export LC_CTYPE=en_US.UTF-8</p>
<p>2 开始安装<br />
说明：为了便于后结安装，最好在安装前打开两个shell窗口，1个以root登录，另外1个以oracle登录</p>
<p>2.1 $ ./runInstaller</p>
<p>2.2 根据安装提示进行相应操作，中间需要root执行2个脚本：<br />
# $ORACLE_BASE/oraInventory/orainstRoot.sh<br />
# $ORACLE_HOME/root.sh<br />
说明：把$ORACLE_BASE和$ORACLE_HOME替换成实际的目录即可</p>
<p>2.3 安装过程中，不要选择创建数据库；</p>
<p>其它就没什么了，只须根据提示进行相应操作，直至安装成功。</p>
<p>三、安装过程的问题</p>
<p>1 Q: 执行./runInstaller后，弹不出安装界面，提示如下错误信息：<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
Xlib: connection to &#8220;:0.0&#8243; refused by server<br />
Xlib: No protocol specified<br />
Error: Can&#8217;t open display: :0.0</p>
<p>A: 在安装Oracle的机器上，以root身份运行命令：<br />
# xhost localhost:oracle</p>
<p>2 Q：安装时，弹出的界面出现乱码<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
A：以oracle用户身份，设置本地字符集类型<br />
$ export LC_CTYPE=en_US.UTF-8</p>
<p>3 Q：安装过程中，提示OUI-10066错误:<br />
Not all the dependencies for the component Oracle Database 10g 10.2.0.1.0 could be found.<br />
Missing component oracle.doc 10.2.0.1.0.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
A：可能是oracle安装文件没有完全解压缩，重新解压缩一下再安装<br />
注意：若用root解压后，更改其属主为oracle</p>
<p>4 Q：INFO: /bin/sh: /usr/bin/gcc: No such file or directory<br />
&#8230;&#8230;<br />
INFO: cannot stat `ntcontab.o&#8217;<br />
INFO: No such file or directory<br />
&#8230;&#8230;<br />
Exception Name: MakefileException<br />
Exception String: Error in invoking target &#8216;ntcontab.o&#8217; of<br />
makefile &#8216;/usr/app/oracle/product/10.2.0/db_1/network/lib/ins_net_client.mk&#8217;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
A: 检查Linux系统的所有补丁是否安装，尤其是gcc包，然后再继续安装</p>
<p>四 创建与配置数据库(使用oracle用户登录RHEL)</p>
<p>1 创建数据库<br />
1.1 以oracle用户登录RHEL, 输入:<br />
$ dbca<br />
1.2 在输入数据库SID时, 要注意保持与oracle配置文件的$ORACLE_SID的值一致.<br />
否则,创建完数据库后就启动不了(具体看下节).</p>
<p>2 配置服务名<br />
修改listener.ora<br />
$ vi $ORACLE_HOME/network/admin/tnsname.ora<br />
增加以下内容:<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
# 说明: 把HOST的值设置为你要安装数据库那台机器的IP<br />
SHDB =<br />
(DESCRIPTION =<br />
(ADDRESS_LIST =<br />
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.135.128)(PORT = 1521))<br />
)<br />
(CONNECT_DATA =<br />
(SERVICE_NAME = SHDB)<br />
)<br />
)</p>
<p>3 配置数据库的监听器<br />
3.1 修改listener.ora<br />
$ vi $ORACLE_HOME/network/admin/listener.ora<br />
输入以下内容:<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
# 说明: 把HOST的值设置为你要安装数据库那台机器的IP<br />
LISTENER =<br />
(DESCRIPTION_LIST =<br />
(DESCRIPTION =<br />
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))<br />
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.135.128)(PORT = 1521))<br />
)<br />
)</p>
<p>SID_LIST_LISTENER =<br />
(SID_LIST =<br />
(SID_DESC =<br />
(SID_NAME = PLSExtProc)<br />
(ORACLE_HOME = /usr/app/oracle/product/10.2.0/db_1)<br />
(PROGRAM = extproc)<br />
)<br />
(SID_DESC =<br />
(SID_NAME = SHDB)<br />
(ORACLE_HOME = /usr/app/oracle/product/10.2.0/db_1)<br />
)<br />
)</p>
<p>3.2 启动监听器<br />
$ lsnrctl start</p>
<p>4 启动数据库<br />
$ sqlplus / as sysdba<br />
$ startup<br />
若数据库能正常启动, 则配置到此结束</p>
<p>五、配置数据库的问题</p>
<p>1 Q: TNS-01155: Incorrectly specified SID_LIST<br />
NL-00303: syntax error in NV string<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
A: 可能是profile中设置的sid和你创建的DB的SID不一致</p>
<p>(1) 查看数据库的SID是否与.bash_profile的ORACLE_SID一致<br />
$ echo $ORACLE_SID<br />
$ ls $ORACLE_HOME/dbs/init*.ora</p>
<p>(2) 修改.bash_profile的ORACLE_SID为你创建DB的SID, 然后保存并生效<br />
$ source .bash_profile</p>
<p>(3) 创建pfile<br />
$ sqlplus /nolog<br />
SQL&gt; connect /as sysdba<br />
SQL&gt; create pfile=&#8217;/usr/app/oracle/product/10.2.0/db_1/initSHDB.ora&#8217; from spfile=&#8217;/usr/app/oracle/product/10.2.0/db_1/dbs/spfileSHDB.ora&#8217;;<br />
SQL&gt; startup pfile=&#8217;/usr/app/oracle/product/10.2.0/db_1/initSHDB.ora&#8217;<br />
或<br />
SQL&gt; startup nomount pfile=&#8217;/usr/app/oracle/product/10.2.0/db_1/initSHDB.ora&#8217;<br />
或<br />
SQL&gt; startup<br />
说明: 把pfile和spfile的路径修改成这两个文件在系统的实际位置即可</p>
<p>2 Q: ORA-01102：cannot mount database in EXCLUSIVE mode<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
A: 可能是关闭异常，造成数据库已经装载或共享的假象，而造成以下问题:</p>
<p>(1) &#8220;lk&lt;sid&gt;&#8221; and &#8220;sgadef&lt;sid&gt;.dbf&#8221;这两个用于锁内存的文件存在着。<br />
oracle$cd $ORACLE_HOME/dbs<br />
oracle$ls -l sgadef&lt;sid&gt;.dbf<br />
* 如果存在删掉它<br />
oracle$rm sgadef&lt;sid&gt;.dbf<br />
oracle$ls -l lk&lt;sid&gt;<br />
* 如果存在删掉它<br />
oracle$rm lk&lt;sid&gt;</p>
<p>(2) pmon、smon、lwgw及dbwr这些后台进程依然存在着<br />
oracle$ps -ef | grep ora_ | grep $ORACLE_SID<br />
* 如果有pmon这些后台进程的残留，kill -9掉它<br />
oracle$kill -9 pid</p>
<p>(3) Oracle开辟的共享内存没有释放掉<br />
① 清共享内存段<br />
oracle$ipcs -m   &#8211;显示一下,看owner是Oracle用户的<br />
oracle$ipcrm -m &lt;Shared_Memory_ID&gt;<br />
② 清信号集<br />
oracle$ipcs -s   &#8211;显示一下,看owner是Oracle用户的<br />
oracle$ipcrm -s &lt;Semaphore_ID&gt;</p>
<p>看到最后的朋友，当然要给点好处了啊，不然以后谁还看DANIEL的东西啊，哈哈&#8230;</p>
<p>好处就是在最后这里提供了我整理的文档下载啦，哈哈，<a href="http://cn.ziddu.com/download/219943/RedHat-Enterprise-Linux-4-setup-Oracle-10g.doc.html " target="_blank">猛击这里下载 </a><span style="text-decoration: underline;"><strong><a href="http://cn.ziddu.com/download/219943/RedHat-Enterprise-Linux-4-setup-Oracle-10g.doc.html " target="_blank">Red Hat Enterprise Linux 4 下安装 Oracle 10g 的安装指南</a></strong></span></p>
<p>最后给点提示，各位同仁请注意适用环境 ：<span style="text-decoration: underline;"><strong><a href="http://cn.ziddu.com/download/219943/RedHat-Enterprise-Linux-4-setup-Oracle-10g.doc.html " target="_blank">Red Hat Enterprise Linux 4</a> </strong></span></p>
<p>THANKS!</p>
<h3  class="related_post_title">读过本文的朋友还浏览过下面这些：</h3><ul class="related_post"><li><a href="http://blog.allove.org/archives/setup-oracle-on-linux-2.html" title="Linux 下 Oracle 的安装 (二)">Linux 下 Oracle 的安装 (二)</a> (4)</li><li><a href="http://blog.allove.org/archives/setup-oracle-on-linux-1.html" title="Linux 下 Oracle 的安装 (一)">Linux 下 Oracle 的安装 (一)</a> (1)</li><li><a href="http://blog.allove.org/archives/java-serialize-for-client-server-communication.html" title="JAVA对象序列化实现移动终端与服务器高效通信">JAVA对象序列化实现移动终端与服务器高效通信</a> (5)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.allove.org/archives/setup-oracle-on-linux-3.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Linux 下 Oracle 的安装 (二)</title>
		<link>http://blog.allove.org/archives/setup-oracle-on-linux-2.html</link>
		<comments>http://blog.allove.org/archives/setup-oracle-on-linux-2.html#comments</comments>
		<pubDate>Sat, 23 Aug 2008 17:53:15 +0000</pubDate>
		<dc:creator>孙建</dc:creator>
				<category><![CDATA[[管理.开发.应用]数据库]]></category>
		<category><![CDATA[linux安装oracle]]></category>
		<category><![CDATA[oracle 10g 安装]]></category>
		<category><![CDATA[Oracle安装]]></category>
		<category><![CDATA[[技术分享]J2EE]]></category>

		<guid isPermaLink="false">http://www.allove.org/?p=95</guid>
		<description><![CDATA[完全对接接上次整理过的 《Linux 下 Oracle 的安装 (一)》 今天又整理出了一部分笔记，并尽量做得格式化一些，希望看起来会方便一些。未完待续&#8230; 创建安装数据库的用户、组和安装目录 3.1 创建用户和相关的组 # /usr/sbin/groupadd oinstall # /usr/sbin/groupadd dba # /usr/sbin/useradd -g oinstall -G dba oracle # passwd oracle 3.2 建立相关目录并授权 # mkdir -p /usr/app/oracle (the Oracle base directory) # mkdir -p /usr/oradata    (an optional Oracle datafile directory) # chown -R oracle:oinstall /usr/app/oracle /usr/oradata # chmod -R 77 [...]]]></description>
			<content:encoded><![CDATA[<p>完全对接接上次整理过的 <a href="http://www.allove.org/index.php/archives/setup-oracle-on-linux-1.html" target="_blank">《Linux 下 Oracle 的安装 (一)》</a> 今天又整理出了一部分笔记，并尽量做得格式化一些，希望看起来会方便一些。未完待续&#8230;</p>
<p>创建安装数据库的用户、组和安装目录<br />
3.1 创建用户和相关的组<br />
# /usr/sbin/groupadd oinstall<br />
# /usr/sbin/groupadd dba<br />
# /usr/sbin/useradd -g oinstall -G dba oracle<br />
# passwd oracle<br />
<span id="more-95"></span><br />
<!--adsense--><br />
3.2 建立相关目录并授权<br />
# mkdir -p /usr/app/oracle (the Oracle base directory)<br />
# mkdir -p /usr/oradata    (an optional Oracle datafile directory)<br />
# chown -R oracle:oinstall /usr/app/oracle /usr/oradata<br />
# chmod -R 77</p>
<p>4 配置内核参数<br />
4.1 修改核心参数并检查<br />
4.1.1 修改参数<br />
# vi /etc/sysctl.conf<br />
说明：在该文件末尾加入如下内容:<br />
kernel.shmmax = 2147483648<br />
kernel.shmmni = 4096<br />
kernel.shmall = 2097152<br />
kernel.sem = 250 32000 100 128<br />
fs.file-max = 65536<br />
net.ipv4.ip_local_port_range = 1024 65000<br />
#net.core.rmem_default=262144<br />
#net.core.rmem_max=262144<br />
#net.core.wmem_default=262144<br />
#net.core.wmem_max=262144</p>
<p>4.1.2 启用新参数<br />
# /sbin/sysctl -p</p>
<p>4.1.3 检查参数<br />
# /sbin/sysctl -a | rpm sem<br />
# /sbin/sysctl -a | rpm shm<br />
# /sbin/sysctl -a | rpm file-max<br />
# /sbin/sysctl -a | rpm ip_local_port_range</p>
<p>4.2 设置oracle用户的shell限制<br />
4.2.1 编辑limits.conf<br />
# vi /etc/security/limits.conf<br />
说明：添加如下的行<br />
# nofile(可打开的文件描述符的最大数)和nproc(单个用户可用的最大进程数量)<br />
*               soft    nproc   2047<br />
*               hard    nproc   16384<br />
*               soft    nofile  1024<br />
*               hard    nofile  65536</p>
<p>4.2.2 编辑/etc/pam.d/login，添加1行：<br />
# vi /etc/pam.d/login<br />
session    required     /lib/security/pam_limits.so</p>
<p>4.2.3 编辑/etc/profile，添加如下部分：<br />
# vi /etc/profile</p>
<p>复制内容到剪贴板<br />
代码:</p>
<p>if [ $USER = "racle" ]; then<br />
if [ $SHELL = "/bin/ksh" ]; then<br />
ulimit -p 16384<br />
ulimit -n 65536<br />
else<br />
ulimit -u 16384 -n 65536<br />
fi<br />
fi</p>
<p>5 装载CD，或上传并解压缩文件<br />
5.1 若装载CD:<br />
# mount /media/cdrom</p>
<p>5.2 若上传并解压缩文件<br />
5.2.1 上传：可用ftp命令或ftp工具<br />
5.2.2 解压缩：<br />
# unzip 10201_database_linux32.zip -d /tmp/oracle<br />
5.2.3 改变属主和权限：<br />
# chown oracle /tmp/oracle<br />
# chmod -R +755 /tmp/oracle</p>
<p>5.3 设置在安装Oracle的机器上以oracle用户安装<br />
# xhost localhost:oracle</p>
<p>未完待续 &#8230;.  Daniel 会继续抽空搞定的 &#8230;</p>
<h3  class="related_post_title">读过本文的朋友还浏览过下面这些：</h3><ul class="related_post"><li><a href="http://blog.allove.org/archives/setup-oracle-on-linux-3.html" title="Linux 下 Oracle 的安装 (三)">Linux 下 Oracle 的安装 (三)</a> (2)</li><li><a href="http://blog.allove.org/archives/setup-oracle-on-linux-1.html" title="Linux 下 Oracle 的安装 (一)">Linux 下 Oracle 的安装 (一)</a> (1)</li><li><a href="http://blog.allove.org/archives/java-serialize-for-client-server-communication.html" title="JAVA对象序列化实现移动终端与服务器高效通信">JAVA对象序列化实现移动终端与服务器高效通信</a> (5)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.allove.org/archives/setup-oracle-on-linux-2.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Linux 下 Oracle 的安装 (一)</title>
		<link>http://blog.allove.org/archives/setup-oracle-on-linux-1.html</link>
		<comments>http://blog.allove.org/archives/setup-oracle-on-linux-1.html#comments</comments>
		<pubDate>Mon, 18 Aug 2008 13:44:36 +0000</pubDate>
		<dc:creator>孙建</dc:creator>
				<category><![CDATA[[管理.开发.应用]数据库]]></category>
		<category><![CDATA[linux安装oracle]]></category>
		<category><![CDATA[oracle 10g 安装]]></category>
		<category><![CDATA[Oracle安装]]></category>
		<category><![CDATA[[技术分享]J2EE]]></category>

		<guid isPermaLink="false">http://www.allove.org/?p=92</guid>
		<description><![CDATA[Red Hat Enterprise Linux 4 下安装 Oracle 10g 近来研究基于J2EE AND ORACLE的开发，简要总结了下在Red Hat Enterprise Linux 4 下安装 Oracle 10g 的工作笔记。分享一下。 时间不多，本次介绍安装的准备工作：下次有空再继续！ 一、以root用户登录, 进行如下操作： 1 检查硬件要求 * 主要包括： ****************************************** * 内存:                              &#62;=512M                               * * 交换空间：                         1.0 GB或者2倍内存大小 * * 临时空间(/tmp&#62;)：&#62;=400M                                        * * 软件所需空间：   &#62;=2.5G                                          * * 数据库文件：     &#62;=1.2G                                           * ****************************************** # cat /etc/issue # uname -r # [...]]]></description>
			<content:encoded><![CDATA[<h2>Red Hat Enterprise Linux 4 下安装 Oracle 10g</h2>
<p>近来研究基于J2EE AND ORACLE的开发，简要总结了下在Red Hat Enterprise Linux 4 下安装 Oracle 10g 的工作笔记。分享一下。 时间不多，本次介绍安装的准备工作：下次有空再继续！</p>
<p>一、以root用户登录, 进行如下操作：<br />
<!--adsense--><br />
1 检查硬件要求<br />
* 主要包括：<br />
******************************************<br />
* 内存:                              &gt;=512M                               *<br />
* 交换空间：                         1.0 GB或者2倍内存大小 *<br />
* 临时空间(/tmp&gt;)：&gt;=400M                                        *<br />
* 软件所需空间：   &gt;=2.5G                                          *<br />
* 数据库文件：     &gt;=1.2G                                           *<br />
******************************************<br />
<span id="more-92"></span><br />
# cat /etc/issue<br />
# uname -r<br />
# grep &#8220;model name&#8221; /proc/cpuinfo<br />
# grep MemTotal /proc/meminfo<br />
# grep SwapTotal /proc/meminfo<br />
# free<br />
# df -k /tmp<br />
# df -k</p>
<p>2 检查软件要求(安装软件包)<br />
说明：虽然官方文档只要求如下几个软件包(具体版本号可能不一样)，<br />
但实际上在真正安装的时候,往往需要更多.<br />
binutils-2.15.92.0.2-10.EL4<br />
compat-db-4.1.25-9<br />
control-center-2.8.0-12<br />
gcc-3.4.3-9.EL4<br />
gcc-c++-3.4.3-9.EL4<br />
glibc-2.3.4-2<br />
glibc-common-2.3.4-2<br />
gnome-libs-1.4.1.2.90-44.1<br />
libstdc++-3.4.3-9.EL4<br />
libstdc++-devel-3.4.3-9.EL4<br />
make-3.80-5<br />
pdksh-5.2.14-30<br />
sysstat-5.0.5-1<br />
xscreensaver-4.18-5.rhel4.2</p>
<p>2.1 首先,在你的RHEL光盘里找到如上RPM包;</p>
<p>2.2 然后,执行以下命令:<br />
# rpm -Uvh binutils*<br />
# rpm -Uvh compat-db*<br />
# rpm -Uvh control-center*<br />
# rpm -Uvh gcc-3.4*<br />
# rpm -Uvh gcc-c++*<br />
# rpm -Uvh glibc-2.3*<br />
# rpm -Uvh glibc-common*<br />
# rpm -Uvh gnome-libs*<br />
# rpm -Uvh libstdc++-3.4*<br />
# rpm -Uvh libstdc++-devel*<br />
# rpm -Uvh make*<br />
# rpm -Uvh pdksh*<br />
# rpm -Uvh sysstat*<br />
# rpm -Uvh xscreensaver*</p>
<p>说明：若执行以上命令时提示须安装其它,则再从RHEL4的安装盘拷贝相应的包,然后再继续安装</p>
<h3  class="related_post_title">读过本文的朋友还浏览过下面这些：</h3><ul class="related_post"><li><a href="http://blog.allove.org/archives/setup-oracle-on-linux-3.html" title="Linux 下 Oracle 的安装 (三)">Linux 下 Oracle 的安装 (三)</a> (2)</li><li><a href="http://blog.allove.org/archives/setup-oracle-on-linux-2.html" title="Linux 下 Oracle 的安装 (二)">Linux 下 Oracle 的安装 (二)</a> (4)</li><li><a href="http://blog.allove.org/archives/java-serialize-for-client-server-communication.html" title="JAVA对象序列化实现移动终端与服务器高效通信">JAVA对象序列化实现移动终端与服务器高效通信</a> (5)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.allove.org/archives/setup-oracle-on-linux-1.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Windows系统清理 &#8212; 绝对方便绿色的系统工具</title>
		<link>http://blog.allove.org/archives/clean-windows.html</link>
		<comments>http://blog.allove.org/archives/clean-windows.html#comments</comments>
		<pubDate>Sun, 29 Jun 2008 05:37:40 +0000</pubDate>
		<dc:creator>孙建</dc:creator>
				<category><![CDATA[[技术及娱乐]Windows]]></category>
		<category><![CDATA[Windows系统清理]]></category>
		<category><![CDATA[批处理文件]]></category>

		<guid isPermaLink="false">http://www.allove.org/?p=82</guid>
		<description><![CDATA[尊敬的用户，您是否发现最近您的windows操作系统越来越臃肿?您是否发现C盘占用月来月大?您是否发现历史痕迹愈来愈多?不要怕,今天 Daniel 为您带来了举世无双的windows系统垃圾清理工具。包你用得安心，用得放心!谁用谁知道! 好了，玩笑开玩了，进入正题(上面是有史以来最无聊的废话，不要再看了)。 以前老用优化大师清理系统垃圾，临时文件等等。但是今天优化大师罢工了，汗!本想重新安装一下，但是心血来潮,决定写个小东西来搞定。于是乎 Windows系统清理王 诞生了 !! 开玩笑啦， 就写了一个批处理文件，哈哈，吊胃口吧! 虽然优化大师，超级兔子这些工具是很强大的，而且是很全面的，但是难免还是有喜欢简单，绿色的朋友哈!相信这是适合您的。 下载链接在下面啦：(请用榔头猛击灯泡后面的链接下载) system-clean 有兴趣的话看下这个批处理文件的原文吧 ！ 附： @echo off echo Daniel 正在委托WINDOWS帮你清除系统垃圾文件，请稍候&#8230;&#8230; del /f /s /q %systemdrive%\*.tmp del /f /s /q %systemdrive%\*._mp del /f /s /q %systemdrive%\*.log del /f /s /q %systemdrive%\*.gid del /f /s /q %systemdrive%\*.chk del /f /s /q %systemdrive%\*.old del /f /s /q [...]]]></description>
			<content:encoded><![CDATA[<p>尊敬的用户，您是否发现最近您的windows操作系统越来越臃肿?您是否发现C盘占用月来月大?您是否发现历史痕迹愈来愈多?不要怕,今天 Daniel 为您带来了举世无双的windows系统垃圾清理工具。包你用得安心，用得放心!谁用谁知道!</p>
<p>好了，玩笑开玩了，进入正题(上面是有史以来最无聊的废话，不要再看了)。</p>
<p>以前老用优化大师清理系统垃圾，临时文件等等。但是今天优化大师罢工了，汗!本想重新安装一下，但是心血来潮,决定写个小东西来搞定。于是乎 <a href="http://www.allove.org">Windows</a>系统清理王 诞生了<span id="more-82"></span> !! 开玩笑啦， 就写了一个批处理文件，哈哈，吊胃口吧! 虽然优化大师，超级兔子这些工具是很强大的，而且是很全面的，但是难免还是有喜欢简单，绿色的朋友哈!相信这是适合您的。</p>
<p>下载链接在下面啦：(请用榔头猛击灯泡后面的链接下载)</p>
<p><a href="http://www.allove.org"><img class="alignnone size-medium wp-image-53" title="attention" src="http://www.allove.org/wp-content/uploads/2008/06/attention.gif" alt="" width="32" height="32" /></a><a href="http://www.allove.org/uploads/system-clean.zip">system-clean </a></p>
<p>有兴趣的话看下这个批处理文件的原文吧 ！</p>
<p>附：</p>
<p>@echo off<br />
echo Daniel 正在委托WINDOWS帮你清除系统垃圾文件，请稍候&#8230;&#8230;<br />
del /f /s /q %systemdrive%\*.tmp<br />
del /f /s /q %systemdrive%\*._mp<br />
del /f /s /q %systemdrive%\*.log<br />
del /f /s /q %systemdrive%\*.gid<br />
del /f /s /q %systemdrive%\*.chk<br />
del /f /s /q %systemdrive%\*.old<br />
del /f /s /q %systemdrive%\recycled\*.*<br />
del /f /s /q %windir%\*.bak<br />
del /f /s /q %windir%\prefetch\*.*<br />
rd /s /q %windir%\temp &amp; md %windir%\temp<br />
del /f /q %userprofile%\cookies\*.*<br />
del /f /q %userprofile%\recent\*.*<br />
del /f /s /q &#8220;%userprofile%\Local Settings\Temporary Internet Files\*.*&#8221;<br />
del /f /s /q &#8220;%userprofile%\Local Settings\Temp\*.*&#8221;<br />
del /f /s /q &#8220;%userprofile%\recent\*.*&#8221;<br />
echo OK 搞定 、、、  干净了 感谢 www.Allove.org 吧  !   ^_^<br />
echo. &amp; pause</p>
<p>由此你似乎应该看出一些端倪了!那就是<a href="http://www.allove.org" target="_blank">windows的批处理文件</a>的写法,以及一些简单的语法,哈哈! That&#8217;s All !</p>
<h3  class="related_post_title">随机日志</h3><ul class="related_post"><li><a href="http://blog.allove.org/archives/there-will-be-a-wonder.html" title="THERE WILL BE A WONDER !">THERE WILL BE A WONDER !</a> (4)</li><li><a href="http://blog.allove.org/archives/beautifull-wallpaper.html" title="2008年最精美的壁纸?!">2008年最精美的壁纸?!</a> (3)</li><li><a href="http://blog.allove.org/archives/java-design-patter.html" title="利用JAVA 开发抓取程序设计心得">利用JAVA 开发抓取程序设计心得</a> (2)</li><li><a href="http://blog.allove.org/archives/j2me-lwuit-image-scale.html" title="j2ME中 lwuit实现按钮缩放功能代码解析">j2ME中 lwuit实现按钮缩放功能代码解析</a> (0)</li><li><a href="http://blog.allove.org/archives/1174.html" title=""></a> (0)</li><li><a href="http://blog.allove.org/archives/ubuntu-opera-scim-input-chinese.html" title="解决Ubuntu 8.04 Opera浏览器中SCIM中无法输入中文">解决Ubuntu 8.04 Opera浏览器中SCIM中无法输入中文</a> (4)</li><li><a href="http://blog.allove.org/archives/teamwork-learn.html" title="[转载]老板不喜欢的15种人">[转载]老板不喜欢的15种人</a> (9)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.allove.org/archives/clean-windows.html/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>解决Ubuntu 8.04 Opera浏览器中SCIM中无法输入中文</title>
		<link>http://blog.allove.org/archives/ubuntu-opera-scim-input-chinese.html</link>
		<comments>http://blog.allove.org/archives/ubuntu-opera-scim-input-chinese.html#comments</comments>
		<pubDate>Thu, 29 May 2008 15:21:11 +0000</pubDate>
		<dc:creator>孙建</dc:creator>
				<category><![CDATA[[技术及娱乐]Ubuntu]]></category>
		<category><![CDATA[SCIM中文输入法]]></category>
		<category><![CDATA[ubuntu opera]]></category>

		<guid isPermaLink="false">http://www.allove.org/?p=13</guid>
		<description><![CDATA[关键字：Ubuntu 8.04 Opera SCIM! 想当年，孙悟空三打白骨精还不死…俗话说:一波未平，一波又起!再来一句塞翁失马，焉知非福?!呵呵…本以为继NVIDIA驱动这个棘手的问题之后的SCIM都被我搞定还有什么问题能够阻止我在Ubuntu的旅程?但是，我停在了Opera前面。庆幸的是只是暂停几分钟而已。话说Daniel搞定Ubuntu中SCIM中文输入法的问题之后，兴奋不已，迅速网络之，不料，他倒在了Firefox的牛仔裤前面，因为Firefox的”牛仔裤“是在是太丑了，Daniel实在是看不过去了，Firefox的字体让他无法忍受，于是寻找到了心仪已久Opera！ 于是乎，迅速”sudo apt-get install opera”之!完毕.不料又起波澜，可爱的Opera并不是那么听话的，在她美丽的外表之下还有不可告人的秘密：Ubuntu中Opera下SCIM无法输入中文! 当我按Ctrl+Space的时候,Opera一个崭新的窗口打开了,再是一次,再试N次都是这样。谁在作祟，最初怀疑对象:Opera的快捷键和 SCIM的输入法切换键冲突，于是在Opera–&#62;工具–&#62;首选项–&#62;高级–&#62;快捷键,中调整了快捷键，使得打开新窗口的快捷键不为Ctrl+Space本以为立即搞定，最后，未果。辗转反侧之，最后终于找到答案:Ubuntu SCIM中缺少一个模块，那就是SCIM－QTIMM 。于是乎：”sudo apt-get install scim-qtimm” ，当安装结束的时候，也就是我搞定Ubuntu环境下的Opera浏览器中SCIM输入法无法切换的问题啦。It is A Great Day ! 随机日志诉说 IIS 用户名和密码的残酷命运 (5)善听在知己，善听在知音 (3)Running an application in an emulator in s60 (8)互联网盈利模式与WEB2.0 (4)JAVA实现windows 系统托盘图标 (8)图片分享[2010-04-14] (5)《男人装》奥运史诗大片：圣火征途 (14)]]></description>
			<content:encoded><![CDATA[<p><strong>关键字：Ubuntu 8.04 Opera SCIM!</strong><br />
想当年，孙悟空三打白骨精还不死…俗话说:一波未平，一波又起!再来一句塞翁失马，焉知非福?!呵呵…本以为继NVIDIA驱动这个棘手的问题之后的SCIM都被我搞定还有什么问题能够阻止我在Ubuntu的旅程?但是，我停在了Opera前面。庆幸的是只是暂停几分钟而已。话说Daniel搞定Ubuntu中SCIM中文输入法的问题之后，兴奋不已，迅速网络之，不料，他倒在了Firefox的牛仔裤前面，因为Firefox的”牛仔裤“是在是太丑了，Daniel实在是看不过去了，Firefox的字体让他无法忍受，于是寻找到了心仪已久Opera！<br />
于是乎，迅速”sudo apt-get install opera”之!完毕.不料又起波澜，可爱的Opera并不是那么听话的，在她美丽的外表之下还有不可告人的秘密：Ubuntu中Opera下SCIM无法输入中文! 当我按Ctrl+Space的时候,Opera一个崭新的窗口打开了,再是一次,再试N次都是这样。谁在作祟，最初怀疑对象:Opera的快捷键和 SCIM的输入法切换键冲突，于是在Opera–&gt;工具–&gt;首选项–&gt;高级–&gt;快捷键,中调整了快捷键，使得打开新窗口的快捷键不为Ctrl+Space本以为立即搞定，最后，未果。辗转反侧之，最后终于找到答案:Ubuntu SCIM中缺少一个模块，那就是SCIM－QTIMM 。于是乎：”sudo apt-get install scim-qtimm” ，当安装结束的时候，也就是我搞定Ubuntu环境下的Opera浏览器中SCIM输入法无法切换的问题啦。<span id="more-13"></span>It is A Great Day !</p>
<h3  class="related_post_title">随机日志</h3><ul class="related_post"><li><a href="http://blog.allove.org/archives/%e6%8f%90%e9%86%92%e8%87%aa%e5%b7%b1%e6%97%b6%e5%b8%b8%e8%ae%b0%e4%bd%8f%e7%96%bc%e8%80%81%e5%a9%86.html" title="提醒自己时常记住疼老婆">提醒自己时常记住疼老婆</a> (0)</li><li><a href="http://blog.allove.org/archives/paradise.html" title="[Music] Paradise &#8212; 几首名为Paradise的歌">[Music] Paradise &#8212; 几首名为Paradise的歌</a> (7)</li><li><a href="http://blog.allove.org/archives/xunxian-qq-tencent.html" title="《寻仙》游戏截图|内测激活|内测客户端">《寻仙》游戏截图|内测激活|内测客户端</a> (9)</li><li><a href="http://blog.allove.org/archives/the-server-should-be-deployed-to-support-the-future-plantform.html" title="the server should be deployed to support the future plantforms">the server should be deployed to support the future plantforms</a> (0)</li><li><a href="http://blog.allove.org/archives/share-icon.html" title="网页设计常用gif小图标&#8212;-非原创,纯分享">网页设计常用gif小图标&#8212;-非原创,纯分享</a> (6)</li><li><a href="http://blog.allove.org/archives/mainstream-for-java-database-connection.html" title="主流JAVA数据库连接技术 &#8212; Mainstream For JAVA Database Connection">主流JAVA数据库连接技术 &#8212; Mainstream For JAVA Database Connection</a> (4)</li><li><a href="http://blog.allove.org/archives/windows-2003-%e6%9c%8d%e5%8a%a1%e5%99%a8%e5%ae%89%e5%85%a8%e8%ae%be%e7%bd%ae.html" title="Windows 2003 服务器安全设置">Windows 2003 服务器安全设置</a> (2)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.allove.org/archives/ubuntu-opera-scim-input-chinese.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>什么是DSE</title>
		<link>http://blog.allove.org/archives/what-is-dse.html</link>
		<comments>http://blog.allove.org/archives/what-is-dse.html#comments</comments>
		<pubDate>Thu, 29 May 2008 07:00:05 +0000</pubDate>
		<dc:creator>孙建</dc:creator>
				<category><![CDATA[[专注]网络工程]]></category>
		<category><![CDATA[什么是DSE]]></category>
		<category><![CDATA[目录系统代理]]></category>

		<guid isPermaLink="false">http://www.allove.org/?p=11</guid>
		<description><![CDATA[在我们做一些网络安全方面的工作的时候网络需要获取一些服务器信息,下面就来说一下在获取使用LDAP协议的服务器信息的时候必须要理解的一个概念,那就是DSE(directory system agent)目录系统代理。 DSE是目录中由DSA确定的条目(DSA即目录系统代理&#8211;directory system agent,它是目录服务器的x.500项)。每个DSE包括服务器的一些特定信息． 在目录树中,目录树的根路径就是根DSE,它不属于任何己命名内容(例如，在，目录中&#8221;o=Allove.org&#8221;之上)。 (注意:根DSE定义在LDAP版本3协议中,LDAf版本2服务器不需要使用根DsE)。 根DSE可以包含以下信息： 该服务器的己命名内容(例如:&#8221;o=allove.org&#8221;); 当该服务器不可用时，可供连接的备用服务器的URL; 该服务器所支持的LDAP版本3扩展操作; 该服务器所支持的LDAP版本3控制; 该服务器所支持的SASL机制; 歧服务器所支持的各种LDAP协议版本(例如2和3); 附加的服务器专有信息. 下次再说如何获取根DSE,^_^ 随机日志百译通(手机翻译小秘书) RC版 正式发布 (1) IT技术人员与上司相处更好的10种方法 (3)IBM 2008年全球(中国) CEO 调查 (3)马尔代夫&#8212;一个美丽的多岛屿国家 (5)手机课程表&#8212;-ALLOVE课程表软件 (4)Linux网络应用服务配置 (6)图片分享[2010-04-14] (5)]]></description>
			<content:encoded><![CDATA[<p>在我们做一些网络安全方面的工作的时候网络需要获取一些服务器信息,下面就来说一下在获取使用LDAP协议的服务器信息的时候必须要理解的一个概念,那就是DSE(directory system agent)目录系统代理。</p>
<p>DSE是目录中由DSA确定的条目(DSA即目录系统代理&#8211;directory system agent,它是目录服务器的x.500项)。每个DSE包括服务器的一些特定信息． 在目录树中,目录树的根路径就是根DSE,它不属于任何己命名内容(例如，在，目录中&#8221;o=Allove.org&#8221;之上)。 (注意:根DSE定义在LDAP版本3协议中,LDAf版本2服务器不需要使用根DsE)。<br />
根DSE可以包含以下信息：</p>
<ol>
<li>该服务器的己命名内容(例如:&#8221;o=allove.org&#8221;);</li>
<li>当该服务器不可用时，可供连接的备用服务器的URL;</li>
<li>该服务器所支持的LDAP版本3扩展操作;</li>
<li>该服务器所支持的LDAP版本3控制;</li>
<li>该服务器所支持的SASL机制;</li>
<li>歧服务器所支持的各种LDAP协议版本(例如2和3);</li>
<li>附加的服务器专有信息.</li>
</ol>
<p><span id="more-11"></span><br />
下次再说如何获取根DSE,^_^</p>
<h3  class="related_post_title">随机日志</h3><ul class="related_post"><li><a href="http://blog.allove.org/archives/%e8%bf%87%e5%b9%b4%e4%ba%86%e5%9b%9e%e5%ae%b6%e4%ba%86.html" title="过年了,回家了 &#8230;">过年了,回家了 &#8230;</a> (4)</li><li><a href="http://blog.allove.org/archives/%e5%a4%9a%e5%9b%bd%e8%af%ad%e8%a8%80%e5%9c%a8%e7%ba%bf%e7%bf%bb%e8%af%91%e8%8b%b1%e8%af%ad%e6%97%a5%e8%af%ad%e6%b3%95%e8%af%ad%e9%9f%a9%e8%af%ad%e7%ad%89.html" title="多国语言在线翻译(英语,日语,法语,韩语等)">多国语言在线翻译(英语,日语,法语,韩语等)</a> (2)</li><li><a href="http://blog.allove.org/archives/android%e4%b8%ad%e5%9b%bd%e5%bc%80%e5%8f%91%e8%80%85%e8%ae%ba%e5%9d%9b.html" title="Android中国开发者论坛">Android中国开发者论坛</a> (12)</li><li><a href="http://blog.allove.org/archives/%e4%b8%87%e6%81%b6%e7%9a%84%e6%98%a5%e6%99%9a.html" title="万恶的春晚">万恶的春晚</a> (2)</li><li><a href="http://blog.allove.org/archives/android%e5%8f%96%e5%be%97sim%e5%8d%a1%e5%86%85%e7%9a%84%e4%bf%a1%e6%81%af%e2%80%94%e2%80%94telephonymanager%e7%9a%84%e5%ba%94%e7%94%a8.html" title="Android取得SIM卡内的信息——TelephonyManager的应用">Android取得SIM卡内的信息——TelephonyManager的应用</a> (0)</li><li><a href="http://blog.allove.org/archives/hitravel_2-0-2.html" title="商务通vbeta2.0.2最新更新">商务通vbeta2.0.2最新更新</a> (2)</li><li><a href="http://blog.allove.org/archives/cpp-linear-list.html" title="[C/C++]线性表的基本操作 &#8212; 初始化和插入">[C/C++]线性表的基本操作 &#8212; 初始化和插入</a> (9)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.allove.org/archives/what-is-dse.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu Server Root 默认密码</title>
		<link>http://blog.allove.org/archives/ubuntu-server-root-password.html</link>
		<comments>http://blog.allove.org/archives/ubuntu-server-root-password.html#comments</comments>
		<pubDate>Wed, 28 May 2008 15:37:45 +0000</pubDate>
		<dc:creator>孙建</dc:creator>
				<category><![CDATA[[技术及娱乐]Ubuntu]]></category>
		<category><![CDATA[ubuntu server]]></category>
		<category><![CDATA[Ubuntu Server Root 密码]]></category>

		<guid isPermaLink="false">http://www.allove.org/?p=9</guid>
		<description><![CDATA[很多朋友都喜欢Ubuntu Linux,因为他的理念开放自由.但或许更多的是Ubuntu在国内有很多优秀的源,而且可以免费获取Ubuntu Live CD .包括desktop个人版和Server服务器版。但是很多第一次使用Ubuntu Server Edition的朋友往往都有同一个困惑。那就是ROOT密码。因为我曾经也遇到过。网络上的解决Root默认密码的资源大致有这么几类:一是,Ubuntu爱好者会搜索&#8221;Ubuntu server Root 默认密码&#8221;；然后就是,&#8221;Ubuntu server root 登录&#8221;;再者,&#8221;Ubuntu server root login&#8221;；最后,可能就是最简单的&#8221;Ubuntu server root 密码&#8221;。但是,最终在海量的搜索结果中我是没有找到答案的。因为通用的答案是矛盾的!不少网友都是说:ubuntu server是没有启用root账户的的,或者说是root账户是没有密码的,或者说是要用sudo passwd root 来修改密码就可以用了&#8230;.等等等&#8230;. 但殊不知,server 版的爱好者之所以要寻找root的密码,从root用户登录那是因为在server版里面一般用户是不可以使用sudo命令的!因为在sudoers文件里面只有一个root用户!我曾经试图修改sudoers文件来添加一个一般用户,但是对于非root用户来说这个文件根本就是不可写的,所以这条道也走不通。所以曾经我在这里也一筹莫展过。但是有人说过:“如果上帝把你的门关上了，那么他一定会在另一个地方给你开一扇窗户”。其实要启用root密码是一个很简单的问题，最终的结果告诉我在ubuntu server 里面root 是没有密码的,但是你却改不了，这是为什么呢?!因为你走错了地方!解决方案如下:重启你的ubuntu server从 修复模式登录(即：非正常模式),这时你会发现，登录之后本来就是root用户了。此时你感觉到你成功了吗？？要改密码还是要sudo那就随便了。 哈哈！原来就那么简单。 随机日志涪江一桥爆破 (3)精美全能wordpress主题 &#8212; One Theme (22)考古发现:远古庞大“翼龙”以霸王龙为食 (2) (0)免费短信宝典&#8211;在线升级版 (2)数字记忆大挑战DigitalFun(Android/Ophone) (3)致来访朋友！Sorry for Blog Updating Delay ! (2)]]></description>
			<content:encoded><![CDATA[<p>很多朋友都喜欢Ubuntu Linux,因为他的理念开放自由.但或许更多的是Ubuntu在国内有很多优秀的源,而且可以免费获取Ubuntu Live CD .包括desktop个人版和Server服务器版。但是很多第一次使用Ubuntu Server Edition的朋友往往都有同一个困惑。那就是ROOT密码。因为我曾经也遇到过。网络上的解决Root默认密码的资源大致有这么几类:一是,Ubuntu爱好者会搜索&#8221;Ubuntu server Root 默认密码&#8221;；然后就是,&#8221;Ubuntu server root 登录&#8221;;再者,&#8221;Ubuntu server root login&#8221;；最后,可能就是最简单的&#8221;Ubuntu server root 密码&#8221;。但是,最终在海量的搜索结果中我是没有找到答案的。因为通用的答案是矛盾的!不少网友都是说:ubuntu server是没有启用root账户的的,或者说是root账户是没有密码的,或者说是要用sudo passwd root 来修改密码就可以用了&#8230;.等等等&#8230;.</p>
<p>但殊不知,server 版的爱好者之所以要寻找root的密码,从root用户登录那是因为在server版里面一般用户是不可以使用sudo命令的!因为在sudoers文件里面只有一个root用户!我曾经试图修改sudoers文件来添加一个一般用户,但是对于非root用户来说这个文件根本就是不可写的,所以这条道也走不通。所以曾经我在这里也一筹莫展过。但是有人说过:“如果上帝把你的门关上了，那么他一定会在另一个地方给你开一扇窗户”。其实要启用root密码是一个很简单的问题，最终的结果告诉我在ubuntu server 里面root 是没有密码的,但是你却改不了，这是为什么呢?!因为你走错了地方!解决方案如下:<span id="more-9"></span>重启你的ubuntu server从 修复模式登录(即：非正常模式),这时你会发现，登录之后本来就是root用户了。此时你感觉到你成功了吗？？要改密码还是要sudo那就随便了。 哈哈！原来就那么简单。</p>
<h3  class="related_post_title">随机日志</h3><ul class="related_post"><li><a href="http://blog.allove.org/archives/the-server-should-be-deployed-to-support-the-future-plantform.html" title="the server should be deployed to support the future plantforms">the server should be deployed to support the future plantforms</a> (0)</li><li><a href="http://blog.allove.org/archives/system-ico.html" title="JAVA实现windows 系统托盘图标">JAVA实现windows 系统托盘图标</a> (8)</li><li><a href="http://blog.allove.org/archives/setup-oracle-on-linux-3.html" title="Linux 下 Oracle 的安装 (三)">Linux 下 Oracle 的安装 (三)</a> (2)</li><li><a href="http://blog.allove.org/archives/life-journey.html" title="难言的旅程 &#8212; A Short Journey for The Long life !">难言的旅程 &#8212; A Short Journey for The Long life !</a> (5)</li><li><a href="http://blog.allove.org/archives/%e6%89%8b%e6%9c%ba%e9%98%85%e8%af%bb_%e5%b0%8f%e8%af%b4%e9%98%85%e8%af%bb%e8%b0%83%e6%9f%a5.html" title="手机阅读_小说阅读调查">手机阅读_小说阅读调查</a> (34)</li><li><a href="http://blog.allove.org/archives/nokia-memory-sip_clo.html" title="Nokia 手机内存清理&#8212;&#8211;飞信 sip_c.log清理方法">Nokia 手机内存清理&#8212;&#8211;飞信 sip_c.log清理方法</a> (4)</li><li><a href="http://blog.allove.org/archives/java-http-protocol-server.html" title="JAVA实现HTTP Server &#8212; 浅析HTTP协议">JAVA实现HTTP Server &#8212; 浅析HTTP协议</a> (8)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.allove.org/archives/ubuntu-server-root-password.html/feed</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
	</channel>
</rss>
