关于 三月, 2007 的文章

学点黑客技术

最近常常听到有认识的人和同学问我:你会黑客技术么?
 
在他们的心目中,黑客技术是很强的,没有鄙夷,反而充满了崇拜。
 
其实学习些黑客技术也是很好的,从系统维护的角度来说,你自己懂一点,那么你自己也就知道如何防范了。
 
这个是矛与盾的关系,有了好的矛,就要有更坚固的盾,有了更坚固的盾,就得有更锋利的矛。
 
有了这个想法,那么就开始吧!

No Comments

LFS:一个菜鸟变成高手的捷径

LFS──Linux from Scratch,就是一种从网上直接下载源码,从头编译LINUX的安装方式。它不是发行版,只是一个菜谱,告诉你到哪里去买菜(下载源码),怎么把这些生东西( raw code) 作成符合自己口味的菜肴──个性化的linux,不单单是个性的桌面。
 
LFS 有什么优势呢?现在看来,它可以提供最快和最小的 Linux。但是最大的优势就是,安装LFS是菜鸟变成高手的捷径。第一次安装,需要按照LFS文档安装,如果在此期间所有文档内容你都认真的阅读,保证你受益匪浅;然后发现很多地方可以不按照别人的老路操作,这个时候用自己的方式参考第一次安装的经验,再一次建立linux,完成的时候,你会发现你在 LinuxSir.Org 上已经再也不是菜鸟了。
 
安装两次LFS,总共要用去你一个多礼拜(说不定一个多礼拜还装不完)的业余时间。但是这一个多礼拜将是你linux水平进步最快的一个多礼拜。
 
当然,不是说LFS要装两遍,也没有说,一定要装那么长时间。如果闷头装,什么都不管,大概一共十个小时就有一个高效的完整的linux系统呈现在你面前。(根据机器速度不同时间上会有差异)
 
最后,在我们开始之前,你想一下,丰富的 Linux 知识对于你来说比在 Mplayer 上看片,用 KDE 作PP桌面等来说是不是更重要。如果是,我们期盼你成功完成LFS系统加入我们LFS爱好者的行列!
这是LFS官方的文字,真的很不错,在剩下的时间我会专门拿时间来完成这么一个工作的。

No Comments

工作笔记:Qmail在Debian下的安装

注:本文档是通过参考网络上的诸多文档,然后由公司的前辈结合安装过程整理出来的。

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

QMAIL在DEBIAN下的安装

四川龙图科技有限公司
版本:1.0
EMAIL:mademini@gmail.com
最后更新日期:2006-12-19

本文档全面介绍如何使用qmail在Linux上建造一个高性能的邮件服务器,如何用Vpopmail实现虚拟的邮件域,如何使用qmailadmin 通过Web页面方便的管理用户,如何添加大容量的邮件列表支持,如何实现病毒邮件清除,如何实现中文垃圾邮件过滤,以及如何实现用户的Web登陆。

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

此文所实现的邮件系统功能列表:
• SMTP服务器:SMTP-AUTH认证(Plain,Login,CRAM-MD5),TLS(SSL)支持
• POP3服务器:CRAM-MD5,APOP,和SSL支持
• IMAP服务器:TLS(SSL)支持
• 邮件病毒清除
• 邮件附件限制
• 中文垃圾邮件过滤(最高90%)
• 自动回复
• 邮件列表
• Web管理
• 用户注册
• 通过Web显示统计信息
• WebMail
• MRTG

阅读全文 »

,

No Comments

解决Windows下窗体最小化到下方的任务栏后消失的Bug

这是我的好朋友遇到的一个Bug,不知道怎么出现的,利用系统还原以后过一段时间还是会出现这个问题,于是在网上找到了解决的方法,就是从 微软的官方网站下载了一个VBS文件,并执行即可解决问题,他是由Kelly Theriot and Doug Knox编写的。
下面是这个文件的代码:请保存于一个记事本中,并将该文件命名为:
xp_taskbar_desktop_fixall_chs.vbs

Set WSHShell = WScript.CreateObject("WScript.Shell") 
Message = "本脚本用于修复Windows XP中当最小化程序时,无法在任务栏显示图标的问题。"& vbCR & vbCR 
Message = Message & "为了正常工作,本脚本将关闭和重启 Windows Explorer 外壳,这个操作不会损坏你的系统。" & vbCR & vbCR 
Message = Message & "请关闭所有杀毒软件的实时监控!并保存所有打开的文件。"& vbCR & vbCR 
Message = Message & "是否继续?" 

