星期三, 七月 22, 2009

转贴:选择GPL还是BSD?

作者:Mark Nielsen
编译:ideal

简介

什么是GPL软件授权许可证?
GNU通用公共许可证(GPL,The GNU General Public License)的全文非常烦琐冗长,其主要宗旨是在程序员社区内保证和促进可以连续自由和开放地保证软件源代码的共享。它的出现混淆了"free" 和"freedom"的含义,因为其实际上限制了那些不希望开放共享那些从GPL授权的软件进行二次开发的程序员的自由。Rick Holbert建议我们使用解放软件(liberated software)这个名词来替代自由软件(free software)这个名词。但这仍然使我感到迷惑,因为GNU软件并不是真正的解放软件,其实你并不能任意处理GPL软件的源代码,但是"解放"这个词 仍然要比"自由"这个词来的准确一些。GPL许可证强迫用户将对开放共享的GPL软件的修改后的源代码继续公开。因此,GPL保证了那些软件使用者自由的 连续性,而不是那些修改软件的程序员。如果仔细分析可以发现,GPL有一些令人混淆的地方,一方面它保证了以后软件"接受者"的自由,而剥夺了软件开发者 任意处置自己编写的代码的权利。总的来说,对于那些希望将自己的软件贡献出来的人来GPL是令人满意的,因为在GPL授权许可下,软件在整个开发中都保证 了源码的开放和所有的人都可以使用和添加修改软件。
但是从商业角度来说,当然是希望使用那些可以可以关闭源码共享的软件,因为你往往是希望根据其开发一个具有潜在价值的产品。如果你关闭了具有价值的软件的 源码,并且对其进行改进和二次开发,使其具有更高的价值,这样你才能向那些没有能力自行开发的软件使用者使收费,那么你就应该考虑使用具有BSD授权许可 的软件作为起点。

考虑另外一种情况下,如果你更着重于服务而不是软件产品,那么GPL软件对你来说就没有什么缺陷了。例如,IBM在其各种服务器中使用Linux。如果你 是在GPL软件平台之上开发一个商业软件,你也不必担心GPL对你的影响。另外,任何从头开发的软件或者是使用BSD软件作为基础来开发的软件,你都可以 封闭自己的源代码。仍然有很多方法可以利用GPL软件而不威胁你的商务活动。一般来说客户并不真正关心事情是如何完成的,他们仅仅关心事情完成的结果。一 个最好的例子是在最流行的桌面操作系统之上运行的各种软件,使用这些糟糕的软件的用户中99%都不知道,也不关心他们使用的软件是如何的垃圾和糟糕。只要 看看用户是如何乐于下载和安装那些号称是最可靠和稳定的保证向后兼容的操作系统的补丁就可以理解这一点了。为什么一开始这些操作系统不能保证稳定和可靠的 呢?并且如果最稳定和可靠的当前版本仍然时常崩溃并且有巨多的bug,那么以前的版本是不是垃圾呢?我一直在对人们强调那些比垃圾更加稳定和可靠的东西, 实际上仍然是垃圾,只不过是稍稍更加稳定和可靠一些罢了。这并没有太多的意义。在商业上,重要的不是被卖的产品的可靠性和稳定性,如果你能满足使用者的最 低要求,并且你能以便宜的价格占有主要市场,或者你能实现垄断,并且对用户进行洗脑宣传,大量进行广告金钱宣传,那么你的产品就是最"棒"的。如果你由于 商业的原因害怕GPL许可证,那么你可能并没有足够地深入和仔细地考虑你的商业模型。在US最流行的Linux发布并不是最好的,其缺乏很多应该具有的特 色,但是它仍然是最流行的,因为它已经占有了市场,并且每次版本升级其产品都有改进,这样使得它们的客户感的很开心,即使用户并不知道软件实际上应该有多 好。

什么是BSD授权许可证?

BSD授权许可证(FreeBSD Copyright Information)具有多种授权许可证。总的来说你可以对软件任意处理,只要你在软件中注明其是来自于那个项目的就可以了。也就是说你具有更大的自 由度来处置软件。如果你对软件进行了修改,你可以限制其他使用者得到你修改的软件的自由。

