LinuxÉ豸Çý¶¯³ÌÐòѧϰ֮»ù´¡Æª
LinuxÉ豸Çý¶¯³ÌÐòѧϰ±Ê¼ÇϵÁÐÎÄÕÂÔ×÷ÕßÊÇ£ºTekkaman Ninja£¬Ëû²©¿ÍµØÖ·£º
http://blog.chinaunix.net/u1/34474/showart_404278.html
ÔÚ´ËÏòTekkaman Ninja±íʾ¸Ðл£¬Ð´³öÕâôºÃµÄÎÄÕ£¬Ê¹ÎÒÉÙ×ßÁ˺ܶàÍä·¡£
LinuxÉ豸Çý¶¯³ÌÐòѧϰ£¨0£©£Hello, world£¡Ä£¿é
ÎÄÕÂÀ´Ô´£ºhttp://blog.chinaunix.net/u2/62910/showart_492083.html
Ò»¸öѧϰLinuxÉ豸Çý¶¯³ÌÐò¶¼»áÅöµ½µÄµÚÒ»¸öÀý³Ì£º
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void)
{
printk(KERN_ALERT "Hello, Tekkaman Ninja £¡\n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT "Goodbye, Tekkaman Ninja £¡\n Love Linux !Love ARM ! Love KeKe !\n");
}
module_init(hello_init);
module_exit(hello_exit);
ÎÒ½«Æä¸´ÖƵ½ÎҵŤ×÷Ŀ¼£¬²¢±àдÁËÒ»¸ö¼òµ¥µÄMakefileÎļþ£º
KERNELDIR = /home/tekkaman/working/SBC2440/linux-2.6.22.2
# The current directory is passed to sub-makes as argument
PWD := $(shell pwd)
INSTALLDIR = /home/tekkaman/working/rootfs/lib/modules
CROSS_COMPILE =/home/tekkaman/working/crosstool-gcc410-k26222/gcc-4.1.0-glibc-2.3.2/arm-9tdmi-linux-gnu/bin/arm-9tdmi-linux-gnu-
CC = $(CROSS_COMPILE)gcc
obj-m := hello.o
modules:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
modules_install:
cp hello.ko $(INSTALLDIR)
clean:
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions
.PHONY: modules modules_install clean
˵ʵ»°£¬ÒÔÉÏÊÇÎҲο¼ÁË¡¶LinuxÉ豸Çý¶¯³ÌÐò£¨µÚ3°æ£©¡·µÄMakefileÔ´ÂëÐ޸ĵÃÀ´µÄ¡£ÎÒ¶ÔMakefile²»ÊǺÜÁ˽⣬ÊǸúúÃѧϰѧϰÁË£¡
È»ºó¾ÍÊÇmake modules ¡¢ make modules_install ¡£
[root@Tekkaman-Ninja Helloworld]# make modules
make -C /home/tekkaman/working/SBC2440/linux-2.6.22.2 M=/home/tekkaman/working/Linuxdriver/Helloworld modules
make[1]: Entering directory `/home/tekkaman/working/SBC2440/linux-2.6.22.2
Ïà¹ØÎĵµ£º
Linux ÄÚºË ×îÁ÷ÐеĿªÔ´²Ù×÷ϵͳÄÚºË
Linux ÄÚºË×é³É
Linux ÆÊÎöϵÁÐ
ÄÚºËÅäÖü°±àÒë
ÐÔÄܵ÷ÊÔ
Linux Äں˿ª·¢Óë²âÊÔ
ÄÚºË 2.4 Óë 2.6 ±È½Ï
ÄÚºËÆäËûÎÄÕÂ
Linux ÄÚºËÊÇÒ»¸öÅÓ´ó¶ø¸´ÔӵIJÙ×÷ϵͳµÄºËÐÄ£¬²»¹ý¾¡¹ÜÅӴ󣬵«ÊÇÈ´²ÉÓà ......
Ê×ÏÈPerl mkdir µÄÓï·¨ÊÇ£º
1.mkdir('dir', ´ú±í¾Åλ¶þ½øÖÆÊý×ÖµÄÊ®½øÖÆÖµ)
ÉèÖÃ775£¬Ôò¸ÃֵΪʮ½øÖƵÄ509£¬¼´¶þ½øÖƵÄ111111101
´ËÊýÖµ²»ÄÜÉèÖÃΪ111111111¼´Ê®½øÖƵÄ511¼´777¡£
2.mkdir('dir', 0³£¼ûunix3λȨÏÞ)
¿ÉÒÔÉèÖÃ777¡£
È»ºóÔÚlinuxÏÂʱ£¬ÓÉÓÚumaskµÄÔÒò£¬Ö»ÄÜÉèÖÃΪ755¡£
ÒòΪ´´½¨ÎļþʱµÄȨÏÞÊÇumaskºÍ ......
Linux²»Êǽâ¾öÖйú·¢Õ¹¹ý³ÌÖдæÔÚµÄËùÓÐÎÊÌâµÄÍòÄÜÒ©£¬ËüÖ»ÊÇΪÎÒÃÇÌṩÁËÒ»¸ö¿ÉÒÔÃ÷ÏÔ½µµÍ³É±¾¡¢´Ù½ø¹ú¼ÊºÏ×÷ºÍ»ñµÃ¸ü¹ãÀ«·¢Õ¹Ç°¾°µÄÑ¡ÏîÖ®Ò»¡£Í¨³£Çé¿öÏ£¬¹ÍÓùúÍâÓÅÐã¹ÜÀíºÍ¼¼ÊõÈËÔ±ËùÐèµÄ·ÑÓûá¸ßµÄ¾ªÈË¡£²»½öÒªÏòÕâЩÈËÖ§¸¶¸ß¶îµÄ³ê½ð£¬Í¬Ê±ÒªÎªËûÃÇÓªÔìÒ ......
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
4
ÔÂ
10
ÈÕ£¬¿Æ¼¼²¿¾Í“¹ú¼Ò×ÔÖ÷´´Ð²úÆ·È϶¨¹¤×÷”·¢³ö֪ͨ£¬¹«¿ªÕ÷ÇóÒâ¼û£¬ÆäÖеÄ
Ö¸µ¼Ë¼ÏëÓÐÖØ´óÍ»ÆÆ¡£¾ßÌåÇé¿öÈçºÎ£¿
2009
Äê
10
ÔÂ
30
ÈÕ£¬ÔÚÎÒ¹úÕþ¸® ......
Èç¹ûÏë½øÒ»²½Á˽âlinuxϵͳ£¬ÊìϤһЩϵͳµ×²ãµÄ¶«Î÷»¹ÊǷdz£±ØÒªµÄ£¬ÎÒÃÇ¿ÉÒÔÏÈÁ˽âһЩlinuxÃüÁîÊÇÈçºÎʵÏÖÏà¹Ø¹¦Äܵģ¬ÄÇôÈçºÎ»ñµÃÃüÁîµÄÔ´´úÂëÄØ£¿ÏÂÃæÎÒÃÇÏêϸ½éÉÜһϡ£
¡¡¡¡ÏÂÃæÒÔ»ñÈ¡catÃüÁîµÄÔ´´úÂëΪÀý˵Ã÷£º
cd /sbin
rpm -qif cat
¡¡ ......