X = MsgBox(Message, vbYesNo+vbExclamation, "注意")
If X = 6 Then
On Error Resume Next
WshShell.RegDelete "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects2\" 
WshShell.RegDelete "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\StreamsMRU\" 
WshShell.RegDelete "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams\Desktop\"
WshShell.RegDelete "HKCU\Software\Microsoft\Internet Explorer\Explorer Bars\{32683183-48a0-441b-a342-7c2a440a9478}\BarSize"
P1 = "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\"
WshShell.RegWrite p1 & "NoBandCustomize", 0, "REG_DWORD" 
WshShell.RegWrite p1 & "NoMovingBands", 0, "REG_DWORD" 
WshShell.RegWrite p1 & "NoCloseDragDropBands", 0, "REG_DWORD" 
WshShell.RegWrite p1 & "NoSetTaskbar", 0, "REG_DWORD" 
WshShell.RegWrite p1 & "NoToolbarsOnTaskbar", 0, "REG_DWORD" 
WshShell.RegWrite p1 & "NoSaveSettings",0,"REG_DWORD" 
WshShell.RegWrite p1 & "NoToolbarsOnTaskbar", 0, "REG_DWORD" 
WshShell.RegWrite p1 & "NoSetTaskbar",0,"REG_DWORD" 
WshShell.RegWrite p1 & "NoActiveDesktop",0,"REG_DWORD" 
WshShell.RegWrite p1 & "ClassicShell",0,"REG_DWORD"
p1 = "HKCU\Software\Microsoft\Windows\CurrentVersion\Group Policy Objects\LocalUser\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\"
WshShell.RegWrite p1 & "NoCloseDragDropBands", 0, "REG_DWORD" 
WshShell.RegDelete p1 & "NoMovingBands"
p1 = "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell"
WshShell.RegWrite p1, "explorer.exe", "REG_SZ"
p1 = "HKCU\Software\Microsoft\Internet Explorer\Explorer Bars\{32683183-48a0-441b-a342-7c2a440a9478}\" 
WshShell.RegDelete p1 & "BarSize" 
WshShell.RegWrite p1, "Media Band", "REG_SZ"
On Error Goto 0
For Each Process in GetObject("winmgmts:"). _ 
ExecQuery ("select * from Win32_Process where name='explorer.exe'") 
Process.terminate(0) 
Next
MsgBox "完成!" & vbcr & vbcr & "?Kelly Theriot and Doug Knox", 4096, "完成"
Else
MsgBox "没有对你的系统进行任何改变。" & vbcr & vbcr & "?Kelly Theriot and Doug Knox", 4096, "用户取消了"
End If

No Comments

与王龙图 持恒共展

与王龙图 持恒共展
 
如果我把自己定位到一个其它的不关心,安安稳稳的只管做好自己事情,我不会有这些想法的。
 
我把公司从内心里当作我自己的一样,由于是新人,所以也随时充满了想法。

我很高兴能遇到王哥这样的企业家,我非常想跟着王哥、董哥和大家打拼,很想看到王哥实现理想的时刻。
 
这是我的第一份工作,刚从学校出来之后,原以为自己什么都会,其实自己什么都不会,在公司的锻炼让自己受益匪浅,来到公司之后,做着自己热爱的工作,所以我一直都很开心,梦想也在一天天逐渐的明晰。
 
所以,凡是和公司有关的,在我所看到的公司一些需要改进的地方,我很难藏在心里,藏在心里也难受。孟姐说其实很想听到我的想法,这也让我真正有机会整理自己的思绪,将这些描述出来。
 
产品外观与结构
 
产品的外观相当重要。

外观直接影响了大多数客户对我们产品的一个心理价格,因为大多数的客户对产品根本不了解,很多也没有专业的知识能够了解。

所以,我们把东西拿出去的时候,他们更多的是通过外观,材料和手感来判断我们产品的价值。 “盒子外观上花很多的钱也是值得的”,产品外观上档次了,产品的销售价格都可以提起来一个档次。

在我重庆出差、给客户演示、与好朋友谈论的过程中,他们都提到一句话:“如果是铁盒子,那就不一样了。”

在重庆的时候,王海威王总说:“那些人一看,这么轻一个塑料盒子,要5000块是不是太贵了。”

外观方面:

其实问题不是出在 铁盒子 或者 塑料盒子 上,主要是外观以及手感。

用好质地的塑料,喷上很有质感的磨砂漆外观同样也很不错。

而目前的盒子已经是喷过漆的了,但很多的盒子表面不平整,有一定程度的凹凸;侧边的蓝色条很多已经呈一定的拱桥形;盒子是两部分扣起来的,盒子的交接处缝隙很明显;底座和盒子之间固定有摩擦,几次以后漆会脱离,漆的选材质量不高。

这几个方面存在的这些问题很降产品的档次。

内部结构方面:

内部结构关系到安装和维护的方便,以及盒子的寿命。

盒子的紧凑结构不是问题,但是数据线的连接使我们不得不将其折叠几次;板子上的各个螺钉的孔都是塑料的,几次螺丝的固定、拆下之后就比较容易滑丝了,塑料的质地;侧边蓝色条的压条没有必要分为两种,反而麻烦;硬盘指示灯 采用绿色,即使亮了也很不明显,我认为黄灯很好;开关电源按钮的地方,设计不合理,应该设计为有塑料结构可以挡住开关的后面,这样的话就不会出现 像上海那次按开关一下子按进盒子里去了;盒子每次扣和拆起来都相当的费力。

包装盒方面:

里面采用对扣的泡沫是没有问题,但是泡沫的设计就很成问题。

首先,两层的泡沫,下面的那层槽需要加深,加宽,上面的只需要较薄的能扣住就可以了,我每次放的时候完全是挤进去的,放电源也很畸形的放进去,展开之后看上去客户第一感觉是很不好的。

