Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB
ÈÈÃűêÇ©£º c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 ×îÐÂÎÄÕ : linux

ѧϰlinux¼¸µãÖÒ¸æ ת

LinuxmineÊÕ¼¯ÕûÀí ×÷Õߣºlinux±¦¿â (http://www.linuxmine.com) 1. ²»Òªµ±¡°´«½ÌÊ¿¡±
ºÜ¶àÈËÔÚÌÖÂÛÇø²»¶ÏµÄÒýÆð "Linux vs. Windows" Ö®ÀàµÄÌÖÂÛ£¬ÉõÖÁÕùµÄÃæºì¶ú³à£¬ÕâÊÇûÓбØÒªµÄ¡£
ÕâÖÖÕùÂÛÊÇÀË·Ñʱ¼ä¶øÃ»ÓÐÈκÎÓô¦µÄ¡£¶Ô£¬Ä㻨ÁËÒ»ÏÂÎ磬ÓÃÐí¶àÊÂʵ¡°º´ÎÀ¡±ÁË ¡°Linux ±È Windows ºÃ¡± Õâ¸ö˵·¨¡£µ«ÊÇ Windows µÄÖ§³ÖÕß²¢²»»áϲ»¶ÉÏ Linux£¬ËûÃÇÖ»ÊÇÉÔ΢ÍËËõһϣ¬È»ºóÕÒһЩеÄÖ¤¾ÝÀ´¸úÄã±çÂÛ¡£
ÊÀ½çÉϵÄÈËÃǶ¼ÔÚÀûÓà Linux Ñо¿×îÇ°ÑØµÄ¿ÆÑ§£¬ÎÒÃÇ»¹ÔÚÕâÀïÌÖÂÛ ¡°Òª²»ÒªÓà Linux¡± ÕâÖÖÎÞÁĵÄÎÊÌ⣬ʲôʱºò²ÅÄܸÏÉÏʱ´úǰ½øµÄ²½·¥£¿
ʲô½Ð×ö¡°Windows Ö§³ÖÕß¡±£¬Ê²Ã´½Ð×ö¡°Linux Ö§³ÖÕß¡±£¿ÎÒÃÇΪʲôҪ֧³Öijһ¸ö¶ø·´¶ÔÁíÍâÒ»¸ö£¿Äã²»ÐèҪΪ Linux ¡°»¤·¨¡±£¬²»ÐèÒª³ÉΪ¡°Linux Ö§³ÖÕß¡±»òÕß¡°GNU´«½ÌÊ¿¡±£¬GNU/Linux ÒѾ­ÓÃÊÂʵÏòÊÀ½çÖ¤Ã÷ÁËËüÃǵÄÍþÁ¦£¬ÒѾ­±»´ó¶àÊýÈ˽ÓÊÜ¡£ÄãÖ»ÐèÒª°²°²¾²¾²ÏíÊÜ GNU/Linux ¸øÄãµÄÀÖȤºÍ×ÔÓÉ¡£
ÄãÐèÒª¹ØÐĵIJ»ÊÇÄãµÄ¹¤¾ßÊÇʲô£¬¶øÊÇÄãÓÃËü×öÁËʲô¡£¾«Í¨ Linux ²¢²»ËµÃ÷ÈκÎÎÊÌ⣬ÒòΪËüÖ»ÊÇÒ»¸ö¹¤¾ß¶øÒÑ¡£Èç¹ûÄãÓà Windows ÄܺܺõÄÍê³ÉÄãµÄÈÎÎñ£¬ÄÇÄã¾ÍûÓбØÒª·Ñʱ¼äÈ¥ÊìϤ Linux¡£Ö±µ½ÓÐÒ»ÌìÄã· ......

Linux ÏÂʵÏÖÁ½¸ö¹ÜµÀË«ÏòÊý¾ÝÁ÷

Ô­ÎĵØÖ·£ºhttp://www.wangzhongyuan.com/archives/488.html
ÒÔÏÂÊÇÒ»¸öLinux/UnixÏÂÓÉÁ½¸ö¹ÜµÀÌṩ˫ÏòÊý¾ÝÁ÷µÄC³ÌÐò£¬ÕâÊDzÙ×÷ϵͳ¿Î³ÌÖо­³£Ê¹ÓõĻù±¾³ÌÐò
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <stdio.h>
#include <string.h>
int main()
{
int fd1[2],fd2[2],cld_pid,status;
char buf[200], len;

if (pipe(fd1) == -1) // ´´½¨¹ÜµÀ1
{
printf("creat pipe1 error\n");
exit(1);
}
if (pipe(fd2) == -1) // ´´½¨¹ÜµÀ2
{
printf("creat pipe2 error\n");
exit(1);
}

if ((cld_pid=fork()) == 0) //×Ó½ø³Ì
{
close(fd1[1]); // ×Ó½ø³Ì¹Ø±Õ¹ÜµÀ1µÄдÈë¶Ë
close(fd2[0]); // ×Ó½ø³Ì¹Ø±Õ¹ÜµÀ1µÄ¶Á³ö¶Ë

//×Ó½ø³Ì¶Á¹ÜµÀ1
len = read(fd1[0],buf,sizeof(buf));
printf("\nÕâÊÇÔÚ×Ó½ø³Ì£º×Ó½ø³Ì´Ó¹ÜµÀ1ÖжÁ³öµÄ×Ö·û´® -- %s",buf);

//×Ó½ø³Ìд¹ÜµÀ2
strcpy(buf,"×Ó½ø³ÌдÈë¹ÜµÀ2µÄ×Ö· ......

Linux¶àÏ̱߳à³ÌµÄ»ù±¾µÄº¯Êý

  º¯ÊýÔ­ÐÍ£º                  
#include <pthread.h>
int pthread_create(pthread_t *restrict tidp,const pthread_attr_t *restrict attr, void *(*start_rtn)(void),void *restrict arg);
    ·µ»ØÖµ£ºÈôÊdzɹ¦½¨Á¢Ï̷߳µ»Ø0,·ñÔò·µ»Ø´íÎóµÄ±àºÅ
    ÐÎʽ²ÎÊý£º
                pthread_t *restrict tidp Òª´´½¨µÄÏ̵߳ÄÏß³ÌidÖ¸Õë
                const pthread_attr_t *restrict attr ´´½¨Ïß³ÌʱµÄÏß³ÌÊôÐÔ
                void* (start_rtn)(void) ·µ»ØÖµÊÇvoidÀàÐ͵ÄÖ¸Õ뺯Êý
                vodi *restrict arg   start_rtnµÄÐвÎ
   ÀýÌâ1£º
       ¹¦ÄÜ£º²âÊÔ½¨Á¢Ò ......

linuxϵͳ϶Ը÷Îļþ½øÐдò°ü»ò½âѹ

linuxϵͳ϶Ը÷Îļþ½øÐдò°ü»ò½âѹ·½·¨
1.tar ÃüÁî
»ù±¾ÃüÁîÑùʽ£º
tar    -²ÎÊý    °ü    Ô´Îļþ»òÎļþ¼Ð
³£ÓòÎÊý£º
-c    ´´½¨Ðµİü
-f Ö¸¶¨°üµÄÎļþÃû
-r ½«Îļþ¼ÓÈëÒÑÓеİü
-u ¸üаüÖеÄÎļþ
-t Áгö°üÖÐËùÓÐÎļþ
-x ½â¿ª°üÖÐËùÓÐÎļþµ½µ±Ç°Ä¿Â¼
-v ÏÔʾִÐйý³Ì
-z ´ý²Ù×÷µÄ°üÊÇÒ»¸ögzip°ü
-j ´ý²Ù×÷µÄ°üÊÇÒ»¸öbzip2°ü
-Z ´ý²Ù×÷µÄ°üÊÇÒ»¸öcompress°ü
¾ÙÀý£º
<1>½«µ±Ç°Ä¿Â¼ÏÂËùÓÐmp3Îļþ´ò³ÉÒ»¸öÃûΪmusic.tarµÄ°ü¡££¨½ö´ò°ü£¬²»Ñ¹Ëõ£©
#tar -cf music.tar *.mp3
<2>½«µ±Ç°Ä¿Â¼Ïµēhero.wma”Îļþ¼ÓÈëµ½music.tar°üÖС£
#tar -rf music.tar hero.wma
<3>¸üÐÂmusic.tarÖÐ µÄlist.txtÎļþ¡£
#tar -uf music.tar list.txt
<4>Áгömusic.tarÖÐËùÓÐÎļþ
#tar -tf music.tar
<5>½â¿ªmusic.tarµ½µ±Ç°Ä¿Â¼
#tar -xf music.tar
<6>½«µ±Ç°Ä¿Â¼ÏÂËùÓÐmp3Îļþ´ò³ÉÒ»¸öÃûΪmusic.tar.gzµÄ°ü¡££¨´ò°ü²¢Ñ¹Ëõ£©
#tar -czf music.tar.gz *.mp3
<7>½â¿ªmusic.tar.gzµ½µ±Ç°Ä¿Â¼
#tar -xzf music.tar.gz
<8>½«µ±Ç°Ä¿Â¼ÏÂËùÓÐmp3Îļþ´ò³ÉÒ»¸öÃûΪmu ......

Óû§Ä£Ê½LinuxÖ®³õ´ÎÌåÑé

Óû§Ä£Ê½Linux (User Mode Linux), ËõдΪUML¡£¹ËÃû˼Ò壬UML¾ÍÊÇÔÚÒ»¸ö¿ÉÒÔÔÚÓû§¿Õ¼äÔËÐеÄlinuxÄںˡ£
UMLÄܹ»ÎªkernelÐéÄâһЩʵ¼ÊµÄÎïÀíÉ豸£¬Æô¶¯UMLÖ»ÐèÒªÒªÖ¸¶¨Ò»¸örootÎļþϵͳµÄimageÎļþ¡£UMLʵ¼ÊÉÏÒ²ÊÇÒ»ÖÖÐéÄ⻯¼¼Êõ¡£
 
UMLµÄºÃ´¦
µÚÒ»£¬×öÒ»¸öÐéÄâ·þÎñÆ÷£¬UML¿ÉÒÔÒÔ°²È«µÄ·½Ê½ÔËÐÐÔÚÓû§¿Õ¼ä£¬Ëü¿ÉÒÔÈ·±£·þÎñÆ÷²»»á¶Ô±¾»úµÄÄÚÈݽøÐÐÆÆ»µ
µÚ¶þ£¬±ãÓÚkernel¿ª·¢ºÍµ÷ÊÔ¡£kernelÖÐһЩÓëÆ½Ì¨Î޹صÄÄ£¿é£¬ÈçÎļþϵͳ£¬ÄÚ´æ¹ÜÀíµÈ£¬Ê¹ÓÃUMLµ÷ÊÔ¸ü¼Ó·½±ã¡£
 
ÔËÐÐUML
1. ×¼±¸ºÃÒ»¸örootfsµÄimgÎļþ
UMLÐèÒªÖ¸¶¨Ò»¸ö°üº¬ÍêÕû¸ùÎļþϵͳµÄimgÎļþ¡£Ê×ÏÈ´´½¨Ò»¸ö´óСΪ2GµÄimgÎļþ£¬È»ºó½«Æä¸ñʽ»¯Îªext3Îļþϵͳ¡£
# cd ~/uml
# dd if=/dev/zero of=rootfs.img bs=1M count=2048
# mkfs.ext3 rootfs.img
rootfs.imgʵ¼ÊÉÏÊÇÒ»¸öext3ÎļþϵͳµÄ´æ´¢É豸£¬µ«ÊÇ»¹Ã»ÓÐʲôÄÚÈÝ¡£ËùÒÔÏÖÔÚÒª×öµÄÊÇ£¬½«Ò»¸öÒÑÓеĸùÎļþϵͳ¿½±´µ½rootfs.imgÖУ¨¼ÙÉèÕâ¸ö¸ùÎļþÒѾ­´ò°üΪyour-rootfs.tar.gz£©£º
# mkdir uml-rootfs
# sudo mount -o loop rootfs.img uml-rootfs
# cd uml-rootfs
# tar xf your-rootfs.tar.gz
# cd ..
# umount uml-rootfs
» ......

Linux Kernel時ÐòµÄÈý種機ÖÆ

×î½üÔÚ寫Driver時£¬³£³£Óöµ½ÐèÒª¡¸µÈ´ýÒ»¶Î時間¡¹ÔÙ處ÀíµÄ動×÷£¬ÒÔÍùÎÒ¶¼ÉµÉµµÄÓÃmsleep()»òmdelay()£¬Êâ²»Öª這種busy waiting會holdסcpu資Ô´£¬ÔÚ這¶ÎÆÚ間內¶¼無·¨讓給ÆäËûprocess執ÐУ¬時間¶Ì(10msÒÔϵÈ級)»ò許還¿ÉÒÔ£¬Ì«長¾Í²»ÐÐÁË£¬ËùÒÔÐèÒªKernel±¾Éí¾ÍÓÐÌṩµÄ¡¸時Ðò¡¹機ÖÆ來×ö處Àí£¬ì¶ÊÇÎÒ漸漸學會ÁËÈçºÎʹÓÃTimer¡¢TaskletºÍWorkqueueµÄÓ÷¨£¬ÔÚO'ReillyµÄLinux Device DriversµÚÆßÕÂÓÐ詳細µÄ講½â£¬ÎÒ將書Éϵľ«華茲簡單ÕûÀíÈçÏ£º
##CONTINUE##
Ò»¡¢Timer
#include <linux/timer.h>
struct timer_list
{
/* ... */
unsigned long expires;//ÆÚÍû運ÐÐµÄ jiffies Öµ
void (*function)(unsigned long);
unsigned long data;//傳給functionµÄ參數
};//ʹÓÃǰ±Ø須³õʼ»¯
void init_timer(struct timer_list *timer);
//³õʼ»¯Ò»個timer_list
struc ......
×ܼǼÊý:5772; ×ÜÒ³Êý:962; ÿҳ6 Ìõ; Ê×Ò³ ÉÏÒ»Ò³ [466] [467] [468] [469] 470 [471] [472] [473] [474] [475]  ÏÂÒ»Ò³ βҳ
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