日期:2014-05-16 浏览次数:20912 次
---"你为什么要去登珠穆朗玛?"
当美国《纽约时报》记者问英国登山家乔治·马洛里。
---“Because it is there(因为山在那里)。”
---题记
会当凌绝顶,一览众山小。
内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
几十年来,内核以它那深深的魅力吸引着无数的码农为之倾倒,一代又一代的码农们从青青葱葱走向硕果累累,从风华正茂走向耄耋之年,也走出了现在多姿多彩的世界。
内核就像一位风姿卓约的美女,多少码农欲一亲芳泽而不得。Linux内核是庞大复杂的,超过 600 万行的代码,就如同珠穆朗玛峰一样那样让人望而生畏。初学者一踏入,绝大多数会不自觉地迷失在这座庞大的迷宫里。
作为一名内核小白,我也期望着那天能登上Linux内核这座高峰,一览其风采,但高原反应可不是闹着玩的。
既然等不了珠穆朗玛峰,那就先试试攀登莲花山吧...
每一位初学者都学习过下面这个例子,
没看过?
---拖出去,XX了
/************************************************************************************ ** File: - Z:\code\c\LLprintf\print0.1\LLapp.c ** ** Copyright (C), Long.Luo, All Rights Reserved! ** ** Description: ** LLapp.c ** ** Version: 0.1 ** Date created: 21:30:00,10/01/2013 ** Author: Long.Luo ** ** --------------------------- Revision History: -------------------------------- ** <author> <data> <desc> ** ************************************************************************************/ #include <stdio.h> int main(void) { printf("Hello, World!\n"); return 0; }
我们通过调用printf就可以实现在屏幕上输出一段字符?
为什么呢?
加入我们不用printf,怎么做呢?
printf里面蕴含着什么样的秘密呢?
......
我们看看LLapp.c文件经过预处理之后发生了什么?
可见经过预处理之后引入了很多其他函数,正是经过这一系列调用实现了我们想要的功能。
我们再来看看printf的定义:
int printf(const char *fmt, ...) { int i; char buf[256]; va_list arg = (va_list)((char*)(&fmt) + 4); i = vsprintf(buf, fmt, arg); write(buf, i); return i; }
这些