外面纸箱的设计采用双扣的盖子比较好,很多的电子产品都是这个设计,那样会比较牢固,不会像现在这样时不时的翘起,变形。
 
产品的销售
 
与龙芯的接触,以及自己的思考,对这方面有了一些想法。

目前公司应该还没有进入销售阶段,进入销售阶段时有很多地方都需要注意。

宣传词:龙芯的文档里面,做了一系列“压倒性……优势”等的广告词,以及很形象的性价对比表单等;产品在一定程度上需要吹的,一些我们不认为是优点的地方其实完全可以作为优势广告词写出来。

而我们这边去演示的时候,客户通过广告词根本不了解我们产品,广告词方面需要加工。

宣传方式:公司目前通过电梯广告等方式,也都有效果,小郭这里提出一个建议,不知道是否合理。我天天坐公交车,上班族和成都广大市民都要天天做公交车。所以我觉得在公交车的手柄广告和车门旁边的橱窗广告,以及公交频道的广告肯定会收效很好。

客户案例:这应该是销售人员的专业强项,我的建议是,更多的收集符合产品类型要求的客户,然后做好统计,在以后的销售的时候可以作为案例,比如给客户看成都哪些工厂、公司都用的我们的产品,案例是很具有说服力的。 
 
B/S系统方面:
 
我们的产品目前有智能建站和内网管理:

通过和客户的交流,我发现,中小型企业其实对 内网管理 是比较排斥的。

一方面是因为直接接触的不是老板,而员工是很反感这样的系统的。

另一方面就是他们普遍的要求就是OA的功能,不需要对PC进行权限的控制。

而智能建站方面,所有的顾客都希望针对他们设计一套“衣服”,就是外观模板,而进度上,这个要求在投入销售后会成为一个很大的制约处。

另外有过半的顾客都有对系统的功能上的额外要求,我认为像小兵那样单纯的用一个个版本的升级来实现是不够灵活的,针对一些要求简单的附加功能如留言板,可以对他们做定制,否则这些客户还是会丢掉的。

我和肖总去一个智能建站系统的代理商那里互相推荐产品,从那里我发现了我们目前产品的太多的不足,一方面那个系统是专业团队开发的,采用了很多技术的产品,是个纯软件的产品。

另一方面我们的智能建站针对用户不同,但是那个系统的很多优点,如界面上的友好性,实现的一些功能我们都是可以借鉴过来的,有一个危机就是,我们所做的这种系统很多网站和公司都在做,而且都比我们好;幸运的是我们是软硬件一体的,但我认为如果换一种方式来想,把一些做的已经比较成熟的系统拿过来进行借鉴、更改、二次设计,会有一个更高的起点和发展速度。

开发模式方面,小郭软件工程学的也不好,但是我有几点想法就是:

智能建站的产品出来,可以明码标识出版本号如“企业信息管理平台v1.02”,每做一次更改相应的更改版本号,这对客户方面是个专业的体现;

还有就是软件的开发过程似乎没有按照软件工程的流程来管理,这样就导致了.200上的系统经常出现问题,一方面可以我和董哥重新搭建一台设备,用来保证上面的是完成后的最新版本的系统;

另一方面小兵前辈的软件开发模式遵循有一个好的流程可以避免这些问题。

OA和CRM系统方面的问题,我问过好几次小兵前辈关于OA的问题。因为我理解的我们的产品是一个平台,这个平台是有优势的。

但是系统的方面却是直接决定了产品的销售和市场,OA系统对于企业是比较实用的,而CRM系统已经大大有名,但真正使用的公司却寥寥无几。所以OA或许是迫切需要的一个系统。而CRM系统的本身,我同学有接触这个的,如果不做修改,简化,在Windows环境中的运行速度也不是很快。

其实 B/S的系统还可以做很多,比如 学生学籍综合管理,财务进销存管理,人力资源管理,网上选课系统等一系列网上我们可以见到的系统。我们可以给自己产品定位成一个平台,随着公司的发展,开发团队的强大,针对不同行业不同客户需求配备相应的系统。这样的话,我们的发展空间是巨大的。
 
平台方面:
 
这方面王哥一直都在研究,小郭也在熟悉的过程中有一点思考。

有一点就是王哥提到的硬盘会取消掉,小郭在和客户几次接触的过程中,发现客户对我们拥有很大的本地空间<邮箱空间,网站空间,网络磁盘空间>是感到很好的。所以我想针对需要有一个共享网络磁盘和充足空间需求的客户来说,硬盘可以考虑保留下来,因为这本身是我们的一大亮点。
 
其它方面:
 
都是一些零碎的问题,主要是局限于公司还没有搬迁。

我和董哥堆放产品的地方没有一个充足的空间,所以很多东西都是分开的,孟姐屋,董哥屋,小屋,办公桌里都有放,不利于管理;

我和董哥在组装,烧板子,打包,测试等工作的时候,感觉很挤,拿来的东西也是没有充分的地方放置;

目前公司的电脑性能都普遍不好,除了我们几个用笔记本的,其它的电脑都常死机等,也比较影响工作;

