Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

Linux É豸Çý¶¯³ÌÐò½ø½×£¨0£©

ºÜ¾ÃûÓÐд¼¼Êõ²©ÎÄÁË£¬´ÓÕâÀ↑ʼÎÒµÄÑо¿ÉúÉúÑÄ£¬×ªÑÛ¾ÍÒªÔÚÖ°³¡ÉÏÑø¼Òºý¿Ú£¬Éú»îÕæµÄ²»ÈÝÒ×£¬ÐҺû¹Óм¼ÊõÏà°éΪÎé¡£
ÓÉÓÚ¹¤×÷µÄ¹ØÏµ£¬ÖÕÓÚ½Ó´¥µ½linuxÍøÂçºÍkernelµÄ±à³Ì£¬×ÜÌåÀ´Ëµ×ÜÊÇÒ»¸öºÃµÄÆõ»ú¡£ÈÃÎÒÄܹ»ÉîÈë²Ù×÷ϵͳÄںˡ£×ö¹ýÒ»¶Îʱ¼äµÄÓû§³ÌÐòµÄ¿ª·¢£¬×ÜÊÇÔÚWindowsƽ̨ÉÏ£¬ÖÕÓÚÓлú»áÔÚlinuxÉÏ×öµã¶«Î÷£¬»¹ÊǺÜÐ˷ܵġ£
Ê×ÏÈÊÇÒ»¸öHello WorldµÄÄں˳ÌÐò£¬È»ºó¾ÍÊÇÒ»´ó¶Ñ±àÒëµÄÎÊÌ⣬ÓÉÓÚûÓнӴ¥¹ýLinuxËùÒÔ»¨·ÑÁ˺ܶàʱ¼äÔÚÕâÉÏÃæ¡£
1£© hellokernel.c ÎҵıàÒë»·¾³ÊÇÔÚÐéÄâµÄLinux Redhat 5.0 ÉϱàÒëµÄ
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL")£» //Õâ¸öºêµÄÒâ˼ÎÒ»¹ÊDz»Ì«Ã÷°×£¬Ö±½Ó³­Á˹ýÀ´
static int hello_init(void)
{
    printk(KERN_ALERT"Hello,world\n");
    return 0;
}
static void hello_exit(void)
{
    printk(KERN_ALERT"Goodby,cruel world\n");
}
module_init(hello_init);  //µ±ÄÚºËÄ£¿é±»×°ÔصÄʱºòµ÷ÓÃhello_initº¯Êý
module_exit(hello_exit); //µ±ÄÚºËÄ£¿é±»Ð¶ÔصÄʱºòµ÷ÓÃhello_exitº¯Êý
2£©Ô´´úÂë×¼±¸ºÃÁËÖ®ºóÏÂÃæ¾ÍÊDZàÒëµÄÎÊÌâ
step1:  ×¼±¸ºÃlinuxÄÚºËÔ´´úÂ룬עÒâ°æ±¾ºÅÒªÓëÖ÷»úÒ»Ö£¬ÕâÀïÒòΪÎÒÖ±½ÓÔÚÖ÷»ú£¨Linux»úÆ÷£©ÉϱàÒ룬ËùÒÔ²»´æÔÚ½»²æ±àÒëµÄÎÊÌâ¡£²é¿´linux»úÆ÷µÄÄں˰汾ºÅÓкܶàÃüÁÎÒÓõÄÊÇuname -r
[root@localhost ~]# uname -r
2.6.18-128.el5
¿´µ½Äں˰汾֮ºó¾Í¿ÉÒÔÔÚ¹ÙÍøÉÏÏÂÔØ¶ÔÓ¦°æ±¾µÄÄںˡ£http://www.kernel.org/pub/linux/kernel/v2.6/ÔÚÕâÀïÕÒµ½linux-2.6.18.tar.bz2 Õâ¸ö°æ±¾£¬È»ºó½âѹµ½/usr/src/Ŀ¼Ï¡£½âѹÃüÁîÊÇtar -xvf linux-2.6.18.tar.bz2¾Í¿ÉÒÔÁË¡£
step2:  ×¼±¸¹¤×÷×öºÃÖ®ºóÊ×ÏÈÊDZàÒëÄںˣ¬Èç¹ûÄãÏÂÔØµÄÄں˰汾ºÍÄãµÄÖ÷»ú°æ±¾ÊÇÒ»Ò»¶ÔÓ¦µÄ£¬ÄÇô±àÒëÆðÀ´ºÜ¼òµ¥µÄ£¬Ò»°ãûÓÐʲôÎÊÌâµÄ£¬Ö÷Òª¾ÍÊǼ¸¸ömakeÃüÁ
make oldconfig
make prepare
make scripts
step 3: ÏÂÃæ¾ÍÊÇÔÚhellokernel.cµÄĿ¼Ï±àдMakefileÎļþ£¬×¢ÒâMakefileµÄµÚÒ»×Öĸ±ØÐë´óд£¬ÎÒ¾ÍÊÇÔÚÕâÀï·¸´í£¬²éÁ˰ëÌìû²é³öÎÊÌâ¡£MakefileµÄ±àд¶ÔÓÚÕâ¸öÀý×Ӻܼòµ¥£¬µ«ÊÇÈç¹û¸´ÔÓµÄÄÚºËÄ£¿éµÄ¿ª·¢»¹ÊÇÒªºÃºÃѧϰÔõô±àдµÄ¡£
Æäʵ¾ÍÊǼòµ¥µÄ¼¸¾ä»°¾ÍokÁË£º
obj-m := hellokernel.o //Ä¿±êÄ£¿éµÄ±àÒëÀ´×ÔÓÚhellokernel.oµÄÎļþ, hellokerne


