被导师催着赶着走上了-这条-不归路-
从最基本的介绍起
装系统:
前期搞个虚拟机就可以了,一般使用vmware的虚拟机,virtualbox容易爆炸不稳定。。。
下载一个ubuntu的镜像,然后疯狂next就可以了
下文件:
传说中最精简的Linux源码也可是有200万行代码的,,,,,
推荐几个下载内核的网址:
http://www.oldlinux.org/index_cn.html
最最最常用的命令:
打开一个文件:
cd /usr/include/linux
查看当前目录下有什么东西(显示全部):
ls -a
回到上层目录下:
cd ../
查看该层目录下某个文件的属性:
file 文件名
http://blog.csdn.net/ljianhui/article/details/11100625
源代码目录的整体框架:
http://blog.csdn.net/hxg130435477/article/details/7946433
前期学习指南
最简单的方式是,从百度找学习的方向,然后用命令行打开一个个学习,然后学习完毕后从虚拟机复制到主机再写一发博客
我是从"最感兴趣"“最重要”的东西开始学习
这类的大方向主要有:
各个文件夹的属性,引导与初始化,中断处理,时钟管理,物理内存管理,进程管理,虚拟内存管理等等
200万代码肯定看不完,但是通其中的结构和原理,就已经足够强大了
http://www.oschina.net/question/587367_156024
http://www.92csz.com/study/linux/6.htmhttp://zhidao.baidu.com
进入这篇的主题:time.h
源代码如下:位置在:/usr/include/linux/time.h
#ifndef _LINUX_TIME_H
#define _LINUX_TIME_H
#include <linux/types.h>
#ifndef _STRUCT_TIMESPEC
#define _STRUCT_TIMESPEC
struct timespec {
__kernel_time_t tv_sec; /* seconds */
long tv_nsec; /* nanoseconds */
};
#endif
struct timeval {
__kernel_time_t tv_sec; /* seconds */
__kernel_suseconds_t tv_usec; /* microseconds */
};
struct timezone {
int tz_minuteswest; /* minutes west of Greenwich */
int tz_dsttime; /* type of dst correction */
};
/*
* Names of the interval timers, and structure
* defining a timer setting:
*/
#define ITIMER_REAL 0
#define ITIMER_VIRTUAL 1
#define ITIMER_PROF 2
struct itimerspec {
struct timespec it_interval; /* timer period */
struct timespec it_value; /* timer expiration */
};
struct itimerval {
struct timeval it_interval; /* timer interval */
struct timeval it_value; /* current value */
};
/*
* The IDs of the various system clocks (for POSIX.1b interval timers):
*/
#define CLOCK_REALTIME 0
#define CLOCK_MONOTONIC 1
#define CLOCK_PROCESS_CPUTIME_ID 2
#define CLOCK_THREAD_CPUTIME_ID 3
#define CLOCK_MONOTONIC_RAW 4
#define CLOCK_REALTIME_COARSE 5
#define CLOCK_MONOTONIC_COARSE 6
#define CLOCK_BOOTTIME 7
#define CLOCK_REALTIME_ALARM 8
#define CLOCK_BOOTTIME_ALARM 9
/*
* The IDs of various hardware clocks:
*/
#define CLOCK_SGI_CYCLE 10
#define MAX_CLOCKS 16
#define CLOCKS_MASK (CLOCK_REALTIME | CLOCK_MONOTONIC)
#define CLOCKS_MONO CLOCK_MONOTONIC
/*
* The various flags for setting POSIX.1b interval timers:
*/
#define TIMER_ABSTIME 0x01
#endif
对其中的各种定义的符号作解释也是可以百度到的:
linux系统进程间隔定时器Itimer:
http://www.educity.cn/linux/513972.html
CLOCK_REALTIME与CLOCK_MONOTONIC的区别:
http://igaozh.iteye.com/blog/1675767
继续为这个专题付出可以学习的链接:
linux的时间操作:
http://blog.csdn.net/scottgly/article/details/6568513
http://www.cnblogs.com/yaozhongxiao/archive/2013/04/14/3020353.html
补充几篇深度好文,对Linux的时钟中断讲得深入浅出,而且源代码也有分析:
http://blog.chinaunix.net/uid-11449555-id-2873961.html
http://blog.chinaunix.net/uid-11449555-id-2873962.html