我和董哥也都各自需要一台台式电脑,配备刻录光驱和较好的性能,因为会进行打包的工作。

我和董哥就想,搬迁之后需要一个可以充分堆放配件的房间,我们需要一个相对其他人宽敞的办公空间。
 
 

这里就是这一段时间小郭想法的整理,希望其中某些地方能得到王哥和孟姐的采纳。

祝王哥、孟姐心想事成!

                                 龙图小郭

                                    2006-9-26

No Comments

让自己的思维活跃一点

让自己的思维活跃一点,几乎周围所有困扰你的事情都会得到很好的解决!
在做2.6内核工作的时候,在最初的阶段,采用网络安装的ISO文件作为本地源,在安装软件的过程中,通过使用apt-get -f install来强制处理复杂的依赖关系,从而解决困扰繁杂的依赖关系问题;
商用通的很多东西其实都在仓库里面发霉了,本身是IT的行业,那么利用好网络来进行销售,将会带来巨大的收益,而这些,同时也是区别于传统的销售方式的,它们不再需要昂贵的支出;
目前的公司网站仅仅是一个网站,而我们想做到的,是一个运营平台;
商用通的系统配置部分,其实可以分离出来单独作为产品进行销售;
在软件上不断提升,充分发挥硬件的性能,因为硬件上的投入是庞大的。
利用SDDNS来构建一个免费的二级域名平台,提供优良的服务,通过它来吸引一部分的用户群;
将已经完善的CMS系统以及PHP在线聊天系统等以共享的软件形式发布,通过它来吸引更大一部分的用户群;
将论坛部分盘活,真正形成用户和公司等的交流中心;
在线更新程序的每次Bug处理,更新内容动态调出,用户会不定时关注公司查看是否有更新,提升公司被关注的程度;
一个公司的售后服务是很耗资源的,引进一套爱问系统,将一套死板的FAQ变成一个活的爱问系统,客户需要查找问题可以直接搜索,同样,属于网络环境等非产品问题网页浏览的用户同样可以帮助我们回答。一套爱问系统,我们要把它做成一套积极的不仅仅是爱问的系统,而是公司的一个宣传平台,销售平台,客户服务平台;
产品是分系列的,加强开发部的实力,我们在通用CMS之上的定制模式是我们利益的有效增长点,同样,在这里,用户可以对他们的需求提出建议和意见,这样,有了互动,便也就活了;
“公司网站--商用通用户控制面板--商用通定制交流平台--龙图论坛---龙图爱问系统--免费二级域名提供--共享软件交流--商用通以及共享软件更新发布”
他们,绝对不是独立的,他们在各个方面是有着相互交叉,各个模块的发展都会带动其他部分的发展。
例如:论坛中的用户反馈模块与商用通更新模块内容会被调到公司网站前台作为宣传,在免费动态域名模块可以用顶级域名来吸引到商用通用户,在爱问系统中同样可以将用户反馈从论坛调出等。
最终,他们演变为公司的知名度、用户群与实实在在的利益增长点!
或许这些想法还不够成熟,但有了大的框架和活跃的思维,一个增值业务部不会平庸!

No Comments

关于Linux的一些常识

转自:鸟哥的Linux私房菜馆 http://linux.vbird.org
 
看到网路上有许多新手,在使用 Linux 的过程中遇到很多问题,当然也有不少热心的老手很愿意照顾这些新手们,只是看看新手们 po 出来的问题,有的内容很笼统,有的则是不知所云,这样会增加许多老手在回答问题方面的困难度,因为反覆看了半天也找不出问题的核心究竟在那裡。
 
当然,能够自己去找出问题的答案是很好的,只是对於非资讯科学系出身的人来说,网路上一大堆专业文件也很难看得懂,了解 Linux 的人会觉得它比 Windows 好,不了解的人也许连开机都成问题。
 
在这裡有一个很重要很重要的观念必须要强调:Linux 的核心架构完完全全不同於 Windows,因此千万不要抱著使用 Windows 的心态来研究 Linux,否则会遭遇到很严重的挫折。
 
Linux 是一个 32 位元的多人多工的大型企业用伺服器作业系统。Windows只有 NT 的系列產品才可以勉强算是 32 位元的產品,然而一直到了 XP 的时代,NT 系列的核心架构才算是追上了 Linux 的水準。
 
Linux 最大的缺点就是桌面环境的整合度不像 Windows 那麼好,然而伺服器若採用 XP 產品,其稳定性还可以,但是效率上却不如 Linux。
 
在以下的文章裡面,有三个重点要详加讨论一下:
第一,什麼是伺服器?
第二,什麼是多人多工作业系统?
第三,Linux 的核心架构究竟跟 Windows 有什麼不同的地方?
 
以上三个重点谈完了,最后就以各发行版的比较及常见问题做结束。
 
首先来谈谈伺服器。在一般人的观念裡,伺服器很可能只是拿来架网路的,但事实上,古早的伺服器是一种“性能和价格都比一般终端机更可怕的电脑”,而且这样的概念一直到今天也还是一样。
 
