<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[oCoreCode的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/oCoreCode</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; oCoreCode]]></copyright><item><title><![CDATA[Linux内核分析课程考试主观题]]></title><link>https://blog.youkuaiyun.com/oCoreCode/article/details/45391997</link><guid>https://blog.youkuaiyun.com/oCoreCode/article/details/45391997</guid><author>oCoreCode</author><pubDate>Thu, 30 Apr 2015 10:53:39 +0800</pubDate><description><![CDATA[郭孟琦 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ”


实践！C语言是怎么变成汇编的 http://blog.youkuaiyun.com/ocorecode/article/details/44134937

一个超简单的系统内核  http://blog.youkuaiyun.com/]]></description><category></category></item><item><title><![CDATA[理解进程调度时机跟踪分析进程调度与进程切换的过程]]></title><link>https://blog.youkuaiyun.com/oCoreCode/article/details/45224787</link><guid>https://blog.youkuaiyun.com/oCoreCode/article/details/45224787</guid><author>oCoreCode</author><pubDate>Thu, 23 Apr 2015 17:52:24 +0800</pubDate><description><![CDATA[“郭孟琦 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ”


貌似是最后一周课了，竟然坚持下来了！！！！


1、在内核代码中搜索schedule()函数，看都是哪里调用了schedule()，判断我们课程内容中的总结是否准确；



一搜吓了一大跳，

]]></description><category></category></item><item><title><![CDATA[Linux内核如何装载和启动一个可执行程序]]></title><link>https://blog.youkuaiyun.com/oCoreCode/article/details/45127681</link><guid>https://blog.youkuaiyun.com/oCoreCode/article/details/45127681</guid><author>oCoreCode</author><pubDate>Sun, 19 Apr 2015 11:44:56 +0800</pubDate><description><![CDATA[“郭孟琦（与最后申请证书的姓名务必一致） + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ”


以下都是梦话，感觉是快坚持不住了！


Linux内核如何装载和启动一个可执行程序?
从刚学C语言开始就知道程序 通过 编译 汇编  链接 产生最终生成一个exe可执行文件]]></description><category></category></item><item><title><![CDATA[分析Linux内核创建一个新进程的过程]]></title><link>https://blog.youkuaiyun.com/oCoreCode/article/details/44920975</link><guid>https://blog.youkuaiyun.com/oCoreCode/article/details/44920975</guid><author>oCoreCode</author><pubDate>Tue, 07 Apr 2015 15:28:35 +0800</pubDate><description><![CDATA[“郭孟琦 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ”


我承认这周课上完有一种崩溃的感觉，感觉难度陡然增加。仔细想想发现，其实难度来自于linux内核的结构庞杂。换一种思路，从大框上入手去分析新进程的创建过程效果会更好一些。


其次在调试过程中发现通过gdb确]]></description><category></category></item><item><title><![CDATA[使用gdb跟踪分析一个系统调用内核函数]]></title><link>https://blog.youkuaiyun.com/oCoreCode/article/details/44776883</link><guid>https://blog.youkuaiyun.com/oCoreCode/article/details/44776883</guid><author>oCoreCode</author><pubDate>Tue, 31 Mar 2015 11:54:14 +0800</pubDate><description><![CDATA[“郭孟琦 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ”


继续上周的内容，首先利用gdb跟踪系统调用system_call的处理过程。
这里我继续使用上周编写的uname。


首先是为menuOS 添加uname的命令，这一过程很简单直接在test.c中添加函]]></description><category></category></item><item><title><![CDATA[使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用]]></title><link>https://blog.youkuaiyun.com/oCoreCode/article/details/44677239</link><guid>https://blog.youkuaiyun.com/oCoreCode/article/details/44677239</guid><author>oCoreCode</author><pubDate>Fri, 27 Mar 2015 15:13:43 +0800</pubDate><description><![CDATA[“郭孟琦 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ”


首先我选择的系统调用是122号系统调用——uname
简单的介绍一下uname，它的功能是获取当前内核名称和其他信息。


用法：

#include 

/* Put information a]]></description><category></category></item><item><title><![CDATA[跟踪分析Linux内核的启动过程(从start_kernel到init进程)]]></title><link>https://blog.youkuaiyun.com/oCoreCode/article/details/44486805</link><guid>https://blog.youkuaiyun.com/oCoreCode/article/details/44486805</guid><author>oCoreCode</author><pubDate>Fri, 20 Mar 2015 08:58:31 +0800</pubDate><description><![CDATA[“郭孟琦 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ”
之前听说过gdb这一个调试器，但是因为一直都在用windows下的IDE，所以也仅仅是知道而已。这回使用gdb跟踪调试linux内核实际上一开始我是拒绝的，因为你不能叫我用，我就马上去用，第一我要试一下，因为我不愿意我调]]></description><category></category></item><item><title><![CDATA[一个超简单的系统内核]]></title><link>https://blog.youkuaiyun.com/oCoreCode/article/details/44243245</link><guid>https://blog.youkuaiyun.com/oCoreCode/article/details/44243245</guid><author>oCoreCode</author><pubDate>Fri, 13 Mar 2015 16:44:17 +0800</pubDate><description><![CDATA[“郭孟琦 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ”
这一周的作业是“完成一个简单的时间片轮转多道程序内核代码”，其实在接触linux之前曾在stm32平台上跑过ucos-ii，及ucos-iii虽然ucos的内核是抢占式的任务调度但也是一个多任务的操作系统也具有任务控制块]]></description><category></category></item><item><title><![CDATA[实践！C语言是怎么变成汇编的]]></title><link>https://blog.youkuaiyun.com/oCoreCode/article/details/44134937</link><guid>https://blog.youkuaiyun.com/oCoreCode/article/details/44134937</guid><author>oCoreCode</author><pubDate>Sun, 08 Mar 2015 19:09:43 +0800</pubDate><description><![CDATA[在大学计算机组成原理一课中学习各种汇编语言跟C语言的关系，同时在单片机接口技术中也学习了C51的汇编语言，在一些MCU调试中也看到了反汇编的内容。但是从来没亲自实践一下C语言是怎么变成汇编的过程
《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ”]]></description><category></category></item></channel></rss>