BSD授权许可证没有实现"通透性"自由,也就是其不保证软件源代码开放的连续性。这样如果你希望采用别人开发的BSD软件,进行一些修改,然后作为产品卖,或者仅仅保密自己的做的一些除了软件开发以外的工作,那么你就可以从中得利。

当一个非程序员仅仅理解一个程序的功能,但是不了解程序是如何做的时,即使你没有在开发软件中做任何工作那你就可以通过高超的市场技巧将软件卖给该用户。 比如拿最流行的桌面操作系统作为例子,你就能很好的理解一个没有很好的程序技巧的软件公司只要具有高超的市场营销策略同样可以将垃圾卖给客户。如果你不具 有很强大的编程能力,但是具有很强的市场能力和能将其他开发者的软件包括到自己的系统,而同时不将自己的修改开放出来将是非常强大的能力。从赚钱为目的的 商务角度看来,如果你使用了BSD授权许可证的软件,那么你就可以任意进行。你可以更好地控制你的OS系统,并且防止其他人拷贝你的商业产品。

就我看来,只要是开放源码的东西,就都不是垃圾,因为只要是开放的其就可能被修改,发生变化;而一旦变成封闭源码的东西,它马上就成为了垃圾,因为我不知道它是如何实现的。所有BSD授权声明的开放源码的软件都是很棒的东西。

哪种更适合你?

有一个信念你是必须理解的:授权许可之间并没有好坏之分,除非你从你希望达到的目的的角度去看待问题。一个授权许可证是人们行为的基础,就象法规一样。从 商务角度来说,美国有一个非常棒的政府,因为这里是金钱统治一切;从人性角度看来,其他政府可能更具有理想主义一些。但是如果他们实现了他们人民希望达到 的目标,它们之间是没有好坏之分的。如果授权许可证保证了你希望的目标,那么它对你来说就是好的,但是对于其他人来说可能并不是如此,但是你可能往往不会 关心别人对该授权许可证的看法。因此,只有白痴才会认为一种授权许可证比另外一种授权许可更好。一旦我们知道了你创造程序的目标,那么我们就可以判断你的 软件更适合使用哪种授权许可。

无论什么时候我和BSD人们交谈,他们往往也承认GPL是一个不错的东西。怎么会这样呢?正如前面讨论的那样,授权许可是为人们来使用的。没有人强迫你对 你的软件使用GPL或者是BSD授权许可。因此如果你选择使用GPL作为自己创造的软件的授权许可,那么不要在意人们对源代码具有完全处理的权限。既然你 选择了GPL,那么你就不应该在意,因为你没有希望从其他封闭授权的软件获利,因此你就不希望其他人通过你的软件获利。GPL划定了游戏范围以保证每个人 能平等地从同一个软件获利的权利。就象好的市场驱动竞争以促进商业发展一样,大家都有平等的权利但只有最优秀的人可以获胜一样。同样一旦你选择了将自己的 软件平等地给所有人共享。如果有人不想象别人那样共享代码,他可以选择投资几百万来开发自己的软件,没有人会阻止他这么做。

可以对软件定义若干种授权许可,例如Perl同时具有GPL授权许可和艺术性授权许可(Artistic Licenses)。如果你希望你的软件和其他自由软件一起配合使用,那么你必须对其不仅仅定义GPL授权许可。但是GPL一般往往并不能和其他免费软件 授权许可很好的配合使用。

自由软件社区对于GPL的一种批评是:它偷窃了自由(freedom)这个单词。问题是这样的:一个独裁者有自由成为一个独裁者吗?答案:是可以的。自由 和社区没有任何关系。自由意味着你可以在任何时候随意做你想做的任何事情。人们有自由选择不自由(have the freedom not to be free)。困扰我的一件事情是:虽然我从政治角度理解为什么他们要这么做,但是FSF和GPL这些人则倾向于重新按照他们希望的目的来定义自由的含义, 但其实他们只是看到了很狭义的自由的含义,而不是完全的自由。他们感兴趣的是在社区内部共享软件代码,而不是个人对自己的软件的任意处置的自由,例如将 GPL化的一段代码变成封闭代码等等。因此GPL本身从自由真正的含义上并没有真正地促进自由,而是限制了自由,仅仅保证了社区内共享代码的自由。我不喜 欢这些家伙,他们重新定义了自由的含义,而且如果你按照他们的意思定义自由他们往往就懒得答理你。但是我认为从政策意义上来说,他们是很好的,因为他强迫 人们考虑自由,大多数人没有时间去考虑自由的真正含义。