伺服器的特点就是多个 CPU 同时进行资料处理以及运算的工作,而且体积庞大,发出的热量也高,因此一套大型企业用伺服器必须要花上不少成本去运作,去维护。也正因为大型的企业用伺服器价格昂贵,所以古早时期的企业,有一套这样的机房设备就很了不起了。像这样的设备当然是要给全公司的人使用的,因此企业内部的区域网路概念就这样成形了。
 
想使用这套大型伺服系统的人,只要在自己的办公室裡,透过“终端机”这样的设备,就可以使用伺服器的储存设备,以及处理器的运算资源。终端机的原始概念并不是一台电脑,只是一个萤幕,它的目的是要让使用者透过网路接收来自伺服器的讯息。也许它有中央处理器,但是功能也很简单,只是单纯地处理 I/O 等资料输出入的工作而已。而且重点是,它很便宜。
 
自从终端机有了中央处理器,也就是 CPU 之后,终端机才摇身一变而成为个人电脑,也就是 PC (Personal Computer)。当时个人电脑的代名词就是 Apple,也就是现今的 Mac。
 
当年的 Apple 刚推出的时候,只有单色萤幕,而且价格昂贵。所使用的储存设备是磁带机,而不是磁碟机。伺服器系统所使用的储存设备也是磁带机,Linux 有一个指令:tar,就是将资料打包之后,存进磁带机用的指令。
 
当时的大型企业用伺服器,所使用的作业系统,是由 AT&T 的贝尔实验室所研发的 UNIX,是一套售价极为昂贵的作业系统。后来为了教学用途,AT&T提供了 UNIX 的“部份”原始码给柏克莱大学,也就是 BSD (Berkley Software Distribution),现今所谓的 Free BSD,绝对不是免费的意思!而是指“开放原始码”的意思。
 
UNIX 当年是一套需要收费的大型伺服器作业系统,Sun Microsystem 的创办人裡面,有一位 Bill Joy 就是柏克莱大学的研究生。微软的掘起是在个人电脑的领域方面,当时的个人电脑尚无法运作 UNIX 这样的大型电脑作业系统,因为当时的个人电脑只有 8 位元。而微软的 DOS 產品,严格来说也不算是作业系统,而是一套“磁碟操作系统”,因此 DOS 的主要功能是在於资料的 I/O 上头,这也是为什麼採用 DOS 作业系统的个人电脑大多被拿来用作文书处理的缘故。
 
令人讶异的是,个人电脑在很短的时间内急速发展,功能也有著突飞猛进的发展,使得微软作业系统横扫全世界的个人电脑市场,甚至威胁到了Sun Microsystem 的伺服器市场,这也是为什麼 Sun 一直视微软为最大竞争对手的缘故。
 
既然当年的 UNIX 是要钱的,那麼免费的 Linux 是怎麼来的?原来柏克莱大学的教授将学术研究用的部份 UNIX 原始码以自由的形式公开,这使得拥有版权的 AT&T 很不高兴,控告了柏克莱大学,但因为 AT&T 后来因为独佔的罪名被法院拆解成七家子公司,最后卖给了 Novell,因此这场官司最后也就不了了之。
 
UNIX 的原始码后来被一名麻省理工学院的人工智慧实验室教授ichard M. Stallman 所发展的 GNU 计画给散播到了全世界。这位教授希望让全世界的人都来使用这有史以来最棒的作业系统,所谓的 GNU 就是一套全新的大眾化 UNIX 作业系统,跟原先的 UNIX 已经不一样了,因此由他所创办的自由软体基金会有一个很有名的宣言: GNU is Not Unix。
 
原本的 UNIX 核心 (kernel),并不适合一般的个人电脑使用,它是一个像恐龙一样庞大而又笨重的傢伙,因此有了微核心的概念,接著又有了 Minix,这是 Andrew Tanenbaum 教授为教学目的撰写的作业系统。在教育界可算是一套学习 UNIX 基础的好范本。
 
然而採用微核心的 UNIX,其实只是功能严重缩水的 UNIX,不但没有原本UNIX 的特点,甚至还更糟糕。当年已经是 386 个人电脑的时代,正是微软DOS 作业系统横行无阻的年代, UNIX 可以说是几乎快要被淘汰了。然而,这时却有一位芬兰赫尔辛基大学资讯系二年级的学生 Linus Benedict Torvalds ,因为疯狂爱上 UNIX 这套作业系统,但是却不满意自己的 386 执行 Minix 有许多差劲的地方,因此他兴起了一个念头:重做一个核心吧!
 
他花了很多时间做出了一个核心,并且发表在网路上,当时他贴出了一份如下的公告:
Hello everybody out there using minix:
I'm doing a (free) operation system.....(以下的内容省略)
他所发展出来的核心,初期并没有引起很大的轰动,直到人们发觉它是一套可以在 386 个人电脑上运作的 UNIX,并且可以轻易地将个人电脑变成伺服器,很快地 Linux 就席捲了整个自由软体的世界。后来并且有了 X 视窗操作介面,以及 Gnome 、 KDE 等桌面操作环境,以及 XFree 这样的设备驱动函式库,Linux 才得以拥有漂亮的图形操作介面。
 
