Purpose
This examples shows how to create and stop a kernel thread.
The driver is implemented as a loadable module. In the init_module() routine five kernel threads are created. This kernel threads sleep one second, wake up, print a message and fall asleep again. On unload of the module (cleanup_module), the kernel threads are killed.
The example has been tested with Linux kernel 2.4.2 on Intel (uni processor only) and Alpha platform (COMPAQ Personal Workstation 500au (uni processor), DS20 and ES40 (SMP).
A version for the 2.2 kernel can be found here. Note: depending on the context of the creator of the threads the new threads may inherit properties from the parent you do not want to have. The new version avoids this by having keventd create the threads. The 2.2. kernel do not have a keventd, so this approach is not implementable there.
Functions in example
* start_kthread: creates a new kernel thread. Can be called from any process context but not from ......
1£®4 Ï̴߳´½¨µÄLinuxʵÏÖ
ÎÒÃÇÖªµÀ£¬LinuxµÄÏß³ÌʵÏÖÊÇÔÚºËÍâ½øÐеģ¬ºËÄÚÌṩµÄÊÇ´´½¨½ø³ÌµÄ½Ó¿Údo_fork()¡£ÄÚºËÌṩÁËÁ½¸öϵͳµ÷ÓÃ__clone()ºÍfork ()£¬×îÖÕ¶¼Óò»Í¬µÄ²ÎÊýµ÷ÓÃdo_fork()ºËÄÚAPI¡£µ±È»£¬ÒªÏëʵÏÖỊ̈߳¬Ã»ÓкËÐÄ¶Ô¶à½ø³Ì£¨ÆäʵÊÇÇáÁ¿¼¶½ø³Ì£©¹²ÏíÊý¾Ý¶ÎµÄÖ§³ÖÊDz»Ðеģ¬Òò´Ë£¬do_fork()ÌṩÁ˺ܶà²ÎÊý£¬°üÀ¨CLONE_VM£¨¹²ÏíÄÚ´æ¿Õ¼ä£©¡¢CLONE_FS£¨¹²ÏíÎļþϵͳÐÅÏ¢£©¡¢CLONE_FILES£¨¹²ÏíÎļþÃèÊö·û±í£©¡¢CLONE_SIGHAND£¨¹²ÏíÐźžä±ú±í£©ºÍCLONE_PID£¨¹²Ïí½ø³ÌID£¬½ö¶ÔºËÄÚ½ø³Ì£¬¼´0ºÅ½ø³ÌÓÐЧ£©¡£µ±Ê¹ÓÃforkϵͳµ÷ÓÃʱ£¬Äں˵÷ÓÃdo_fork()²»Ê¹ÓÃÈκι²ÏíÊôÐÔ£¬½ø³ÌÓµÓжÀÁ¢µÄÔËÐл·¾³£¬¶øÊ¹ÓÃpthread_create()À´´´½¨Ïß³Ìʱ,Ôò×îÖÕÉèÖÃÁËËùÓÐÕâЩÊôÐÔÀ´µ÷ÓÃ__clone()£¬¶øÕâЩ²ÎÊýÓÖÈ«²¿´«¸øºËÄÚµÄdo_fork()£¬´Ó¶ø´´½¨µÄ"½ø³Ì"ÓµÓй²ÏíµÄÔËÐл·¾³£¬Ö»ÓÐÕ»ÊǶÀÁ¢µÄ£¬ÓÉ __clone()´«Èë¡£
LinuxÏß³ÌÔÚºËÄÚÊÇÒÔÇáÁ¿¼¶½ø³ÌµÄÐÎʽ´æÔڵģ¬ÓµÓжÀÁ¢µÄ½ø³Ì±íÏ¶øËùÓеĴ´½¨¡¢Í¬²½¡¢É¾³ýµÈ²Ù×÷¶¼ÔÚºËÍâpthread¿âÖнøÐС£pthread ¿âʹÓÃÒ»¸ö¹ÜÀíỊ̈߳¨__pthread_manager()£¬Ã¿¸ö½ø³Ì¶ÀÁ¢ÇÒΨһ£©À´¹ÜÀíÏ̵߳Ĵ´½¨ºÍÖÕÖ¹£¬ÎªÏ̷߳ÖÅäÏß³ÌID£¬·¢ËÍ ......
ÔÎĵØÖ·£ºhttp://www.xxlinux.com/linux/article/development/embed/20080227/14047.html
LinuxºÍuClinux
LinuxÕýÖð½¥µØÓ¦ÓÃÓÚǶÈëʽÉ豸£¬uClinuxÕýÊÇÔÚÕâÖÖ·ÕΧϲúÉúµÄ¡£uClinux¾ÍÊÇMicro-Control-Linux£¬ËüÒ²ÊÇÒ»¸ö¿ªÔ´ÏîÄ¿£¬uClinuxµÄÔ´´úÂëºÍ¿ª·¢¹¤¾ß¿ÉÒÔÃâ·Ñ´Óhttp://www.uclinux.orgÉÏÏÂÔØµÃµ½¡£ uClinuxÊÇרΪÄÇЩûÓÐMMU(ÄÚ´æ¹ÜÀíµ¥Ôª)µÄǶÈëʽ´¦ÀíÆ÷¿ª·¢µÄ£¬ºÍÖ÷Á÷µÄLinuxÏà±È£¬uClinuxÓÐÒÔϵÄÌØµã£º
1£®¼ò»¯ÁËÄں˼ÓÔØ·½Ê½£¬uClinuxµÄÄں˿ÉÒÔÔÚFlashÉÏÖ±½ÓÔËÐУº¾ÍÊǰÑuClinuxµÄÄں˵ĿÉÖ´ÐÐÓ³ÏóÉÕдµ½flashÉÏ£¬ÏµÍ³Æô¶¯Ê±´Ó FlashµÄij¸öµØÖ·¿ªÊ¼Öð¾äÖ´ÐУ»Ò²¿ÉÒÔ¼ÓÔØµ½ÄÚ´æÖÐÔËÐУº°ÑÄں˵ÄѹËõÎļþ´æ·ÅÔÚFlashÉÏ£¬ÏµÍ³Æô¶¯Ê±¶ÁȡѹËõÎļþÔÚÄÚ´æÀï½âѹ£¬È»ºó¿ªÊ¼Ö´ÐС£
2£®²ÉÓÃÁËromfsÎļþϵͳ×÷ΪrootÎļþϵͳ£ºÕâÖÖÎļþϵͳÏà¶ÔÓÚÒ»°ãµÄext2ÎļþϵͳҪÇó¸üÉٵĿռ䣬Ê×ÏÈÄÚºËÖ§³ÖromfsÎļþϵͳ±ÈÖ§³Öext2ÎļþϵͳÐèÒª¸üÉٵĴúÂ룬Æä´ÎromfsÎļþϵͳÏà¶Ô¼òµ¥£¬½¨Á¢Îļþϵͳsuperblock ......
LinuxϳÌÐòµÄProfile¹¤¾ß
ÎÒÃÇÔÚд³ÌÐò£¬ÌرðÊÇǶÈëʽ³ÌÐòµÄʱºò£¬Í¨³£ÐèÒª¶Ô³ÌÐòµÄÐÔÄܽøÐзÖÎö£¬ÒÔ±ã³ÌÐòÄܹ»¸ü¿ì¸üºÃµØÔËÐУ¬´ïµ½ÊµÊ±£¨real-time£©µÄÄ¿µÄ¡£Èç¹û³ÌÐòºÜ´ó£¬·ÖÎöÆðÀ´¾ÍºÜÀ§ÄÑ¡£Èç¹ûÓиö¹¤¾ßÄܹ»×Ô¶¯½øÐгÌÐòµÄÐÔÄÜ·ÖÎö£¬ÄǾÍ×îºÃÁË¡£ÕâÀï½éÉÜÒ»ÖÖLinuxϳÌÐòµÄProfiling¹¤¾ß----GNU profiler¡£
GNU gprofÄܹ»´òÓ¡³ö³ÌÐòÔËÐÐÖи÷¸öº¯ÊýÏûºÄµÄʱ¼ä£¬¿ÉÒÔ°ïÖú³ÌÐòÔ±ÕÒ³öÖڶຯÊýÖкÄʱ×î¶àµÄº¯Êý¡£²úÉú³ÌÐòÔËÐÐʱºòµÄº¯Êýµ÷ÓùØÏµ£¬°üÀ¨µ÷ÓôÎÊý£¬¿ÉÒÔ°ïÖú³ÌÐòÔ±·ÖÎö³ÌÐòµÄÔËÐÐÁ÷³Ì¡£ÓÐ Á˺¯ÊýµÄµ÷ÓùØÏµ£¬Õâ»áÈÿª·¢ÈËÔ±´ó´óÌá¸ß¹¤×÷ЧÂÊ£¬²»Ó÷ÑÉñµØÈ¥Ò»µãµãÕÒ³ö³ÌÐòµÄÔËÐÐÁ÷³Ì£¬Õâ¶ÔС³ÌÐòÀ´Ëµ¿ÉÄÜЧ¹û²»ÊǺÜÃ÷ÏÔ£¬µ«¶ÔÓÚÓм¸Íò£¬¼¸Ê®Íò´ú ÂëÁ¿µÄ¹¤³ÌÀ´Ëµ£¬Ð§ÂÊÊÇÎãÓ¹ÖÃÒɵģ¡¶øÇÒÕâ¸ö¹¦ÄܶÔÓÚά»¤¾É´úÂë»òÕßÊÇ·ÖÎöOpen SourceÀ´ËµÄÇÊÇÏ൱ÓÕÈ˵ģ¬ÓÐÁ˵÷ÓÃͼ£¬¶Ô³ÌÐòµÄÔËÐпò¼ÜÒ²¾ÍÓÐÁËÒ»¸ö´óÌåÁ˽⣬֪µÀÁ˳ÌÐòµÄ“¹Ç¼Ü“£¬·ÖÎöËüÒ²¾Í²»»áÔÙÄÇôãȻ£¬ÓÈÆäÊǶÔ×Ô¼º²» ÊìϤµÄ´úÂëºÍOpen Source¡£
gprofµÄ»ù±¾Ó÷¨£º
1£® ʹÓà -pg Ñ¡Ïî±àÒëºÍÁ´½ÓÄãµÄÓ¦ÓóÌÐò
ÔÚgcc±àÒë³ÌÐòµÄʱºò£¬¼ÓÉÏ-pgÑ¡ÏÀ ......
LinuxϵĶδíÎó²úÉúµÄÔÒò¼°µ÷ÊÔ·½·¨
ĬÈÏ·ÖÀà 2008-08-26 13:37 ÔĶÁ28 ÆÀÂÛ0
×ֺţº ´ó´ó ÖÐÖРСС
¼ò¶øÑÔÖ®,²úÉú¶Î´íÎó¾ÍÊÇ·ÃÎÊÁË´íÎóµÄÄÚ´æ¶Î£¬Ò»°ãÊÇÄãûÓÐȨÏÞ£¬»òÕ߸ù±¾¾Í²»´æÔÚ¶ÔÓ¦µÄÎïÀíÄÚ´æ,ÓÈÆä³£¼ûµÄÊÇ·ÃÎÊ0µØÖ·.
Ò»°ãÀ´Ëµ,¶Î´íÎó¾ÍÊÇÖ¸·ÃÎʵÄÄڴ泬³öÁËϵͳËù¸øÕâ¸ö³ÌÐòµÄÄÚ´æ¿Õ¼ä£¬Í¨³£Õâ¸öÖµÊÇÓÉgdtrÀ´±£´æµÄ£¬ËûÊÇÒ»¸ö48λµÄ¼Ä´æÆ÷£¬ÆäÖеÄ32λÊDZ£´æÓÉËüÖ¸ÏòµÄgdt±í£¬ºó13λ±£´æÏàÓ¦ÓÚgdtµÄϱ꣬×îºó3λ°üÀ¨Á˳ÌÐòÊÇ·ñÔÚÄÚ´æÖÐÒÔ¼°³ÌÐòµÄÔÚcpuÖеÄÔËÐм¶±ð,Ö¸ÏòµÄgdtÊÇÓÉÒÔ64λΪһ¸öµ¥Î»µÄ±í£¬ÔÚÕâÕűíÖоͱ£´æ×ųÌÐòÔËÐеĴúÂë¶ÎÒÔ¼°Êý¾Ý¶ÎµÄÆðʼµØÖ·ÒÔ¼°Óë´ËÏàÓ¦µÄ¶ÎÏÞºÍÒ³Ãæ½»»»»¹ÓгÌÐòÔËÐм¶±ð»¹ÓÐÄÚ´æÁ£¶ÈµÈµÈµÄÐÅÏ¢¡£Ò»µ©Ò»¸ö³ÌÐò·¢ÉúÁËÔ½½ç·ÃÎÊ£¬cpu¾Í»á²úÉúÏàÓ¦µÄÒì³£±£»¤£¬ÓÚÊÇsegmentation fault¾Í³öÏÖÁË.
ÔÚ±à³ÌÖÐÒÔϼ¸Àà×ö·¨ÈÝÒ×µ¼Ö¶δíÎó,»ù±¾ÊÇÊÇ´íÎóµØÊ¹ÓÃÖ¸ÕëÒýÆðµÄ
1)·ÃÎÊϵͳÊý¾ÝÇø£¬ÓÈÆäÊÇÍù ϵͳ±£»¤µÄÄÚ´æµØÖ·Ð´Êý¾Ý
×î³£¼û¾ÍÊǸøÒ»¸öÖ¸ÕëÒÔ0µØÖ·
2)ÄÚ´æÔ½½ç(Êý×éÔ½½ç£¬±äÁ¿ÀàÐͲ»Ò»ÖµÈ) ·ÃÎʵ½²»ÊôÓÚÄãµÄÄÚ´æÇøÓò
½â¾ö·½·¨
ÎÒÃÇ ......
linuxÏÂÏë½âѹrarÎļþ ±ØÐë°²×°Èí¼þ£¬ÎÒʹÓõ½ÊÇrarlinux
ÏÂÃæÊÇÏÂÔØµØÖ·
rarlinux¹Ù·½ÍøÕ¾ÏÂÔØµØÖ·
http://www.rarsoft.com/download.htm
°²×° //tar.gzÎļþÏêϸ½âѹ²½Öè
ÏȽâѹtar.gzÎļþ
Ö±½Ó cd µ½ÏàÓ¦µ½Îļþ¼Ð
make // Èç¹ûÌáʾȨÏÞ²»¹» su root È¡µÃ×î¸ßȨÏÞ
È»ºó make install
tar zxvf rarlinux-3.x.x.tar.gz
./configure &make &make install
¹§Ï²Äã°²×°³É¹¦
×îºó
ʹÓÃrarlinux½âѹrarÎļþ
ʹÓÃÃüÁî
unrar e filesname.rar
½âѹrarÎļþ
ok£¡¡«
============================================
rarlinux ʹÓ㨸ü¶à¹¦ÄÜ£©
²é¿´Ñ¹Ëõ°üÖеÄÎĵµ
$rar l XXX.rar »ò $rar v XXX.rar
²é¿´Ñ¹Ëõ°üÖеÄÎĵµ(Ö»¿´ÓÐʲôÎĵµ)
$rar lb XXX.rar »ò $rar vb XX ......