Ïà¹ØÎĵµ£º

linuxÇý¶¯Ö®makefileÏê½â

# If KERNELRELEASE is defined, we've been invoked from the
# kernel build system and can use its language.
ifneq ($(KERNELRELEASE),)
    obj-m := hello.o
# Otherwise we were called directly from the command
# line; invoke the kernel build system.
else
    ......

linux ×Ô¶¯¹ÒÔØÓ²ÅÌ

Ò».²é¿´ËùÓÐÓ²Å̵Äuuid
ls -all /dev/disk/by-uuid
longseakerµÄʵÀý
lrwxrwxrwx 1 root root 10 2009-09-19 08:17 05434a61-8a78-4ee5- a5db-6a49079b9e3d -> ../../sda5
lrwxrwxrwx 1 root root 10 2009-09-19 08:17 07D8-0104 -> ../../sda1
lrwxrwxrwx 1 root root 10 2009-09-19 08:17 18201249-998a-4bb1 ......

´Ó»úÆ÷µÄÅäÖÃdz̸Linux°æ±¾µÄÑ¡Ôñ

×¢£ºÕâÆªÎÄÕ±ȽϾɣ¬µ«ÊÇÓÐÒ»¶¨µÄ²Î¿¼¼ÛÖµ~~×Ô¼ºÊÔ¹ýµÄLinux²»¶à£¬ËùÒÔ»¹ÊÇÓÐÒª²Î¿¼µÄµØ·½¡£
Ô­ÎÄÁ´½Ó£ºhttp://www.linux521.com/2009/newbie/200904/1963.html
ĿǰLinuxÔÚ¹úÄÚ½øÈëÁËÒ»¸ö½Ï¿ìËٵķ¢Õ¹½×¶Î,ÕýÈçÎÒÃÇ¿´µ½µÄ,Ðí¶àµÄWindowsÓû§×ªÍ¶
LinuxÕóÓª.ÓÉÓÚLinux±¾ÉíÊÇÒ»¸ö¿ª·ÅµÄ²Ù×÷ϵͳ,Òò¶øÓµÓÐÖÚ¶àµÄ·¢ÐÐ°æ°æ± ......

LinuxµÄ´óÔıø






<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
A:link { so-language: zxx }
-->
        Ëùν“Ôıø”¾ÍÊǼìÔIJ¿¶ÓµÄÒâ˼¡£
Linux
´ó¾ü£¨·¢Ðа棩¿Éν“É¢±øÓÎÓ”£¬Ì¸ºÎ´óÔıø£¿´ËÑÔ²îÒÓ¡£
 
   ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