Hint for Linux Programmers 1. As promise, I am giving you a list of file that may need to be modified. They are: sched.c sched.h sys.c fork.c I do not include the files that were mentioned in the Appendix A. 2. Sample grub.conf # This one is from my very own machine. # grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this # file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/hda5 # initrd /initrd-version.img #boot=/dev/hda #default to XP default=2 timeout=10 splashimage=(hd0,0)/grub/splash.xpm.gz # Default Kernel Entry title Red Hat Linux (2.4.20-8) root (hd0,0) kernel /vmlinuz-2.4.20-8 ro root=LABEL=/ hdc=ide-scsi initrd /initrd-2.4.20-8.img # Modified Kernel Entry title Modified Red Hat Linux (2.4.20-8) root (hd0,0) kernel /cse351Image ro root=/dev/hda5 # Windows XP Entry title windows XP rootnoverify (hd0,1) chainloader +1 To find out where is your "/" directory, just type df at command prompt. You should see something like this: Filesystem 1K-blocks Used Available Use% Mounted on /dev/hda5 12175756 9657364 1899892 84% / /dev/hda1 77750 10778 62958 15% /boot /dev/hdb2 19409800 4030228 14393584 22% /home none 515488 0 515488 0% /dev/shm Obviously, my "/" is /dev/hda5 and thus, I put it in the kernel line of my grub.conf. 3. For redhat 8 and up you may need to modified /usr/src/linux/kernel/ksyms.c and export sys_call_table. EXPORT_SYMBOL(sys_call_table);