那么对于BSD,它也是不坏的选择。它对于那些希望编写封闭代码程序的程序员是很有意义的。我理解为什么BSD授权许可这么有吸引力和它对于一些人为什么如此重要。但是也使我对从政治角度来看没有意义的BSD有了更深入的理解:

如果有人以BSD授权许可发布软件,那么别人就可以利用该软件创建一个封闭源码版本,他不必向任何人公开自己做了哪些修改。因此一个项目组可能花费数年来 开发一个很棒的软件,而一个人或一个公司则可能"偷窃"该软件,进行一些简单的二次开发并形成一个封闭源码的产品来盈利,却和原始开发者则可能没有从中得 到任何利益。我就是不能理解为什么这么多人这么辛苦的工作来努力使其他人成为百万富翁。GPL则组织这种事情的发生,它保证了软件开放性的连续和所有使用 者具有平等的权利。

BSD授权许可危险性的一个明显的例子就是:它如何使一个病毒扩散到整个世界。只要看看Kerberos的情况就可以了解情况是如何糟糕的。对于我自己来 说,当一个邪恶的公司糟蹋了一个软件,那么就没有任何办法强迫它们和社会一起合作来改善情况,我个人是抵制所有这些软件的。我不能承受担心相互之间不兼容 的版本到处出现。Kerberos就是这样被糟蹋掉的,我永远不会再使用它。为什么说它被糟蹋了呢?被糟蹋的版本到处都是,而且影响很大之间又不相互兼 容。我不会花时间去使用这样的软件:知道有一天它会变成封闭源码的,但是而且会和我在使用的版本不兼容。对于我来说不兼容性是非常糟糕的和不能接受的,如 果我能避免使用这样的软件我一定不会使用它。

既然GPL和BSD各有优缺点,那么哪个更适合你呢?其中一个,没有一个或者是都适合你。重要的是要理解授权许可的含义,如果你不重视结果,那么很好。虽然我不喜欢BSD授权声明适用于我的软件,但是如果你不介意别人利用你的软件获利那么BSD就是你的最好的选择。

哪种更适合?

哪种更好一些?答案是两个一样好。然而我选择了GPL,为什么呢?我对于所有的自由软件都是非常的感激,我没有真正开发任何能被用来售卖的软件(我通常使 用Python来开发web脚本)。我为世界创造的任何东西我都希望在我之后有人能利用它和改进它,所以我选择了GPL。但是我从来没有对我的软件使用 BSD授权许可,因为我不希望那些不劳而获者利用我的软件来盈利,而隐藏对软件的修改。但是BSD授权许可对我来说好的一面是它是未来的一种选择,我不是 用它但是我很高兴它是一种选择。

结论

Anonymous Coward有很好的结论:“我可以认真写一个很长的短文作为回应,但是大多数的读者可能希望有一个简单的概要:GPL授权许可有益于软件的解放,BSD 则有益于人的解放。对于GPL,确保了软件的发展拥有比软件开发者更多的自由;而对于BSD,保了软件开发者拥有比软件的发展更多的自由。“
我个人这样认为:

* GPL提倡和促进最终用户的自由
* BSD提倡程序开发者的自由。

总的来说,任何认为一种授权许可比另外一种好的人都是思想简单的人,他们不能理解他们仅仅从他们自己的角度考虑问题,而不是从别人的角度考虑问题。我希望 强调的是这些人应该被消灭,这样他们的DNA就不会传播,不会创造那种用另外的标准对待别人和做出判断的政客、将军和法官。

我这里严重的冒犯了那些在关于软件授权问题上为别人做决定的人,可能要稍微冒犯了那些让别人为自己做决定的人。我不介意有关授权许可是如何影响世界的理 论,但是不要宣称一种授权比另外一种好的,因为这是一种基于特定价值的选择而已,而不是一种事实。我接受这样的事实:你所考虑的对你来说随最合适的授权许 可,但是不一定是其他人的最佳选择。

参考资料

