diff -Naur linux-3.9.4/arch/x86/kernel/time.c linux-3.9.4.new/arch/x86/kernel/time.c --- linux-3.9.4/arch/x86/kernel/time.c 2013-05-24 11:45:59.000000000 -0700 +++ linux-3.9.4.new/arch/x86/kernel/time.c 2013-06-25 21:39:34.641299852 -0700 @@ -13,6 +13,7 @@ #include #include #include +#include #include #include @@ -57,6 +58,7 @@ static irqreturn_t timer_interrupt(int irq, void *dev_id) { global_clock_event->event_handler(global_clock_event); + my_timer_handler(); return IRQ_HANDLED; } @@ -68,6 +70,7 @@ void __init setup_default_timer_irq(void) { + printk(KERN_NOTICE "timer interrupt setup\n"); setup_irq(0, &irq0); } diff -Naur linux-3.9.4/include/linux/start_kernel.h linux-3.9.4.new/include/linux/start_kernel.h --- linux-3.9.4/include/linux/start_kernel.h 2013-05-24 11:45:59.000000000 -0700 +++ linux-3.9.4.new/include/linux/start_kernel.h 2013-06-25 19:18:58.396722448 -0700 @@ -8,5 +8,6 @@ up something else. */ extern asmlinkage void __init start_kernel(void); +extern void __init my_start_kernel(void); #endif /* _LINUX_START_KERNEL_H */ diff -Naur linux-3.9.4/include/linux/timer.h linux-3.9.4.new/include/linux/timer.h --- linux-3.9.4/include/linux/timer.h 2013-05-24 11:45:59.000000000 -0700 +++ linux-3.9.4.new/include/linux/timer.h 2013-06-25 21:28:37.609026644 -0700 @@ -251,6 +251,8 @@ extern void init_timers(void); extern void run_local_timers(void); +extern void my_timer_handler(void); + struct hrtimer; extern enum hrtimer_restart it_real_fn(struct hrtimer *); diff -Naur linux-3.9.4/init/main.c linux-3.9.4.new/init/main.c --- linux-3.9.4/init/main.c 2013-05-24 11:45:59.000000000 -0700 +++ linux-3.9.4.new/init/main.c 2013-06-25 20:16:17.452763103 -0700 @@ -574,7 +574,6 @@ console_init(); if (panic_later) panic(panic_later, panic_param); - lockdep_info(); /* @@ -641,6 +640,7 @@ ftrace_init(); + my_start_kernel(); /* Do the rest non-__init'ed, we're now alive */ rest_init(); } diff -Naur linux-3.9.4/Makefile linux-3.9.4.new/Makefile --- linux-3.9.4/Makefile 2013-05-24 11:45:59.000000000 -0700 +++ linux-3.9.4.new/Makefile 2013-06-25 19:16:00.177364039 -0700 @@ -733,7 +733,7 @@ ifeq ($(KBUILD_EXTMOD),) -core-y += kernel/ mm/ fs/ ipc/ security/ crypto/ block/ +core-y += kernel/ mm/ fs/ ipc/ security/ crypto/ block/ mykernel/ vmlinux-dirs := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \ $(core-y) $(core-m) $(drivers-y) $(drivers-m) \ diff -Naur linux-3.9.4/mykernel/Makefile linux-3.9.4.new/mykernel/Makefile --- linux-3.9.4/mykernel/Makefile 1969-12-31 16:00:00.000000000 -0800 +++ linux-3.9.4.new/mykernel/Makefile 2013-06-25 21:40:24.174030881 -0700 @@ -0,0 +1,6 @@ +# +# Makefile for the linux mykernel. +# + +obj-y = mymain.o myinterrupt.o + diff -Naur linux-3.9.4/mykernel/myinterrupt.c linux-3.9.4.new/mykernel/myinterrupt.c --- linux-3.9.4/mykernel/myinterrupt.c 1969-12-31 16:00:00.000000000 -0800 +++ linux-3.9.4.new/mykernel/myinterrupt.c 2013-06-25 21:45:38.408915841 -0700 @@ -0,0 +1,47 @@ +/* + * linux/mykernel/myinterrupt.c + * + * Kernel internal my_timer_handler + * + * Copyright (C) 2013 Mengning + * + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#define CREATE_TRACE_POINTS +#include + +/* + * Called by timer interrupt. + */ +void my_timer_handler(void) +{ + printk(KERN_NOTICE "\n>>>>>>>>>>>>>>>>>my_timer_handler here<<<<<<<<<<<<<<<<<<\n\n"); +} diff -Naur linux-3.9.4/mykernel/mymain.c linux-3.9.4.new/mykernel/mymain.c --- linux-3.9.4/mykernel/mymain.c 1969-12-31 16:00:00.000000000 -0800 +++ linux-3.9.4.new/mykernel/mymain.c 2013-06-25 21:44:59.489317439 -0700 @@ -0,0 +1,93 @@ +/* + * linux/mykernel/mymain.c + * + * Kernel internal my_start_kernel + * + * Copyright (C) 2013 Mengning + * + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#ifdef CONFIG_X86_LOCAL_APIC +#include +#endif + +void __init my_start_kernel(void) +{ + int i = 0; + while(1) + { + i++; + if(i%100000 == 0) + printk(KERN_NOTICE "my_start_kernel here %d \n",i); + + } +} diff -Naur linux-3.9.4/mykernel/README.md linux-3.9.4.new/mykernel/README.md --- linux-3.9.4/mykernel/README.md 1969-12-31 16:00:00.000000000 -0800 +++ linux-3.9.4.new/mykernel/README.md 2013-06-25 21:52:52.467808733 -0700 @@ -0,0 +1,3 @@ +mykernel +========== +It is a platform to write your own OS kernel,its based on Linux Kernel 3.9.4 source code.