linuxÉ豸Çý¶¯ IO Port
1. I/O Port
¡¡¡¡ºÍÓ²¼þ
´ò½»µÀÀë²»¿ªI/O Port
£¬ÀϵÄ
ISA
É豸¾³£ÊÇÕ¼ÓÃʵ¼ÊµÄ
I/O
¶Ë¿Ú£¬ÔÚ
linux
Ï£¬²Ù×÷
ϵͳûÓжÔ
I/O
¿ÚÆÁ±Î£¬Ò²¾ÍÊÇ˵£¬ÈκÎÇý¶¯³ÌÐò¶¼¿É¶ÔÈÎÒâµÄ
I/O
¿Ú²Ù×÷£¬ÕâÑù
¾ÍºÜÈÝÒ×ÒýÆð»ìÂÒ¡£Ã¿¸öÇý¶¯³ÌÐòÓ¦¸Ã×Ô¼º±ÜÃâÎóÓö˿ڡ£
¡¡¡¡ÓÐÁ½¸ö
ÖØÒªµÄkernel
º¯Êý¿ÉÒÔ±£Ö¤Çý¶¯³ÌÐò×öµ½ÕâÒ»µã¡£
¡¡¡¡1
£©
check_region(int io_port
£¬
int off_set)
¡¡¡¡Õâ¸öº¯
Êý²ì¿´ÏµÍ³µÄI/O
±í£¬¿´ÊÇ·ñÓбðµÄÇý¶¯³ÌÐòÕ¼ÓÃijһ¶Î
I/O
¿Ú¡£
¡¡¡¡²ÎÊý1
£º
I/O
¶Ë¿ÚµÄ»ùµØ
Ö·£¬
¡¡¡¡²ÎÊý2
£º
I/O
¶Ë¿ÚÕ¼ÓõÄ
·¶Î§¡£
¡¡¡¡·µ»Ø
Öµ£º0
û
ÓÐÕ¼Ó㬠·Ç
0
£¬ÒѾ±»Õ¼Óá£
¡¡¡¡2
£©
request_region(int io_port
£¬
int off_set
£¬
char *devname)
¡¡¡¡Èç¹ûÕâ
¶ÎI/O
¶Ë
¿ÚûÓб»Õ¼Óã¬ÔÚÎÒÃǵÄÇý¶¯³ÌÐòÖоͿÉÒÔʹÓÃËü¡£ÔÚʹÓÃ֮ǰ£¬±ØÐëÏòϵͳµÇ¼Ç£¬ÒÔ·ÀÖ¹±»ÆäËû³ÌÐòÕ¼ÓᣵǼǺó£¬ÔÚ
/proc/ioports
ÎļþÖпÉÒÔ¿´µ½ÄãµÇ¼ÇµÄ
I/O
¿Ú¡£
¡¡¡¡²ÎÊý1
£º
io
¶Ë¿ÚµÄ»ùµØ
Ö·¡£
¡¡¡¡²ÎÊý2
£º
io
¶Ë¿ÚÕ¼Óõķ¶
Χ¡£
¡¡¡¡²ÎÊý3
£ºÊ¹ÓÃÕâ¶Î
io
µØÖ·µÄÉ豸
Ãû¡£
¡¡¡¡ÔÚ¶ÔI/O
¿ÚµÇ¼Çºó£¬
¾Í¿ÉÒÔ·ÅÐĵØÓÃ
inb()
£¬
outb()
Ö®ÀàµÄº¯À´·ÃÎÊÁË¡£
ÔÚһЩpci
É豸ÖУ¬
I/O
¶Ë¿Ú±»Ó³Éäµ½Ò»¶ÎÄÚ´æÖÐÈ¥£¬Òª·ÃÎÊÕâЩ¶Ë¿Ú¾ÍÏ൱ÓÚ·ÃÎÊÒ»¶ÎÄÚ´æ¡£¾³£ÐԵģ¬ÎÒÃÇÒª»ñµÃÒ»¿éÄÚ´æµÄ
ÎïÀíµØÖ·¡£
¡¡¡¡2
.ÄÚ´æ²Ù×÷
¡¡¡¡ÔÚÉ豸Çý¶¯³ÌÐòÖж¯Ì¬¿ª
±ÙÄڴ棬²»ÊÇÓÃmalloc
£¬¶øÊÇ
kmalloc
£¬»òÕßÓÃ
get_free_pages
Ö±½ÓÉêÇëÒ³¡£ÊÍ·ÅÄÚ´æÓõÄÊÇ
kfree
£¬»ò
free_pages
¡£ Çë
×¢Ò⣬
kmalloc
µÈº¯Êý·µ»ØµÄÊÇÎïÀíµØÖ·£¡
¡¡¡¡×¢
Ò⣬kmalloc×î´óÖ»ÄÜ¿ª±Ù
128k-16
£¬
16
¸ö×Ö½ÚÊDZ»Ò³
ÃèÊö·û½á¹¹Õ¼ÓÃÁË¡£
¡¡¡¡ÄÚ´æÓ³
ÉäµÄI/O
¿Ú£¬¼Ä´æÆ÷»òÕßÊÇÓ²¼þÉ豸µÄ
RAM(
ÈçÏÔ´æ
)
Ò»°ãÕ¼ÓÃ
F0000000
ÒÔÉϵĵØÖ·¿Õ¼ä¡£ÔÚÇý¶¯³ÌÐòÖв»ÄÜÖ±½Ó·ÃÎÊ£¬ÒªÍ¨¹ý
kernel
º¯Êý
vremap
»ñµÃ
ÖØÐÂÓ³ÉäÒÔºóµÄµØÖ·¡£
¡¡¡¡ÁíÍ⣬
ºÜ¶àÓ²¼þÐèÒªÒ»¿é±È½Ï´óµÄÁ¬ÐøÄÚ´æÓÃ×÷DMA
´«ËÍ¡£Õâ¿é
³ÌÐòÐèҪһֱפÁôÔÚÄڴ棬²»Äܱ»½»»»µ½ÎļþÖÐÈ¥¡£µ«ÊÇkmalloc
×î¶à
Ö»ÄÜ¿ª±Ù
128k
µÄÄÚ´æ¡£
¡¡¡¡Õâ¿
Ïà¹ØÎĵµ£º
µÚÒ»¸ö£º DSL Linux
Damn Small LinuxÊÇÒ»Ì×»ùÓÚÒµÎñ¿¨£¨50M×Ö½Ú£©¿ÉÆô¶¯¹âÅ̵ÄLinux·¢ÐС£¾¡¹ÜËüµÄ¸öÍ·Èç´Ë֮С£¬ËüŬÁ¦³ÉΪһ·Ý¿ÉÓò¢ÇÒÒ×ÓõÄ×ÀÃæ¡£Damn Small LinuxµÄ×ÀÃ漸ºõÊÇÍêÕûµÄÒ»Ì×£¬°üÀ¨xmms£¨Ö§³Ömp3ºÍmpeg£©¡¢FTP¿Í»§¶Ë¡¢»ùÓÚlinksµÄwebä¯ÀÀÆ÷¡¢µç×ÓÖƱíÈí¼þ¡¢µç×ÓÓʼþ³ÌÐò¡¢ Ó¢Óïƴд¼ì²é¡¢×Ö´¦ÀíÆ÷¡¢Èý¸ö± ......
Code maturity level options
´úÂë³ÉÊì¶ÈÑ¡Ïî
Prompt for development and/or incomplete code/drivers ÏÔʾÉÐÔÚ¿ª·¢ÖлòÉÐδÍê³ÉµÄ´úÂëÓëÇý¶¯.³ý·ÇÄãÊDzâÊÔÈËÔ±»òÕß¿ª·¢Õß,·ñÔòÇëÎðÑ¡Ôñ
General setup
³£¹æÉèÖÃ
Local version - append to kernel release ÔÚÄں˰汾ºóÃæ¼ÓÉÏ×Ô¶¨ÒåµÄ°æ±¾×Ö·û´®(СÓÚ64×Ö·û),¿ÉÒÔÓ ......
ÕâÒ»²¿·ÖµÄÌá³öÊÇΪÁË·Àֹʧ¿ØµÄ½ø³ÌÆÆ»µÏµÍ³µÄÐÔÄÜ
nuixºÍLinux¸ú×Ù½ø³ÌʹÓõĴ󲿷Ö×ÊÔ´£¬ÔÊÐíÓû§ºÍϵͳ¹ÜÀíԱʹÓöԽø³ÌµÄ×ÊÔ´ÏÞÖÆ
ÉèÖõÄÏÞÖÆÓÐÁ½ÖÖ£º Ó²ÏÞÖƺÍÈíÏÞÖÆ
Ó²ÏÞÖÆÊÇ¿ÉÒÔÔÚÈκÎʱºòÈκνø³ÌÖÐÉèÖà µ«Ó²ÏÞÖÆÖ»ÄÜÓɳ¬¼¶Óû§ÌáÆð
ÈíÏÞÖÆÊÇÄÚºËʵ¼ÊÖ´ÐеÄÏÞÖÆ£¬Èκνø³Ì¶¼¿ÉÒÔ½«ÈíÏÞÖÆÉèÖÃΪÈÎÒ ......
cat ÃüÁî
ʹÓ÷½Ê½£ºcat [-AbeEnstTuv] [--help] [--version] fileName
˵Ã÷£º°Ñµµ°¸´®Á¬
½Óºó´«µ½»ù±¾Êä³ö£¨Ó©Ä»»ò¼Ó > fileName µ½ÁíÒ»¸öµµ°¸£©
²ÎÊý£º
-n »ò --number ÓÉ 1
¿ªÊ¼¶ÔËùÓÐÊä³öµÄÐÐÊý±àºÅ
-b »ò --number-nonblank ºÍ -n ÏàËÆ£¬Ö»²»¹ý¶ÔÓÚ¿Õ°×Ðв»±àºÅ
-s »ò
--squeeze-blank µ±Óöµ½ÓÐÁ¬Ð ......