﻿<?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/"
	xmlns:series="http://unfoldingneurons.com/"
	>

<channel>
	<title>f(Program,Poet)=Programet &#187; linux</title>
	<atom:link href="http://blog.programet.org/tag/linux/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.programet.org</link>
	<description>f(诗,程序)=诗序=思绪 &#124; 记载我们自己的生活</description>
	<lastBuildDate>Tue, 07 Feb 2012 16:00:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Linux引论1</title>
		<link>http://blog.programet.org/2011/04/linux%e5%bc%95%e8%ae%ba1.html</link>
		<comments>http://blog.programet.org/2011/04/linux%e5%bc%95%e8%ae%ba1.html#comments</comments>
		<pubDate>Sun, 10 Apr 2011 03:54:00 +0000</pubDate>
		<dc:creator>Malloc</dc:creator>
				<category><![CDATA[原创博文]]></category>
		<category><![CDATA[GCC]]></category>
		<category><![CDATA[Linus Torvalds]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://blog.programet.org/?p=4045</guid>
		<description><![CDATA[GCC和BASH (I) 1991年，也就是恰好20年前，在芬兰赫尔辛基读研究生的Linus Torvalds，为了能用自己的x86机器访问学校的ftp服务器和查看新闻组，基于MINIX编写了Linux，当他像扔漂流瓶一样把Linux扔进因特网这片海洋时，他写道: Hello everybody out there using minix - I&#8217;m doing a (free) operating system (just a hobby, won&#8217;t be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I&#8217;d like any feedback on things people like/dislike in minix, as my [...]
相关文章：<ol>
<li><a href='http://blog.programet.org/2010/11/i-will-%e6%8e%a8%e8%8d%90%e5%8f%8a%e6%ad%8c%e8%af%8d%e7%bf%bb%e8%af%91.html' rel='bookmark' title='I Will 推荐及歌词翻译'>I Will 推荐及歌词翻译</a></li>
<li><a href='http://blog.programet.org/2009/12/when-christmas-comes-to-town.html' rel='bookmark' title='When Christmas Comes to Town 中文版'>When Christmas Comes to Town 中文版</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<h2>GCC和BASH (I)</h2>
<p>1991年，也就是恰好20年前，在芬兰赫尔辛基读研究生的Linus Torvalds，为了能用自己的x86机器访问学校的ftp服务器和查看新闻组，基于MINIX编写了Linux，当他像扔漂流瓶一样把Linux扔进因特网这片海洋时，他写道:<span id="more-4045"></span></p>
<blockquote><p>Hello everybody out there using minix -</p>
<p>I&#8217;m doing a (free) operating system (just a hobby, won&#8217;t be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I&#8217;d like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).</p>
<p>I&#8217;ve currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I&#8217;ll get something practical within a few months, and I&#8217;d like to know what features most people would want. Any suggestions are welcome, but I won&#8217;t promise I&#8217;ll implement them <img src='http://blog.programet.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Linus (torvalds@kruuna.helsinki.fi)</p>
<p>PS. Yes – it&#8217;s free of any minix code, and it has a multi-threaded fs. It is NOT portable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that&#8217;s all I have <img src='http://blog.programet.org/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> .</p>
<p style="text-align: right;">—Linus Torvalds</p>
</blockquote>
<p>Linus在完成基本的操作系统内核后，他移植的头两个程序就是GCC和BASH，也就是这篇文章的主角:-)</p>
<h3>GCC</h3>
<p>GCC的全称是GNU Compiler Collection，它原本是GNU C Compiler，后来又加入了对C++, Java, ObjC/C++, Fortran, Ada, Pascal和Google Go的支持。尽管GCC支持的语言在变多，但是大多数Linux用户或许还是把更多关心放到GCC对C语言编译的改进上（原因嘛，0.C语言简洁，可靠，快速; 1.内核是用C编写的; 2.核心组件是用C语言编写的; 3.大多数优秀的Linux应用程序是用C语言编写的; 4.很多优秀的黑客不喜欢OOP o_O）。</p>
<p>编译C源文件的程序叫cc，也就是C语言的编译器。一般我们需要编译一个C的源文件foo.c，需要在命令行下输入gcc foo.c，这时就会生成一个a.out文件（a.out原本是大多数类Unix系统使用的可执行文件格式，现在来说，它太老了，现在Linux的可执行文件格式是ELF，但是为了保持传统还是在不指定-o选项的情况下输出a.out）。如果需要制定输出文件的名称需要加入-o选项，就像这样gcc -o foo foo.c。几个常用的选项还有-g, -O1, -O2。-g是加入调式信息，这样在得到可执行程序之后，可以对那个程序进行调试；-O1, -O2是对代码进行优化。</p>
<p>可能对于一些有过编译经历却不完全了解编译过程的童鞋来说，编译等同于输入一个源文件，然后输出一个可执行文件。如果要严格区分的话，编译只是其中的一道工序。为了从一个编写良好的C源文件得到一个可执行文件，计算机要做的事情是按次序：预编译、编译、汇编和链接。 这个是比较初略的步骤，在编译那块，就有一门叫做编译原理的课程去讲解。</p>
<p>首先预编译是将源文件的宏代码进行扩展；然后编译是将扩展后的代码转变为汇编代码；接着汇编是将汇编代码转变为机器码；最后链接，是要把一些其他地方的代码跟你的代码“绑”在一起（如果第一次看到可能会有点一头雾水，如果知道链接还有静态链接和动态链接，可能会更加不知所措）。</p>
<p>现在让我们看看调用gcc -o foo foo.c的时候发生了什么。</p>
<p>计算机读入这段命令后，会去启动一个叫做gcc的程序（说实话，这个名字有点误导人）。gcc准确来说，应该叫C语言编译驱动程序。因为实际上gcc并不作任何关于预编译、编译、汇编和链接的工作，它做的是调用其它命令来做这些工作。然后计算机查看gcc的命令选项，知道1. -o foo-&gt;生成一个名为foo的可执行的目标文件，意味着要依次调用cpp, cc, as, ld对输入的源文件进行处理; 2. foo.c -&gt;输入的是一个C语言的源文件。接着gcc开始依次调用cpp, cc, as, ld对foo.c进行处理。这些程序的作用: cpp进行宏扩展; cc编译; as汇编; ld链接。</p>
<p>如果要指定gcc把工作只进行到这四个阶段的某一个结束为止，可以添加这些选项:-E-&gt;只扩展; -S-&gt;编译，不汇编; -c-&gt;完成汇编，不链接。在这些选项后边不必加入制定的文件名。</p>
<h3>一些后话</h3>
<p>GCC虽然现在受到了诸如基于LLVM的Clang等编译器的挑战，但它还是Linux当值无愧的标准编译器（当然官方可没这么说，不过这是大家公认的）。当被问到关心GNU哪些项目时，一贯犀利的Linus说他只关心GCC，其他神马的都是浮云（包括牛气冲天的GNU Emacs O_o; “我用的是Micro Emacs，也只是为了用那些快捷键而已”；“我都不用调试器的，真有问题的话，就要把你的脑袋当计算机了”）。</p>
<p><small>本文由 Malloc 创作，转载或引用前请<a href="mailto:programet.org@gmail.com">联系我们</a>。</small></p><p>相关文章：<ol>
<li><a href='http://blog.programet.org/2010/11/i-will-%e6%8e%a8%e8%8d%90%e5%8f%8a%e6%ad%8c%e8%af%8d%e7%bf%bb%e8%af%91.html' rel='bookmark' title='I Will 推荐及歌词翻译'>I Will 推荐及歌词翻译</a></li>
<li><a href='http://blog.programet.org/2009/12/when-christmas-comes-to-town.html' rel='bookmark' title='When Christmas Comes to Town 中文版'>When Christmas Comes to Town 中文版</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.programet.org/2011/04/linux%e5%bc%95%e8%ae%ba1.html/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<series:name><![CDATA[Linux引论]]></series:name>
	</item>
		<item>
		<title>我们需要Linux们吗</title>
		<link>http://blog.programet.org/2009/08/%e6%88%91%e4%bb%ac%e9%9c%80%e8%a6%81linux%e4%bb%ac%e5%90%97.html</link>
		<comments>http://blog.programet.org/2009/08/%e6%88%91%e4%bb%ac%e9%9c%80%e8%a6%81linux%e4%bb%ac%e5%90%97.html#comments</comments>
		<pubDate>Fri, 07 Aug 2009 12:35:51 +0000</pubDate>
		<dc:creator>Malloc</dc:creator>
				<category><![CDATA[原创博文]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[随感]]></category>

		<guid isPermaLink="false">http://blog.programet.cn/2009/08/%e6%88%91%e4%bb%ac%e9%9c%80%e8%a6%81linux%e4%bb%ac%e5%90%97.html</guid>
		<description><![CDATA[你知道Linux吗？你还知道除windows外其他的操作系统吗？如果你的答案是否定的，我要告诉你，Unix、Linux、BSD、Solaris都是跟windows一样优秀的操作系统。它们都要比windows稳定，比windows快捷，去查查使用这些非widows操作系统的工程师（号称地球上最会偷懒的人群）的比例就可以信服这一点了。 我经常鼓动周围的人尝试Ubuntu，但现在想来很没必要。 大家可能听说过这么一个故事。一个经济学家问他的学生，在石油越用越少的情况下，石油价格会不会无限制攀升。答案当然是不会，因为在那种情况下，人类会去寻找比石油廉价的新能源。 所以在大家觉得windows依然可以接受的情况下，是不会转到Linux下面的。就像很多windows用户举得电脑速度慢了，宁愿去做大量无谓的优化而不会去用越用越快的Unix或类Unix的系统。只有大家觉得使用windows的成本超过了去学习新的操作系统的成本的时候，才会去尝试非windows系统。 我看新浪上有个博客是写Linux的，总抛出一些windows必亡的言论，看了觉得很幼稚，口号党而已。 windows的功绩谁都看得到。不是人人都是工程师，所以需要一个windows。可以说有了windows才有了中国互联网今天的繁荣。我无法想象三岁的孩童和刚工作回来的草根们在电脑前打命令行的场景。对于windows，大家骂他，但都离不开他。 但windows也许不会是长远的选择。 我还记得我们宿舍一次激烈的争论，论题就是清华采购windows对国产软件的发展的影响。但是一开始就跑题了（年轻啊）。Bill把问题集中在选择自由上，我们宿舍全体立即就把这个问题上升到民族大义的高度（Bill总遭群水）。倪光南院士对此也有过一番见解，他主要集中在国家安全上。 除了国家安全，还有一个因素会影响大家对windows的选择，就是市场的细分。在公司，老板希望电脑只要有线上办公软件就行了；在学校，校长希望只要有Vert（法语：绿）坝就行了；像我，就是能上网就行了。 windows动则几百美元，虽说包含的大量工程师研究员的辛勤汗水，但是我们需要的功能只是冰山一角而已。在这一方面，开源系统由于定制性很强，就占了很大优势。 现在想到的也就这么多了，结。 本文由 Malloc 创作，转载或引用前请联系我们。相关文章： 我的Linux
相关文章：<ol>
<li><a href='http://blog.programet.org/2009/01/linux.html' rel='bookmark' title='我的Linux'>我的Linux</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>你知道Linux吗？你还知道除windows外其他的操作系统吗？如果你的答案是否定的，我要告诉你，Unix、Linux、BSD、Solaris都是跟windows一样优秀的操作系统。它们都要比windows稳定，比windows快捷，去查查使用这些非widows操作系统的工程师（号称地球上最会偷懒的人群）的比例就可以信服这一点了。</p>
<p><span id="more-1080"></span></p>
<p>我经常鼓动周围的人尝试Ubuntu，但现在想来很没必要。</p>
<p>大家可能听说过这么一个故事。一个经济学家问他的学生，在石油越用越少的情况下，石油价格会不会无限制攀升。答案当然是不会，因为在那种情况下，人类会去寻找比石油廉价的新能源。</p>
<p>所以在大家觉得windows依然可以接受的情况下，是不会转到Linux下面的。就像很多windows用户举得电脑速度慢了，宁愿去做大量无谓的优化而不会去用越用越快的Unix或类Unix的系统。只有大家觉得使用windows的成本超过了去学习新的操作系统的成本的时候，才会去尝试非windows系统。</p>
<p>我看新浪上有个博客是写Linux的，总抛出一些windows必亡的言论，看了觉得很幼稚，口号党而已。</p>
<p>windows的功绩谁都看得到。不是人人都是工程师，所以需要一个windows。可以说有了windows才有了中国互联网今天的繁荣。我无法想象三岁的孩童和刚工作回来的草根们在电脑前打命令行的场景。对于windows，大家骂他，但都离不开他。</p>
<p>但windows也许不会是长远的选择。</p>
<p>我还记得我们宿舍一次激烈的争论，论题就是清华采购windows对国产软件的发展的影响。但是一开始就跑题了（年轻啊）。Bill把问题集中在选择自由上，我们宿舍全体立即就把这个问题上升到民族大义的高度（Bill总遭群水）。倪光南院士对此也有过一番见解，他主要集中在国家安全上。</p>
<p>除了国家安全，还有一个因素会影响大家对windows的选择，就是市场的细分。在公司，老板希望电脑只要有线上办公软件就行了；在学校，校长希望只要有Vert（法语：绿）坝就行了；像我，就是能上网就行了。</p>
<p>windows动则几百美元，虽说包含的大量工程师研究员的辛勤汗水，但是我们需要的功能只是冰山一角而已。在这一方面，开源系统由于定制性很强，就占了很大优势。</p>
<p>现在想到的也就这么多了，结。</p>
<p><small>本文由 Malloc 创作，转载或引用前请<a href="mailto:programet.org@gmail.com">联系我们</a>。</small></p><p>相关文章：<ol>
<li><a href='http://blog.programet.org/2009/01/linux.html' rel='bookmark' title='我的Linux'>我的Linux</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.programet.org/2009/08/%e6%88%91%e4%bb%ac%e9%9c%80%e8%a6%81linux%e4%bb%ac%e5%90%97.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>我的Linux</title>
		<link>http://blog.programet.org/2009/01/linux.html</link>
		<comments>http://blog.programet.org/2009/01/linux.html#comments</comments>
		<pubDate>Sat, 31 Jan 2009 21:53:00 +0000</pubDate>
		<dc:creator>Malloc</dc:creator>
				<category><![CDATA[原创博文]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[商业法则]]></category>
		<category><![CDATA[自由]]></category>
		<category><![CDATA[随感]]></category>

		<guid isPermaLink="false">http://test.programet.cn/2009/01/%e6%88%91%e7%9a%84linux.html</guid>
		<description><![CDATA[现在已经离不开linux了。 刚开始用的时候纯粹就是好奇和标榜自己的与众不同。当别人在讨论windows的问题时，自己来一句“我用linux的”，相当满足。 随着年龄、阅历和知识的渐长，自己也在思考和了解一些东西。最重要的一点就是：不要去在乎你选择了一个名叫XX的操作系统，而是去想想这个操作系统能带给你什么。 无 论是windows、linux、macos、solaris抑或那些不知名的操作系统，他们的底层都是一致的，遵循着大致一样的操作系统理论。只有在高 一点层面上，他们才开始表现出不同。就是在这些层面上，凸现了他们不一样的设计理念，也反射着设计者的价值信条。所以经常有人常常骂微软的独裁；也经常有 人嘲讽linuxers是群满脑子乌托邦的理想主义者。 初识linux的我在安装软件时一遍又一遍的碰壁，翻遍目录找不到想要的软件，G遍天下网 页而找不到正解，有时真想甩头重新奔回windows，但当不熟练地键入&#8221;sudo reboot&#8221;，正要回车时，犹豫了。有个声音告诉我，要留下来。这个声音是如此强烈，让我想起了小时候捣鼓弹弓、泡沫船、纸飞机的情形和刚买回电脑时拆 了主机玩弄主板被电到的感觉。不断涌现着的还有那些在windows上不曾学到过的关于硬件和网络的知识。手轻轻滑落键盘，望着只有光标在闪烁的命令行界 面，猛地醒悟 “你要去创造一个你的世界”。linux就像一个忠实含蓄的高明管家，陪伴着你去创造你的世界。 我以前常常在想那些写出一个又一个开源软件包的到底是些什么人。在这个“万事皆谈利”的年代，他们肯腾出那么多宝贵的时间作一些Free的东西。现在知道这个Free对于他们来说不是免费而是自由。在debian的自我介绍上可以看到这么一些话 “您也许会奇怪: 为什么人们愿意花费他们自己的时间来写软件，谨慎的包装它，然后 再把它全部送给别人？正如同有许多不同的人选择做出这样子的贡献一样，这 个问题也有许多不同的答案。有些人只是喜欢帮助别人。有些人利用写程序来学习更多关于计算机方面的知识。也有些人是在寻找一种避免软件价格膨胀的途径。还有越来越多的 人是为了对他们从其他人的自由软件中得到的好处表达谢意。在学术界中，有许多人创作自由软件来确保有更多人能够从他们的研究成果中得到好处。在商业界中，也有人利用协助维护自由软件的机会来确保他们在软件发展的过程中占有一席之地 &#8212; 当您需要某些新功能时，没有比自己动手做要来得更快的方法了。当然，我们之中也有许多人纯粹只是觉得这样十分的好玩。” 或许这就叫“自由”。不向任何商业法则低头妥协，出于一种很单纯的目的，就像我现在拿着一道题去问苯酚和魔王他们会给我详细解答一样。我明白了，他们也很有成就感了。 任他们讥讽什么乌托邦、理想主义好了。当我们在自由的大道上飞驰的时候，他们已经因为自己的老成世故而湮没在我们的背影中了。 本文由 Malloc 创作，转载或引用前请联系我们。相关文章： 我们需要Linux们吗
相关文章：<ol>
<li><a href='http://blog.programet.org/2009/08/%e6%88%91%e4%bb%ac%e9%9c%80%e8%a6%81linux%e4%bb%ac%e5%90%97.html' rel='bookmark' title='我们需要Linux们吗'>我们需要Linux们吗</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>现在已经离不开linux了。</p>
<p>刚开始用的时候纯粹就是好奇和标榜自己的与众不同。当别人在讨论windows的问题时，自己来一句“我用linux的”，相当满足。<br />
随着年龄、阅历和知识的渐长，自己也在思考和了解一些东西。最重要的一点就是：不要去在乎你选择了一个名叫XX的操作系统，而是去想想这个操作系统能带给你什么。</p>
<p><span id="more-43"></span></p>
<p>无 论是windows、linux、macos、solaris抑或那些不知名的操作系统，他们的底层都是一致的，遵循着大致一样的操作系统理论。只有在高 一点层面上，他们才开始表现出不同。就是在这些层面上，凸现了他们不一样的设计理念，也反射着设计者的价值信条。所以经常有人常常骂微软的独裁；也经常有 人嘲讽linuxers是群满脑子乌托邦的理想主义者。</p>
<p>初识linux的我在安装软件时一遍又一遍的碰壁，翻遍目录找不到想要的软件，G遍天下网 页而找不到正解，有时真想甩头重新奔回windows，但当不熟练地键入&#8221;sudo reboot&#8221;，正要回车时，犹豫了。有个声音告诉我，要留下来。这个声音是如此强烈，让我想起了小时候捣鼓弹弓、泡沫船、纸飞机的情形和刚买回电脑时拆 了主机玩弄主板被电到的感觉。不断涌现着的还有那些在windows上不曾学到过的关于硬件和网络的知识。手轻轻滑落键盘，望着只有光标在闪烁的命令行界 面，猛地醒悟 “你要去创造一个你的世界”。linux就像一个忠实含蓄的高明管家，陪伴着你去创造你的世界。<br />
我以前常常在想那些写出一个又一个开源软件包的到底是些什么人。在这个“万事皆谈利”的年代，他们肯腾出那么多宝贵的时间作一些Free的东西。现在知道这个Free对于他们来说不是免费而是自由。在debian的自我介绍上可以看到这么一些话<br />
<span style="font-size: 100%;"><span style="font-family: webdings;"><br />
“您也许会奇怪: 为什么人们愿意花费他们自己的时间来写软件，谨慎的包装它，然后 再把它全部</span><em style="font-family: webdings;">送</em><span style="font-family: webdings;">给别人？正如同有许多不同的人选择做出这样子的贡献一样，这 个问题也有许多不同的答案。有些人<span style="color: #ff9900;">只是喜欢帮助别人</span>。有些人利用<span style="color: #ff9900;">写程序来学习更多关于计算机方面的知识</span>。也有些人是在寻找<span style="color: #ff9900;">一种避免软件价格膨胀的途径</span>。还有越来越多的 人是为了对他们从其他人的自由软件中得到的好处<span style="color: #ff9900;">表达谢意</span>。在学术界中，有许多人创作自由软件来确保有更多人能够<span style="color: #ff9900;">从他们的研究成果中得到好处</span>。在商业界中，也有人利用协助维护自由软件的机会来确保他们<span style="color: #ff9900;">在软件发展的过程中占有一席之地</span> &#8212; 当您需要某些新功能时，没有比<span style="color: #ff9900;">自己动手</span>做要来得更快的方法了。当然，我们之中也有许多人纯粹只是觉得这样十分的<span style="color: #ff9900;">好玩</span>。”</span></span></p>
<p>或许这就叫“自由”。不向任何商业法则低头妥协，出于一种很单纯的目的，就像我现在拿着一道题去问苯酚和魔王他们会给我详细解答一样。我明白了，他们也很有成就感了。<br />
任他们讥讽什么乌托邦、理想主义好了。当我们在自由的大道上飞驰的时候，他们已经因为自己的老成世故而湮没在我们的背影中了。</p>
<p><small>本文由 Malloc 创作，转载或引用前请<a href="mailto:programet.org@gmail.com">联系我们</a>。</small></p><p>相关文章：<ol>
<li><a href='http://blog.programet.org/2009/08/%e6%88%91%e4%bb%ac%e9%9c%80%e8%a6%81linux%e4%bb%ac%e5%90%97.html' rel='bookmark' title='我们需要Linux们吗'>我们需要Linux们吗</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.programet.org/2009/01/linux.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

