Linux 2.6 ×Ö·ûÉ豸Çý¶¯³ÌÐò
¡ð
¡¢ËµÃ÷
±Ê¼ÇÊÊÓÃÓÚ
Linux
µÄ
2.6.10
ÒÔºóµÄÄںˡ£
±Ê¼ÇÒÔ
Linux
Device
Driver3
ÌṩµÄ
scull
³ÌÐò
(scull
Ŀ¼ÖеÄ
main.c
ºÍ
scull.h)
Ϊ¼Ç¼Ö÷Ïߣ¬²¢ÒÔ¸ÃÇý¶¯³ÌÐòÖеĸ÷ÖÖϵͳµ÷Óúͺ¯Êýµ÷ÓÃÁ÷³ÌΪ¼Ç
¼˳Ðò¡£±ÈÈ磬
module_init( )
ºÍ
module_exit(
)
ΪÏà¶ÔÓ¦µÄÒ»¶Ôϵͳµ÷Óã¬Ò»°ãÊé¼®Öж¼»á·ÅÔÚÒ»ÆðÌÖÂÛ£¬µ«ÊDZ¾±Ê¼ÇÈ´²»»áÕâÑù£¬¶øÊÇÔÚÐèÒªµ÷ÓõÄʱºò²Å»áÉæ¼°£¬Òò´Ë
module_init(
)
»á·ÅÔڱʼǿªÊ¼Ê±£¬Ò²¾ÍÊǸռÓÔØ
module
ʱÌÖÂÛ£¬¶ø
module_exit( )
Ôò»á·ÅÔڱʼǽáÊøÇ°£¬Ò²¾ÍÊÇÒªÐ¶ÔØ
module
ʱÔÙ¼ÓÒÔÌÖÂÛ¡£
¸Ã±Ê¼ÇµÄµÄÄ¿µÄÊÇΪÁ˶Ô
Linux Device Drvier3
ÖÐÌáµ½µÄ¸÷¸ö֪ʶµã×÷Ò»ÏÂÕûÀí£¬ÀíÇåÒ»ÏÂÍ·Ð÷£¬´Ó¶øÄÜÈÃÎÒ¶Ô
Linux
Çý¶¯³ÌÐò¼ÓÉîÕûÌå»òÕßÈ«¾ÖÉϵÄÀí½â¡£
×¢£º¸öÈËÀí½â£¬ÓÐÎóÄÑÃ⣡
*******************************************
Çý¶¯³ÌÐò
module
µÄ¹¤×÷Á÷³ÌÖ÷Òª·ÖΪËĸö²¿·Ö£º
1
¡¢
ÓÃ
Linux
ÌṩµÄÃüÁî¼ÓÔØÇý¶¯
module
2
¡¢
Çý¶¯
module
µÄ³õʼ»¯£¨³õʼ»¯½áÊøºó¼´½øÈë
“
DZ·ü
”
״̬£¬Ö±µ½ÓÐϵͳµ÷Óã©
3
¡¢
µ±²Ù×÷É豸ʱ£¬¼´ÓÐϵͳµ÷ÓÃʱ£¬µ÷ÓÃÇý¶¯
module
ÌṩµÄ¸÷¸ö·þÎñº¯Êý
4
¡¢
Ð¶ÔØÇý¶¯
module
Ò»¡¢
Çý¶¯³ÌÐòµÄ¼ÓÔØ
Linux
Çý¶¯³ÌÐò·ÖΪÁ½ÖÖÐÎʽ£ºÒ»ÖÖÊÇÖ±½Ó±àÒë½øÄںˣ¬ÁíÒ»ÖÖÊDZàÒë³É
module
ÐÎʽ£¬È»ºóÔÚÐèÒª¸ÃÇý¶¯
module
ʱÊÖ¶¯¼ÓÔØ¡£¶ÔÓÚǰÕߣ¬»¹Óдýѧϰ¡£
Module
ÐÎʽµÄÇý¶¯£¬
Linux
ÌṩÁËÁ½¸öÃüÁîÓÃÀ´¼ÓÔØ£º
modprobe
ºÍ
insmod
¡£
Æä
ÖÐ
modprobe
¿ÉÒÔ½â¾öÇý¶¯
module
µÄÒÀÀµÐÔ£¬¼´¼ÙÈçÕý¼ÓÔØµÄÇý¶¯
module
ÈôÒýÓÃÁËÆäËû
module
ÌṩµÄÄں˷ûºÅ»òÕ߯äËû×ÊÔ´£¬Ôò
modprobe
¾Í»á×Ô¶¯¼ÓÔØÄÇЩ
module
£¬²»¹ý£¬Ê¹ÓÃ
modprobe
ʱ£¬±ØÐë°ÑÒª¼ÓÔØµÄÇý¶¯
module
·ÅÔÚµ±Ç°Ä£¿éËÑË÷·¾¶ÖС£¶ø
insmod
ÃüÁî²»»á¿¼ÂÇÇý¶¯
module
µÄÒÀÀµÐÔ£¬µ«ÊÇËüÈ´¿ÉÒÔ¼ÓÔØÈÎÒâĿ¼ÏµÄÇý¶¯
module
¡£
Ò»°ãÀ´Ëµ£¬ÔÚÇý¶¯¿ª·¢½×¶Î£¬Ê¹ÓÃ
/sbin/insmod
±È½Ï·½±ã£¬ÒòΪ²»Óý«
module
·ÅÈ뵱ǰ
module
ËÑË÷·¾¶ÖС£
Ò»µ©Ê¹ÓÃ
insmod
¼ÓÔØÄ£¿é£¬Ôò
Linux
Äں˾ͻáµ÷ÓÃ
module_init(scull_init_module)
ÌØÊâºê£¬ÆäÖÐ
scull_init_module
ÊÇÇý¶¯³õʼ»¯º¯Êý£¬¿É×Ô¶¨ÒåÃû³Æ¡£
ÔÚÓÃ
insmod
¼ÓÔØ
module
ʱ£¬»¹¿ÉÒÔ¸ø
module
Ìṩģ¿é²ÎÊý£¬µ«ÊÇÕâÐèÒªÔÚÇý¶¯Ô´´úÂëÖмÓÈ뼸ÌõÓï¾ä£¬ÈÃÄ£¿é
Ïà¹ØÎĵµ£º
http://www.ixpub.net/619016.html
tarÃüÁî
[root@linux ~]# tar [-cxtzjvfpPN] Îļþ
ÓëĿ¼ ....
²ÎÊý£º
-c £º½¨Á¢Ò»¸öѹËõÎļþµÄ²ÎÊýÖ¸Áî(create µÄÒâ˼)£»
-x £º½â¿ªÒ»¸öѹËõÎļþµÄ²ÎÊýÖ¸Á
-t £º²é¿´ tarfile ÀïÃæµÄÎļþ£¡
ÌØ±ð×¢Ò⣬ÔÚ²ÎÊýµÄÏ´ïÖУ¬ c/x/t ½öÄÜ´æÔÚÒ»¸ö£¡²»¿Éͬʱ´æÔÚ£¡
ÒòΪ²»¿ÉÄÜÍ¬Ê ......
ls -l|grep ^d ----Áгöµ±Ç°Ä¿Â¼ÏµÄÎļþ¼Ð
ls -l|grep ^d|grep "tmp" ----Áгöµ±Ç°Ä¿Â¼ÏÂÃ÷×Óº¬ÓÐ"tmp"µÄÎļþ¼Ð
for dir in `ls -l ~/dxy/|grep ^d | awk '{print $9}'` ---- awk '{print $9}' ,Ö»print Îļþ¼ÐµÄÃû×Ö
do
echo "==== $dir"
cd ~/dxy;cd $dir/
t=`ls -l|grep ^d|grep " ......
------------------------------------------
±¾ÎÄϵ±¾Õ¾Ô´´,»¶Ó×ªÔØ!
×ªÔØÇë×¢Ã÷³ö´¦:http://ericxiao.cublog.cn/
------------------------------------------
Ò»£ºÇ°ÑÔ
ÔÚ¼üÅÌÇý¶¯´úÂë·ÖÎöµÄ±Ê¼ÇÖУ¬½Ó´¥µ½ÁËinput×Óϵͳ.¼üÅÌÇý¶¯£¬¼üÅÌÇý¶¯½«¼ì²âµ½µÄËùÓа´¼ü¶¼Éϱ¨¸øÁËinput×Óϵ ......
°²×°£¬Éý¼¶ºÍÐ¶ÔØÓ¦ÓÃÈí¼þÊÇÓ°ÏìÓû§¶Ô²Ù×÷ϵͳÆÀ¼ÛµÄ¾ö¶¨ÐÔÒòËØÖ®Ò»¡£¶ÔÓÚÈÕ½¥Á÷ÐÐµÄ GNU/Linux ²Ù×÷ϵͳ£¬ÓµÓмò½àÇ¿´óµÄÈí¼þ°ü¹ÜÀí»úÖÆ¹¦²»¿Éû¡£±¾ÎÄ´Ó»ù±¾µÄ rpm/dpkg ÃüÁîÐгö·¢£¬ÒÔ RHEL ºÍ UBUNTU ΪÀý£¬½éÉܵäÐÍ Linux ϵͳÖÐÓ¦ÓÃÈí¼þµÄ¹ÜÀíºÍʹÓá£
RPM/DPKG Á½´óÕóÓª¼ò½é
ÔÚ GNU/Linux( ÒÔϼò³Æ Linux) ²Ù×÷Ï ......
Ò»¡¢Ê²Ã´ÊÇinit
¡¡¡¡initÊÇLinuxϵͳ²Ù×÷Öв»¿ÉȱÉٵijÌÐòÖ®Ò»¡£ ÊÇÒ»¸öÓÉÄÚºËÆô¶¯µÄÓû§¼¶½ø³Ì¡£
¡¡¡¡ÄÚºËÆô¶¯£¨ÒѾ±»ÔØÈëÄڴ棬¿ªÊ¼ÔËÐУ¬²¢Òѳõʼ»¯ËùÓеÄÉ豸Çý¶¯³ÌÐòºÍÊý¾Ý½á¹¹µÈ£©Ö®ºó£¬¾Íͨ¹ýÆô¶¯Ò»¸öÓû§¼¶³ÌÐòinitµÄ·½Ê½À´Æô¶¯ÆäËûÓû§¼¶µÄ½ø³Ì»ò·þÎñ¡£ËùÒÔ£¬initʼÖÕÊǵÚÒ»¸ö½ø³Ì£¨ÆäPIDʼÖÕΪ1£©¡£
¡¡¡¡ÄÚºË ......