LinuxÉ豸Çý¶¯Ñ§Ï°£Davinci¿ª·¢°åÉÏÔËÐеÄhelloÄ£¿é
LinuxÉ豸Çý¶¯Ñ§Ï°£Davinci¿ª·¢°åÉÏÔËÐеÄhelloÄ£¿é
¿´Á˺ܶà¸öhello worldÁË£¬×Ô¼ºÀ´Ð´Ò»¸öÔÚdavinci°å¿éÉÏÅܵİɡ£
Ö÷ÌåºÜ¼òµ¥£¬¾ÍÊÇÒ»¸öCÎļþhello_davinci.c¡£
/*================hello_davinci.c==============*/
#include <linux/module.h> /*ËùÓÐÄ£¿é¶¼ÐèÒªµÄÍ·Îļþ*/
#include <linux/kernel.h>
#include <linux/init.h> /* initºÍexitÏà¹Øºê*/
MODULE_LICENSE("Dual BSD/GPL");
MODULE_AUTHOR("lintax");
static int hello_init(void)
{
printk(KERN_ALERT " Hello Davinci!\n");
return 0;
}
static void hello_exit(void)
{
printk( KERN_ALERT " Goodbye, Davinci.\n ");
}
module_init(hello_init);
module_exit(hello_exit);
/*================hello_davinci.c end===========*/
¸øÆäÅä¸öMakefileÎļþ£º
/*================Makefile==================*/
obj-m := hello_davinci.o
KERNELDIR := /opt/ti-davinci/
modules:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
clean:
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions
/*================Makefile end===============*/
ºÃÁË£¬±àÒë°É¡£
ÎҵĺÃÐÄÇéÁ¢Âí±»ÆËÃðÁË£¬error£¬ÓÖ¼ûerror£º
˵ÕÒ²»µ½/opt/ti-davinci/include/asm/ ϵÄij¸öÍ·Îļþ£¬²éÁËһϣ¬Ã»Õâ¸öĿ¼Âµ±È»ÕÒ²»µ½ÁË¡£¼ÇµÃÒÔÇ°ÊÇ¿´¼û¹ýµÄ£¬²¢ÇÒÓëasm-armÊÇÒ»ÑùµÄ£¬Ó¦¸ÃÊDZàÒëʱ¸´ÖƵÄÒ»·Ý¡£²»ÇÉÎÒÇ°¼¸Ìì¾õµÃÓ²ÅÌ¿Õ¼äÓÐЩ²»¹»£¬¾Í°ÑºÃ¼¸¸öÄں˶¼
make cleanÁËÒ»´Î¡£ÄǾÍÔÙmakeÒ»´ÎÂok£¬Éú³ÉÁËhello_davinci.ko¡£
תÒƵ½davinci¿ª·¢°åÉÏ£¬Ö´ÐвåÈëÄ£¿éÃüÁ
insmod hello_davinci.ko
Êä³öÐÅÏ¢£º
Hello Davinci!
ͨ¹ýlsmod²é¿´£¬Ò²ÓÐÁËhello_davinci Ä£¿é¡£
È»ºóÖ´ÐÐÒƳýÄ£¿éÃüÁ
rmmod hello_davinci
Êä³öÐÅÏ¢£º
Goodbye Davinci.
ÔÙÓÃlsmodÀ´²é¿´£¬¾ÍÕÒ²»µ½hello_davinciÁË¡£
ÓÐÒÔϼ¸µãҪעÒ⣺
1£¬ËùʹÓõÄÄں˻·¾³±ØÐëÊDZàÒë¹ýµÄ£¬·ñÔò£¬¾ÍµÈ×ÅÖص¸Îҵĸ²ÕÞ°É¡£
2£¬¶ÔÓÚ±àÒë¹ý³ÌÖÐÀàËÆÓÚ£º²»ÄÜ´´½¨hello_davinci.o.tmpÎļþµÄ´íÎó¡£ËµÃ÷ȨÏÞ²»¹»£¬¿É¸ü¸Ähello_davinci.c MakefileÎļþËùÔÚĿ¼µÄÊôÐÔ£¬»òÕßÊÇsudoµ½¸ùÓû§¡£
3£¬hello_davinci.cÎļþÖе÷ÓõÄÍ·ÎļþµÄ×÷Óãº
&n
Ïà¹ØÎĵµ£º
¡¡¡¡ls
¡¡¡¡ls ÃüÁî¿ÉÒÔ˵ÊÇlinuxÏÂ×î³£ÓõÄÃüÁîÖ®Ò»¡£ËüÓÐÖÚ¶àµÄÑ¡ÏÆäÖÐÓкܶàÊǺÜÓÐÓõģ¬ÄãÊÇ·ñÊìϤÄØ£¿ÏÂÃæÁгöÁË ls ÃüÁîµÄ¾ø´ó¶àÊýÑ¡Ïî¡£
¡¡¡¡-a ÁгöĿ¼ÏµÄËùÓÐÎļþ£¬°üÀ¨ÒÔ . ¿ªÍ·µÄÒþº¬Îļþ¡£
¡¡¡¡-b °ÑÎļþÃûÖв»¿ÉÊä³öµÄ×Ö·ûÓ÷´Ð±¸Ü¼Ó×Ö·û±àºÅ(¾ÍÏóÔÚCÓïÑÔÀïÒ»Ñù)µÄÐÎʽÁгö¡£
¡¡¡¡-c Êä³öÎļþµÄ i ½Ú ......
LinuxÌṩÁË´óÁ¿µÄÃüÁÀûÓÃËü¿ÉÒÔÓÐЧµØÍê³É´óÁ¿µÄ¹¤
×÷£¬Èç´ÅÅ̲Ù×÷¡¢Îļþ´æÈ¡¡¢Ä¿Â¼²Ù×÷¡¢½ø³Ì¹ÜÀí¡¢ÎļþȨÏÞÉ趨µÈ¡£ËùÒÔ£¬ÔÚLinuxϵͳÉϹ¤×÷Àë²»¿ªÊ¹ÓÃϵͳÌṩµÄÃüÁî¡£ÒªÏëÕæÕýÀí½âLinuxϵͳ£¬
¾Í±ØÐë´ÓLinuxÃüÁîѧÆð£¬Í¨¹ý»ù´¡µÄÃüÁîѧϰ¿ÉÒÔ½øÒ»²½Àí½âLinuxϵͳ¡£
²»Í¬Linux·¢ÐаæµÄÃüÁîÊýÁ¿²»Ò»Ñù£¬µ«Linux·¢Ð ......
from:http://blog.chinaunix.net/u2/62281/showart_1096746.html
sock_rawÔʼÌ×½Ó×Ö±à³Ì¿ÉÒÔ½ÓÊÕµ½±¾»úÍø¿¨ÉϵÄÊý¾ÝÖ¡»òÕßÊý¾Ý°ü,¶ÔÓë¼àÌýÍøÂçµÄÁ÷Á¿ºÍ·ÖÎöÊǺÜÓÐ×÷ÓõÄ.Ò»¹²¿ÉÒÔÓÐ3ÖÖ·½Ê½´´½¨ÕâÖÖsocket
1.socket(AF_INET, SOCK_RAW, IPPROTO_TCP|IPPROTO_UDP|IPPROTO_ICMP)·¢ËͽÓÊÕipÊý¾Ý°ü
2.socket(PF_PACK ......
-------------------------------------------------------------------------------------------------------
By:yuyongbao
QQ:673360056
£±¡¢ linuxϹ²ÏíÎļþ¡£°²×°smbserver¡£È»ºóÔÚ¡¶ÏµÍ³ÉèÖá·Öдò¿ª¡¶·þÎñÆ÷ÉèÖ᷵ġ¶smb¡¡server¡··þÎñÆ÷£¬ÊäÈëÏà¹Ø·¾¶¼´¿É¡£È»ºóÔÚwindowÖУ¬Ê¹ÓÃÍøÂçÁÚ¾Ó²éÕÒlinux¡££¨×¢ ......
Linux Execution and Virtual Memory Utilization
LinuxÖ´ÐÐÒÔ¼°ÐéÄâÄÚ´æÖ®ÓÃ
When Linux boots, it starts with the MMU disabled, so initially it deals only with physical
memory. The kernel image is copied to physical address 0x8000 in DRAM and executed. First a master page table is created ......