LinuxÄÚ´æ¿Õ¼ä·ÃÎÊÔý¼Ç(ת)
http://blog.chinaunix.net/u/25764/showart_1882931.html
Òý£º±¾À´´òË㽫Õⲿ·ÖÄÚÈݲ¢Èëµ½¡¶The Linux Kernel Module Programming Guide±Ê¼Ç¡·ÖÐÈ¥£¬µ«ÊÇÏëÏÂÄÚ´æ¿Õ¼ä¹ÜÀí·ÃÎÊÏ൱»ù´¡ÖØÒª¶øÇÒÄÚÈÝÁ¿½Ï´ó£¬ËùÒԾ͵¥¶À¼Ç¼¡£ÔÚ¹ýÈ¥Ò»ÄêÀÓÉÓڳɹ¦¿ª·¢¹ý¼¸¸öÆÄΪ¸´ÔÓµÄÉ豸Çý¶¯£¬¾Í×ÔÒÔÎªÕÆÎÕÁËÇý¶¯¿ª·¢µÄ·½·¨ºÍ¼¼ÇÉ£¬ÊÂʵÉÏÔÚ»ù´¡ÉÏ£¬ÎÒÈ´ÓÐ×ÅÖÂÃüµÄäµã¡£Õâ¸öäµã¾ÍÊÇLinuxµÄÄÚ´æ¹ÜÀí£¬ÆäʵºÜ¾Ã֮ǰ£¬¾ÍÒ»Ö±¾Í¸ã²»¶®MMU¡¢Page¡¢Section¡¢Ò³±íµÈ¸ÅÄÄÇʱÒÔΪÕâЩ²¢²»ÖØÒª¡£ÏÖÔÚ¿´À´ÖÕÓÚ³¢µ½¿à¹ûÁË£¬ÔÚ¿ª·¢Virtual FramebufferµÄʱºò£¬¾ÍÔÚmmapÕâ¸ö½Ó¿ÚʵÏÖÉÏ¿¨×¡ÁË¡£Ë×»°Ëù˵µÄÊéµ½ÓÃʱ·½ºÜÉÙ£¬ÊÇÖÁÀíÃûÑÔ°¡¡£
×¢£ºÔÚx86¼Ü¹¹ÉÏ£¬»á·ÖΪÄÚ´æ¿Õ¼äºÍI/O¿Õ¼ä£¬µ«ÊÇÔÚ´ó¶àÊýǶÈëʽ¿ØÖÆÆ÷ÈçARM¡¢PowerPC²¢²»ÌṩI/O¿Õ¼ä¡£ÎÒÃæÏòµÄÖ÷ÒªÊÇǶÈëʽ·½ÃæµÄÇý¶¯¿ª·¢£¬ËùÒÔÕâÀï²¢²»ÌÖÂÛI/O¿Õ¼äµÄÄÚÈÝ¡£±¾ÎĵÄÄÚÈÝ´ó¶àÊýÊÇժ¼¡¶LinuxÉ豸Çý¶¯¿ª·¢Ïê½â¡·µÄµÚʮһÕ£¬²¢½áºÏÎÒÔÚ¿ª·¢¹ý³ÌµÄһЩÐĵÃÌå»á¡£
Ò»¡¢ÄÚ´æ¹ÜÀíµ¥ÔªMMU
MMU¸¨Öú²Ù×÷ϵͳ½øÐÐÄÚ´æ¹ÜÀí¡¢ÌṩÐéÄâµØÖ·ºÍÎïÀíµØÖ·µÄÓ³Éä¡¢ÄÚ´æ·ÃÎÊȨÏÞ±£»¤ºÍCache»º´æ¿ØÖƵÈÓ²¼þÖ§³Ö£¬¿É¼û£¬Õ⽫ʹµÃLinux²Ù×÷ϵͳÄܵ¥¶ÀΪϵͳµÄÿ¸öÓû§·ÖÅä¶ÀÁ¢µÄÄÚ´æ¿Õ¼ä²¢±£Ö¤Óû§¿Õ¼ä²»ÄÜ·ÃÎÊÄں˿ռäµÄµØÖ·£¬Îª²Ù×÷ϵͳµÄÐéÄâÄÚ´æ¹ÜÀíÄ£¿éÌṩÁËÓ²¼þ»ù´¡¡£
ÔÚs3c2410µÄviviÕâ¸öbootloaderÖУ¬½¨Á¢ÁËÒ»¸ö4GBÎïÀíµØÖ·ÓëÐéÄâµØÖ·Ò»Ò»Ó³ÉäµÄÒ»¼¶Ò³±í£¬ÎÒÃÇ¿ÉÒÔͨ¹ýº¯Êýmem_mapping_linear()À´Ì½Ñ°Ò»ÏÂÆä´´½¨¹ý³Ì
static inline void mem_mapping_linear(void)
{
unsigned long pageoffset, sectionNumber;
/*4GBÐéÄâµØÖ·Ó³Éäµ½ÏàÓ¦µÄÎïÀíµØÖ·ÉÏ£¬¾ù²»ÄÜ»º´æ*/
for (sectionNumber = 0; sectionNumber < 4096; sectionNumber++)
{
pageoffset = (sectionNumber << 20);
*(mmu_tlb_base + (pageoffset >> 20)) = pageoffset | MMU_SECDESC;
//mmu_tlb_baseΪ´æ·ÅÒ³±íµÄÊ×µØÖ·,tlbÊÇת»»ÅÔ·»º´æ£¬ÊÇת»»±íµÄCache
}
/*ʹÄÜDRAMµÄÇøÓò¿É»º´æ*/
 
Ïà¹ØÎĵµ£º
Æô¶¯mysql: /etc/rc.d/init.d/mysql start
ÐÞ¸ÄÃÜÂë: ¸ñʽ£ºmysqladmin -uÓû§Ãû -p¾ÉÃÜÂë password ÐÂÃÜÂë
ʹÓÃÃÜÂëµÇ¼: mysql -u root -p
ÏÔʾÊý¾Ý¿â: show databases;
Ñ¡ÔñÊý¾Ý¿â: use Êý¾Ý¿âÃû;
ÏÔʾ±í: show tables;
ÏÔʾ±í½á¹¹: descibe ±íÃû;
Ô¶³ÌµÇ¼mysqlÐèÒª¿ªÆôÈ ......
LinuxÖÐtty¡¢pty¡¢ptsµÄ¸ÅÄîÇø±ð
»ù±¾¸ÅÄ
1> tty(ÖÕ¶ËÉ豸µÄͳ³Æ):
ttyÒ»´ÊÔ´ÓÚTeletypes£¬»òÕßteletypewriters£¬ÔÀ´Ö¸µÄÊǵ紫´ò×Ö»ú£¬ÊÇͨ¹ý´®ÐÐÏßÓôòÓ¡»ú¼üÅÌͨ¹ýÔĶÁºÍ·¢ËÍÐÅÏ¢µÄ¶«Î÷£¬ºóÀ´Õâ¶«Î÷±»¼üÅÌÓëÏÔʾÆ÷È¡´ú£¬ËùÒÔÏÖÔÚ½ÐÖն˱ȽϺÏÊÊ¡£
ÖÕ¶ËÊÇÒ»ÖÖ×Ö·ûÐÍÉ豸£¬ËüÓжàÖÖÀàÐÍ£¬Í¨³£Ê¹ÓÃttyÀ´¼ò³Æ¸÷ÖÖ ......
1. ×î³£ÓõÄÃüÁîÁбí
ÏÂÃæÁгöÊ®¸öÔÚʹÓÃlinux¹ý³ÌÖÐʹÓÃÆµÂÊ×î¸ßµÄÃüÁî¡£ÕâÀïÖ»×÷¼òµ¥½éÉÜ£¬¾ßÌåÓ÷¨Çë²Î¿¼ºóÃæÄÚÈÝ¡£
cat£¬ÏÔʾÎļþÄÚÈÝ¡£
cd£¬¸Ä±äĿ¼·¾¶¡£
cp£¬¸´ÖÆÎļþ¡£
find£¬²éÕÒÎļþ¡£
grep£¬ËÑË÷¡¢¹ýÂËÐÅÏ¢¡£
ls£¬ÁгöĿ¼ÐÅÏ¢¡£
more£¬·ÖÒ³ÏÔʾ¡£
rm£¬É¾³ýÎļþ»òĿ¼¡£
vi£¬µ÷ÓÃviÎı¾±à¼Æ÷ ......
¼Ù¶¨Äã»áCÓïÑÔ£¬¶øÇÒÃ÷°×CÓïÑÔÃæÏò¶ÔÏó±à³ÌµÄschme£¬¶Ô²Ù×÷ϵͳ£¨°üÀ¨µ÷¶È£¬ÄÚ´æ·ÖÅ䣬·ÖÒ³£¬Í¬²½£¬etc£©±È½ÏÁ˽⡣ÄÇôÄã¿ÉÒÔ°´ÕÕÈçÏÂ˳ÐòѧϰLinux Äںˡ£
1.¿´Linux Device DriverÕâ±¾Êé¡£ÕâÊÇΪÁËÈÃÄã¶®µÃ±àÒëÄÚºËÄ£¿éµÄ·½·¨¡£»¹ÓÐΪLinux¸÷ÖÖÉ豸ÁôÏÂһЩӡÏó¡£Í¬Ê±Ò»±é¿´ÊéÒ»±ß¿´Ä³Ð©É豸µÄÔ´´ú ......
ת×Ôhttp://hi.baidu.com/ln5336993/blog/item/9de4963e3dbad3e455e723c0.html
.tar
¡¡¡¡½â°ü£º tar xvf FileName.tar
¡¡¡¡´ò°ü£ºtar cvf FileName.tar DirName
¡¡¡¡£¨×¢£ºtarÊÇ´ò°ü£¬²»ÊÇѹËõ£¡£©
¡¡¡¡---------------------------------------------
¡¡¡¡.gz
¡¡¡¡½âѹ1£ºgunzip Fi ......