当读者有了大型伺服器的概念之后,讨论第二个重点:什麼是多人多工,才是比较有意义的事情。
多人多工并不是在一个桌面上开啟多个视窗,就叫做多工。
 
微软的 Windows 在这方面的技术还比不上 Linux。所谓的多人多工,真正的意义是:让不同的使用者,在同一时间内,使用同一部伺服器的资源。比方说,有一个使用者想连上这伺服器听 mp3,另外一个使用者也想连上伺服器玩 game,作业系统可以分配资源给连接到伺服器的电脑,同时进行两种完全不同的工作,这就是资源共享。想要顺利达成这样的工作,伺服器又不能出现错误,而且也不能有安全上的漏洞,可想而知这技术有多麼难以达成。
 
那麼有人会觉得说,我的电脑又不用来当做伺服器,为什麼要用 Linux?当然以 Linux 做为工作站,也可以享有稳定多工的环境,但最垂要的是,现今的宽频愈来愈普及,个人电脑的运算能力也愈来愈强,未来的网际网路就不再是伺服器对工作站的架构 ( server-client ),而是伺服器对伺服器了。

(server-server)
最后一点,Linux 的核心架核究竟跟微软的 Windows 有什麼不一样的地方?首先来看看它的档案系统,为了符合大型电脑的需求,Linux 将所有的储存装置都视为一个目录,这是达成无限的扩充需求。例如说,可以将多个硬碟合成一个目录,就像是 RAID 架构,也可以一个磁碟掛载成不同的目录,每个目录都有各自的功能。
 
因此“掛载”是 Linux 一个非常重要的概念。理论上,Linux 可以将任何储存媒体,不论是什麼样的档案系统,掛载成目录的形式来使用。
 
目录在 Linux 的概念上并不是资料夹,这是 Windows 裡的概念。有一个地方可以用来说明这个不同点。对Windows 来说,根目录就是安装Windows 的磁区,比方说 C:。但是 Linux的根目录就不一定是一个主磁区,很可能是大量储存媒体的集合体。
 
也可以说,一部大型电脑伺服器,若有需要加装更多的记忆体,更多的硬碟,更多的 CPU,Linux 都可以轻易接受。甚至 Linux 的核心或是开机档案都可以放在不同的目录、不同的储存装置,不同的磁区,照样能够运作正常。
 
但是 Windows 就不行,甚至硬碟的分割都必须合乎微软的标準。这是相当白痴的做法,只要一个档案不见了,Windows 就无法开机,甚至造成严重损毁。
企业可能会因为一次当机造成无可弥补的损失。
 
微软的 Windows 只适合个人电脑的单 CPU、单硬碟。Windows 没办法从“任意一个磁区”来啟动,硬碟的分割,也只能符合主开机区加上延伸磁区的概念,甚至主开机磁区也有磁柱、数量的限制。
不仅如此,Linux 的核心能够接受套件来加强功能。有一个概念必须要弄清楚,套件其实并不完全是应用程式。凡是跟核心有关的套件一但安装了,它就跟Linux 的核心融为一体,功能变得更加强大,但是微软的 Windows 核心是“钉死的”,它没有办法增加功能,因此每年都要换新一次微软的產品。微软每年都要将他们的作业系统大幅度地改版一次,因此投下了大量的研发经费,然而 Linux 只要安装更新套件就行了。
 
这种概念就像是做了一个机器人,你可以任意加强它的功能,装上手臂就可以举重物,装了双脚它就可以走路,装上翅膀甚至可以飞上天!
 
究竟 Linux 跟 Windows 的核心那裡不一样?简单地说就是:
Linux 的核心具有无限扩充的可能性,Windows 却是钉死的。
 
在可预见的未来,微软每年投下的作业系统研发经费会呈现等比级数的成长,并且推出的產品限制会愈来愈多。也许微软会加进很多新功能,但也就是这麼多而已,使用者也许可以藉由应用程式来增加功能,但是旧有的应用程式并无法用在微软的新作业系统上面。
 
从很多方面来分析,Linux 不但功能强大,而且拥有无限的发展潜力。但是它并没有办法以“商业利益”来推动它的发展。事实上,Linux 的发展主要是靠著“虚拟团队”,也就是网际网路上的高手来发展,这也是为什麼,Linux 一直到了网际网路发达的今天,才有突破性发展的缘故。
 
然而“无限”是一个很笼统的概念,因此 Linux 才会冒出一大堆不同的发行版。以现今市场占有率最大的 Red Hat 以及 Mandrake 来说,Mandrake 的硬体相容性比较好,安装时比较不会遇到困难,然而在函式库方面,Mandrake时常出现连结错误的现象,因此比较不稳定,也较容易当机。新推出的 9.0版本在稳定性方面提昇不少,值得嘉奖。
 
Red Hat 就比较专业,这也是长期耕耘专业伺服器的成果,用来开发程式很不错。然而在安装方面较为不易,除非将整个硬体环境配置成为接近伺服器的环境。最近推出的 8.0 版本已经将 Mandrake 的亲和力以及硬体相容性放进去,未来鹿死谁手还很难说。
 
