²Ä1³¹Linux¤º®Ö²Õ¦¨©M¾÷¨î1.1Linux¤º®Öª©¥»»Pµo®i
1.1.1Linux¾Þ§@¨t²Îªº½Ï¥Í
1.1.2Linux¤º®Öª©¥»ªºÅܾE
1.2Linux¤º®Ö½sĶ
1.2.1Àò¨ú¤º®Ö·½½X
1.2.2¤º®Ö·½½X¾ð
1.2.3½sĶ¤º®Ö
1.3Linux¤º®Ö²Õ¦¨
1.4Linux¤º®Ö¾÷¨î
1.4.1¤º®Ö±Ò°Ê¹Lµ{
1.4.2¼Ò¶ô¾÷¨î
²Ä2³¹Linux¤º®Ö³]³ÆºÞ²z¤è¦¡
2.1devfs³]³Æ¤å¥ó¨t²Î
2.2sysfs¤å¥ó¨t²Î
2.3udev³]³Æ¤å¥ó¨t²Î
2.4¥Dn¼Æ¾Úµ²ºc
2.4.1kobject
2.4.2ktype
2.4.3kset
2.4.4¤TªÌÃö¨t
2.5¼ö´¡©Þ³]³ÆºÞ²z¾÷¨î
2.5.1¼ö´¡©Þ¨Æ¥ó¬yµ{
2.5.2¯A¤Îªº¼Ò¶ô
2.5.3ÃöÁäÅX°Ê¨ç¼Æ
²Ä3³¹LinuxÅX°Ê¶}µo°ò¦
3.1¦P¨B¾÷¨î
3.1.1¤º®Ö¦P¨B¾÷¨î¤ÀÃþ
3.1.2¦Û±ÛÂê»P«H¸¹¶qªº¤ñ¸û
3.2make¤Îmakefile
3.2.1makefile¤å¥ó
3.2.2½s¼gmakefile¤å¥ó
3.2.3make©R¥O
3.3½Õ¸Õ¤èªk
3.3.1printk
3.3.2/proc¤å¥ó¨t²Î
3.3.3½Õ¸Õ¾¹¤Î¬ÛÃö¤u¨ã
²Ä4³¹Linux¦r²Å³]³ÆÅX°Ê¶}µo
4.1ÃöÁä¼Æ¾Úµ²ºc
4.2±µ¤f¨ç¼Æ³¡¤À¤º®Ö¥N½X¤ÀªR
4.3¦r²Å³]³ÆÅX°Ê³]p
4.3.1¦r²Å³]³ÆÅX°Ê³]p³õ´º´yz
4.3.2¦r²Å³]³ÆÅX°Ê³]p¹Lµ{
²Ä5³¹Linux¤º®Ö¤¤Â_¾÷¨î
5.1¤¤Â_
5.2¤¤Â_³B²z
5.2.1ª`¥U¤¤Â_³B²zµ{§Ç
5.2.2½s¼g¤¤Â_³B²zµ{§Ç
5.3¤¤Â_¤W¥b³¡»P¤U¥b³¡ªº¹ï¤ñ
5.4¤¤Â_¤U¥b³¡
5.5BH¾÷¨î»P¥ô°È¶¤¦C¾÷¨î
5.6³n¤¤Â_
5.6.1³n¤¤Â_ªº¹ê²{
5.6.2³n¤¤Â_ªº¨Ï¥Î
5.7tasklet
5.7.1taskletªº¹ê²{
5.7.2taskletªº¨Ï¥Î
5.8¤u§@¶¤¦C
5.8.1¤u§@¶¤¦Cªº¹ê²{
5.8.2¤u§@¶¤¦Cªº¨Ï¥Î
²Ä6³¹Linux¶ô³]³ÆÅX°Ê¶}µo
6.1¶ô³]³ÆºÞ²z¾÷¨î
6.1.1¶ô³]³Æ°ò¥»·§©À
6.1.2¶ô³]³Æ¦bLinux¤¤ªºµ²ºc
6.2¶ô³]³ÆÃöÁä¼Æ¾Úµ²ºc
6.2.1gendisk¼Æ¾Úµ²ºc
6.2.2block_device_operations¼Æ¾Úµ²ºc
6.2.3request¼Æ¾Úµ²ºc
6.2.4request_queue¼Æ¾Úµ²ºc
6.2.5bio¼Æ¾Úµ²ºc
6.3¶ô³]³ÆÅX°Ê³]p¨ç¼Æ
6.3.1¶ô³]³ÆÅX°Êª`¥U»Pª`¾P¨ç¼Æ
6.3.2¶ô³]³ÆÅX°Ê¥´¶}»PÃö³¬¨ç¼Æ
6.3.3¶ô³]³ÆÅX°Êioctl¡Bread©Mwrite¨ç¼Æ
6.3.4¶ô³]³ÆÅX°Êªº½Ð¨D¨ç¼Æ
6.4Ramdisk¶ô³]³ÆÅX°Ê¹ê¨Ò
6.4.1Ramdisk¶ô³]³ÆÅX°Ê¹ê¨Ò¤ÀªR
6.4.2Ramdisk¶ô³]³ÆÅX°Ê¹ê¨Ò´ú¸Õ
²Ä7³¹Linuxºôµ¸³]³ÆÅX°Ê¶}µo
7.1ºôµ¸³]³Æ
7.1.1ºôµ¸¨t²Î¤À¼hµ²ºc
7.1.2ºôµ¸³]³ÆºÞ²z
7.2NAPI¾÷¨î
7.3ÃöÁä¼Æ¾Úµ²ºc
7.4¤º®Ö´£¨Ñªººôµ¸³]³ÆÅX°Ê³]p¨ç¼Æ
7.4.1alloc_netdev
7.4.2register_netdev
7.4.3ether_setup
7.4.4unregister_netdev
7.5ºôµ¸³]³ÆÅX°Ê¶}µo¹ê¨Ò
7.5.1snull_init_module¨ç¼Æ
7.5.2snull_init¨ç¼Æ
7.5.3¬ÛÃö¾Þ§@¨ç¼Æ
²Ä8³¹LinuxMMC/SDÅX°Ê¶}µo
8.1MMC¤l¨t²Î°ò¥»¬[ºc
8.2ÃöÁä¼Æ¾Úµ²ºc
8.2.1°ò¥»¼Æ¾Úµ²ºc
8.2.2°ò¥»¼Æ¾Úµ²ºc¥Dn¦¨û¤ÎÃö¨t
8.3MMC/CD¥dÅX°Ê¹ê¨Ò
8.3.1MMC/SD¥d³]³ÆÅX°Ê³]p³õ´º
8.3.2MMC/SD¥d³]³ÆÅX°Ê¹ê¨Ò¹ê²{
²Ä9³¹LinuxUSBÅX°Ê¶}µo
9.1USB³]³ÆºÞ²z¾÷¨î
9.1.1USB»P¦ê¤f
9.1.2USB³]³ÆÄݩʩݼ³µ²ºcºÞ²z¾÷¨î
9.1.3USB³]³ÆÅÞ¿è²Õ´ºÞ²z¾÷¨î
9.2USBÅX°ÊÃöÁä¼Æ¾Úµ²ºc¤ÀªR
9.3USB³]³ÆÅX°Ê¨ç¼Æ¤Î¨ä¨Ï¥Î»¡©ú
9.3.1«È¤áºÝÅX°ÊºÞ²z
9.3.2USB³]³Æ°t¸m©MºÞ²z
9.3.3¥D¾÷±±¨î¾¹ªººÞ²z
9.3.4¨óij±±¨î©R¥O¶°©M¼Æ¾Ú¶Ç¿éºÞ²z
9.4USB³]³ÆÅX°Ê¶}µo¹ê¨Ò
9.4.1¹ê¨Ò¶}µo³õ´º³]p
9.4.2USB³]³ÆÅX°Ê¶}µo¹ê¨Òªº¹ê²{
9.4.3ÅX°Ê´ú¸Õ¤ÀªR
²Ä10³¹LinuxI2CÁ`½u³]³ÆÅX°Ê
10.1LinuxÁ`½uÅX°Ê¤ÎI2CÁ`½u
10.1.1LinuxÁ`½uÅX°Ê³]p¹Lµ{
10.1.2I2CÁ`½uªº¤u§@ì²z»PÀ³¥Î
10.1.3Á`½u°ò¥»¾Þ§@
10.2LinuxI2CÅé¨tµ²ºc
10.2.1LinuxªºI2CÅé¨tµ²ºc²Õ¦¨
10.2.2LinuxI2CÃöÁä¼Æ¾Úµ²ºc
10.3LinuxI2C®Ö¤ß
10.4LinuxI2CÁ`½uÅX°Ê
10.4.1I2C¾A°t¾¹ÅX°Ê¥[¸ü»P¨ø¸ü
10.4.2I2CÁ`½u³q«H¤èªk
10.5LinuxI2C³]³ÆÅX°Ê
10.5.1LinuxI2C³]³ÆÅX°Ê¼Ò¶ô¥[¸ü»P¨ø¸ü
10.5.2LinuxI2C³]³ÆÅX°Êªº¼Æ¾Ú¶Ç¿é
10.5.3Linuxi2cúQdev.c¤å¥ó¤ÀªR
10.6LinuxI2CÅX°Ê¹ê¨Ò¡X¡XEEPROM
10.6.1ªì©l¤Æ
10.6.2±´´ú³]³Æ
10.6.3Àˬd¾A°t¾¹ªº¥\¯à
10.6.4³X°Ý³]³Æ
10.6.5¨ä¥L¨ç¼Æ
²Ä11³¹LinuxPCIÁ`½u³]³ÆÅX°Ê
11.1PCIÁ`½u³]³Æ
11.1.1PCIÁ`½u
11.1.2PCI³]³Æ
11.2PCI³]³ÆÅX°Êµ²ºc
11.3PCI³]³ÆÅX°Ê¹ê¨Ò
11.3.1PCI³]³ÆÅX°Êµ{§Ç°ò¥»®Ø¬[
11.3.2ªì©l¤Æ³]³Æ¼Ò¶ô
11.3.3¥´¶}³]³Æ¼Ò¶ô
11.3.4¼Æ¾ÚŪ¼g©M±±¨î«H®§¼Ò¶ô
11.3.5¤¤Â_³B²z¼Ò¶ô
11.3.6ÄÀ©ñ³]³Æ¼Ò¶ô
11.3.7¨ø¸ü³]³Æ¼Ò¶ô
²Ä12³¹Linux¿é¤J³]³ÆÅX°Ê
12.1Linux¿é¤J¤l¨t²Îµ²ºc
12.2¿é¤J³]³ÆÅX°Ê®Ö¤ß¼Æ¾Úµ²ºc¤ÀªR
12.3Linux¿é¤J³]³ÆÅX°Ê¹ê¨Ò
12.3.1¿é¤J³]³ÆÅX°Ê¬yµ{
12.3.2USB¹«¼ÐÅX°Ê½s¼g¹ê¨Ò
²Ä13³¹LinuxFlashÅX°Ê¶}µo
13.1Flash¦sÀx¾¹
13.2LinuxMTD¨t²Î¼h¦¸µ²ºc
13.3ÃöÁä¼Æ¾Úµ²ºc
13.3.1mtd_infoµ²ºcÅé
13.3.2mtd_tableµ²ºcÅé
13.3.3mtd_partµ²ºcÅé
13.3.4mtd_partitionµ²ºcÅé
13.3.5map_infoµ²ºcÅé
13.4ÅX°Ê¬ÛÃö¨ç¼Æ
13.4.1add_mtd_device¨ç¼Æ
13.4.2del_mtd_device¨ç¼Æ
13.4.3add_mtd_partitions¨ç¼Æ
13.4.4del_mtd_partitions¨ç¼Æ
13.4.5do_map_probe¨ç¼Æ
13.5Nor«¬FlashÅX°Ê¹ê¨Ò
13.5.1Nor«¬FlashÅX°Ê³]p¬yµ{
13.5.2Nor«¬FlashÅX°Ê¸Ô²Ó³]p
13.6Nand«¬FlashÅX°Ê¹ê¨Ò
13.6.1Nand«¬Flash³]³ÆÅX°Ê³]p¨BÆJ
13.6.2Nand«¬FlashÅX°Ê¹ê²{
°Ñ¦Ò¤åÄm