感谢Rick Holbert的建议,使得我得以提高我的文章,使我明白被解放一词比自由一词更适合于讨论GPL。
Slashdot有很多很好的文章给予我了很多的启迪。

作者Mark Nielsen一个独立咨询者,给诸如GNUJobs.com等写评论文章,编写自由软件和在eastmont.net作为一个自愿者工作。

星期五, 五月 08, 2009

エンコード・コレクション (メール、テキスト関連)

http://homepage1.nifty.com/glass/tom_neko/web/web_03.html

星期三, 三月 11, 2009

File::basename使用时需要注意的问题

File::basename使用时,取上传文件的文件名时,当文件名中含有下列字符时,不能正确的解析。

SHIFT-JISコードに 5C が含まれる漢字 [―](815C) [ソ](835C) [Ы](845C) [Ⅸ](875C) [噂](895C) [浬](8A5C) [欺](8B5C) [圭](8C5C) [構](8D5C) [蚕](8E5C) [十](8F5C) [申](905C) [曾](915C) [箪](925C) [貼](935C) [能](945C) [表](955C) [暴](965C) [予](975C) [禄](985C) [兔](995C) [喀](9A5C) [媾](9B5C) [彌](9C5C) [拿](9D5C) [杤](9E5C) [歃](9F5C) [濬](E05C) [畚](E15C) [秉](E25C) [綵](E35C) [臀](E45C) [藹](E55C) [觸](E65C) [軆](E75C) [鐔](E85C) [饅](E95C) [鷭](EA5C) [偆](ED5C) [砡](EE5C)

原因:正则表达式对于SHIFT-JIS码的文字,不能很好的解析。

http://q.hatena.ne.jp/1202474647

星期日, 三月 08, 2009

文摘---即战力

  1. 所谓即战力就是即使进入全新的环境,也能够通过冷静地观察发现事物的本质,继而迅速做出正确的判断与计划,而这也就是专业主义。
  2. 外语能力、理财能力、解决问题的能力是打开专业主义大门的钥匙。
  3. 在当下,“秩序”一词的重要性已经渐趋弱化,只要有实力,即使不谙世事的毛头小伙也可以一鼓作气爬到社会的最顶层。这一点,早已在体育竞技与艺术领域得到了印证,一个又一个年的天才们不断以他们的成绩或作品感动着整个世界。这是因为体育竞技有着各种各样的规则制约,而艺术与音乐作品也较容易辨别真伪。如果企业经营与市场竞争也拥有足够透明度的话,其性质应该与体育竞技和艺术一样简单。。
  4. 30岁成功,40岁退休。优秀的商务人士在30岁左右就应该为某个企业的总经理或董事长,否则到40岁都未必能够成功----这就是美国商界通行的成功标准
  5. 印度人最值得骄傲的东西则是学习----不断汲取各方面的知识以完善自身
  6. 自己来决定前进的方向,只有自力更生、自食其力的人才能够获得生存的机会,这就是荒野之上唯一的法则
  7. 像松井秀喜那样具有,只要有必要就彻底放弃从前的那些常识以及成功经验,一切从零开始学习的勇气与机变是十分了不起的。
  8. 杰克韦尔奇的黑带大师制度:若公司员工感到企业的某些政策是错误的,可以向这一政策的制定者提出意见、进行论战并让第三者进行裁定。从而让GE公司内部问题的解决速度得到了极大的提升
  9. 杰克韦尔奇的无边界管理:在公司内部设立对公司业务提出否定意见的部门,能够在其他公司因弱点渐显而气息奄奄的时候未雨绸缪、弥补漏洞。企业应不安于现状,在不断否定中成长,这就是韦尔奇的理论。
  10. Stay hungry, Stay foolish
  11. 『不做无谓的事,不花无谓的心思』  --- 挤时间
  12. 家庭教育:以提问的方式来促使孩子思考
  13. 讨论的目的不是为了击败对方,也不是为了让自己的观点得到大家的同意,而是为了发现问题,发现解决问题的策略从而能解决问题。
  14. 麦肯锡公司的会议绝非是一种仪式,而是不同观点之间直接碰撞的智力角斗场。通过不同观点的碰撞来寻找事物或者问题的本质。不发表意见,不以事实为根据发表意见,好好先生形式的发表意见都会被鄙视。
  15. 基于事实的推理论证和理论思维是一种世界通用的语言。
  16. 虽然不惧挑战的勇气是必需的,只有具备的从对方那里巧妙地获取有用的信息的“提问能力”,敏锐地发现对方发言中在数据及事实基础上存在的错误的“聆听能力”,以及用明确的理论和巧妙的言语组织提供全新视点的“言说能力”,才能说是真正的拥有了“讨论能力”。
  17. 贷款买房把贷款额度控制在自己年收的五倍之内。

