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
Ïà¹ØÎĵµ£º
²é¿´ÎļþȨÏÞµÄÓï¾ä£º
¡¡
¡¡¡¡ÔÚÖÕ¶ËÊäÈ룺
¡¡
¡¡¡¡ls -l xxx.xxx £¨xxx.xxxÊÇÎļþÃû£©
¡¡
¡¡¡¡ÄÇô¾Í»á³öÏÖÏàÀàËƵÄÐÅÏ¢£¬Ö÷Òª¶¼ÊÇÕâЩ£º
¡¡
¡¡¡¡-rw-rw-r——
¡¡
¡¡¡¡Ò»¹²ÓÐ10λÊý
¡¡
¡¡¡¡ÆäÖУº ×îÇ°ÃæÄǸö - ´ú±íµÄÊÇÀàÐÍ
¡¡
¡¡¡¡ÖмäÄÇÈý¸ö rw- ´ú±íµÄÊÇËùÓÐÕߣ¨user£©
¡¡
¡¡¡¡È»ºóÄÇÈý¸ö r ......
ÄÚ´æ¹ÜÀíµÄÄ¿±êÊÇÌṩһÖÖ·½·¨£¬ÎªÊµÏÖ¸÷ÖÖÄ¿µÄ¶øÔÚ¸÷¸öÓû§Ö®¼äʵÏÖÄÚ´æ¹²Ïí¡£ÄÚ´æ¹ÜÀí·½·¨Ó¦¸ÃʵÏÖÒÔÏÂÁ½¸ö¹¦ÄÜ£ºÒ»ÊÇ×îС»¯¹ÜÀíÄÚ´æËùÐèµÄʱ¼ä£»¶þÊÇ×î´ó»¯ÓÃÓÚÒ»°ãÓ¦ÓõĿÉÓÃÄڴ棨×îС»¯¹ÜÀí¿ªÏú£©¡£ÄÚ´æ¹ÜÀíʵ¼ÊÉÏÊÇÒ»ÖÖ¹ØÓÚȨºâµÄÁãºÍÓÎÏ·¡£Äú¿ÉÒÔ¿ª·¢Ò»ÖÖʹÓÃÉÙÁ¿ÄÚ´æ½øÐйÜÀíµÄËã· ......
Ê×ÏÈPerl mkdir µÄÓï·¨ÊÇ£º
1.mkdir('dir', ´ú±í¾Åλ¶þ½øÖÆÊý×ÖµÄÊ®½øÖÆÖµ)
ÉèÖÃ775£¬Ôò¸ÃֵΪʮ½øÖƵÄ509£¬¼´¶þ½øÖƵÄ111111101
´ËÊýÖµ²»ÄÜÉèÖÃΪ111111111¼´Ê®½øÖƵÄ511¼´777¡£
2.mkdir('dir', 0³£¼ûunix3λȨÏÞ)
¿ÉÒÔÉèÖÃ777¡£
È»ºóÔÚlinuxÏÂʱ£¬ÓÉÓÚumaskµÄÔÒò£¬Ö»ÄÜÉèÖÃΪ755¡£
ÒòΪ´´½¨ÎļþʱµÄȨÏÞÊÇumaskºÍ ......
½ñÌìÓÖѧÁË»·¾³±äÁ¿µÄÉèÖ㬸ÐÊܱȽÏÉîһЩ£¬Ê×ÏÈ°ÑÎÒ´ÓÍøÉÏ¿´µ½µÄÖªµÀºÍ´ó¼Ò·ÖÏíһϡ£
»·¾³±äÁ¿ÊǺÍShell½ôÃÜÏà¹ØµÄ£¬Óû§µÇ ¼ϵͳºó¾ÍÆô¶¯ÁËÒ»¸öShell¡£¶ÔÓÚLinuxÀ´ËµÒ»°ãÊÇbash£¬µ«Ò²¿ÉÒÔÖØÐÂÉ趨»òÇл»µ½ÆäËüµÄ Shell¡£¶ÔÓÚUNIX£¬¿ÉÄÜÊÇCShelll¡£»·¾³±äÁ¿ÊÇͨ¹ýShellÃüÁîÀ´ÉèÖõģ¬ÉèÖúõĻ·¾³±äÁ¿ÓÖ¿ÉÒÔ±»ËùÓе±Ç° ......
ÎÒËù½²µÄÊÇwindowsÕæʵϵͳÉÏÓÐvmwareµÄlinuxϵͳ£¬½«windowsϵÄÒ»¸öÎļþ¼Ð¹²Ïí£¬ÈçºÎ¹ÒÔص½ÐéÄâ»úµÄlinuxϵͳÏ£¬Ò²¾ÍÊÇÈçºÎÈÃlinuxϵͳÊÔÓÃwindowsϵÄÒ»¸öÎļþ¼Ð¡£
´ó¼ÒÒ²Ðí²»Ì«Ã÷°×£¬ÏÂÃæÎÒ¾Í×öһЩ½Øͼ
Ë«»÷share folder£¬Ò»¶¨Òª±£Ö¤sh ......