¡¶LINUXÉ豸Çý¶¯³ÌÐò¡·Ñ§Ï°Ôý¼Ç£¨Ò»£©
×ܽáÕ½ڣºµÚÒ»Õ É豸Çý¶¯³ÌÐò¼ò½é
µÚ¶þÕ ¹¹ÔìºÍÔËÐÐÄ£¿é
Ìáµ½Çý¶¯³ÌÐò¾Í²»µÃ²»ÏÈ˵ÏÂÁ½¸öÃû´Ê£ºÄں˿ռäºÍÓû§¿Õ¼ä¡£Óû§¿Õ¼ä¼´Óû§Ó¦ÓÃËùÔËÐеĿռ䣬Äں˿ռäÖµµÃÊDzÙ×÷ϵͳÄÚºËÔËÐеĿռ䡣Óû§¿Õ¼ä²»ÄÜÖ±½ÓÒýÓûòÕß²Ù×÷Äں˿ռäµÄÊý¾Ý£¬Äں˿ռäÒ²²»ÄÜÖ±½ÓÒýÓÃÓû§¿Õ¼äµÄÊý¾Ý¡£²Ù×÷ϵͳÄں˶ÔÕû¸öϵͳ×ÊÔ´½øÐйÜÀí£¬ÕâЩ×ÊÔ´ÖÐÒ²°üÀ¨Ó²¼þ×ÊÔ´¡£ËùÒÔÓû§¿Õ¼äÒ²²»ÄÜÖ±½Ó·ÃÎÊÓ²¼þ×ÊÔ´¡£Çý¶¯ÎªÓû§·ÃÎÊÌØ¶¨µÄÓ²¼þ×ÊÔ´Ìṩ½Ó¿Ú¡£Óû§¿Õ¼äÒª·ÃÎÊÓ²¼þ×ÊÔ´ÔòÖ»ÐèÒªµ÷ÓÃÇý¶¯ËùÌṩµÄ½Ó¿Ú¡£Çý¶¯ÍêÈ«ÆÁ±ÎÁËÄÚ²¿²Ù×÷¡£´Ó¶ø£¬Óû§¿Õ¼äͨ¹ýÇý¶¯Õâ²ãÌØÊâµÄÄں˼ä½ÓµÄ·ÃÎÊÓ²¼þ×ÊÔ´¡£
Çý¶¯µÄ×÷ÓÃÔÚÓÚÌṩ»úÖÆ£¬»úÖÆ¼´£ºÐèÒªÌṩʲô¹¦ÄÜ£¬¶ø²»ÊÇÌṩ²ßÂÔ£¬²ßÂÔ¼´£ºÈçºÎʹÓÃÕâЩ¹¦ÄÜ¡£Ìṩ»úÖÆÊÇÇý¶¯³ÌÐòµÄÈÎÎñ£¬¶ø²ßÂÔÔòÊÇÓ¦ÓóÌÐòËùÒªÍê³ÉµÄÈÎÎñ¡£ÓÉÓÚ²»Í¬µÄ»·¾³»áÓв»Í¬µÄ·½Ê½À´·ÃÎÊÓ²¼þ£¬×÷ΪÇý¶¯³ÌÐòµÄ±àдÕߣ¬Ó¦¸Ã¾¡Á¿×öµ½Ê¹Çý¶¯²»µ½²ßÂÔ£¬ÔÚ±àдÇý¶¯µÄʱºò£¬³ÌÐòÔ±»¹Ó¦¸ÃÌØ±ð×¢Ò⣬±àд·ÃÎÊÓ²¼þµÄÄں˴úÂ룬²»Òª¸øÓû§Ç¿¼ÓÈκÎÌØ¶¨²ßÂÔ¡£ÒòΪ²»Í¬µÄÓû§»áÓв»Í¬µÄÐèÇó¡£
Äں˵ŦÄÜ·ÖΪ£º½ø³Ì¹ÜÀí£¬ÄÚ´æ¹ÜÀí£¬Îļþϵͳ£¬É豸¿ØÖÆ£¬ÍøÂ繦ÄÜ¡£ËùÓÐÉ豸¿ØÖƲÙ×÷¶¼ÓÉÓë±»¿ØÖÆÉ豸Ïà¹Ø´úÂëÀ´Íê³É£¬Õâ¶Î´úÂë¾Í½ÐÇý¶¯³ÌÐò£¬³ä·Ö˵Ã÷Çý¶¯³ÌÐòÊÇÄں˵ÄÒ»²¿·Ö¡£
¼ÈÈ»Çý¶¯³ÌÐòÊÇÄں˵ÄÒ»²¿·Ö£¬ÄÇôÇý¶¯³ÌÐòµÄ±àд¾ÍÐèÒªÓõ½Äں˵ÄÍ·Îļþ£¬¶ÔÓÚLinux 2.6°æ±¾µÄÄÚºËÇý¶¯³ÌÐò»¹ÐèÒªÒÀÀµÄÚºËÔ´ÂëÊ÷¡£ËùÒÔÔÚ±àдÇý¶¯Ö®Ç°£¬ÒªÅªÇå³þ£¬×Ô¼º±àдµÄÇý¶¯Êµ¼Ê¾ÍÊÇÔÚ±àдÄںˣ¬ÄÇô³ÌÐòÖÐËùÓÐÓõ½µÄÍ·Îļþ¶¼ÊÇÄں˵ġ£
ÄÚºËÔ´ÂëÊ÷µÄ·¾¶¿ÉÒÔÓÃÒ»ÏÂÃüÁî²é¿´£º
# cd /lib/modules/$(uname -r)/build/
# pwd
ÏÖÔÚ±àдһ¸ö¼òµ¥µÄ
HelloWorld
³ÌÐòÀ´ËµÃ÷
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE(“Dual MPL/GPL”);
static int hello_init(void)
{
printk(KERN_ALERT “Hello, world\n”);
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT “Goodbye cruel world\n”);
}
module_init(hello_init);
module_exit(hello_exit);
ÏÂÃæÊÇ
Makefile
ÎļþÄÚÈÝ
obj-m = hello.o
KERNELDIR ?= /lib/modules/$(uname -r)/build
Makefile
´úÂë½âÊÍ£º
obj-m
ÊÇÄÚºËÒªÇóµÄ¡£Çý¶¯×îÖÕ
hello.ko
ÒÀÀ
Ïà¹ØÎĵµ£º
linux ext2 Îļþϵͳ»Ö¸´±»É¾³ýµÄÎļþ
·¢²¼ÈÕÆÚ£º2002-08-08
ÎÄÕÂÄÚÈÝ£º
------------------------------------------------------------------------
--------
by ......
Yum£¨È«³ÆÎª Yellow dog Updater, Modified£©ÊÇÒ»¸öÔÚFedoraÖеÄshellǰ¶ËÈí¼þ°ü¹ÜÀíÆ÷¡£»ùÓÚrpm°ü¹ÜÀí£¬Äܹ»´ÓÖ¸¶¨µÄ·þÎñÆ÷×Ô¶¯ÏÂÔØRPM°ü²¢ÇÒ°²×°£¬¿ÉÒÔ×Ô¶¯´¦ÀíÒÀÀµÐÔ¹ØÏµ£¬²¢ÇÒÒ»´Î°²×°ËùÓÐÒÀÀµµÄÈíÌå°ü£¬ÎÞÐë·±ËöµØÒ»´Î´ÎÏÂÔØ¡¢°²×°¡£
ÏÂÃæ½éÉÜÒ»¸ö´Ó¹âÅÌ×öyumÔ´µÄСʵÑé
±¾ÊÔÑéʹÓÃCentOS-5.4-i386-bin,DVD.isoÈí¼þ° ......
LinuxÉϹ¹ÖþiPhone OS3.1.2¿ª·¢»·¾³´î½¨
½Ì³ÌµØÖ·£º http://www.yifeiyang.net/iphone-development-introduction-3-linux-development-environment-on-the-build-iphone-os3-1-2/
#µÚÒ»²½Ã»ÓÐʲôÎÊÌâ
$ ./toolchain.sh headers
#µÚ¶þ²½Ò²Ë³Àûͨ¹ý
$ ./toolchain.sh firmware
#µÚÈý²½Ò²Í¦Ë³Àû
$ ./toolchain ......
Èç¹ûÄã°®ºÃѧϰ֪ʶ£¬ÓÈÆäÊÇLinux²Ù×÷ϵͳ֪ʶ£¬Ëæ×ÅLinuxÓ¦ÓõÄÀ©Õ¹£¬Ðí¶àÅóÓÑ¿ªÊ¼½Ó´¥Linux£¬¿ÉÄã²»ÖªµÀÈ¥ÄÄÀïÕÒµ½ÕâЩ֪ʶ£¬À´ÕâÀÈÃÄã¸ü¼ÓÁ˽âLinuxѧϰ·½·¨¡£ÈÃÄãÈ«ÃæÕÆÎÕLinuxѧϰ·½·¨¡£
1£®Ñ§Ï°µÄÄ¿µÄ
¡¡¡¡Í¨¹ýLinuxµÄÑ§Ï°ÕÆÎÕUNIXµÄÄ¿µÄÏë±Ø²»Óöà˵ÁË£¬ÔÚÕâ¸öÍøÂçÈ˲ÅÉí¼Û±¶ÔöµÄÄê´ú£¬Ïë¿¿¼¼Êõ³Ô·¹ÓÖ²»ÏëÕÆÎÕÍ ......
#define EPERM 1 /* Operation not permitted */
#define ENOENT 2 /* No such file or directory */
#define ESRCH&nbs ......