<?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>学习日记</title>
	<atom:link href="http://www.learndiary.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.learndiary.com</link>
	<description>正在关注 Linux 、开源的个人博客。</description>
	<lastBuildDate>Wed, 04 Apr 2012 07:32:14 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>天堂、地狱、人间：关于开源软件盈利方式的一点思考</title>
		<link>http://www.learndiary.com/2012/04/%e5%a4%a9%e5%a0%82%e3%80%81%e5%9c%b0%e7%8b%b1%e3%80%81%e4%ba%ba%e9%97%b4%ef%bc%9a%e5%85%b3%e4%ba%8e%e5%bc%80%e6%ba%90%e8%bd%af%e4%bb%b6%e7%9b%88%e5%88%a9%e6%96%b9%e5%bc%8f%e7%9a%84%e4%b8%80%e7%82%b9/</link>
		<comments>http://www.learndiary.com/2012/04/%e5%a4%a9%e5%a0%82%e3%80%81%e5%9c%b0%e7%8b%b1%e3%80%81%e4%ba%ba%e9%97%b4%ef%bc%9a%e5%85%b3%e4%ba%8e%e5%bc%80%e6%ba%90%e8%bd%af%e4%bb%b6%e7%9b%88%e5%88%a9%e6%96%b9%e5%bc%8f%e7%9a%84%e4%b8%80%e7%82%b9/#comments</comments>
		<pubDate>Wed, 04 Apr 2012 07:32:14 +0000</pubDate>
		<dc:creator>littlebat</dc:creator>
				<category><![CDATA[开源]]></category>
		<category><![CDATA[思考]]></category>
		<category><![CDATA[盈利]]></category>

		<guid isPermaLink="false">http://www.learndiary.com/?p=4200</guid>
		<description><![CDATA[原来在网上看到一个故事，大意是天堂和地狱的人都用一种超长的勺子吃饭，天堂的人互相喂着吃，其乐融融；而地狱的人使劲的争着用勺子抢着吃，结果是谁也吃不到饭。今晨，我突然有了... ]]></description>
			<content:encoded><![CDATA[<p>原来在网上看到一个故事，大意是天堂和地狱的人都用一种超长的勺子吃饭，天堂的人互相喂着吃，其乐融融；而地狱的人使劲的争着用勺子抢着吃，结果是谁也吃不到饭。今晨，我突然有了一点关于这个故事的一点思考，是关于开源软件盈利方式的，希望各位批评和指正。<br />
<span id="more-4200"></span><br />
关于开源软件的定义，可以参考我的另一篇日记：<a href="http://www.learndiary.com/2011/10/%E5%BC%80%E6%BA%90%E8%BD%AF%E4%BB%B6%E5%92%8C%E8%87%AA%E7%94%B1%E8%BD%AF%E4%BB%B6%E5%AE%9A%E4%B9%89%E5%88%9D%E6%8E%A2/">开源软件和自由软件定义初探</a>。开源软件和一些闭源软件一样，也有不以盈利为目的，而以造福大家为目的、为提高技术和交流、好玩等为目的的。而对于有盈利目的的商业开源软件来说，一般不是靠出售软件的许可拷贝（双许可证的方式除外），而主要是以周边的服务为盈利来源的。</p>
<p>在我看来，一个有盈利目的的开源软件主要需要考虑两点问题。一是：拿什么利人？就是这个开源软件对别人有什么用处；二是：拿什么利己？就是这个开源软件的盈利点是什么。前者是后者的基础，而对于要靠开源软件吃饭的人来说，后者更是安身立命的基础，是前者的前提。试想，饭都没得吃，人都饿死了，怎么能实现前者的利人效果呢？</p>
<p>在这里，我就想到前面提到的那个故事，引申出两个极端的利人与利己模式。</p>
<p>在天堂，大家都知道自己不会被饿死，你用长勺喂了别人，自然有人喂你，这是一种天生的相互信任和相互帮助。类比到软件这里，可以类比这种情况：软件的开发者只想着怎样最大化的利人，所以他开源，希望大家都能完善这个软件，所以他无差别的对待使用者，希望这个软件对大家有用。当然，软件的开发者是要吃饭的，于是，软件的使用者发自内心的感谢软件的开发者，他们主动捐赠开发者。让开发者不会为了生计问题而影响到软件的开发。</p>
<p>在地狱，大家都知道不会有人来喂自己，别人只会来抢你碗里的东西，你不保护好自己的东西，就会瞬间失去所有。你不去抢外面的东西，有限的资源瞬间就被抢光。类比到软件这里，可以类比这个情况：开发者千方百计的保护自己的东西，专利加版权加加密加律师，而使用者则千方百计的破解，大家都希望别人的都是自己的，自己的还是自己的。这样，拳头大的就能更好的保护拥有的，抢夺没有的，拳头大的越来越大，拳头小的越来越小。最后，拳头小的都成了大拳头的附庸。</p>
<p>上面是冰火两重天的天堂与地狱，还是回到现实中的人间吧。在人间，人心基本上都有自私心和利他心，只不过各自所占的份量不同：人与人不同，地区与地区不同，时代与时代不同。所以，一般来说，你没法预料到你碰到是自私心重的人还是利他心重的人。所以，你要留一手，你会为自己的付出的一定比例的东西设定一个取得的条件。哦，你想取得我的东西吗？先付钱吧。</p>
<p>现在把这种思考方式引申到开源软件的盈利方式上来。因为这里不是天堂，所以，有靠开源软件来吃钣的人，我想不应该把盈利点放在使用者的捐赠上吧（不知道这个世界上有没有开源软件的作者纯靠捐赠生活的）？于是，在确保这是一个对大家有用的开源软件的基础上，我需要为开源软件保留上一些盈利点。如：软件开源免费，服务收费；社区版本开源免费，商业版本闭源收费；软件开源免费，用搭载软件的硬件销售盈利等等。另，还有一些更迂回的盈利点，技术，人脉，为其它产品线开路等等。</p>
<p>在前面的那个故事里，天堂的人和地狱的人为什么会有截然相反的心理和行为呢？最直接的回答就是，因为他们身处天堂和地狱。这就是一个环境的问题。引申到开源盈利方式的问题上就是，在一些区域有效的盈利模式在另一些地区会无效。而更极端的情况下，在特定的区域、特定的时间、特定的软件类型、开源软件几乎就是不可能盈利的，任何想在这些特定的条件下进行开源盈利尝试的人都几乎不可能有盈利的。</p>
<p>关于我们对待开源软件盈利的态度，我觉得应该避免两个极端，一是极端乐观，不顾区域现状，不顾软件类型，一味为了开源而开源，却又希望能够盈利。一句在网上很流行的话是“理想很丰满，现实很露骨。” 这种盲目的乐观导致的结果是冲动的热情很快被无情的现实所浇灭；二是极端悲观，坚持开源与盈利就是一对矛盾，不可调和，只有确保代码的保密性，确保专利的排他性才能赚钱。</p>
<p>关于对待开源软件的正确态度，我的看法是“立足大地，向往天堂。” 假设大地之下是地狱，大地之上的天空是天堂。前提是，假设大多数的人都赞成天堂的生活方式（因为我不敢确定世界上是没有那么一种人，噬血如命，渴望争斗，渴望无规则，无秩序，就算是在这种他认为的乐园中被更强大的拳头碾碎也无怨无悔）。“立足大地”就是看清现实，根据所在区域的特点进行开放程度的确定，盈利点的确定，包括那种开源平台下的闭源软件，我觉得对于整个开源软件的生态来说，也是有益的一份子；“向往天堂”，就是在确保适当的盈利点上，一点一点向理想的“天堂”多走一点。我虽然会赚少一点，但是我会快乐多一点。难道赚钱不正是为了让自己和身边的人更快乐、更幸福一点么？当然，同样，我也不能确定这个世界上有没有那么一种人，他们的人生目的就是为了赚钱而赚钱，钱多一些，再多一些，其它都不考虑。</p>
<p>我理解的开源软件的盈利，实际上就是从事开源软件相关的人都共同放弃一部分利益，用于公共的利益，但保留特定的盈利点以确保自身的生存和发展。</p>
<p>希望各位想在开源软件盈利这一块有所作为的朋友都心想事成。本人在业余也一直在探索和实践普通Linux和开源技术爱好者的开源相关盈利之路（参看<a href="http://www.learndiary.com/2010/10/%e5%bc%80%e6%ba%90%e7%bb%8f%e6%b5%8e%e6%8e%a2%e7%b4%a2%e4%b9%8b%e4%b8%ba%e6%89%8b%e6%9c%ba%e5%86%85%e5%ad%98%e5%8d%a1%e5%ae%9a%e5%88%b6-gnulinux-%e5%b7%a5%e5%85%b7%e7%b3%bb%e7%bb%9f/">这里</a>：《开源经济探索之为手机内存卡定制 GNU/Linux 工具系统》，和<a href="http://www.learndiary.com/2011/01/%E6%89%8B%E6%9C%BA%E5%86%85%E5%AD%98%E5%8D%A1%E7%B3%BB%E7%BB%9F%E6%8A%80%E6%9C%AF%E6%9E%B6%E6%9E%84%E6%8E%A2%E7%B4%A2/">这里</a>：《手机内存卡系统技术架构探索》），只是太过龟速，现在还在这条路上慢慢爬呀爬。上面的日记也算是我理清自己思路的一点小结。欢迎批评、指正和交流。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.learndiary.com/2012/04/%e5%a4%a9%e5%a0%82%e3%80%81%e5%9c%b0%e7%8b%b1%e3%80%81%e4%ba%ba%e9%97%b4%ef%bc%9a%e5%85%b3%e4%ba%8e%e5%bc%80%e6%ba%90%e8%bd%af%e4%bb%b6%e7%9b%88%e5%88%a9%e6%96%b9%e5%bc%8f%e7%9a%84%e4%b8%80%e7%82%b9/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Linux 下使用跳舞毯</title>
		<link>http://www.learndiary.com/2012/03/linux-%e4%b8%8b%e4%bd%bf%e7%94%a8%e8%b7%b3%e8%88%9e%e6%af%af/</link>
		<comments>http://www.learndiary.com/2012/03/linux-%e4%b8%8b%e4%bd%bf%e7%94%a8%e8%b7%b3%e8%88%9e%e6%af%af/#comments</comments>
		<pubDate>Sun, 18 Mar 2012 14:35:39 +0000</pubDate>
		<dc:creator>littlebat</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[开源]]></category>
		<category><![CDATA[思考]]></category>
		<category><![CDATA[StepMania]]></category>
		<category><![CDATA[跳舞毯]]></category>

		<guid isPermaLink="false">http://www.learndiary.com/?p=4193</guid>
		<description><![CDATA[幸亏跳舞毯的主流软件StepMania 是多平台并且开源的，让我又一次享受到高质量的开源软件带来的乐趣和利益。下面简要介绍一下如何在厂家只提供定制的 Windows 版本的跳舞毯程序情况下如何把... ]]></description>
			<content:encoded><![CDATA[<p>幸亏跳舞毯的主流软件<a title='StepMania: A free dance simulation game for Windows, Mac, and Linux' border='0' href='http://www.stepmania.com'><img src='http://www.stepmania.com/static/images/button_stepmania2.gif'/></a><a href="http://www.stepmania.com/">StepMania</a> 是多平台并且开源的，让我又一次享受到高质量的开源软件带来的乐趣和利益。下面简要介绍一下如何在厂家只提供定制的 Windows 版本的跳舞毯程序情况下如何把数据移植到的 Linux 下的，然后关注一下 Stepmania 这款软件的生存模式。<br />
<span id="more-4193"></span></p>
<p>在买跳舞毯之前，我就在网上搜索了一下 Linux 下使用跳舞毯的相关信息，知道了 StepMania 这款软件。然后在买的时候特别看了一下软件的界面截图，上面是 StepMania 的才买的。</p>
<p>买回来后，按照说明安装使用。我把4个防滑垫贴在上、下、左、右四个常用键的背面，脚踩在相应位置的时候估计可以有一定的作用。下面主要介绍一下在 Linux 电脑上的使用。</p>
<p>我使用的是一台“赛扬 1G 处理器 + Nvidia GeForce FX 5200 显卡 + Debian 5 Linux 操作系统”的老机器。要安装具有 3D 加速的显卡驱动，“sudo apt-get install nvidia-glx” 就行了，会安装相应的依赖。如果需要的话，在 /etc/X11/xorg.conf 的 Section &#8220;Module&#8221; 里面设置 Load &#8220;glx&#8221;，在 Section &#8220;Device&#8221; 里面设置 Driver &#8220;nvidia&#8221;。然后点击<a href="http://www.stepmania.com/download.php?file=StepMania-3.9a-linux.tar.gz">这里</a>下载编译好的 StepMania 3.9（也许你的跳舞毯不是这个版本）。解压缩到普通用户可以写入的目录下，因为好像配置文件就是在程序主目录里的，运行中用户可能改变其中的设置。双击或在命令行里执行那个 stepmania 就可以启动软件了。但是这里没有歌曲，也没有中文的主题。所以需要把跳舞毯附带的 DVD 光盘里的 Windows 版本的程序里面的相关数据复制进来。</p>
<p>把附带的 DVD 光盘里的程序安装到 Windows 下面，把两个版本里面主目录下面的诸如：Characters, Data, Songs, Themes 等等子目录里面的数据复制到 Linux StepMania-3.9 目录下面相应的子目录中就可以了。这个软件具体的使用就不写了，网上有，还有视频教程。</p>
<p>另外，如果你的 Windows 软件包没有 3D 的领舞卡通人物数据，点击<a href="http://www.stepmania.com/mirror3.php?file=SM3.9_Characters_DancePC.smzip">这里</a>下载，把下载的文件里的数据解压缩到 Characters 重启程序就有了。还有一些像歌曲、主题、报幕员、背景等等数据，都可以从其官网的下载区域上找到。</p>
<p>关于 StepMania 这款软件的简介，可以查看<a href="http://www.stepmania.com/wiki/About_StepMania">这里</a>。它的项目开发主页在<a href="http://code.google.com/p/sm-ssc/">这里</a>，是一款以非常宽松的 <a href="http://www.opensource.org/licenses/mit-license.php">MIT 开源协议</a>发布的开源软件。大概是只要在发布的软件中包含协议内容，就可以括商业方面的任意使用。所以，众多跳舞毯厂商在 StepMania 的基础上定制软件并作为随机软件是合法的。</p>
<p>在简介中，特别提到一个吸引开发者的特点，那就是可以学习 C++ 编程，是一个学习工具。</p>
<p>我简单的浏览了一下 StepMania 的主页，关注了一下它有可能的经济收入：广告；打包的 <a href="http://www.stepmania.com/wiki/StepMania_Complete_CD-ROM">StepMania 光盘</a>，可以通过付款下载光盘镜像或购买实物光盘，不过，它的收入是专用于 <a href="http://www.stepmania.com/wiki/StepMix_Contest">StepMix 歌曲竞赛</a>的；另外，它的网站上<a href="http://www.stepmania.com/wiki/Dance_Pad_Recommendations">推荐了一些跳舞毯</a>，不过不清楚这些相关厂商会不会赞助软件开发；一些<a href="http://www.stepmania.com/wiki/Products">基于 StepMania 的商业版本软件</a>的链接。另外，<a href="http://promote.pair.com/click.pl">Pair.com</a>赞助了它的网站空间。但是没有看见接受捐赠的链接。总的来说，这款软件的主要方向是非盈利的。作者应该没有考虑靠这个软件作为生活来源之一。但它的相关参与者应该可以取得一些额外的好处，例如找工作的履历，人际关系，软件技能，等等。另外，网站的菜单栏内有 StepMania 的创建者，主要管理者和开发者之一的 <a href="http://www.chrisdanford.com/blog/">Chris Danford 的博客</a>的链接。Chris Danford 是美国人，目前在 Amazon.com 任软件开发工程师。主要开发者的名单点击<a href="http://www.stepmania.com/wiki/Developer_Profiles">这里</a>，基本上都是美国人。</p>
<p>另外，个人一点使用跳舞毯的心得：腰背挺直，特忌撅着屁股（看了一些网上的视频，感觉特难看）；尽量踩着节奏，没节奏也找节奏；踩完尽量借助弹跳动作回到中间，要领同键盘打字。网上找到的教程多是软件使用教程，竟然没有像舞蹈之类的动作学习教程？是太简单么？简单也不能马虎吧？</p>
<p>好了，祝大家玩得开心。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.learndiary.com/2012/03/linux-%e4%b8%8b%e4%bd%bf%e7%94%a8%e8%b7%b3%e8%88%9e%e6%af%af/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>大话软件操行品德分分级评定标准</title>
		<link>http://www.learndiary.com/2011/10/%e5%a4%a7%e8%af%9d%e8%bd%af%e4%bb%b6%e6%93%8d%e8%a1%8c%e5%93%81%e5%be%b7%e5%88%86%e5%88%86%e7%ba%a7%e8%af%84%e5%ae%9a%e6%a0%87%e5%87%86/</link>
		<comments>http://www.learndiary.com/2011/10/%e5%a4%a7%e8%af%9d%e8%bd%af%e4%bb%b6%e6%93%8d%e8%a1%8c%e5%93%81%e5%be%b7%e5%88%86%e5%88%86%e7%ba%a7%e8%af%84%e5%ae%9a%e6%a0%87%e5%87%86/#comments</comments>
		<pubDate>Fri, 14 Oct 2011 10:03:20 +0000</pubDate>
		<dc:creator>littlebat</dc:creator>
				<category><![CDATA[开源]]></category>
		<category><![CDATA[思考]]></category>
		<category><![CDATA[大话]]></category>
		<category><![CDATA[操行品德分]]></category>
		<category><![CDATA[版权]]></category>
		<category><![CDATA[软件]]></category>

		<guid isPermaLink="false">http://www.learndiary.com/?p=4183</guid>
		<description><![CDATA[这篇日记模仿原来读书的时候给学生评操行品德分的事情，按自己的理解，也给现今的各种类型的软件打一个操行品德分，看看它们是调皮孩子还是乖宝宝。涉及的软件包括：间谍软件、病毒... ]]></description>
			<content:encoded><![CDATA[<p>这篇日记模仿原来读书的时候给学生评操行品德分的事情，按自己的理解，也给现今的各种类型的软件打一个操行品德分，看看它们是调皮孩子还是乖宝宝。涉及的软件包括：间谍软件、病毒软件、恶意软件、收费闭源软件、公开代码的非开源软件、免费闭源软件、具版权传染性的开源软件、普通开源软件、版权比较宽容的开源软件、公共领域版权软件。暂时不探讨现在越来越流行的在线软件，不考虑软件的生存方式，不考虑软件的质量和市场占有率，不考虑软件的盈利能力。自由软件也是开源软件，只是定义的侧重点不同，下面也不再涉及。<br />
<span id="more-4183"></span><br />
间谍软件：1分。指那些专门设计来窃取信用卡密码以及蓄意破坏的软件。这是需要送进少管所强制教育的孩子。</p>
<p>病毒软件：10分。指那些没有明确的获利目的，就是处于一种有意破坏的恶作剧心态的软件。这是那种极端调皮的孩子，主要还是以教育为主，但对造成了严重后果的情况，为了给予足够的印象和警示大家，还是得送少管所。</p>
<p>恶意软件：20分。这种软件也是蓄意为之，多半处于经济目的，不经人允许就强制篡改用户的浏览器首页，甚至控制用户的修改权。或者悄悄修改系统设置，不允许用户卸载或彻底卸载。禁止同类其它软件的安装和运行。等等。这种孩子要严厉的批评教育，教育他要将心比心，要考虑别人的感受。要是别人也用同样的做法对待自己如何。</p>
<p>收费闭源软件：30分。这是比较普通的孩子。用自己的努力换取报酬。但是一旦在班集体里建立了自己的权威，就有用自己的权威压倒别人的潜在恶习。</p>
<p>公开代码的非开源软件：40分。这种软件的特点主要是可以得到源代码，并根据自己的需要可以修改源代码，个人非商业用户免费，商业用户收费，其它的人不能在自己的软件基础上开发衍生软件重新分发。这种软件许多自称“开源软件”，但并不符合“<a href="http://www.opensource.org/">OSI</a>”关于“<a href="http://www.opensource.org/docs/osd">Open Source Software</a>”的定义。这种孩子比一般的孩子表现好一些，会有条件的和人分享一些东西。这种孩子因为和人分享多半都带有强烈的自利目的，如果时间较长不能达成自己的目的，也许会变成不与人分享。也有可能表现得更好一些：如他发现与人分享自己也会获利，或者不能获利自己想开了，既然不能利益自己，那就利益大家吧。</p>
<p>免费闭源软件：50分。这是表现较好的孩子了。愿意无偿的与人分享自己的劳动。但是也可能回退到普通孩子的行列，也有成长为权威并靠权威欺压别人的可能性。也可能积极向上，成为表现更好的孩子。</p>
<p>具版权传染性的开源软件：60分。典型的是那种 GPL 版权的开源软件，如果你的软件使用了 GPL 版权的软件的代码，那么你的软件也就必须是 GPL 版权的开源软件。这种孩子对别人很好，但是他要求如果你接受了他的好，你也必须对他同样的好，你不答应的话就不能接受他的好。这种孩子往往形成一个封闭的圈子，圈子内的朋友们很友爱，但与圈子外面的普通大众往往显得有点格格不入。</p>
<p>普通开源软件：70分。其它版权传染性不是非常绝对的开源软件，如 LGPL 版权的开源软件。除了对自身圈子的朋友比较友爱，对于普通大众也是有条件的表现出友爱的态度。</p>
<p>版权比较宽容的开源软件：80分。采用非常宽松的开源软件版本协议，如 BSD、MIT 版权的开源软件。就算是闭源的的商业软件也可以使用他们，只有很少的限制（如仅保留原软件的版权协议）。这种孩子算是非常好的孩子了，不过他们还是在乎自己的名誉的，你接受了他们的好就必须明确声明你受到了他们的帮助。</p>
<p>公共领域版权软件：90分。完全放弃了自己对软件产品的版权，任何人都可以像空气和阳光一样无限制的任意使用。这种孩子世间少有，像雷锋一样，做好事不留名，做好事不求回报。这是道德楷模了。</p>
<p>为什么没有100分操行品德分的软件？人无完人，世界上哪有十全十美的软件？</p>
<p>参考资料：<br />
1、 Free Software: Different types of licenses： http://en.wikipedia.org/wiki/Free_software#Different_types_of_licenses<br />
2、 常用开源许可协议介绍： http://down.chinaz.com/server/201105/552_1.htm</p>
]]></content:encoded>
			<wfw:commentRss>http://www.learndiary.com/2011/10/%e5%a4%a7%e8%af%9d%e8%bd%af%e4%bb%b6%e6%93%8d%e8%a1%8c%e5%93%81%e5%be%b7%e5%88%86%e5%88%86%e7%ba%a7%e8%af%84%e5%ae%9a%e6%a0%87%e5%87%86/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tinycore Linux Wiki 学习日记之十、十一：重制和内部资料</title>
		<link>http://www.learndiary.com/2011/10/tinycore-linux-wiki-%e5%ad%a6%e4%b9%a0%e6%97%a5%e8%ae%b0%e4%b9%8b%e5%8d%81%e3%80%81%e5%8d%81%e4%b8%80%ef%bc%9a%e9%87%8d%e5%88%b6%e5%92%8c%e5%86%85%e9%83%a8%e8%b5%84%e6%96%99/</link>
		<comments>http://www.learndiary.com/2011/10/tinycore-linux-wiki-%e5%ad%a6%e4%b9%a0%e6%97%a5%e8%ae%b0%e4%b9%8b%e5%8d%81%e3%80%81%e5%8d%81%e4%b8%80%ef%bc%9a%e9%87%8d%e5%88%b6%e5%92%8c%e5%86%85%e9%83%a8%e8%b5%84%e6%96%99/#comments</comments>
		<pubDate>Wed, 12 Oct 2011 12:22:41 +0000</pubDate>
		<dc:creator>littlebat</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[tinycorelinux]]></category>
		<category><![CDATA[wiki]]></category>
		<category><![CDATA[内部资料]]></category>
		<category><![CDATA[学习日记]]></category>
		<category><![CDATA[重制]]></category>

		<guid isPermaLink="false">http://www.learndiary.com/?p=4177</guid>
		<description><![CDATA[这是 Tinycore Linux Wiki 的第十、十一部分：重制和内部资料。也是现在 Tinycore Linux Wiki 的最后一部分。主要是讲重制的原理、方法、自动化等。内部资料是系统启动过程和简述及一些相关的链接... ]]></description>
			<content:encoded><![CDATA[<p>这是 <a href="http://wiki.tinycorelinux.net/">Tinycore Linux Wiki</a> 的第十、十一部分：重制和内部资料。也是现在 Tinycore Linux Wiki 的最后一部分。主要是讲重制的原理、方法、自动化等。内部资料是系统启动过程和简述及一些相关的链接。<br />
<span id="more-4177"></span><br />
2011年10月10日 星期一</p>
<p>第十部分 Remastering</p>
<p>Remastering<br />
http://wiki.tinycorelinux.net/wiki:remastering</p>
<p>解压映像文件：<br />
cat /tmp/tinycore.gz | sudo cpio -i -H newc -d</p>
<p>压缩映像文件：<br />
sudo find | sudo cpio -o -H newc | gzip -2 &gt; ../tinycore.gz</p>
<p>重新压缩压缩文件：<br />
advdef -z4 tinycore.gz</p>
<p>制作 ISO 文件：<br />
mkisofs -l -J -R -V TC-custom -no-emul-boot -boot-load-size 4 \<br />
 -boot-info-table -b boot/isolinux/isolinux.bin \<br />
 -c boot/isolinux/boot.cat -o TC-remastered.iso newiso</p>
<p>Integrating extensions into an ISO<br />
http://wiki.tinycorelinux.net/wiki:integrating_extensions<br />
基本思路是把所有需要的扩展包放在 ./tce/optional 中，再重制成 ISO 映像文件。</p>
<p>question: 文中说这种方法将导致不能使用 AppBrowser 或 AppsAudit 添加或维护任何程序，为什么？那么 dynamic root fs remastering （http://wiki.tinycorelinux.net/wiki:dynamic_root_filesystem_remastering）的方法还可以如常使用 AppBrowser 或 AppsAudit 吗？</p>
<p>2011年10月11日 星期二<br />
Custom Kernel<br />
http://wiki.tinycorelinux.net/wiki:custom_kernel<br />
讲怎样编译自定义内核。<br />
两种保存加载模块的方式：在 initrd 文件（tinycore.gz）中或扩展包中（*.tcem）</p>
<p>question: 模块扩展包（*.tcem）在新版的 tinycore 中是否取消了？</p>
<p>另，文中提供了从零编译 Tinycore 的技术要点、编译 Tinycore 工具链的链接。</p>
<p>Bootchart<br />
http://wiki.tinycorelinux.net/wiki:bootchart<br />
重制 initrd.gz，在 /init 中用 “sbin/ubootchartd” 替换 “sbin/init” 从而记录系统启动状况。再用 bootchart.pl &gt; /tmp/my_bootchart.svg 把记录转换为图片。</p>
<p>Remastering with ezremaster<br />
http://wiki.tinycorelinux.net/wiki:remastering_with_ezremaster<br />
一个专门针对 Tinycore 制作的 GUI 自动化重制工具。可以定制启动代码，3种集成扩展包的方式：把扩展包文件放在 ISO 文件中 tinycore.gz 之外，把扩展包文件放在 tinycore.gz 之内，把挂载的扩展包文件解压到 tinycore.gz 之中。</p>
<p>2011年10月12日 星期三<br />
Remastering with qremaster<br />
http://wiki.tinycorelinux.net/wiki:remastering_with_qremaster<br />
shell 脚本写的一个自动化重制 tinycore 的命令行工具。功能与上面的 ezremaster 类似，已知大概有几点差异：增加了添加任意文件或目录进入 ezremaster 映像文件的功能；是把挂载的扩展包复制到 tinycore.gz 中，而这个脚本不挂载而是直接解压；这个工具增加了制作 Hybrid ISO 的选项；另外，ezremaster 也增加了定制一些服务等的功能。命令行工具更灵活一些，图形化工具更直观一些。 </p>
<p>Remastering with grub2 and Optional wallpaper<br />
http://wiki.tinycorelinux.net/wiki:grub2_iso_remastering<br />
用 grub-mkrescue 命令重制 ISO(最简单的制作 ISO 文件的工具？)<br />
grub-mkrescue &#8211;output=a.iso burn</p>
<p>Remastering with grub-legacy and Optional splashimage<br />
http://wiki.tinycorelinux.net/wiki:grub1_iso_remastering<br />
是使用 mkisofs 命令重制的 ISO<br />
mkisofs -r -b elt -no-emul-boot -boot-load-size 4 -boot-info-table -o a.iso burn/<br />
这篇 wiki 着重讲的是怎样制作一幅适合于 grub-legacy 的启动背景图片，例如：图片的细节不宜过于丰富，否则细节丢失严重；一般使用16色，保守使用14色；等等</p>
<p>第十一部分 Internals<br />
The Boot Process<br />
启动过程：</p>
<p>[BootLoader → bzImage → tinycore.gz] → init → inittab → init.d/rcS → tc-config → ( dhcp.sh &amp; tce-setup &amp; restore.sh &amp; bootsync.sh → bootlocal.sh) → init → /root/.profile → /home/tc/.profile →→→ /usr/bin/startx → ( xsetup.sh) → /home/tc/.xsession → ( Xvesa, jwm &amp; wbar &amp; /home/tc/.X.d/*.* ) </p>
<p>Links<br />
http://wiki.tinycorelinux.net/wiki:links</p>
<p>一些相关的链接：<br />
Bash Reference Manual<br />
BusyBox<br />
Filesystem Hierarchy Standard<br />
Grub4Dos Guide<br />
Linux Command Directory<br />
Linux Manual<br />
Parted Magic<br />
System Rescue CD<br />
UNetbootin</p>
]]></content:encoded>
			<wfw:commentRss>http://www.learndiary.com/2011/10/tinycore-linux-wiki-%e5%ad%a6%e4%b9%a0%e6%97%a5%e8%ae%b0%e4%b9%8b%e5%8d%81%e3%80%81%e5%8d%81%e4%b8%80%ef%bc%9a%e9%87%8d%e5%88%b6%e5%92%8c%e5%86%85%e9%83%a8%e8%b5%84%e6%96%99/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>开源软件和自由软件定义初探</title>
		<link>http://www.learndiary.com/2011/10/%e5%bc%80%e6%ba%90%e8%bd%af%e4%bb%b6%e5%92%8c%e8%87%aa%e7%94%b1%e8%bd%af%e4%bb%b6%e5%ae%9a%e4%b9%89%e5%88%9d%e6%8e%a2/</link>
		<comments>http://www.learndiary.com/2011/10/%e5%bc%80%e6%ba%90%e8%bd%af%e4%bb%b6%e5%92%8c%e8%87%aa%e7%94%b1%e8%bd%af%e4%bb%b6%e5%ae%9a%e4%b9%89%e5%88%9d%e6%8e%a2/#comments</comments>
		<pubDate>Tue, 11 Oct 2011 09:48:54 +0000</pubDate>
		<dc:creator>littlebat</dc:creator>
				<category><![CDATA[开源]]></category>
		<category><![CDATA[定义]]></category>
		<category><![CDATA[开源软件]]></category>
		<category><![CDATA[自由软件]]></category>

		<guid isPermaLink="false">http://www.learndiary.com/?p=4174</guid>
		<description><![CDATA[对不了解软件的朋友来说，“开源软件”和“自由软件”都可能造成理解上的偏差，如认为“只要公开了源代码的软件就是开源软件”(Open Source Software)，如把“自由软件”误作“免费软件”（F... ]]></description>
			<content:encoded><![CDATA[<p>对不了解软件的朋友来说，“开源软件”和“自由软件”都可能造成理解上的偏差，如认为“只要公开了源代码的软件就是开源软件”(Open Source Software)，如把“自由软件”误作“免费软件”（Free Software）。下面粗略的翻看一些资料，了解了一下二者一些定义的要点。<br />
<span id="more-4174"></span><br />
开源软件要符合十大定义（参见：http://www.opensource.org/docs/osd ），并不是看得到源代码的软件就是开源软件。例如，某些软件的版权协议上规定，“个人非盈利免费、商业应用收费”、“禁止在其整体或任何部分基础上以发展任何派生版本、修改版本或第三方版本用于重新分发”，虽然这些软件自称“开源软件”，但是此“开源”（公开源代码）并非彼“开源”（Open Source）。那些看得到源码但是不能衍生等的软件在维基百科上叫作“source-available”（ 参见：http://en.wikipedia.org/wiki/Open-source_software ）。中文的意思是“可得到源代码的”，暂时没发现权威的中文译名。</p>
<p>另据维基百科资料（ http://en.wikipedia.org/wiki/Open_Source_Initiative ），<a href="http://www.opensource.org/">OSI</a> 这个非盈利组织并没有取得“Open Source”的注册商标。据一份声明 （http://opensource2.usrbinruby.net/pressreleases/certified-open-source.html|title=OSI）， 驳回的理由是“too descriptive”（太具描述性的？形容词？），正式的注册商标是“OSI, Open Source Initiative, and OSI logo (&#8221;OSI Logo&#8221;)”（http://www.opensource.org/trademark）。这份声明指出“Open Source”这个概念是“OSI”这个组织带入主流的，却反而因为这个术语融入了主流而成为不能注册成为商标的原因之一（准确的意思请查看原文）。所以，即使是原生的英文术语尚且不被美国当局认可与保护，就更别说中文翻译过来的“开源”这个词在国内是否被合理使用了。所以，那些不符合 OSI 关于“开源软件”的严格定义却用“开源”标记自身的软件大量存在也就不足为怪了。</p>
<p>但是，OSI 还是在其商标指南( http://www.opensource.org/trademark-guidelines )中要求只有那些使用了其认证的协议的软件才能标记为“Open Source”。据维基百科讲（ http://en.wikipedia.org/wiki/Open-source_software#Open_source_vs._source-available ），现任 OSI 主席 Tiemann 的支持者们使用来自 OSI、客户、社区成员的公共舆论压力促使那些误用“Open Source”的组织改变他们的授权或使用别的术语。</p>
<p>尽管这种可得到源代码的非开源软件的开放性还达不到“开源软件”的标准，但是它们还是具有开源软件的一些优点的，比如：用户可以修改代码以适应他们自身的需要，一些第三方专业人员也可以帮助用户修改代码以获利，软件商停止技术支持后其软件仍可由自己或第三方人员提供支持，等等。相对于开源软件也有一些缺点：用户一般应该不会加入这个软件的开发，不会出现基于这个软件的第三方版本（比如：Debian有基于其的衍生版本一百多个，可谓人丁兴旺，不过这对于商业软件自身来说是缺点还是优点呢？），等等。</p>
<p>自由软件要符合四大定义（ http://www.gnu.org/philosophy/free-sw.html ）。自由软件必然是开源软件，但开源软件却不一定是自由软件。参见：（ http://en.wikipedia.org/wiki/Free_software ）。开源软件主要是从提高软件产品质量出发来说的，是一种软件开发方法；而自由软件则主要是从一种道德准则来说的，是一种社会运动。不过，也不能说“开源”是一种纯粹的技术术语，这可以从其网站首页的使命的最后一句看出来”&#8230;, and an end to predatory vendor lock-in“（终结软件壁垒？）</p>
<p>自由软件和开源软件都有丰富的内涵，短期完全理解决非易事。仅为一点学习心得小结。欢迎交流，批评和指正。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.learndiary.com/2011/10/%e5%bc%80%e6%ba%90%e8%bd%af%e4%bb%b6%e5%92%8c%e8%87%aa%e7%94%b1%e8%bd%af%e4%bb%b6%e5%ae%9a%e4%b9%89%e5%88%9d%e6%8e%a2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tinycore Linux Wiki 学习日记之九：高级应用</title>
		<link>http://www.learndiary.com/2011/10/tinycore-linux-wiki-%e5%ad%a6%e4%b9%a0%e6%97%a5%e8%ae%b0%e4%b9%8b%e4%b9%9d%ef%bc%9a%e9%ab%98%e7%ba%a7%e5%ba%94%e7%94%a8/</link>
		<comments>http://www.learndiary.com/2011/10/tinycore-linux-wiki-%e5%ad%a6%e4%b9%a0%e6%97%a5%e8%ae%b0%e4%b9%8b%e4%b9%9d%ef%bc%9a%e9%ab%98%e7%ba%a7%e5%ba%94%e7%94%a8/#comments</comments>
		<pubDate>Sun, 09 Oct 2011 12:08:47 +0000</pubDate>
		<dc:creator>littlebat</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[tinycorelinux]]></category>
		<category><![CDATA[wiki]]></category>
		<category><![CDATA[学习日记]]></category>
		<category><![CDATA[高级应用]]></category>

		<guid isPermaLink="false">http://www.learndiary.com/?p=4171</guid>
		<description><![CDATA[这是 Tinycore Linux Wiki 的第九部分，高级应用。主要是讲扩展包的建立，自定义图标，建立私有扩展包服务器，检查备份，在 wbar 中为自定义命令建立图标等。

2011年10月07日 星期五
For Advanced User... ]]></description>
			<content:encoded><![CDATA[<p>这是 <a href="http://wiki.tinycorelinux.net/">Tinycore Linux Wiki</a> 的第九部分，高级应用。主要是讲扩展包的建立，自定义图标，建立私有扩展包服务器，检查备份，在 wbar 中为自定义命令建立图标等。<br />
<span id="more-4171"></span></p>
<p>2011年10月07日 星期五<br />
For Advanced Users</p>
<p>Creating Extensions<br />
http://wiki.tinycorelinux.net/wiki:creating_extensions</p>
<p>需要compiletc、squash 文件工具扩展包</p>
<p>Required info:<br />
可以提交 tcz 扩展包到 tcesubmit _at_ gmail _dot_ com email 供大家分享： http://forum.tinycorelinux.net/index.php?topic=330.0 。</p>
<p>程序的图标、菜单、设置脚本、.info 和 .dep 文件的创建： http://wiki.tinycorelinux.net/wiki:iconmenuinfo<br />
Menu entries:<br />
在扩展包的 /usr/local/share/applications 目录里提供符合 freedesktop.org 标准的 .desktop 文件，系统启动时即可自动加载菜单。</p>
<p>Icons:<br />
图标需要 48×48 PNG 图片，在上面的 .desktop 文件中提供 TC 特别规定的如“ X-FullPathIcon=/usr/local/share/pixmaps/opera10.png“字段（非 freedesktop.org 标准）。</p>
<p>Startup script：<br />
同名的设置脚本在：/usr/local/tce.installed/ 中，可选的。<br />
question: 创建 /tmp/package/usr/local/tce.installed/package_name （ http://wiki.tinycorelinux.net/wiki:creating_extensions?s[]=startup&#038;s[]=script#adding_custom_startup_scripts ）？</p>
<p>Packaging kernel modules: http://forum.tinycorelinux.net/index.php?topic=443.0<br />
question: 什么是 PPI?  http://forum.tinycorelinux.net/index.php/topic,11610.0.html<br />
扩展阅读：论坛上已有朋友详细解答这一问题，并给出参考文章：Tiny Core Linux 2.1: Less is more https://lwn.net/Articles/340495/<br />
这是关于 Tinycore 运行模式的一个过时的术语：Persistent Personal Installation，现在最新的4.0 版已经去掉了这种模式 PPI/local.</p>
<p>Abbreviated steps：<br />
六大步骤是：编译安装；分离文档、locale、开发文件；squash 打包；dep、info、list、md5等辅助文件；加密/归档；发给 Tiny Core 开发组</p>
<p>2011年10月08日 星期六 </p>
<p>1、推荐的编译器标志设置（为了兼容性）：<br />
<code><br />
export CFLAGS="-march=i486 -mtune=i686 -Os -pipe"<br />
export CXXFLAGS="-march=i486 -mtune=i686 -Os -pipe"<br />
export LDFLAGS="-Wl,-O1"<br />
</code></p>
<p>2、为编译完成的二进制代码瘦身：<br />
<code><br />
find . | xargs file | grep "executable" | grep ELF | grep "not stripped" | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null</p>
<p>find . | xargs file | grep "shared object" | grep ELF | grep "not stripped" | cut -f 1 -d : | xargs strip -g 2> /dev/null<br />
</code></p>
<p>3、打包：<br />
mksquashfs package program_name.tcz</p>
<p>4、当 make DESTDIR=/path/dir install 失败时，可以用下面的方法打包：<br />
<code><br />
./configure --prefix=/usr/local<br />
make<br />
touch /tmp/mark #in case DESTDIR fails<br />
make install DESTDIR=/tmp/pkg #DESTDIR may not work ...<br />
find /usr/local -newer /tmp/mark -not -type d > /tmp/list<br />
tar -T /tmp/list -czvf /tmp/someapp.tar.gz<br />
</code><br />
但是因为有时安装程序仅是复制源码包里的一些文件（时间未变），所以并不能保证所有的安装文件都打包了，要人工检查一下安装器信息。</p>
<p>5、这篇 wiki 另外给出了如果要提交到正式 Tinycore 仓库需要做的一些事，如：正确性检查，合理的分割包，完整性检查，脚本自动化测试（ extension audit script http://forum.tinycorelinux.net/index.php?topic=2475.0 或 submitqc.tcz ），bcrypt 加密并发送到指定邮件。</p>
<p>2011年10月09日 星期日<br />
Creating Personal Icons<br />
http://wiki.tinycorelinux.net/wiki:creating_personal_icons<br />
1、<br />
在 usr/local/tce.menu 建立菜单配置文件（question: 但是好像是针对 JWM 的配置？），在 usr/local/tce.icons 建立图标设置文件<br />
2、<br />
freedesktop 标准的配置文件: /usr/local/share/applications/PACKAGENAME.desktop<br />
可能跟上面针对 tce 定制的菜单图标方案冲突</p>
<p>question: 上面两种菜单图标方案是否只能二取一？选择的标准是什么？</p>
<p>Running a private extension server<br />
http://wiki.tinycorelinux.net/wiki:local_appbrowser_server<br />
可以建立一个局域网内的 tce 仓库。</p>
<p>Check your backup worked before rebooting<br />
http://wiki.tinycorelinux.net/wiki:backup-check<br />
重启之前检查备份文件的方法。</p>
<p>Creating custom command icons in wbar<br />
http://wiki.tinycorelinux.net/wiki:creating_custom_command_icons_in_wbar<br />
为自定义脚本建立 wbar 启动的方法：在 /tce/ondemand 目录下放置你的脚本文件如： myscript（无扩展名）和同名的图片（如：png文件）并以 img 为后缀，如： myscript.img，然后重启 X 就行了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.learndiary.com/2011/10/tinycore-linux-wiki-%e5%ad%a6%e4%b9%a0%e6%97%a5%e8%ae%b0%e4%b9%8b%e4%b9%9d%ef%bc%9a%e9%ab%98%e7%ba%a7%e5%ba%94%e7%94%a8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tinycore Linux Wiki 学习日记之四至八：设置、持久化、引导器、命令工具等</title>
		<link>http://www.learndiary.com/2011/10/tinycore-linux-wiki-%e5%ad%a6%e4%b9%a0%e6%97%a5%e8%ae%b0%e4%b9%8b%e5%9b%9b%e8%87%b3%e5%85%ab%ef%bc%9a%e8%ae%be%e7%bd%ae%e3%80%81%e6%8c%81%e4%b9%85%e5%8c%96%e3%80%81%e5%bc%95%e5%af%bc%e5%99%a8%e7%ad%89/</link>
		<comments>http://www.learndiary.com/2011/10/tinycore-linux-wiki-%e5%ad%a6%e4%b9%a0%e6%97%a5%e8%ae%b0%e4%b9%8b%e5%9b%9b%e8%87%b3%e5%85%ab%ef%bc%9a%e8%ae%be%e7%bd%ae%e3%80%81%e6%8c%81%e4%b9%85%e5%8c%96%e3%80%81%e5%bc%95%e5%af%bc%e5%99%a8%e7%ad%89/#comments</comments>
		<pubDate>Fri, 07 Oct 2011 02:54:03 +0000</pubDate>
		<dc:creator>littlebat</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[tinycorelinux]]></category>
		<category><![CDATA[wiki]]></category>
		<category><![CDATA[命令]]></category>
		<category><![CDATA[学习日记]]></category>
		<category><![CDATA[引导器]]></category>
		<category><![CDATA[持久化]]></category>
		<category><![CDATA[设置]]></category>

		<guid isPermaLink="false">http://www.learndiary.com/?p=4168</guid>
		<description><![CDATA[这篇学习日记包括 TinyCore Linux Wiki 的第四部分：设置，讲多种系统设置和应用程序的设置；第五部分：持久化设置，讲持久化目录、备份方式、加密、网络上的持久化等等；第六部分：引导器... ]]></description>
			<content:encoded><![CDATA[<p>这篇学习日记包括<a href="http://wiki.tinycorelinux.net/"> TinyCore Linux Wiki</a> 的第四部分：设置，讲多种系统设置和应用程序的设置；第五部分：持久化设置，讲持久化目录、备份方式、加密、网络上的持久化等等；第六部分：引导器，讲了 Grub2, GRUB4DOS, linld 系统引导器；第七部分：常用 Linux 命令；第八部分：Tinycore 和 Microcore Linux 里面常用的命令行工具。<br />
<span id="more-4168"></span><br />
2011年10月01日 星期六<br />
第四部分：<br />
Set Up<br />
Adding a Desktop to MicroCore<br />
http://wiki.tinycorelinux.net/wiki:adding_a_desktop_to_microcore<br />
有两种方法加载核心组件：进入持久化的 tce 目录的扩展包，做成 cpio 的映像文件在启动时加载</p>
<p>Copy and Paste with the Mouse<br />
http://wiki.tinycorelinux.net/wiki:mouse<br />
设置两键鼠标双键粘贴： sed -i &#8217;s/-shadow -mouse/-shadow -2button -mouse/&#8217; ~/.xsession</p>
<p>Cpu frequency scaling basics<br />
http://wiki.tinycorelinux.net/wiki:cpu_frequency_scaling_basics<br />
需要 CPU 驱动（专用的p4-clockmod (Intel) powernow-k6 (AMD K6) powernow-k7 (AMD K7) powernow-k8 (AMD K8) longhaul (VIA Nehemiah) 或通用的acpi-cpufreq ）<br />
调节器：cpufreq-set -g ondemand 多核处理器可以针对每个处理器进行调节</p>
<p>Display Modes<br />
http://wiki.tinycorelinux.net/wiki:display_modes<br />
可以在启动时指定 vga=xxx 来设定使用 xfbdev 显示驱动的分辨率。<br />
除了 xvesa、xorg 驱动，也可以使用 xfbdev 驱动，在 .xsession 中设定：<br />
Xfbdev -mouse /dev/input/mice,5 -nolisten tcp -I &amp;&gt;/dev/null &amp;&#8221;</p>
<p>在这里非标准分辨率的信息获取通过进入 tinycore textmode 执行：Xvesa -listmodes</p>
<p>Ecofont and other printer ink saving tips<br />
http://wiki.tinycorelinux.net/wiki:economic_printing<br />
讲小一点的字可以节省打印墨水，技术上主要是讲怎样在系统中加入字体。</p>
<p>Firewall<br />
http://wiki.tinycorelinux.net/wiki:firewall<br />
简述怎样设置 iptables<br />
在“/opt/bootlocal.sh”添加 “/usr/local/sbin/basic-firewall”</p>
<p>2011年10月02日 星期日<br />
Flash Player<br />
http://wiki.tinycorelinux.net/wiki:flash_player<br />
可以把 flash 扩展下载下本地，需要在选“本地安装”即时安装使用。</p>
<p>GTK themes<br />
http://wiki.tinycorelinux.net/wiki:gtk_themes?&amp;#configuration<br />
GTK 主题定义在 ~/gtkrc-2.0 中。<br />
tinycore 仓库里的扩展有gnome-icon-theme、lxde-icon-theme等。<br />
除了主题文件，还需要：hicolor-icon-theme.tcz、 shared-mime-info.tcz，librsvg.tcz（可选，缩放图需要）</p>
<p>MySQL Set-Up Guide<br />
http://wiki.tinycorelinux.net/wiki:mysql_persistence_guide<br />
使用持久化的方法比使用备份的方法数据丢失的可能性要小些，使用备份的方法数据都在内存中运行，使用持久化的方法要读写磁盘。</p>
<p>Maximize the life of a USB Drive<br />
http://wiki.tinycorelinux.net/wiki:usb_life<br />
已读。</p>
<p>Netbook Tips<br />
http://wiki.tinycorelinux.net/wiki:netbook_tips<br />
设置持久化目录而不是备份模式。</p>
<p>2011年10月03日 星期一</p>
<p>Netbooting and Storage<br />
http://wiki.tinycorelinux.net/wiki:netbooting<br />
从网络 pxe 启动 Tinycore<br />
todo: 需要时再学习实验一下</p>
<p>Printer Setup Using Cups<br />
http://wiki.tinycorelinux.net/wiki:printer_setup_using_cups<br />
已读。</p>
<p>Printer Setup Using Cups1311<br />
http://wiki.tinycorelinux.net/wiki:cups1311<br />
一个不需要设置 root 密码的打印系统。</p>
<p>PulseAudio<br />
http://wiki.tinycorelinux.net/wiki:pulseaudio<br />
PulseAudio 并不能自动检测声卡，需要先安装 ALSA 系统。</p>
<p>Remove Applications from the Menu and Wbar<br />
http://wiki.tinycorelinux.net/wiki:menu</p>
<p>主要方法是把系统默认建立的 ~/.wmx 文件移走，用自定义的项目代替。把下面的内容加入 /opt/bootlocal.sh</p>
<p>mv /home/tc/.wmx /home/tc/.wmx_old<br />
cp -r /home/tc/.mymenu/.wmx /home/tc/.wmx</p>
<p>2011年10月04日 星期二<br />
Run Commands during Startup or Shutdown<br />
http://wiki.tinycorelinux.net/wiki:bootlocal.sh_and_shutdown.sh<br />
系统启动或关闭要执行的自定义代码分别写入：<br />
/opt/bootsysnc.sh 启动前期<br />
/opt/bootlocal.sh 启动后期<br />
/opt/shutdown.sh 关闭<br />
todo: 这些代码启动与结束的具体时刻</p>
<p>Security<br />
http://wiki.tinycorelinux.net/wiki:security<br />
把 etc/group, etc/passwd, and etc/shadow 加入 /opt/.filetool.lst 保留用户、组信息。</p>
<p>文件 /etc/inittab 指定了 rungetty 应该以 tc 用户自动登录。</p>
<p>Setting up Sound<br />
http://wiki.tinycorelinux.net/wiki:setting_up_sound<br />
讲了 OSS 和 alsa 详细的声音设置。包括：多个声音设备、摄像头录音等等。需要进再详细学习。</p>
<p>Setting up Wifi<br />
http://wiki.tinycorelinux.net/wiki:setting_up_wifi<br />
已读。</p>
<p>Set Up a Kiosk<br />
http://wiki.tinycorelinux.net/wiki:kiosk<br />
“Kiosk”（售货亭） 大概就是只让用户看到可使用的程序，而不能接触系统设置等与使用无关的东西，像摆在大街旁供信息查询的公用信息亭之类。主要方法就是移除菜单和启动条里面的一些程序和工具。</p>
<p>Using acpid to control your PC buttons<br />
http://wiki.tinycorelinux.net/wiki:using_acpid_to_control_your_pc_buttons<br />
使用 acpid.tcz 包实现功能键（如 EEEPC 上的睡眠、音量等），文中举出一个运用于 EEEPC 1000HE 上的例子。</p>
<p>Using Xorg over Xvesa<br />
http://wiki.tinycorelinux.net/wiki:using_xorg_over_xvesa<br />
使用 Xorg 需要安装两个扩展包：如：Xorg-7.4.tcz、graphics-2.6.29.1-tinycore.tcz(4.* 系列好像没有这个包了，也许是融合到 Xorg 包了？)<br />
如果有对 xorg.conf 有自定义的部分仅在 xorg.conf 包含有关部分的设置就行了（如：键盘），而不用完整的写出 xorg.conf。 </p>
<p>View Random Image<br />
http://wiki.tinycorelinux.net/wiki:random_background<br />
使用随机数脚本控制。核心代码：<br />
<code><br />
NUMBPIC=$(ls | wc -l)<br />
PICSEL=$((($RANDOM%$NUMBPIC) +1))<br />
PICCHANGE=$(ls | tail -$PICSEL | head -1)<br />
</code></p>
<p>VirtualBox<br />
http://wiki.tinycorelinux.net/wiki:virtualbox<br />
1、<br />
VirtualBox 混和模式使用一个真实硬盘分区安装 Tinycore，使 Tinycore 既可以从运行着的宿主机里的 VirtualBox 里启动，也可以从 Bios 里设置在真实物理机里运行。<br />
2、<br />
“Portable VirtualBox： http://www.vbox.me/” 可以从U盘运行其它操作系统而不用安装步骤（一般的情况是要在宿主机安装一下 VirtualBox 才行的）。</p>
<p>Wallpaper/Desktop background<br />
http://wiki.tinycorelinux.net/wiki:wallpaper_desktop_background<br />
已读。</p>
<p>Window Managers and Desktop Environments<br />
http://wiki.tinycorelinux.net/wiki:window_managers_and_desktop_environments<br />
不是所有“窗口管理器”都支持 Tinycore 的动态菜单系统。</p>
<p>第五部分 Persistence</p>
<p>Persistence for Dummies<br />
http://wiki.tinycorelinux.net/wiki:persistence_for_dummies<br />
已读。</p>
<p>Persistence when Netbooting ( NFS, NBD, and AOE )<br />
http://wiki.tinycorelinux.net/wiki:netbooting<br />
已读。</p>
<p>Backup<br />
http://wiki.tinycorelinux.net/wiki:backup</p>
<p>Safe Backup： 把前一次的备份重命名为 &#8220;mydatabk.tgz&#8221;，并创建一个新的备份。</p>
<p>Backup with Date and Time<br />
http://wiki.tinycorelinux.net/wiki:backup_date<br />
使用脚本把备份时间写入备份文件名，把脚本加入 /opt/shutdown.sh 中。</p>
<p>Xfe and Backup：如果使用 Xfe 文件管理器，会把删除的文件或目录存入回收站，所以在备份时把 “home/tc/.xfe”写入 “/opt/.xfiletool.lst”；或者在 Xfe 中设置永久删除不进入回收站之类的选项。</p>
<p>Options when Installed on a Hard Drive<br />
http://wiki.tinycorelinux.net/wiki:backup_hd<br />
如果把 Tinycore 安装在硬盘中，理想的方式是使用持久化目录而不是备份模式，如下：<br />
opt=sda1 home=sda1 norestore</p>
<p>Options when Installed on a USB Drive<br />
http://wiki.tinycorelinux.net/wiki:backup_usb<br />
如果把 Tinycore 安装在 U 盘中，“Backup” 模式用于减少写入 U 盘的次数（因为在使用过程中都是先写入内存，结束使用时才写入磁盘）。 /opt 目录很少改动，使用持久化目录的方式可以更少写入。 /home 如果里面的很多文件需要改变，使用 backup 模式，如果很少改变（如作工具系统）则使用持久化目录的模式。判断的标准是回答一个问题：是每当文件改变就写入磁盘还是当电脑关闭再写入所有文件的方式使写入U盘的数据更少？</p>
<p>Backup with Date and Time<br />
http://wiki.tinycorelinux.net/wiki:backup_date<br />
已读。</p>
<p>Encrypted Backup<br />
http://wiki.tinycorelinux.net/wiki:encrypted_backup<br />
在启动代码中包含：“protect”启用加密备份模式。<br />
在“传统备份”和“加密备份”模式之间切换将不会自动载入需要备份的文件。解决方法：在改变期间使用持久化 /home 和 /opt; 或者 把需要备份的文件在启动加密备份前拷入一个临时的目录，启用后再拷贝回来。</p>
<p>Manually Encrypt Files<br />
http://wiki.tinycorelinux.net/wiki:encrypt_files<br />
使用 “bcrypt -c filename”加密和使用“bcrypt -c filename.bfe”解密文件。</p>
<p>Persistent home and opt<br />
http://wiki.tinycorelinux.net/wiki:persistent_home<br />
如果在 U 盘上使用持久化 /opt 和 /home 目录，理想的方法是使用 UUID 指定分区。如果在 U 盘上除了使用持久化目录还使用备份模式，那在 /opt/.filetool.lst 移除所有 /home /opt 中的目录或文件（持久化了的），把想备份的文件或目录加进去。</p>
<p>Make Extensions for Settings<br />
http://wiki.tinycorelinux.net/wiki:extension_for_settings<br />
已读。</p>
<p>2011年10月06日 星期四<br />
第六部分：<br />
Bootloaders</p>
<p>Grub2<br />
http://wiki.tinycorelinux.net/wiki:grub2_from_grub1<br />
查看MBR:<br />
sudo dd if=/dev/sda bs=512 count=1 | strings<br />
strings 命令的作用是显示二进制文件里面的字符串</p>
<p>可以在 grub legacy 中包含 grub2 的引导菜单</p>
<p>另外讲了设置 grub2 字体、图片，设置 Chainload。</p>
<p>GRUB4DOS<br />
http://wiki.tinycorelinux.net/wiki:grub4dos</p>
<p>Grub4dos 通过搜索 grldr 开始引导系统。</p>
<p>把 ntfs-3g 集成入 tinycore.gz 的脚本： http://forum.tinycorelinux.net/index.php?topic=6246.0</p>
<p>安装初始化引导器的命令”/usr/local/share/grub4dos/bootlace.com –time-out=0 /dev/” 可以在 Linux 和 DOS/Windows 下运行</p>
<p>linld<br />
http://wiki.tinycorelinux.net/wiki:linld<br />
在 DOS 下引导 Linux 的命令</p>
<p>第七部分：<br />
Linux Commands<br />
基础 Linux 命令。<br />
Basic Commands for New Users<br />
32 or 64 bit CPU<br />
Change Owner and Group<br />
Download using Wget<br />
Extract tar.gz, tar.bz2, zip, and other Compressed Files<br />
http://wiki.tinycorelinux.net/wiki:tar<br />
等同压缩文件扩展名<br />
  .tgz is equivalent to .tar.gz<br />
  .tbz and .tb2 are equivalent to .tar.bz2<br />
  .taz is equivalent to .tar.Z<br />
  .tlz is equivalent to .tar.lz<br />
  .txz is equivalent to .tar.xz</p>
<p>解压 tinycore.gz： zcat tinycore.gz | sudo cpio -i -H newc -d<br />
解压 .deb 文件：<br />
ar vx filename.deb<br />
tar -xzvf data.tar.gz<br />
解压 .rpm 文件： rpm2cpio filename.rpm | cpio -vid<br />
Mount an ISO<br />
Use md5sum to Check if a File has been Corrupted</p>
<p>第八部分：<br />
Tinycore and Microcore Commands<br />
一些 Tinycore 里面的命令行工具，已读。<br />
      App Browser<br />
      Backup and Restore<br />
      Install Applications Using Commands<br />
      Run the Installer<br />
      Select Mirror<br />
      Shutdown and Restart<br />
      Start or Load Applications<br />
      System Information<br />
      Update Applications<br />
      Package management cheat sheet</p>
]]></content:encoded>
			<wfw:commentRss>http://www.learndiary.com/2011/10/tinycore-linux-wiki-%e5%ad%a6%e4%b9%a0%e6%97%a5%e8%ae%b0%e4%b9%8b%e5%9b%9b%e8%87%b3%e5%85%ab%ef%bc%9a%e8%ae%be%e7%bd%ae%e3%80%81%e6%8c%81%e4%b9%85%e5%8c%96%e3%80%81%e5%bc%95%e5%af%bc%e5%99%a8%e7%ad%89/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tinycore Linux Wiki 学习日记之二、三：工作方式及程序</title>
		<link>http://www.learndiary.com/2011/10/tinycore-linux-wiki-%e5%ad%a6%e4%b9%a0%e6%97%a5%e8%ae%b0%e4%b9%8b%e4%ba%8c%e3%80%81%e4%b8%89%ef%bc%9a%e5%b7%a5%e4%bd%9c%e6%96%b9%e5%bc%8f%e5%8f%8a%e7%a8%8b%e5%ba%8f/</link>
		<comments>http://www.learndiary.com/2011/10/tinycore-linux-wiki-%e5%ad%a6%e4%b9%a0%e6%97%a5%e8%ae%b0%e4%b9%8b%e4%ba%8c%e3%80%81%e4%b8%89%ef%bc%9a%e5%b7%a5%e4%bd%9c%e6%96%b9%e5%bc%8f%e5%8f%8a%e7%a8%8b%e5%ba%8f/#comments</comments>
		<pubDate>Tue, 04 Oct 2011 09:37:14 +0000</pubDate>
		<dc:creator>littlebat</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[tinycorelinux]]></category>
		<category><![CDATA[wiki]]></category>
		<category><![CDATA[学习日记]]></category>
		<category><![CDATA[工作方式]]></category>
		<category><![CDATA[程序]]></category>

		<guid isPermaLink="false">http://www.learndiary.com/?p=4164</guid>
		<description><![CDATA[包括 TinyCore Linux Wiki 的第二部分：TinyCore Linux 的工作方式，第三部分：应用程序的安装、缷载和更新。

2011年09月29日 星期四
第二部分：How it Works
Getting Started
http://wiki.tinycorelinux.net/wiki:getting_st... ]]></description>
			<content:encoded><![CDATA[<p>包括 <a href="http://wiki.tinycorelinux.net/">TinyCore Linux Wiki</a> 的第二部分：TinyCore Linux 的工作方式，第三部分：应用程序的安装、缷载和更新。<br />
<span id="more-4164"></span><br />
2011年09月29日 星期四<br />
第二部分：How it Works<br />
Getting Started<br />
http://wiki.tinycorelinux.net/wiki:getting_started<br />
#Burn the ISO to CD-RW or CD-R<br />
刻录 Tinycore LiveCD 时如果光盘里的文件是 *.iso 则是刻录失败了。不能从其启动系统。</p>
<p>Boot Codes Explained<br />
http://wiki.tinycorelinux.net/wiki:boot_codes_explained<br />
1、当从 LiveCD 上启动时，在引导代码前面加上 &#8220;tinycore&#8221;，如： tinycore tce=sda1<br />
2、完全忽略已有的安装： tinycore base norestore<br />
3、完全忽略 /opt/.filetool.lst 里面定义的自动备份\恢复选项： tinycore norestore<br />
4、完全忽略 /opt/.filetool.lst 里面定义的自动备份\恢复选项但是使用后面定义的持久化选项：tinycore norestore tce=sda1 opt=sda1 home=sda1</p>
<p>Setting up Wifi<br />
http://wiki.tinycorelinux.net/wiki:setting_up_wifi<br />
讲了3种连接无线网络的方法：<br />
简单的方法：直接安装 wicd<br />
简单的方法：直接安装并作简单设置 wpa_supplicant 和 wpa_gui<br />
复杂但更也许更灵活的方法：使用无线工具，需要安装：<br />
wireless_tools.tcz、wireless-`uname -r`-tinycore.tcz 、wpa-supplicant.tcz，这种方法需要设置不少地方，想来自动化程度降低了，灵活性想必更好。但暂时还没发觉灵活性在哪里。</p>
<p>Network Setup &#8211; Atheros Wireless Cards<br />
http://wiki.tinycorelinux.net/wiki:network_setup_-_atheros_wireless_cards<br />
这里主要讲开源 Atheros 驱动不能用的情况可以尝试：<br />
1. ndiswrapper<br />
2. madwifi 开源替代品<br />
但是举的例子是 Tinycore 2.* ，所以不能确定现在新的版本的具体操作，但是基本原理应是差不多的。需要时可以参考。</p>
<p>Persistence for Dummies, or &#8220;Why can&#8217;t I find my apps and settings after booting?&#8221;<br />
http://wiki.tinycorelinux.net/wiki:persistence_for_dummies<br />
1、简介介绍了 tinycore 的特点：完全运行于内存中，不受病毒和误操作的影响，缷载和升级方便。但是根据你的指令，它也可以持久化你的设置和文件。</p>
<p>2、最好是在启动选项中指定 tce 参数，这样可以避免 tinycore 搜索的时间，如果没有指定，它问题默认使用找到的第一个分区中的 tce 目录作为扩展包的存储位置。</p>
<p>3、mydata.tgz 保存的内容列表包括在 /opt/.filetool.lst 中，要排除的文件列表在 /opt/.xfiletool.lst 中。排除的优先级高于包括。</p>
<p>4、静态文件和目录可以做成扩展包以节省启动时间：<br />
creating extensions for settings<br />
http://wiki.tinycorelinux.net/wiki:extension_for_settings<br />
要注意扩展包的命名影响加载它的顺序，是按照A－Z，a-z的次序，如果一个软件包的名称是A.tcz ，为了确保它的设置扩展包在它之后加载，可以命名为 B.tcz 等。<br />
也可以把它保存在 /opt 持久化（question: 在 /opt 目录中的文件都是持久化的，不会随着系统重启没有进行备份操作而消失？ 答：如果 /opt 本身没有放入一个 Linux 分区中，没有在启动时指定 opt=sda1 之类，保存的文件还是以备份模式进行的。todo: 这个答案需要进一步证实。 ）</p>
<p>todo: Tinycore Passwords http://wiki.tinycorelinux.net/wiki:passwd 仔细研究 Backup 模式和持久化模式的区别和联系</p>
<p>Printer Setup Using Cups<br />
http://wiki.tinycorelinux.net/wiki:printer_setup_using_cups<br />
用 Cups 设置打印机的实例，包括用 Backup 模式保存设置和建立一个静态扩展包保存设置。</p>
<p>5、指定 opt=sda1 home=sda1 这类持久化目录的限制，这些目录只能存在于 Linux 分区以保持文件的权限。如果全部是 FAT 分区，将会强制使用备份模式保存文件与设置。</p>
<p>question: 如果只有 FAT 分区，那么前面讨论的持久化 /opt 目录的方法是否就不能实现了？那么为了节省启动时间和减少写操作（如在 U 盘上使用），就只能使用把需要保存的设置和文件做进定制扩展包里的方法了？</p>
<p>6、Setting Up &#8211; Wallpaper<br />
http://wiki.tinycorelinux.net/wiki:wallpaper_desktop_background<br />
如果把大量的图片文件放入 /opt/backgrounds 下会增加不必要的备份时间，可以把它们放在如 /tce 目录下然后在 opt/backgrounds 下面建立一个链接指向它。</p>
<p>7、可以指定不同的启动 tce 目录，如： kernel /boot/bzImage quiet tce=sda1/tce_storage/playing<br />
可以指定不同的备份文件名称，如： kernel /boot/bzImage quiet tce=sda1 mydata=playing （备份文件名称为： playing.gz ）<br />
可以指定不同的备份文件目录，如： kernel /boot/bzImage quiet tce=sda1 restore=sda1/tce/play （备份文件在 sda1/tce/play/mydata.gz 中）</p>
<p>8、扩展的加载方式：<br />
Onboot: 启动加载入内存<br />
Ondemand: 需要时加载入内存<br />
Download + load: 需要时手工选定本地软件包并加载入内存</p>
<p>todo: Ondemand 的实现方式</p>
<p>2011年09月30日 星期五<br />
Tinycore Utilities<br />
http://wiki.tinycorelinux.net/wiki:tiny_core_utilities<br />
1、<br />
question: TC Terminal Server 有什么用？</p>
<p>2、<br />
如果使用上网本，使用 915resolution 也许可以产生适合上网本的分辨率。</p>
<p>UUID or Universally Unique Identifier<br />
http://wiki.tinycorelinux.net/wiki:uuid<br />
question: 如何在 U 盘上建立 /opt /home 持久化目录？必须 Linux 分区吗？（使用： opt=UUID=&#8221;9aff3da3-474d-440d-bb6c-3240afe84ac6&#8243; tce=UUID=&#8221;9aff3da3-474d-440d-bb6c-3240afe84ac6&#8243; home=UUID=&#8221;9aff3da3-474d-440d-bb6c-3240afe84ac6&#8243; 之类的引导代码）</p>
<p>第三部分<br />
Applications<br />
todo: Mplayer-nodeps.tcz，独立的，不依赖任何软件包，看它是怎么编译的，难道连 ffmpeg 中的 libavcodec 之类的库也不需要？</p>
<p>Select Mirror<br />
http://wiki.tinycorelinux.net/wiki:mirror<br />
1、本地或其它镜像： 创建 /opt/localmirrors 然后列出他们<br />
2、显示使用的镜像： cat /opt/tcemirror<br />
3、选择一个镜像： tcemirror.sh</p>
<p>Install Applications<br />
http://wiki.tinycorelinux.net/wiki:install_apps<br />
已读</p>
<p>Update Applications<br />
http://wiki.tinycorelinux.net/wiki:update_apps<br />
命令： tce-update</p>
<p>Remove Applications<br />
http://wiki.tinycorelinux.net/wiki:remove_apps<br />
要通过 Apps AUdit，因为可以做到依赖关系的不被破坏。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.learndiary.com/2011/10/tinycore-linux-wiki-%e5%ad%a6%e4%b9%a0%e6%97%a5%e8%ae%b0%e4%b9%8b%e4%ba%8c%e3%80%81%e4%b8%89%ef%bc%9a%e5%b7%a5%e4%bd%9c%e6%96%b9%e5%bc%8f%e5%8f%8a%e7%a8%8b%e5%ba%8f/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tinycore Linux Wiki 学习日记之一：安装</title>
		<link>http://www.learndiary.com/2011/09/tinycore-linux-wiki-%e5%ad%a6%e4%b9%a0%e6%97%a5%e8%ae%b0%e4%b9%8b%e4%b8%80%ef%bc%9a%e5%ae%89%e8%a3%85/</link>
		<comments>http://www.learndiary.com/2011/09/tinycore-linux-wiki-%e5%ad%a6%e4%b9%a0%e6%97%a5%e8%ae%b0%e4%b9%8b%e4%b8%80%ef%bc%9a%e5%ae%89%e8%a3%85/#comments</comments>
		<pubDate>Wed, 28 Sep 2011 12:22:11 +0000</pubDate>
		<dc:creator>littlebat</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[tinycorelinux]]></category>
		<category><![CDATA[wiki]]></category>
		<category><![CDATA[学习日记]]></category>
		<category><![CDATA[安装]]></category>

		<guid isPermaLink="false">http://www.learndiary.com/?p=4160</guid>
		<description><![CDATA[Tinycore Linux Wiki 里面的文档资料做得非常详细，通读一遍应该对它的方方面面了解比较深入。下面是 Wiki 第一部分 “Installation” 的学习笔记，不是全面的内容总结，主要记录一些值得自己关注... ]]></description>
			<content:encoded><![CDATA[<p><a href="http://wiki.tinycorelinux.net/">Tinycore Linux Wiki</a> 里面的文档资料做得非常详细，通读一遍应该对它的方方面面了解比较深入。下面是 Wiki 第一部分 “Installation” 的学习笔记，不是全面的内容总结，主要记录一些值得自己关注的要点。<br />
<span id="more-4160"></span><br />
2011年09月24日 星期六<br />
Tinycore Linux Wiki 学习笔记：<br />
1、Options when Installed on a USB Drive 持久化还是退出时保存的选择：<br />
持久化 /opt；如果文件不是经常改变，持久化 /home；如果你的 /home 内文件常改变，就选择退出时保存 /home 目录。</p>
<p>持久化：当文件改变时才写入；备份：退出时保存所有东西。显然，持久化写入磁盘的数据少些。</p>
<p>问题：为什么 /home 内文件经常改变选择备份？选择持久化不是一样的效果吗？难道这时写入的数据量反而要大些？</p>
<p>2011年09月25日 星期日<br />
1、<br />
Use Passwords in Extlinux<br />
http://wiki.tinycorelinux.net/wiki:extlinux_passwd<br />
可以在 Extlinux 引导菜单中使用明文或 sha1 加密密码</p>
<p>2、<br />
Tinycore Passwords<br />
方法是在 /etc/shdow 设置密码，然后用备份模式保存或持久化这个文件。<br />
http://wiki.tinycorelinux.net/wiki:passwd<br />
/opt/bootsync.sh 在引导过程的前期运行。<br />
/opt/bootlocal.sh 在引导过程的后期运行。</p>
<p>3、<br />
Partition a Drive to Install more than one Operating System<br />
http://wiki.tinycorelinux.net/wiki:partition</p>
<p>使用 Extlinux 引导程序，它必须放在一个主分区中，并且设为活动分区。</p>
<p>不要把 日志文件系统或交换分区放在 USB 或固定内存中，如果用 Linux 文件系统就用 Ext2 文件系统，这可以减少写磁盘的机会。</p>
<p>4、<br />
Install Tinycore if you already have Windows<br />
http://wiki.tinycorelinux.net/wiki:install_with_windows<br />
在安装 tc-grub4dos （即在 Multicore 中选择 tcg 安装）时，当和 Windows 同一分区时选择“Embedded”，当把 Tinycore 安装到一个分别的分区时选择“Frugal”。</p>
<p>5、<br />
Install Tinycore without a CD or DVD Drive<br />
http://wiki.tinycorelinux.net/wiki:install_without_a_cd_or_dvd_drive<br />
可以用 Grub4dos 引导一个 ISO 文件；<br />
可以用 UNetbootin 引导 ISO 文件（具体方法需要学习？）<br />
Isohybrid；问：怎样让一个 ISO 文件具有 isohybrid 特性？</p>
<p>2011年09月26日 星期一<br />
Install Tinycore on a USB Drive with a Partition for Sharing Files with Windows<br />
http://wiki.tinycorelinux.net/wiki:install_with_partition_for_sharing<br />
Tinycore Linux wiki 上写的与 Windows 共享文件的方法是在优盘上另外建一个 FAT32 或 NTFS 分区，然后以这个分区为中介进行共享。实际上现在在 Windows 下有直接读写 Linux 分区的程序，如一个国人写的开源程序：Ext2Fsd http://www.ext2fsd.com/</p>
<p>2011年09月27日 星期二<br />
1、<br />
Partition a Drive to Install more than one Operating System<br />
http://wiki.tinycorelinux.net/wiki:partition<br />
可以安装不同版本的 Tinycore, Microcore Linux, 其它 Linux, Windows 在同一磁盘上。<br />
磁盘上仅能在主分区上设置活动或引导分区；使用 Grub 引导 Windows 时，Windows 分区必须是活动或引导分区（有点疑问，需要实际测试一下？）。</p>
<p>在这里认识并测试一下一个专用于磁盘维护的 LiveCD 发行版： &#8220;Parted Magic&#8221; http://partedmagic.com/doku.php 可以用于磁盘备份、数据修复、文件系统管理等等，启动时选择中文支持使软件显示中文界面。</p>
<p>2、<br />
Time Zone<br />
http://wiki.tinycorelinux.net/wiki:time_zone<br />
讲了在引导代码中设置时区的方法，主要是 tz 字符串的取得，包括了实行“夏时制”和没实行的情况。这种方法是在 /etc/localtime 设置方法的替代，不能并用。</p>
<p>3、<br />
http://wiki.tinycorelinux.net/wiki:vmware_installation<br />
可以安装相应的scsi扩展以支持scsi虚拟硬盘。<br />
但是如果需要在启动时支持 scsi 硬盘，则需要重制 initrd 文件。<br />
IDE virtual disk (optional): 64 Mb (cannot be increased, so choose a larger size if you intend on installing many programs) 为什么不能增加大小？</p>
<p>4、<br />
Remastering TC<br />
http://wiki.tinycorelinux.net/wiki:remastering<br />
一个替代的方法是如： cat microcore.gz Xlibs.gz Xprogs.gz Xvesa.gz &gt; my_xcore.gz<br />
如果添加了内核模块，使用 demod 命令使模块可以自动加载（重写 /lib/modules/2.6.33*/modules.* 绝大部分文件）。<br />
2.1及以下版本：<br />
sudo chroot /tmp/extract depmod -a 2.6.29.1-tinycore</p>
<p>2.2及以上版本：<br />
sudo depmod -a -b /tmp/extract 2.6.29.1-tinycore</p>
<p>如果添加了共享链接库，那么执行：<br />
sudo ldconfig -r /tmp/extract</p>
<p>advdef 命令的作用，重新压缩 .png, .mng, .gz, .tgz and .svgz 文件里的数据<br />
advdef -z4 tinycore.gz</p>
<p>5、http://wiki.tinycorelinux.net/wiki:dynamic_root_filesystem_remastering<br />
根文件系统动态重制：可以在不影响发行版 tinycore.gz 或 microcore.gz 的情况下重制根文件系统。</p>
<p>这种方法基于 Syslinux 家族(syslinux, isolinux, extlinux, pxelinux)引导器启动时可以加载多个 initramfs 映像文件的功能。</p>
<p>方法是用 extlinux 引导器加载多个 initrd 映像文件，如：initrd /boot/microcore.gz,/boot/my_initramfs.gz</p>
<p>todo: 文中说 Grub 不能使用这种加载多个 initrd 的方法，不过我好像在哪儿看到过，有待证实。</p>
<p>文中的方法只是把 ./tce/optional 下的扩展移入了 initrd 文件中，并在 ./tce/onboot.lst 中加载。而并不是我想的那样把扩展解开，再加入解开的 initrd 文件中并重新打包成 initrd 映像文件。</p>
<p>2011年09月28日 星期三<br />
Install Microcore<br />
http://wiki.tinycorelinux.net/wiki:install_microcore<br />
在 Microcore 的基础上加上：Xlibs.tcz、Xprogs.tcz、Xvesa.tcz、flwm_topside.tcz、wbar.tcz 就成了 Tinycore 。例如：可以把 flwm_topside.tcz 换成其它窗口管理器。</p>
<p>Install Applications<br />
http://wiki.tinycorelinux.net/wiki:install_apps<br />
A note on dependencies and Apps Audit<br />
这里举了一个软件不在可安装列表也不在已安装列表的特殊情况，实际上已经下载到了本地库。如：alsa 和 alsa-modules 是 alsamixergui 的依赖，当 alsa 安装入了 Onboot 列表中，alsamixergui 安装入了 Ondemand 列表中，三者都将从可安装列表中消失。当把 alsa 从 Onboot 列表中卸载，它却并不会回到可安装列表中，因为它是 alsamixergui 的依赖。如果一个软件安装到了 Onboot 或 Ondemand 中，那么它的依赖也要从可安装列表中消失。要使 alsa 重新回到 Onboot 或 Ondemand 安装列表，只有手工改写 Onboot.lst 或把 alsamixergui 移出 Ondemand 列表再进行</p>
<p>下面是在 Microcore 文字界面中可以使用的一些诸如：查找、安装、卸载等命令行工具：</p>
<p>App Browser<br />
http://wiki.tinycorelinux.net/wiki:app_browser。<br />
命令： ab 搜索软件包</p>
<p>Install Applications Using Commands<br />
http://wiki.tinycorelinux.net/wiki:install_app_commands<br />
命令： tce-load 安装或下载软件包<br />
查看 tce 目录： cat /opt/.tce_dir</p>
<p>Backup and Restore<br />
http://wiki.tinycorelinux.net/wiki:backup_commands<br />
命令： filetool.sh 用于备份、恢复、列出备份<br />
查看备份设备： cat /opt/.backup_device</p>
<p>查找家目录下的大于 100M 的文件：<br />
find ~/ -type f -size +100M | xargs ls -lhS</p>
<p>Run the Installer<br />
http://wiki.tinycorelinux.net/wiki:installer<br />
图形界面的安装器： install.gz 中的 tc-install，grub4dos.gz 中的 grub4dos<br />
文字界面的安装器： install.gz 中的 tc-install.sh</p>
<p>Select Mirror<br />
http://wiki.tinycorelinux.net/wiki:mirror<br />
查看使用的镜像： cat /opt/tcemirror<br />
选择镜像命令： tcemirror.sh</p>
<p>Shutdown and Restart<br />
http://wiki.tinycorelinux.net/wiki:shutdown<br />
关机命令： exittc<br />
跳过备份选项的关机： sudo poweroff ，重启： sudo reboot ； 如果需要备份，首先执行 “filetool.sh -b”。</p>
<p>Start or Load Applications<br />
http://wiki.tinycorelinux.net/wiki:load_app_commands<br />
启动一个没有加载的程序： tce-run<br />
载入一个程序： tce-load -i 或 tce-load -is</p>
<p>System Information<br />
http://wiki.tinycorelinux.net/wiki:system_information<br />
版本： version<br />
启动代码： showbootcodes<br />
tce 目录： cat /opt/.tce_dir<br />
系统统计： stats</p>
<p>Update Applications<br />
http://wiki.tinycorelinux.net/wiki:update_apps<br />
命令： tce-update</p>
<p>Microcore 命令行工具列举结束。</p>
<p>Microcore64 Installation Guide for Beginners<br />
http://wiki.tinycorelinux.net/wiki:microcore64_kiss_install_guide<br />
同样可以用于手工安装 Tinycore Linux 的其它版本。<br />
todo: 只是不清楚是不是 64位 的 Microcore Linux 必须使用这种手工方式。</p>
<p>Update Tinycore<br />
http://wiki.tinycorelinux.net/wiki:update<br />
直接替换相应的 bzImage 和 tinycore.gz，可以把不同的版本安装在一起，只是在引导程序中需要设定。<br />
版本控制：如： 2.* 升级到 3.* 必须作一个全新的重安装，包括所有的扩展包，因为有重要更改。而 3.* 系列可以平滑升级，所以版本号不是乱编的。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.learndiary.com/2011/09/tinycore-linux-wiki-%e5%ad%a6%e4%b9%a0%e6%97%a5%e8%ae%b0%e4%b9%8b%e4%b8%80%ef%bc%9a%e5%ae%89%e8%a3%85/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>手工升级 Ubuntu Dapper Server 到 Hardy</title>
		<link>http://www.learndiary.com/2011/09/%e6%89%8b%e5%b7%a5%e5%8d%87%e7%ba%a7-ubuntu-dapper-server%e5%88%b0-hardy/</link>
		<comments>http://www.learndiary.com/2011/09/%e6%89%8b%e5%b7%a5%e5%8d%87%e7%ba%a7-ubuntu-dapper-server%e5%88%b0-hardy/#comments</comments>
		<pubDate>Wed, 07 Sep 2011 09:07:30 +0000</pubDate>
		<dc:creator>littlebat</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[站务]]></category>
		<category><![CDATA[dapper]]></category>
		<category><![CDATA[hardy]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[升级]]></category>
		<category><![CDATA[手工]]></category>

		<guid isPermaLink="false">http://www.learndiary.com/?p=4152</guid>
		<description><![CDATA[我的博客学习日记这两年一直都是架在一台赛扬 1.3G + Ubuntu Dapper (6.06)的服务器上，因为安装更新一个程序才发现所有源取消了（试了官方和mirrors.163.com  的），dapper server 的安全更新支持于前一... ]]></description>
			<content:encoded><![CDATA[<p>我的博客<a href="http://www.learndiary.com/">学习日记</a>这两年一直都是架在一台赛扬 1.3G + Ubuntu Dapper (6.06)的服务器上，因为安装更新一个程序才发现所有源取消了（试了官方和<a href="http://mirrors.163.com/">mirrors.163.com</a>  的），dapper server 的安全更新支持于前一段时间结束（服务器版本5年）。所以将其升级为 Ubuntu Hardy (8.04)。下面记录一些关键之处。<span id="more-4152"></span><br />
本来，官方的方法是安装专用的升级程序就可以直接顺利升级（&#8221;sudo do-release-upgrade&#8221;），见：<a href="https://help.ubuntu.com/community/HardyUpgrades#Network_Upgrade_from_6.06_for_Ubuntu_Servers_.28Recommended.29">Network Upgrade from 6.06 for Ubuntu Servers (Recommended) </a>，但是因为源已经取消了，单独下载升级程序可能要解决一系列的包依赖问题比较麻烦，所以我进行手工的升级。</p>
<p>先把整个硬盘里的数据备份，如：</p>
<pre>
tar -cpjf bak.tar.bz2 --exclude=/proc --exclude=/lost+found \
--exclude=/mnt --exclude=/media --exclude=/dev/pts --exclude=/dev/shm \
--exclude=/sys --exclude=/var/cache/eaccelerator /
</pre>
<p>并把备份的文件复制到安全的地方并检查备份文件的正确性和完整性。</p>
<p>把源( /etc/apt/sources.list )修改成 Hardy 的，我这里使用的源是<a href="http://mirrors.163.com/"> .mirrors.163.com</a> 的。执行 &#8220;sudo apt-get update&#8221;，再执行&#8221;sudo apt-get dist-upgrade&#8221;，后来一度出错，提示执行“sudo apt-get -f dist-upgrade”，照做。主要碰到了2个问题。</p>
<p>unifont 软件包好像有冲突，卸载不掉旧的，安装不了新的。解决方法是手工删除相关文件（用 dpkg -S unifont 查找），然后去掉安装信息里的条目（find /var/backups/* | xargs grep unifont 查找，我这里有 aptitude.pkgstates.0 , dpkg.status.0 ，注：不能确定这一步的必要性，反正做了，想法是我把系统里与 unifont 相关的东西都去掉了，你总不会再报错吧？）。然后直接安装 hardy 的版本就行了。这时也应该可以卸载了。</p>
<p>软件包越多，问题出现的可能越多，把 xserver-xorg, x11-common 等等图形界面相关的软件包统统卸载掉了。</p>
<p>如果升级过程中碰到有冲突的软件，先用 sudo dpkg -r 卸载掉，甚至使用强制卸载“sudo dpkg -r &#8211;force-all”。如果需要再直接“sudo apt-get install”安装 hardy 的新版本。</p>
<p>升级完毕后重新启动发现好像在加载硬盘分区的过程中卡住了，显示什么 “/dev/mapper”之类的出错信息，手工在 grub 菜单中指定 root=/dev/hda1 （IDE老硬盘，原来指定的根分区用的是 uuid，hardy 实际上为sda1，但在这一步竟然启动到了控制台，运气好 <img src='http://www.learndiary.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  ）。在控制台中发现原来是启动了 evms 的服务，将这个服务用 sudo chmod -x evms 禁止掉，好像还卸载了相关的 lvm2 软件。没有修改其它什么，系统就能正常启动了。</p>
<p>运气不错，其它所有的服务器配置都没有任何改动，甚至包括我原来在 dapper 下手工编译安装的 <a href="http://www.learndiary.com/2010/12/ubuntu-6-06%E4%B8%8B-apache-%E8%BD%AC-nginx/">Nginx + PHP5-CGI</a>也工作正常。至此手工从 Ubuntu Dapper Server 升级到 Hardy Server 成功。也许又能用这个老机器对付两年而不用升级系统了 <img src='http://www.learndiary.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>如果有人要效仿，再提醒一句，行动之前整个硬盘数据作一个备份！另外，也许用前面提到的官方自动升级的方法<a href="https://help.ubuntu.com/community/HardyUpgrades#Network_Upgrade_from_6.06_for_Ubuntu_Servers_.28Recommended.29">Network Upgrade from 6.06 for Ubuntu Servers (Recommended) </a>，像我这样的情况，先手动下载安装自动升级程序及其依赖软件包，再用自动升级程序进行升级也许是一种更稳妥的方法。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.learndiary.com/2011/09/%e6%89%8b%e5%b7%a5%e5%8d%87%e7%ba%a7-ubuntu-dapper-server%e5%88%b0-hardy/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 2.168 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-05-18 16:59:14 -->
<!-- Compression = gzip -->