星期日, 二月 22, 2009

文摘---今周刊633期.-.小S的公公神祕富豪許慶祥

许庆祥投资语录

谈基本心法
  • 绝对不要借钱买股票
  • 镇静、耐心、深入研究在研究,是在股市常胜不败的11字箴言
  • 满副好牌在手,就不怕市场震荡
  • 拥有足够的知识,就能够克服贪婪和恐惧的人性弱点

谈给年轻人的建议
  • 年轻人不要好高骛远,借钱买股票压力大,失去健康也失去生命
  • 年轻人投身股海,早赔总比晚赔好

谈资产配置
  • 无论行情好坏,一定至少要先预留未来3年生活的现金,才不会乱了方寸
  • 年纪愈大,犯错的空间愈小,要预留现金的比率必须拉高
  • 资料一定要整合,才能转化为有用的资讯

谈选股
  • 我买的股票,一进去就有抱三年的准备,而且一定要是未来3年每一年获利都成长的公司
  • 选股三要诀:1,选CEO;2,公司具有核心竞争力,产品要有延伸性;3,产品是否在趋势上
  • 选股就是要化繁为简,把选股逻辑简单化

谈长抱作短策略
  • 只要是好股票,看准长期趋势,都可以拿部分持股抱长作短,涨上去有部分能增值,跌下来也很开心,因为又有低价可以捡便宜

谈如何进场
  • 第一次进场,先布局三分之一,方向看对了,再逐步加码
  • 如果局势看不太清楚,就把布局的时间拉长

谈如何出场
  • 企业不再具有成长动能、重要经营阶层离开、有新的替代技术威胁,都是基本面有疑虑的讯号,应断然出场

谈如何停损
  • 高档停损是必要的,但相对低挡就没有必要停损

谈未来趋势
  • 买中国人寿就是买中国的GDP,一直要到GDP成长趋缓,或保单普及率饱和,才是出场时机
  • 节能减碳和人机互动是两大趋势,节能科技、MEMS相关股票是可长抱产业

许庆祥之子:许雅钧
因为股票是不变的,变的是人的想法,因此要从股市获利,先决条件一定要有稳定的心理状态与自信心,脑袋要清晰、请需要稳定,才能做出准确的判断

自信和目标是首要条件
做一件事就一定要认真去做





星期四, 二月 19, 2009

Hardware and Installation-0219

four methods to start the RHEL Desktop or Server installation process:
1: Boot from a copy of the Red Hat Enterprise Linux installation CDs or DVD
2: Boot from the first RHEL installation CD or DVD
3: Boot from a special RHEL boot CD or USB key
4: Boot from a kickstart server using a PXE network boot card

The last three options generally assume that you're going to install RHEL over a network.


The Installation Log File

/root/install.log

The commands used by Anaconda to install Linux
/root/anaconda-ks.cfg file
This can serve as a template for the kickstart process

The Console Installation Output Screens
Six consoles are available during the installation process, and each tells a different story.
CTRL-ALT-F1
Text installation display; if you're running in graphical mode, it includes the basic commands to start graphics drivers

CTRL-ALT-F2
Accesses a bash shell prompt; available after the first few installation steps
The installation files from the CD or network source will be mounted on the /mnt/source directory. You can also find a number of interesting files in the /tmp directory.

anaconda.log:from third console
ks.cfg:in kickstart case
modprobe.conf:Includes detected hardware that requires a driver module
netinfo:Contains IP address information for configured network cards
syslog:from fouth console
Xconfig.test:a temporary X Window configuration file

CTRL-ALT-F3
Lists the log of installation messages; if network problems occur, you may see related messages here

CTRL-ALT-F4
Displays all kernel messages, including detected hardware and drivers

