<?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>OS与Oracle &#187; Linux</title>
	<atom:link href="http://www.os2ora.com/tag/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.os2ora.com</link>
	<description>专注于现实世界Oracle数据库的高性能，高可扩展性与新一代数据库Exadata架构</description>
	<lastBuildDate>Fri, 16 Jul 2010 02:55:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>闲话Linux内核——学习，揣摩与玩味</title>
		<link>http://www.os2ora.com/chat-about-linux-kernel/</link>
		<comments>http://www.os2ora.com/chat-about-linux-kernel/#comments</comments>
		<pubDate>Sun, 13 Dec 2009 08:33:21 +0000</pubDate>
		<dc:creator>Kaya</dc:creator>
				<category><![CDATA[Linux性能调优]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[数据库性能调优]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux 内核]]></category>
		<category><![CDATA[Linux 性能监控]]></category>
		<category><![CDATA[软件架构]]></category>

		<guid isPermaLink="false">http://www.os2ora.com/chat-about-linux-kernel/</guid>
		<description><![CDATA[周末翻阅了以前写在msn space上的文章，不经意间找到了一篇2006年写的关于Linux内核的文章，那时想不到自己会变成一个Database Performance Engineer，不过里面的一些观点却和现在的工作不谋而合，只不过那时面对的Linux Kernel，现在面对的却是Oracle Database......]]></description>
			<content:encoded><![CDATA[<p>Kaya 发表于 <a href="http://www.os2ora.com/">os2ora.com</a></p>
<p><em>周末翻阅了以前写在msn space上的文章，不经意间找到了一篇2006年写的关于Linux内核的文章，那时想不到自己会变成一个Database Performance Engineer，不过里面的一些观点却和现在的工作不谋而合，只不过那时面对的Linux Kernel，现在面对的却是Oracle Database，看来有一些根本的东西是不会变的。</em></p>
<p>quote begin“</p>
<p>最早接触Linux内核是在大三的时候，那时《操作系统》的课程设计就是进行Linux内核源代码的分析与进程调度的改进。题目是大的有点吓人，特别是对那时一个涉足未深的年轻人看来。不过那时做的事情很简单，认认真真的看了《Linux内核源代码情景分析》的前言部分（主要讲的AT&amp;T汇编语言，内核中一些特殊的编程规则），与进程调度相关的部分，包括进程的管理，进程的切换，进程与中断，软中断，系统调用，进程互斥与同步机制。并画了几张图阐述了进程调度的路线，对spinlock机制进行了深入的剖析。明白了2.4的内核为何是非抢占式内核，进程调度器其实也不是什么神奇的东 东—— 一个函数罢了，啥叫process context。同时，为了完成“进程调度机制的改进”，看了实现可抢占的两个补丁，哦，现在已经整合进2.6了，也怪不得昨天看2.6进程调度的介绍有种似曾相识的感觉。</p>
<p>可以说，那时的分析完全是理论学习。对于内核编程的实践几乎没有。带来的好处最主要的在于提高了对操作系统运行的认识与提高了代码的阅读能力。</p>
<p>回头去看这段往事，总觉得存在着有所改进的地方。</p>
<p>现在看来，内核是啥呢？只是一个比较大的软件项目，可以拿它与Eclipse相比，或者mplayer相比，或者就是与任何一个开源软件处于同层次的东西，只是它更具复杂性，涉及到的软件与硬件的东西更全面罢了。</p>
<p>或者说，经过这几年对开源项目的接触，对软件项目的参与，Linux内核在我心目中的神秘感已然消失，Eclipse在软件架框方面应该可以算出类拔萃，EFI在BIOS这一层上也实现了新的可扩展的和良好的设备管理模型，而Linux在操作系统的层次上也应该是一个典范，值得去学习，去揣摩，去玩味。</p>
<p>2.6内核之于2.4内核，无疑是前进了一大步，进程调度，设备管理等等方面都形成了更良好的framework。同时也涌现出了好多优秀的传道士及其杰作，如《Linux Kernel Development Second Edition》《Linux Device Driver Third Edition》。我更想把这些带有浓厚实践性质的书籍当做进入Linux 内核世界的一个极佳的“切入点”。想起Eclipse世界一本与此类似的书《contributing to eclipse》，一个提倡的规则就是“MONKEY SEE/MONKEY DO RULE Always start by copying the structure of a similar plug-in.”。从内核中学习内核，增强内核，应该是内核编程的一个原则。</p>
<p>不可否认地，“情景分析”是《Linux内核源代码情景分析》的一个亮点，为过去乏味的Linux内核源代码阅读注入了一丝亮色。可是，不管怎样，这还是一个静态的过程，我更期望能从一个动态的系统中获取关于她的内幕与运作规律。</p>
<p>所以，如果能够设想出一些观测内核运行的切入点，并藉此实现对内核机制的动态掌握，真真切切感知内核的运行，有时更能得出一些独具特色的结论进而做出更进一步的改进。</p>
<p>例如对内核调度机制的分析，有以下几个简单的问题：一秒钟内内核大概会做多少次进程切换。系统一般会存在着哪些进程，哪些系统因素会显著地加剧进程切换的次数。这些进程的运行与时间存在着怎样的分布关系（即进程与时间的函数关系）。通过在内核代码中加入相应的进行统计的代码，就可以画出这种函数图出来。再通过对它的分析，就更能从中发现出一些共性东西，数学性的东西，改进的空间。</p>
<p>内核中的调试机制，是与内核打交道首当其冲的问题，也是进行窥探内核的途径。做为一个工具，是实现此种学习的一个必经之路。如printk，如proc文件系统等。</p>
<p>而实践的过程，就是一个发现问题的过程，bottom halves有几种机制，softirq, workqueue, tasklet,他们之间有哪些区别，timer的实现有哪些，在进行实践的过程中，必定会碰到这些问题，并会主动地去寻找这类问题的答案，最后的结果就是自己编写的代码能够良好的运行于内核之中。</p>
<p>这里有另一问题，在内核中是否可以调用一般的系统调用？如open,close,read等等。会存在什么问题？又当如何解决？呵呵，当一个一个的问题被你解决之后，与Linux内核之间的接触又亲密了一层。</p>
<p>从实践中来，到实践中去吧。</p>
<p>当从一个业余者的角度来看Linux内核时，我想，有趣才是最好的导师，寓学于乐吧。 </p>
<p>“quote end</p>
<p><em>遗憾的是，自从做完了研究生的毕业论文之后，就基本上不去做Linux Kernel相关的东西了，但从现在一个Database Performance Engineer的观点看，那时的一些想法和现在的工作还是有一些共性的。比如</em>从一个动态的系统中获取关于她的内幕与运作规律; 通过在内核代码中加入相应的进行统计的代码，就可以画出这种函数图出来,再通过对它的分析，就更能从中发现出一些共性东西，数学性的东西，改进的空间; 内核中的调试机制，是与内核打交道首当其冲的问题，也是进行窥探内核的途径,做为一个工具，是实现此种学习的一个必经之路。如printk，如proc文件系统等。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.os2ora.com/chat-about-linux-kernel/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>非正式简历</title>
		<link>http://www.os2ora.com/aboutme/</link>
		<comments>http://www.os2ora.com/aboutme/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 12:24:28 +0000</pubDate>
		<dc:creator>Kaya</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Exadata]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[RWP]]></category>

		<guid isPermaLink="false">http://www.os2ora.com/?p=18</guid>
		<description><![CDATA[2006年, 来到了深圳，加入了Oracle亚洲研究与开发中心。
......
2008年初，加入了RealWorld Performance组
......]]></description>
			<content:encoded><![CDATA[<p>Kaya 发表于 <a href="http://www.os2ora.com">os2ora.com</a></p>
<p>2000年，第一次接触Linux.</p>
<p>2001年，一方面为了操作系统的课程设计，一方面确实不知干什么，阅读起了Linux的内核源代码。整天捧着一本厚厚的浙大出版社出版的《Linux内核源代码情景分析》对照着源代码看了起来。搞清楚了进程调度器的具体实现,系统空间与用户空间的区别,系统调用其实也就是80号的中断……</p>
<p>2002年，到实验室打工，开始接触大量的开源源代码。Linux内核的，浏览器的，嵌入式图形库的。嗯，都是Open Source惹的祸。当然，最熟悉的工具当首推Source In Sight了，用它看源代码太方便了，曾阿Q的认为，看源代码与看小说没啥区别，其还具有特强的逻辑性与条理性……</p>
<p>2003年，考上了研究生，方向是操作系统与嵌入式技术。实验室的工作还是一样的枯燥，编译裁减内核，对根文件系统进行裁减。目标就是把一个Linux塞到一个16MB或者32MB的ROM中，当然还得有X window,因为还要在上面跑诸如播放器这些应用呢。另一部分的工作当然就是搜寻，改造，集成这些应用了。不过其实自己也不是一个纯粹的C程序员，有两个方面的原因，第一是课余时间做的兼职项目一般都用的是Java，都是Web开发。另一方面是后来实验室多了一个方向，就是基于Eclipse构建嵌入式系统的开发环境。</p>
<p>2005年，在上海Intel的一位师兄提供了一个到Intel实习3个月的机会。那是我第一次接触外企的工作氛围，觉得他们OutLook用得挺好，邮件特多，投票功能特好用，经理的Calendar总是装满了的会议，五颜六色的，特好看；觉得每周开例会其实与在实验室也差不用。那时主要接触的还是BIOS相关的测试，其实，真正的名字应该叫EFI，可以带有Shell，可以带有图形化界面的BIOS！已经被Intel Open Source了，还是C代码……</p>
<p>2006年, 来到了深圳，加入了Oracle亚洲研究与开发中心。这是我第一次真正的拥护Oracle Database。也体会到大学里面学的Linux还是有用武之地的，平常工作的环境其实大部分都是在Linux下面进行的。</p>
<p>2007年，有一个职业轮转的机会，于是做了半年时间的Sales Consultant的工作，体会到做售前其实挺杂的，客户问的问题会各方各面，虽然不太高深，也够你忙活的了。这应该是一段让自己熟悉Oracle的各个主要Options的时间吧。不过，还是从给客户做Presentation中获益良多。</p>
<p>2008年初，加入了RealWorld Performance组，这是一个专注于来自真实客户的数据库的性能与可扩展性方面的问题的一个全球性团队，人员主要在美国总部，亚洲，这里汇集着世界知名的数据库调优专家。</p>
<p>2008年8月，到Oracle总部出差了3个月，期间与美国一位资深同事做了一个关于数据仓库的Benchmark，参与了2008的Oracle Open World大会，接触了时下炙手可热的HP Oracle Database Machine, 也就是Exadata。</p>
<p>2009年……</p>
<p>&#8211;<br />
Kaya<br />
kaiyao.huang@gmail.com</p>
]]></content:encoded>
			<wfw:commentRss>http://www.os2ora.com/aboutme/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>os2ora之过去，现在与将来</title>
		<link>http://www.os2ora.com/os2ora-past-now-future/</link>
		<comments>http://www.os2ora.com/os2ora-past-now-future/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 06:28:56 +0000</pubDate>
		<dc:creator>Kaya</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[os2ora]]></category>

		<guid isPermaLink="false">http://www.os2ora.com/os2ora%e4%b9%8b%e8%bf%87%e5%8e%bb%ef%bc%8c%e7%8e%b0%e5%9c%a8%e4%b8%8e%e5%b0%86%e6%9d%a5/</guid>
		<description><![CDATA[时间退回到2007年12月，那时就计划着弄一个专注于Linux与Oracle的技术网站，包括Open Source, Operation System和Oracle...]]></description>
			<content:encoded><![CDATA[<p>Kaya 发表于 <a href="http://www.os2ora.com">os2ora.com</a></p>
<p>时间退回到2007年12月，那时就计划着弄一个专注于Linux与Oracle的技术网站，包括Open Source, Operation System和Oracle。由于那时正从事着Oracle售前的客户支持工作，网站的内容不自觉间就反应出来了，从那时主题设置可见一斑，Trouble Shooting, Tutorial是那时的主要内容：</p>
<ul>
<li>Linux (3)</li>
<li>OMonitor (1)</li>
<li>Open Source (3)</li>
<li>Trouble Shooting (7)</li>
<li>Tutorial (5)</li>
<li>Oracle Performance (14)</li>
</ul>
<p>2008年2月正式加入了公司的另一个组: RealWorld Database Performance。关注的重点逐步转移到Performance上，包括对执行计划的分析，数据仓库里并行与分区技术的运用，从上面的文章分布数目上也可以看出这一点。</p>
<p>2008年5月份时，是加入RWP组后的第一个关于数据仓库的POC项目，到北京客户现场呆了差不多一个月的时间，整个项目大概花了两个月的时间。做项目过程中不断的意识到自己在Database Performance方面的不足，心里考虑着项目做完后应该对os2ora做一个调整了。可惜的是项目完成后，忙着对项目进行总结，只整理出了一个供内部参考的东西。</p>
<p>时间来到了2008年8月份，是加入RWP组的第二件大事了，到Oracle美国总部呆了3个月的时间。os2ora网站的事情又被推了……</p>
<p>回国后，已是11月份，整理总结项目经验，研究关于操作系统与数据库的监控技术，算是闭关的一段时间吧。</p>
<p>时间还是飞快地驰骋着，春节，结婚，蜜月……</p>
<p>终于，时间慢慢地放慢脚步了，我想，现在是对os2ora进行调整与进一步规划的时候了。</p>
<p>首要的当然是内容。技术网站我觉得还是专注一点为好。初步定下以下内容吧:</p>
<ul>
<li>数据库性能监控与分析</li>
<li>操作系统性能监控与分析</li>
<li>Oracle的SQL扩展与应用</li>
<li>SQL执行计划分析</li>
<li>数据仓库技术</li>
<li>现实世界性能优化</li>
</ul>
<p>另一个应该是网站的成长与规模，像我这等懒人，想把网站做大做多好象挺不容易，那么就把网站把精处发展吧，力求每篇文章都有所指，都能给读者们带来一些新鲜的东西，都有一些原创性的东西吧。当然，持入以恒是不变的真理，再不能出现去年几个月不更新的事情啦。</p>
<p>另一个方面可能是文章所用的语言。过去的一年，由于工作习惯，采用的都是英文。考虑到中文怎么说都是母语，沟通起来会更方便，特别对于国内的朋友来说，所以还是决定用中文，同时为网站增加一个英文版链接好了。</p>
<p>另外一个问题是网站的成立目标，交流平台与多交朋友是os2ora的初衷。那么就不应该让自己的东西成为信息孤岛，争取多做一些资源整合的事情，包括专题链接集合，RSS聚集等等。同时也希望能多认识结交一些技术上的Blogers, 当然包括正在看这篇文章的你啦。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.os2ora.com/os2ora-past-now-future/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>