软的產品,最大的优势在两个方面:一是因为封闭原始码带来的巨额商业利益,一是利用广大的市场佔有率制定各种不同的标準。尤其是后者,因为版权的问题,Linux 无法使用微软的 DirectX 函式库,因此硬体的相容性比较差。
 
早年微软制定出 DirectX 的时候,并不是一个绘图函式库,而是一个 API,也就是应用程式介面。当一个程式设计师所设计出来的应用程式,呼叫DirectX 函式库,只要电脑的硬体设备符合 DirectX 标準,那麼这个应用程式就可以运作正常。
 
早在 DOS 时代,没有 DirectX 函式库,程式设计师必须要亲自撰写装置的驱动程式。然而有了 DirectX,装置的驱动交由它来负责就行了,程式设计师只要负责核心程式码的部份就好了,大大减少开发程式的困难度。
 
然而这却无法弥补微软 Windows 本身的缺陷,因此当应用程式出错的时候,程式设计师要花更多的时间去找出错误,有许多作业系统本身的错误并无法被程式设计师修正,因此也只能期待微软推出修补程式。然而微软每修补一个漏洞,就產生更多的漏洞,直到最后不得不重新推出一个作业系统。
 
目前硬体部份是由 XFree 团队来负责的。所谓 XFree 的意思是,让所有的硬体都能在 X Window 环境下顺利运作,而且不需要使用者亲自撰写驱动程式。因此使用者在购买硬体时,最好能够考虑 XFree 的相容性。在 Red Hat 或是Mandrake 的官方网站都可以看到完整的硬体相容性列表。

No Comments

如何给你的Linux增加交换分区

1.创建交换分区文件,例如大小为4G。
# cd /opt
# touch swapfile
# dd if=/dev/zero of=/opt/swapfile bs=1024 count=4096000
4096000+0 records in
4096000+0 records out
4194304000 bytes (4.2 GB) copied, 146.071 s, 28.7 MB/s
# ls -lh
total 4.0G
-rw-r--r-- 1 root root 4.0G 2011-4-2 15:04 swapfile
说明:从/dev/zero设备读取字节到/opt/swapfile文件。bs代表每块大小以k为单位,bs=1024表示每块1M,count=4096000表示总共4G(该过程大约需要10分钟时间)。

2.格式化交换分区文件
# mkswap -c /opt/swapfile
# sync
说明:-c代表检查分区物理损坏的区域,标记后绕过坏道,sync确保格式化信息被写入物理文件/opt/swapfile里。

3.激活交换分区
# swapon /opt/swapfile

4.修改配置文件使开机自动激活交换分区
# vim /etc/fstab
增加以下一条记录:
/opt/swapfile swap swap defaults 0 1

5.最后通过free -m指令可查看现有交换分区的使用情况。

No Comments

Linux+Apache+Mysql+PHP典型配置

转自:http://www.5ilinux.com/lamp01.html
作者:张微波 2003年12月3日于北京

Linux+Apache+Mysql+PHP典型配置
调试环境:Redhat9.0 Apache1.3.29 Mysql3.23.58 PHP4.3.4
Linux系统的安装我就不讲了,这是基本功,其实这篇文章在类似Redhat的其他linux也应该通用,大家只要掌握我提供的方法就行。记得安装Redhat9。0的时候不要安装系统默认的apache,mysql和php以及相关的软件。已经安装的请用rpm -e * 删除已经安装的包。
1.安装Mysql3.23.58
其实老实说直接安装Mysql官方网站提供的rpm包也是一个比较可行的办法,他的官方网站的rpm包的提供基本跟tar包发行是同步的,这点我比较喜欢,至少安装rpm包的在后面的调试中不会出现mysql库文件找不到的情况。但这里还是有必要讲一下自定义安装的步骤,毕竟网友自定义安装的还说挺多的。
软件获取:http://www.mysql.com/downloads/index.html
安装步骤:
tar zxvf mysql-3.23.58.tar.gz
cd mysql-3.23.58
./configure --prefix=/usr/local/mysql --sysconfdir=/etc --localstatedir=/var/lib/mysql
make
make install
#prefix=/usr/local/mysql mysql安装的目标目录
#sysconfdir=/etc my.ini配置文件的路径
#localstatedir=/var/lib/mysql 数据库存放的路径
安装完以后要初始化数据库,当然你是升级的话不用做这步;
/usr/local/mysql/bin/mysql_install_db