CTRL-ALT-F5
Installation displays partition formatting; nothing is shown here until Anaconda formats the actual partitions(output of the mke2fs command)

CTRL-ALT-F6
Graphical installation display; active only if you're running the installation program in graphical mode (was formerly available from CTRL-ALT-F7). Naturally, if you're installing in text mode, nothing is shown in this console

星期三, 一月 21, 2009

Hardware and Installation-0122

Configuring a Network Installation
1: copy the installation files from each CD to a common directory
2: configure sharing on the directory
3: activate the NFS, FTP, or HTTP network

Creating an NFS Installation Server
NFS is the most efficient way to share files between Linux and Unix computers.
1. Create a directory for your installation files.
# mkdir /inst

2. Insert the first Red Hat Enterprise Linux installation CD/DVD into its drive.
# mount /dev/cdrom /media
# mount -ro loop /tmp/firstcd.iso /media( if all you have are the ISO files in the /tmp directory)

3. Copy the required files from the first Red Hat Enterprise Linux installation CD. Use the cp -ar /source/. /inst command, where source is the mount directory (such as /media/RHEL 5 i386 Disc 1).Don't forget the dot (.); it copies hidden files, including the .discinfo file from the first Red Hat Enterprise Linux installation CD.

4. Unmount the first Red Hat Enterprise Linux installation CD. If it's an installation DVD, skip to step 6. Use the umount /source command.

5. Repeat steps 2, 3, and 4 with the remaining Red Hat Enterprise Linux installation CDs.

6. Set up an NFS share. Add the following line to /etc/exports. You can do it with a text editor such as vi or the system-config-nfs utility.
/inst *(ro,sync)

7. Export the shared directory
# exportfs -a

8. Make sure there's nothing blocking access to NFS. The default Red Hat Enterprise Linux firewall blocks access to an NFS server. While inelegant, the following command "flushes," or turns off, the standard Linux firewall from the local computer. If you've enabled SELinux, you'll also have to use the SELinux Management Tool to change the associated NFS boolean variable to "Allow the reading on any NFS file system". Don't forget to restart NFS to activate all of your changes.
# iptables -F

9. Now you can activate the NFS service. The following commands assume that it's already running (which you can check using the service nfs status command)
# service nfs stop
# service nfs start

10. Finally, you can check the status of your share. If it's working, you should see the contents of the /etc/exports directory when you run the following command.
# showmount -e


RHCE Prerequisites-0121

cron

crontab -e
crontab -u username -e

Five schedule fields appear on the left side of each crontab entry:
minute, hour, day of month, month, and day of week.
0 17 * * *
0 17 * * 1
0,10 17 * * 0,2,3
0-10 17 1 * *
2 8-20/3 * * *

Backup and Restore

Tape Backups
Using magnetic tape in Linux depends on the ftape system using tarballs to group directories into single compressed backup files.

DVD/CD Backups
mkisofs -J -r -T -o /tmp/backhome.iso /home
cdrecord -v /tmp/backhome.iso

Hard Drive(RAID) Backups

gzip and bzip2
gzip big.jpg
bzip2 big.jpg

gzip -d big.jpg.gz
bzip2 -d big.jpg.bz2

tar
The tar command was originally developed for archiving data to tape drives. However, it's commonly used today for collecting a series of files, especially from a directory.
tar czvf home.tar.gz /home
tar xzvf home.tar.gz /home

System Log File Management
Log files are controlled by the syslogd daemon and organized in the /etc/syslog.conf file.

Basic TCP/IP Networking

ping
The ping command allows you to test connectivity-locally, within your network, and on the Internet.
assume your IP address is 192.168.122.43 and
the gateway address on your network is 192.168.122.99.

1:First test the integrity of TCP/IP on your computer.
# ping 127.0.0.1
2:see if you're properly connected to your LAN
# ping 192.168.122.43
3:ping the address of another computer on your network
# ping 192.168.122.78
4:ping the address for your gateway
# ping 192.168.122.99
5:If possible, ping the address of your network's connection to the Internet
6:finally, ping the address of a computer that you know is active on the Internet.

ipconfig
The ipconfig command can help you check and configure network adapters.

netstat
The netstat command is versatile; it can help you see the channels available for network connections, interface statistics, and more. One important version of this command, netstat -r, displays routing tables that can tell you if your computer knows where to send a message.

