ǶÈëʽÅàѵ£¬ARMÅàѵ£¬linuxÅàѵ£¬winceÅàѵ,ÅàѵǶÈëʽȫÌ×£¬
Ìṩ¾ÍÒµ±£ÕÏ
ÎÒÃÇÕâµÄÅàѵÊÇËùÓÐÅàѵÖÐÐļ۸ñ×îµÍµÄ(ÄÇÊÇÒòΪÎÒÃÇÓõĹú¼ÒµÄ·¿×Ó£¬²»ÐèÒª·¿×â)£¬ÅàѵµÄÄÚÈÝÊÇ×îÈ«µÄ£¬
ÅàѵÖÐÐÄÔÚÒ»¸öÈí¼þÔ°ÀïÃæ
¾ßÌåÇé¿ö¿ÉÒÔ×Éѯ
QQ£º416796616 ×îºÃ¼ÓȺ£º40527921
¿Î³ÌÄ¿±ê
±¾¿Î³Ì²ÉÓÃÀíÂÛ½ÌѧÓëʵÑéÏà½áºÏµÄ·½Ê½£¬ÏµÍ³µØ½éÉÜǶÈëʽC++ϵͳ¹¤³Ìʦ¡¢Ç¶ÈëʽARMϵͳÄǸö¹¤³Ìʦ¡¢Ç¶ÈëʽWindowsCEϵͳ¹¤³Ìʦ¡¢Ç¶ÈëʽLinuxϵͳ¹¤³ÌʦȫÌ×¼¼Êõ¡£Ñ§Ô±Í¨¹ýϵͳµÄѧϰ£¬¿ÉÒÔʤÈÎÔÚARM´¦ÀíÆ÷ÉÏ£¬ÔÚǶÈëʽWindowsCE¡¢LinuxϵͳϽøÐÐϵͳ¿ª·¢¡¢Çý¶¯¿ª·¢¡¢Ó¦Óÿª·¢¡£¿Î³ÌÄ¿±ê°üÀ¨£º
1. ǶÈëʽC++ϵͳ¿ª·¢¡£
2. ǶÈëʽARMϵͳ¿ª·¢¡£
3. ǶÈëʽWindowsCEϵͳ¿ª·¢¡£
4. ǶÈëʽLinuxϵͳ¿ª·¢¡£
5. Äܹ»ÊìÁ·½øÐаüÀ¨ÍøÂç¡¢¶àýÌå¡¢Êý¾Ý¿âµÈÓ¦ÓóÌÐò¿ª·¢¡£
ÅàÑø¶ÔÏó
ÓÐÖ¾³ÉΪ ......
²Ù×÷ϵͳÄں˿ÉÄÜÊÇ΢Äںˣ¬Ò²¿ÉÄÜÊǵ¥Äںˣ¨ºóÕßÓÐʱ³ÆÖ®ÎªºêÄÚºËMacrokernel£©¡£°´ÕÕÀàËÆ·â×°µÄÐÎʽ£¬ÕâЩÊõÓﶨÒåÈçÏ£º
µ¥ÄںˣºÒ²³ÆÎªºêÄںˡ£½«Äں˴ÓÕûÌåÉÏ×÷Ϊһ¸ö´ó¹ý³ÌʵÏÖ£¬²¢Í¬Ê±ÔËÐÐÔÚÒ»¸öµ¥¶ÀµÄµØÖ·¿Õ¼ä¡£ËùÓеÄÄں˷þÎñ¶¼ÔÚÒ»¸öµØÖ·¿Õ¼äÔËÐУ¬Ï໥֮¼äÖ±½Óµ÷Óú¯Êý£¬¼òµ¥¸ßЧ¡£Î¢Äںˣº¹¦Äܱ»»®·Ö³É¶ÀÁ¢µÄ¹ý³Ì£¬¹ý³Ì¼äͨ¹ýIPC½øÐÐͨÐÅ¡£Ä£¿é»¯³Ì¶È¸ß£¬Ò»¸ö·þÎñʧЧ²»»áÓ°ÏìÁíÍâÒ»¸ö·þÎñ¡£LinuxÊÇÒ»¸öµ¥Äں˽ṹ£¬Í¬Ê±ÓÖÎüÊÕÁË΢Äں˵ÄÓŵ㣺ģ¿é»¯Éè¼Æ£¬Ö§³Ö¶¯Ì¬×°ÔØÄÚºËÄ£¿é¡£Linux»¹±ÜÃâÁË΢ÄÚºËÉè¼ÆÉϵÄȱÏÝ£¬ÈÃÒ»Çж¼ÔËÐÐÔÚÄÚºË̬£¬Ö±½Óµ÷Óú¯Êý£¬ÎÞÐèÏûÏ¢´«µÝ¡£
Linux´ó²¿·Ö¶¼Êǵ¥Äں˵ġ£
΢Äںˣ¨Microkernel kernel£©¨D¨DÔÚ΢ÄÚºËÖУ¬´ó²¿·ÖÄں˶¼×÷Ϊµ¥¶ÀµÄ½ø³ÌÔÚÌØÈ¨×´Ì¬ÏÂÔËÐУ¬ËûÃÇͨ¹ýÏûÏ¢´«µÝ½øÐÐͨѶ¡£ÔÚµäÐÍÇé¿öÏ£¬Ã¿¸ö¸ÅÄîÄ£¿é¶¼ÓÐÒ»¸ö½ø³Ì¡£Òò´Ë£¬¼ÙÈçÔÚÉè¼ÆÖÐÓÐÒ»¸öϵͳµ÷ÓÃÄ£¿é£¬ÄÇô¾Í±ØÈ»ÓÐÒ»¸öÏàÓ¦µÄ½ø³ÌÀ´½ÓÊÕϵͳµ÷Ó㬲¢ºÍÄܹ»Ö´ÐÐϵͳµ÷ÓÃµÄÆäËû½ø³Ì£¨»òÄ£¿é£©Í¨Ñ¶ÒÔÍê³ÉËùÐèÈÎÎñ¡£
ÔÚÕâЩÉè¼ÆÖУ¬Î¢Äں˲¿·Ö¾³£Ö»µ«ÊÇÊǸöÏûϢת·¢Õ¾£ºµ±ÏµÍ³µ÷ÓÃÄ£¿éÒª¸øÎĵµÏµÍ³Ä£¿é·¢ËÍÏûϢʱ£¬Ï ......
Linux Device Drivers, 3rd Edition
2.3.1. User Space and Kernel Space
Äں˿ռäºÍÓû§¿Õ¼ä
Unix transfers execution from user space to kernel space whenever an application issues a system call or is suspended by a hardware interrupt. Kernel code executing a system call is working in the context of a process—it operates on behalf of the calling process and is able to access data in the process's address space. Code that handles interrupts, on the other hand, is asynchronous with respect to processes and is not related to any particular process.
ÕâÊǺܹؼüµÄ¶ÎÂ䣺
Unix¿ÉÒÔͨ¹ýϵͳµ÷ÓúÍÓ²¼þÖжÏʵÏÖ´ÓÓû§¿Õ¼äµ½Äں˿ռäµÄÇл»¡£¶ÔÓÚϵͳµ÷Óã¬Äں˴úÂëÔËÐÐÓÚµ÷Óýø³ÌµÄÉÏÏÂÎÄÖУ¬Äں˴úÂë¿ÉÒÔ·ÃÎʵ÷Óýø³ÌµÄÊý¾Ý¡£¶ÔÓÚÓ²¼þÖжϣ¬Äں˴úÂëÔËÐÐÓÚÖжÏÉÏÏÂÎÄ£¬¶ÀÁ¢ÓÚµ±Ç°±»´ò¶ÏµÄ½ø³Ì£¬ËùÒÔ´Ëʱ²»ÄÜ·ÃÎʱ»Öжϵĵ±Ç°½ø³Ì¿Õ¼äµÄÊý¾Ý¡£
´ÓÓû§¿Õ¼äÇл»µ½Äں˿ռäʱҪʹÓÃÄں˿ռä¶ÑÕ»,linuxÄں˿ռä¶ÑÕ»<8k, дÄں˳ÌÐòÒªÏ൱עÒâÕ»µÄʹÓá£
µ±ÏµÍ³´ÓÄں˿ռ䷵»Ø»òÕß´ÓÖжÏÉÏÏÂÎÄÖзµ»ØÓû§¿Õ¼äʱ£¬Èç¹ûÓÐÖØÐµ÷¶ÈÐ ......
µ¼ÑÔ£º±¾Æª×÷ΪÀíÂÛ»ù´¡£¬½«ÏòÎÒÃǽ²ÊöTCP/IPµÄ»ù±¾ÔÀíÒÔ¼°ÖØÒªµÄÐÒéϸ½Ú£¬²¢ÔÚ´Ë»ù´¡ÉϽéÉÜÁËTCP/IPÔÚLINUXÉϵÄʵÏÖ¡£
OSI²Î¿¼Ä£Ðͼ°TCP/IP²Î¿¼Ä£ÐÍ
OSIÄ£ÐÍ£¨open system interconnection reference model£©ÊÇ»ùÓÚ¹ú¼Ê±ê×¼»¯×éÖ¯£¨ISO£©µÄ½¨Òé¶ø·¢Õ¹ÆðÀ´µÄ£¬Ëü·ÖΪÈçͼ3-1ËùʾµÄÆß²ã¡£µ±ÎÀÐǺÍÎÞÏßÍøÂç³öÏÖÒÔºó£¬ÏÖÓеÄÐÒéÔÚºÍÕâÐ©ÍøÂ绥ÁªÊ±³öÏÖÁËÎÊÌ⣬ËùÒÔÐèÒªÒ»ÖÖеIJο¼Ìåϵ½á¹¹£¬ÄÜÎÞ·ìµØÁ¬½Ó¶à¸öÍøÂç¡£Õâ¸öÌåϵ½á¹¹¾ÍÊÇTCP/IP²Î¿¼Ä£ÐÍ¡£
TCP ÐÒé
ÒòÌØÍøÔÚ´«Êä²ãÓÐÁ½ÖÖÖ÷ÒªµÄÐÒ飺һÖÖÊÇÃæÏòÁ¬½ÓµÄÐÒ飬һÖÖÊÇÎÞÁ¬½ÓµÄÐÒé¡£´«Êä¿ØÖÆÐÒéTCPÊÇ(transmission control protocol)רÃÅÓÃÓÚÔÚ²»¿É¿¿µÄÒòÌØÍøÉÏÌṩ¿É¿¿µÄ¡¢¶Ë¶Ô¶ËµÄ×Ö½ÚÁ÷ͨÐŵÄÐÒ顣ͨ¹ýÔÚ·¢ËÍ·½ºÍ½ÓÊÕ·½·Ö±ð´´½¨Ò»¸ö³ÆÎªÌ×½Ó×ÖµÄͨÐŶ˿ھͿÉÒÔ»ñµÃTCP·þÎñ¡£ËùÓеÄTCP Á¬½Ó¾ùÊÇȫ˫¹¤µÄºÍµãµ½µãµÄ¡£
·¢ËͺͽÓÊÕ·½TCPʵÌåÒÔÊý¾Ý±¨µÄÐÎʽ½»»»Êý¾Ý¡£Ò»¸öÊý¾Ý±¨°üº¬Ò»¸ö¹Ì¶¨µÄ20×Ö½ÚµÄÍ·¡¢Ò»¸ö¿ÉÑ¡²¿·ÖÒÔ¼°0»ò¶à×Ö½ÚµÄÊý¾Ý¡£¶ÔÊý¾Ý±¨µÄ´óСÓÐÁ½¸öÏÞÖÆÌõ¼þ£ºÊ×ÏÈ£¬Ã¿¸öÊý¾Ý±¨£¨°üÀ¨TCPÍ·ÔÚÄÚ£©±ØÐëÊʺÏIPµÄÔØºÉÄÜÁ¦£¬²»Äܳ¬¹ý65535×Ö½Ú£»Æä´Î£¬Ã¿¸öÍøÂç¶¼´æÔÚ×î´ó´«Êäµ¥ÔªMTU£¨maximum transfer ......
ת×Ôhttp://blog.chinaunix.net/u3/110321/showart.php?id=2159791
²é¿´ Linux Äں˷Óɱí
ʹÓÃÏÂÃæµÄ route ÃüÁî¿ÉÒԲ鿴 Linux Äں˷ÓÉ±í¡£
# route
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
169.254.0.0 * 255.255.0.0 U 0 0 0 eth0
default 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
route ÃüÁîµÄÊä³öÏî˵Ã÷
Êä³öÏî ˵Ã÷
Destination
Ä¿±êÍø¶Î»òÕßÖ÷»ú
Gateway
Íø¹ØµØÖ·£¬”*” ±íʾĿ±êÊDZ¾Ö÷»úËùÊôµÄÍøÂ磬²»ÐèҪ·ÓÉ
Genmask
ÍøÂçÑÚÂë
Flags
±ê¼Ç¡£Ò»Ð©¿ÉÄܵıê¼ÇÈçÏ£º
U — ·ÓÉÊǻµÄ
H — Ä¿±êÊÇÒ»¸öÖ÷»ú
G — ·ÓÉÖ¸ÏòÍø¹Ø
R — »Ö¸´¶¯Ì¬Â·ÓɲúÉúµÄ±íÏî
D — ÓÉ·Óɵĺǫ́³ÌÐò¶¯Ì¬µØ°²×°
M — ÓÉ·Óɵĺǫ́³ÌÐòÐÞ¸Ä
! — ¾Ü¾øÂ·ÓÉ
Metric
·ÓɾàÀ룬µ½´ïÖ¸¶¨ÍøÂçËùÐèµÄÖÐתÊý£¨linux ÄÚºËÖÐûÓÐʹÓã©
......
¡¡
¡¡¡¡1. ʹÓÃ%TYPE
¡¡¡¡ÔÚÐí¶àÇé¿öÏ£¬PL/SQL±äÁ¿¿ÉÒÔÓÃÀ´´æ´¢ÔÚÊý¾Ý¿â±íÖеÄÊý¾Ý¡£ÔÚÕâÖÖÇé¿öÏ£¬±äÁ¿Ó¦¸ÃÓµÓÐÓë±íÁÐÏàͬµÄÀàÐÍ¡£ÀýÈ磬students±íµÄfirst_nameÁеÄÀàÐÍΪVARCHAR2(20),ÎÒÃÇ¿ÉÒÔ°´ÕÕÏÂÊö·½Ê½ÉùÃ÷Ò»¸ö±äÁ¿£º
¡¡¡¡DECLARE
¡¡¡¡ v_FirstName VARCHAR2(20);
¡¡
¡¡µ«ÊÇÈç¹ûfirst_nameÁе͍Òå¸Ä±äÁ˻ᷢÉúʲô£¨±ÈÈç˵±í¸Ä±äÁË£¬first_nameÏÖÔÚµÄÀàÐͱäΪVARCHAR2(25)£©£¿ÄǾͻᵼÖÂ
ËùÓÐʹÓÃÕâ¸öÁеÄPL/SQL´úÂë¶¼±ØÐë½øÐÐÐ޸ġ£Èç¹ûÄãÓкܶàµÄPL/SQL´úÂ룬ÕâÖÖ´¦Àí¿ÉÄÜÊÇÊ®·ÖºÄʱºÍÈÝÒ׳ö´íµÄ¡£
¡¡¡¡Õâʱ£¬Äã¿ÉÒÔʹÓÔ%TYPE”ÊôÐÔ¶ø²»Êǽ«±äÁ¿ÀàÐÍÓ²ÐÔ±àÂë¡£
¡¡¡¡ÀýÈ磺
¡¡¡¡DECLARE
¡¡¡¡ v_FirstName students.first_name%TYPE;
¡¡¡¡Í¨¹ýʹÓÃ%TYPE,v_FirstName±äÁ¿½«Í¬students±íµÄfirst_nameÁеÄÀàÐÍÏàͬ£¨¿ÉÒÔÀí½âΪ½«Á½Õ߰ÆðÀ´£©¡£
¡¡¡¡Ã¿´ÎÄäÃû¿é»òÃüÃû¿éÔËÐиÃÓï¾ä¿éÒÔ¼°±àÒë´æ´¢¶ÔÏ󣨹ý³Ì¡¢º¯Êý¡¢°ü¡¢¶ÔÏóÀàºÍ´¥·¢Æ÷£©Ê±£¬¾Í»áÈ·¶¨¸ÃÀàÐÍ¡£
¡¡¡¡Ê¹ÓÃ%TYPEÊǷdz£ºÃµÄ±à³Ì·ç¸ñ£¬ÒòΪËüʹµÃPL/SQL¸ü¼ÓÁé»î£¬¸ü¼ÓÊÊÓ¦ÓÚ¶ÔÊý¾Ý¿â¶¨ÒåµÄ¸üС£
¡¡¡¡2. ʹÓÃ%ROWTYPE
¡¡¡¡2.1 PL/SQL¼Ç¼
¡¡¡¡PL/SQL¼Ç¼ÀàÐÍÀàËÆÓÚCÓï ......
¡¡
¡¡¡¡1. ʹÓÃ%TYPE
¡¡¡¡ÔÚÐí¶àÇé¿öÏ£¬PL/SQL±äÁ¿¿ÉÒÔÓÃÀ´´æ´¢ÔÚÊý¾Ý¿â±íÖеÄÊý¾Ý¡£ÔÚÕâÖÖÇé¿öÏ£¬±äÁ¿Ó¦¸ÃÓµÓÐÓë±íÁÐÏàͬµÄÀàÐÍ¡£ÀýÈ磬students±íµÄfirst_nameÁеÄÀàÐÍΪVARCHAR2(20),ÎÒÃÇ¿ÉÒÔ°´ÕÕÏÂÊö·½Ê½ÉùÃ÷Ò»¸ö±äÁ¿£º
¡¡¡¡DECLARE
¡¡¡¡ v_FirstName VARCHAR2(20);
¡¡
¡¡µ«ÊÇÈç¹ûfirst_nameÁе͍Òå¸Ä±äÁ˻ᷢÉúʲô£¨±ÈÈç˵±í¸Ä±äÁË£¬first_nameÏÖÔÚµÄÀàÐͱäΪVARCHAR2(25)£©£¿ÄǾͻᵼÖÂ
ËùÓÐʹÓÃÕâ¸öÁеÄPL/SQL´úÂë¶¼±ØÐë½øÐÐÐ޸ġ£Èç¹ûÄãÓкܶàµÄPL/SQL´úÂ룬ÕâÖÖ´¦Àí¿ÉÄÜÊÇÊ®·ÖºÄʱºÍÈÝÒ׳ö´íµÄ¡£
¡¡¡¡Õâʱ£¬Äã¿ÉÒÔʹÓÔ%TYPE”ÊôÐÔ¶ø²»Êǽ«±äÁ¿ÀàÐÍÓ²ÐÔ±àÂë¡£
¡¡¡¡ÀýÈ磺
¡¡¡¡DECLARE
¡¡¡¡ v_FirstName students.first_name%TYPE;
¡¡¡¡Í¨¹ýʹÓÃ%TYPE,v_FirstName±äÁ¿½«Í¬students±íµÄfirst_nameÁеÄÀàÐÍÏàͬ£¨¿ÉÒÔÀí½âΪ½«Á½Õ߰ÆðÀ´£©¡£
¡¡¡¡Ã¿´ÎÄäÃû¿é»òÃüÃû¿éÔËÐиÃÓï¾ä¿éÒÔ¼°±àÒë´æ´¢¶ÔÏ󣨹ý³Ì¡¢º¯Êý¡¢°ü¡¢¶ÔÏóÀàºÍ´¥·¢Æ÷£©Ê±£¬¾Í»áÈ·¶¨¸ÃÀàÐÍ¡£
¡¡¡¡Ê¹ÓÃ%TYPEÊǷdz£ºÃµÄ±à³Ì·ç¸ñ£¬ÒòΪËüʹµÃPL/SQL¸ü¼ÓÁé»î£¬¸ü¼ÓÊÊÓ¦ÓÚ¶ÔÊý¾Ý¿â¶¨ÒåµÄ¸üС£
¡¡¡¡2. ʹÓÃ%ROWTYPE
¡¡¡¡2.1 PL/SQL¼Ç¼
¡¡¡¡PL/SQL¼Ç¼ÀàÐÍÀàËÆÓÚCÓï ......