Linuxæ¯Unixæä½ç³»ç»çä¸ç§åç§,å¨Linuxä¸ç¼å驱å¨ç¨åºçåçå
ææ³å®å
¨ç±»ä¼¼äºå
¶ä»çUnixç³»ç»,ä½å®dosæwindowç¯å¢ä¸ç驱å¨ç¨åºæå¾å¤§ç
åºå«.å¨Linuxç¯å¢ä¸è®¾è®¡é©±å¨ç¨åº,ææ³ç®æ´,æä½æ¹ä¾¿,åè½ä¹å¾å¼ºå¤§,ä½æ¯
æ¯æå½æ°å°,åªè½ä¾èµkernelä¸çå½æ°,æäºå¸¸ç¨çæä½è¦èªå·±æ¥ç¼å,èä¸è°
è¯ä¹ä¸æ¹ä¾¿.æ¬äººè¿å å¨æ¥ä¸ºå®éªå®¤èªè¡ç å¶çä¸åå¤åªä½å¡ç¼å¶äºé©±å¨ç¨åº,
è·å¾äºä¸äºç»éª,æ¿ä¸Linux fanså
±äº«,æä¸å½ä¹å¤,请äºææ£.
以ä¸çä¸äºæå主è¦æ¥æºäºkhg,johnsonmçWrite linux device driver,
Brennan's Guide to Inline Assembly,The Linux A-Z,è¿ææ¸
åBBSä¸çæå
³
device driverçä¸äºèµæ. è¿äºèµææçå·²ç»è¿æ¶,æçè¿æä¸äºé误,æä¾
æ®èªå·±çè¯éªç»æè¿è¡äºä¿®æ£.
ä¸. Linux device driver çæ¦å¿µ
ç³»ç»è°ç¨æ¯æä½ç³»ç»å
æ ¸ååºç¨ç¨åºä¹é´çæ¥å£,设å¤é©±å¨ç¨åºæ¯æä½ç³»ç»
å
æ ¸åæºå¨ç¡¬ä»¶ä¹é´çæ¥å£.设å¤é©±å¨ç¨åºä¸ºåºç¨ç¨åºå±è½äºç¡¬ä»¶çç»è,è¿æ ·
å¨åºç¨ç¨åºçæ¥,硬件设å¤åªæ¯ä¸ä¸ªè®¾å¤æ件, åºç¨ç¨åºå¯ä»¥è±¡æä½æ®éæ件
ä¸æ ·å¯¹ç¡¬ä»¶è®¾å¤è¿è¡æä½.设å¤é©±å¨ç¨åºæ¯å
æ ¸çä¸é¨å,å®å®æ以ä¸çåè½:
1.对设å¤åå§ååéæ¾.
2.ææ°æ®ä»å
æ ¸ä¼ éå°ç¡¬ä»¶åä»ç¡¬ä»¶è¯»åæ°æ®.
3.读ååºç¨ç¨åºä¼ éç»è®¾å¤æ件çæ°æ®ååéåºç¨ç¨åºè¯·æ±çæ°æ®.
4.æ£æµåå¤ç设å¤åºç°çé误.
å¨Linuxæä½ç³»ç»ä¸æ两类主è¦ç设å¤æ件类å,ä¸ç§æ¯å符设å¤,å¦ä¸ç§æ¯
å设å¤.å符设å¤åå设å¤ç主è¦åºå«æ¯:å¨å¯¹å符设å¤ååºè¯»/å请æ±æ¶,å®é
ç硬件I/Oä¸è¬å°±ç´§æ¥çåçäº,å设å¤åä¸ç¶,å®å©ç¨ä¸åç³»ç»å
åä½ç¼å²åº,
å½ç¨æ·è¿ç¨å¯¹è®¾å¤è¯·æ±è¯»/åæ¶,å®é¦å
å¯çç¼å²åºçå
容,å¦æç¼å²åºçæ°æ®
è½æ»¡è¶³ç¨æ·çè¦æ±,å°±è¿å请æ±çæ°æ®,å¦æä¸è½,å°±è°ç¨è¯·æ±å½æ°æ¥è¿è¡å®é
çI/Oæä½.å设å¤æ¯ä¸»è¦é对ç£ççæ
¢é设å¤è®¾è®¡ç,以å
èè´¹è¿å¤çCPUæ¶é´
æ¥çå¾
.
å·²ç»æå°,ç¨æ·è¿ç¨æ¯éè¿è®¾å¤æ件æ¥ä¸å®é
ç硬件æ交é.æ¯ä¸ªè®¾å¤æ件é½
é½æå
¶æ件å±æ§(c/b),表示æ¯å符设å¤è¿è¤å¼ºæ¨¯ç?å¦å¤æ¯ä¸ªæ件é½æ两个设
å¤å·,第ä¸ä¸ªæ¯ä¸»è®¾å¤å·,æ è¯é©±å¨ç¨åº,第äºä¸ªæ¯ä»è®¾å¤å·,æ è¯ä½¿ç¨åä¸ä¸ª
设å¤é©±å¨ç¨åºçä¸åç硬件设å¤,æ¯å¦æ两个软ç,å°±å¯ä»¥ç¨ä»è®¾å¤å·æ¥åºå
ä»ä»¬.设å¤æ件çç主设å¤å·å¿
é¡»ä¸è®¾å¤é©±å¨ç¨åºå¨ç»è®°æ¶ç³è¯·ç主设å¤å·
ä¸è´,å¦åç¨æ·è¿ç¨å°æ æ³è®¿é®å°é©±å¨ç¨åº.
æåå¿
é¡»æå°çæ¯,å¨ç¨æ·è¿ç¨è°ç¨é©±å¨ç¨åºæ¶,ç³»ç»è¿å
¥æ ¸å¿æ,è¿æ¶ä¸åæ¯
æ¢å
å¼è°åº¦.ä¹å°±æ¯è¯´,ç³»ç»å¿
é¡»å¨ä½ ç驱å¨ç¨åºçåå½æ°è¿ååæè½è¿è¡å
¶ä»
çå·¥ä½.å¦æä½ ç驱å¨ç¨åºé·å
¥æ»å¾ªç¯,ä¸å¹¸çæ¯ä½ åªæéæ°å¯å¨æºå¨äº,ç¶åå°±
温馨提示:答案为网友推荐,仅供参考