Configuring Name Resolution
Using four configuration files, Linux can help you translate computer host names to IP addresses.

/etc/sysconfig/network
to specify information about the desired network configuration.

/etc/hosts
to contains IP addresses and their corresponding hostnames.

When your system tries to resolve a hostname to an IP address or tries to determine the hostname for an IP address, it refers to the /etc/hosts file before using the name servers (if you are using the default Red Hat Enterprise Linux configuration). If the IP address is listed in the /etc/hosts file, the name servers are not used. If your network contains computers whose IP addresses are not listed in DNS, it is recommended that you add them to the /etc/hosts file.

/etc/resolv.conf
the IP address of each DNS server is listed with a simple line similar to this:
nameserver 192.168.0.1

/etc/host.conf
When your computer looks for an IP address, this file determines whether it searches through /etc/hosts or DNS first. This is usually a one-line file: order hosts,bind

But in most cases, this file has been superseded by /etc/nsswitch.conf

/etc/nsswitch.conf
The key directive in this file, with respect to name resolution, is
hosts: files dns

This is a more straightforward expression of where Linux looks for an IP address when it sees a host name. First, it looks at the file, /etc/hosts, and then it looks at the available DNS server, as defined in /etc/resolv.conf

星期五, 一月 09, 2009

RHCE Prerequisites-0109

Shells

Their default environment variables' values are shown in the output to the env command.

echo $PATH

add the /sbin directory to your PATH
PATH=$PATH:/sbin
export PATH

Every time you create a new file, the default permissions are based on the value of umask.
In the past, if the value of umask is 022, the default permissions for any file created by that user is 777-022, but Now 666-022, as new files can no longer get executeable permissions

When you type the umask command, you get a four-number output such as 0245. As of this writing, the first number in the umask output is always 0 and is not used. In the future, this first number may be usable to allow for new files that automatically include the SUID or SGID bits.

SUID and SGID

Shadow Password Suite
Historically, all that was needed to manage Linux users and groups was the information included in the /etc/passwd and /etc/group files. These files included passwords and are by default readable by all users.

The Shadow Password Suite was created to provide an additional layer of protection. It is used to encrypt user and group passwords in shadow files (/etc/ shadow and /etc/gshadow) that are readable only by users with root privileges.

THE Superuser


su The superuser command, su, prompts you for the root password before logging you in with root privileges.

sudo The sudo command allows users listed in /etc/sudoers to run administrative commands. You can configure /etc/sudoers to set limits on the root privileges granted to a specific user.

Red Hat Enterprise Linux provides some features that make working as root somewhat safer. For example, logins using the ftp and telnet commands to remote computers are disabled by default.

/etc/skel for Home Directories
Basic configuration files(hidden) for individual users are available in the /etc/skel directory.
If you want all future users to get specific files in their home directories, include them here.

Red Hat Enterprise Linux provides an easy way to control network service daemons through the scripts in /etc/rc.d/init.d. The actual daemon itself is usually located in the /sbin or /usr/sbin directory.

/etc/init.d/httpd restart

星期四, 一月 08, 2009

RHCE Prerequisites-0108

Architectures
RHCE EXAMS based on the basic Intel 32-bit or i386 architecture


Intel Communications Channels

Three basic channels are used to communicate in a basic PC:
1: interrupt request (IRQ) ports --------/proc/interrupts
An IRQ is a signal that is sent by a peripheral device to the CPU to request processing time.
Normally, each device needs a dedicated IRQ (except for USB and some PCI devices).

2: input/output (I/O) addresses --------/proc/ioports
It's a place where data can wait in line for service from your CPU.

3: direct memory address (DMA) channels --------/proc/dma
A direct memory address (DMA) is normally used to transfer information directly between devices like sound cards which include their own processor, bypassing the CPU.


File Filters
sort, grep, egrep,wc, sed, awk

The wc command, short for word count, can return the number of lines, words, and characters in a file.

The sed command, short for stream editor, allows you to search for and change specified words or even text streams in a file.
sed 's/Windows/Linux/g' opsys > newopsys

The awk command, is more of a database manipulation utility. It can identify lines with a keyword and read out the text from a specified column in that line.
awk '/Mike/ {print $1}' /etc/passwd