如果系统没有mysql这个用户的话,最好做以下这步:
useradd -M -o -r -d /var/lib/mysql -s /bin/bash -c "MySQL Server" -u 27 mysql
然后我启动mysql
/usr/local/mysql/bin/safe_mysqld &
ok,先看看mysql能否正常工作
mysql -uroot mysql
一般情况下都是不能正常链接数据库,错误提示一般为:
ERROR 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
其实网上大家问的最多的都是整个问题,说什么链接不到mysqld.sock,其实大家不妨看看mysql的错误日志就明白怎么回事,我这里的错误日志是在
/var/lib/mysql/*.err 你会发现mysql只所以不能启动,是因为/var/lib/mysql的权限不允许mysql服务访问,英文mysql默认是调用mysql用户来启动服务的,好了,既然知道是什么原因找到不能启动,那就简单了。我们只要
chown -R mysql:mysql /var/lib/mysql 就行,如果还是启动不了,再慢慢调试权限,反正一般启动不了都是权限的问题。
如果大家还是不能启动不了的话,那就用我的比较繁琐的权限的设置,反正我每次都是这么做的,一般不会有问题,见下:
chown -R root /usr/local/mysql
chgrp -R mysql /usr/local/mysql
chown -R root /usr/local/mysql/bin
chgrp -R mysql /usr/local/mysql/bin
chgrp -R mysql /var/lib/mysql
chmod 777 /var/lib/mysql
chown -R root /var/lib/mysql/mysql
chgrp -R mysql /var/lib/mysql/mysql
chmod 777 /var/lib/mysql/mysql
chown -R root /var/lib/mysql/mysql/*
chgrp -R mysql /var/lib/mysql/mysql/*
chmod 777 /var/lib/mysql/mysql/*
chmod 777 /usr/local/mysql/lib/mysql/libmysqlclient.a
 
做完上面的步骤,然后把你编译目录的一个脚本COPY过去
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
用ntsysv设置使mysql每次启动都能自动运行。
好了,至此mysql安装完毕,你可以这样起动你的mysql服务
/etc/rc.d/init.d/mysqld start
下面这步比较关键,
ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
ln -s /usr/local/mysql/include/mysql /usr/include/mysql
大家可以不做这步,大可以在编译其他软件的时候自定义myslq的库文件路径,但我还是喜欢把库文件链接到默认的位置,这样你在编译类似PHP,Vpopmail等软件时可以不用指定mysql的库文件地址。
2.安装Apache1.3.29。我没有选择安装Apache2.0是我对他还是不放心,因为网上最新公布的apache的漏洞基本上是针对2.0,当然大家可以自己选择安装相应的版本。我这里讲的都是采用DSO动态编译的方法编译Apache.
至于有关apache的编译方法,可以参考我以前的文章《apache的静态/动态编译在apache+php+mysql的应用》 http://www.5ilinux.com/apache01.html
软件获取:http://httpd.apache.org/
tar zvxf apache_1.3.29.tar.gz
cd apache_1.3.29
修改src/include/httpd.h 增大最大线程数
#define HARD_SERVER_LIMIT 256
改成
#define HARD_SERVER_LIMIT 2560
保存退出编译apache

./configure --prefix=/usr/local/apache --enable-module=so --enable-module=rewrite --enable-shared=max --htdocsdir=/var/www &&
make &&
make install
#这里我们通过enable-module参数告诉设置脚本,我们需要启动so和rewrite模块,so模块是用来提DSO支持的apache核心模块,而rewrite模块则是用意实现地址重写的模块,由于rewrite模块需要DBM支持,如果在初次安装时没有编译进apache,以后需要用到时需要重新编译整个apache才可以实现。为此除非你可以确定以后不会用到rewrite模块,否则还是建议你在第一次编译的时候把rewrite模块编译好。
enable-shared=max 这个参数的作用时编译apache时,把除了so以外的所有apache的标准模块都编译成DSO模块。而不是编译进apache核心内。
 
好了安装apache很简单的哦,启动apache看看
/usr/local/apache/bin/apachectl start
然后用ie看http://你的服务器地址。应该能看到熟悉的apache羽毛标志。
3.安装PHP4.3.4
软件获取:http://www.php.net/downloads.php
tar zvxf php-4.3.4.tar.gz
cd php-4.3.4
./configure \
--prefix=/usr/local/php \
--with-mysql=/usr/local/mysql \
--enable-force-cgi-redirect \
--with-freetype-dir=/usr \
--with-png-dir=/usr \
--with-gd --enable-gd-native-ttf \
--with-ttf \
--with-gdbm \
--with-gettext \
--with-iconv \
--with-jpeg-dir=/usr \
--with-png \
--with-zlib \
--with-xml \
--enable-calendar \
--with-apxs=/usr/local/apache/bin/apxs
make
make install
 
#我这里由于服务器需要用到GD库,所以加了一些支持GD的编译参数,GD直接用了redhat自带的GD库,大家没有安装的话可以从安装盘安装,注意除了安装GD以外,还要安装libjpeg,libpng等库文件。另外--with-mysql=/usr/local/mysql指向你安装mysql的路径。--with-apxs指向apache的apxs文件的路径。
vi /usr/local/apache/conf/httpd.conf
查找
在此范围添加
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
 
然CPOPY PHP的配置文件
cp ../php4.3.4/php.ini.dist /usr/local/php/lib/php.ini
修改php.ini文件
register_globals = On

ok!重新启动一下apache服务器
/usr/local/apache/bin/apachectl restart
然后写个php测试页info.php:内容如下
<?php
phpinfo();
?>
正常的话,应该能看到php的信息了,恭喜你的Apche+Mysql+PHP安装成功。
 
好了写了这么多,希望对大家有所帮助!!!

参看文档:
apache的静态/动态编译在apache+php+mysql的应用 http://www.5ilinux.com/apache01.htm

No Comments