95¾Ç¦~«×¤U¾Ç´Á½Òµ{ºõn
¡i×½Ò¦P¾Ç½ÐÀH®É¤Wºô¬d¾\¥»ºô¶¡AÀHµÛ¾Ç´Á¶i¦æ¡A½Òµ{¬ÛÃö¸ê°T·|ÀH®É¤½¥¬¦b¦¹ºô¶¡j
¤@¡B¡i¶}½Ò¨t©Ò¡j¡G¸ê°T¤uµ{¾Ç¨t( ùþ¾Ç¤h¯Z¡¼¶i׾Ǥh¯Z¡¼ºÓ¤h¯Z¡¼ºÓ¤h¦b¾±M¯Z )
¤G¡B¡i¶}½Ò¦~¯Å¡j¡G¤T¦~¯Å
¤T¡B¡i×§O¡j¡G¥²×
¥|¡B¡i¬ì¥Ø¦WºÙ¡j¡]¤¤¤å¡^¡G§@·~¨t²Î
¡@¡@¡@¡@¡@¡@¡@¡]^¤å¡^¡GOperating Systems
¤¡B¡i¥ý×¬ì¥Ø¡j¡G
¤»¡B¡i¾Ç¤À¼Æ¡j¡G ¤W¾Ç´Á 0 ¾Ç¤À¡A¤U¾Ç´Á 3 ¾Ç¤À
¤C¡B¡i±Â½Ò®É¼Æ¡j¡G¡]¥¿½Ò¡^ 3 ¤p®É ¡]¹ê²ß¡^0 ¤p®É
¤K¡B¡i±Ð¾Ç¥Ø¼Ð¡j¡G
§@·~¨t²Î(Operating
System)¬O¥ô¦ó¤@Ó¹q¸£¨t²Î©Ò¤£¥i©Î¯Êªº³¡¥÷¡C¤@Ó¹q¸£¨t²Î¥i¤À¦¨µwÅé(Hardware)¡B§@·~¨t²Î(Operating System)¡BÀ³¥Îµ{¦¡(Application Program)¡B¨Ï¥ÎªÌ(Users)µ¥¥|Ó³¡¥÷¡A¦Ó§@·~¨t²Î©Ò§êºtªº¥¿¬OµwÅé»P¨Ï¥ÎªÌ(¤ÎÀ³¥Îµ{¦¡)¤GªÌ¤§¶¡¤¤¤¶ªº¨¤¦â¡A¨ä¥Dn¥Øªº¦b©ó´£¨Ñ¨Ï¥ÎªÌ¤@Ó«K§Q(Convenient)¥B¦³®Ä²v(Efficient)¦a°õ¦æµ{¦¡ªºÀô¹Ò¡CY±N¹q¸£¤ñ³ë¦¨¤HªºÂßÅé¡A¨º§@·~¨t²Î´N¹³¤HªºÆF»î¡A¥D®_µÛªº¹q¸£ªº¦æ¬°¡C
¦Ü2005¦~¬°¤î¡A¥Î©ó¤@¯ë¨Ï¥ÎªÌ¹q¸£ªº§@·~¨t²Î¥Dn¨âÓ®a±Ú¡GUnix®a±Ú©M·L³nWindows®a±Ú¡CUnix®a±Ú¥]¬A¦hÓ²Õ´ªº§@·~¨t²Î¡A¨ä¤¤¦³´XÓ¥Dnªº¤lÃþ¥]¬ASystem
V¡BBSD©MLinux¡C³o¸Ìªº'Unix'¬O¤@ӰӼСA¶}µo²Õ´¤¹³\¨Ï¥Î§@·~¨t²Î¦b¤@Ó©w¸q«e´£¤U¦Û¥Ñ¦a¶}µo¡C¦Ó·L³n¤½¥qªºWindows§@·~¨t²Î®a±Ú°_·½©ó¦´ÁªºIBM PCÀô¹Ò¤¤ªºMS-DOS¡A²{¦bª©¥»¬O°ò©ó·sªºWindows NT®Ö¤ß¡A²Ä¤@¦¸¬O¦bOS/2¤¤¨î©w¡C©MUnix¤£¦P¡AWindows¥u¯à¹B¦æ¦b32¦ì©M64¦ìªºx86 CPU¡]¦pIntel©ÎªÌAMDªº´¹¤¸¡^¤W¡A¾¨ºÞ¦´Á¦³ª©¥»¹B¦æ©óDEC Alpha¡AMIPS ©M PowerPCÅé¨tµ²ºc¡C¤µ¤ÑWindows¬O¤@Ó¬y¦æªº§@·~¨t²Î¡A¦b¥þ²y®à±¥«³õ¤¤¦û¦³90%¥ª¥kªº¥÷ÃB¡A¦P®É¦b¤¤§CºÝ¦øªA¾¹¥«³õ¤]¦³¼sªxªºÀ³¥Î¡A¦pWeb¦øªA¾¹©M¸ê®Æ®w¦øªA¾¹¡C
¤£ºÞ¬Oþ¤@Ó®a±Úªº§@·~¨t²Î¡A¥L̪º°ò¥»®Ö¤ß³£¬O¤@¼Ë¦b¶i¦æ¸ê·½ºÞ²zªº¤u§@¡A¹ï¹q¸£¨t²Î¦Ó¨¥¡A©Ò¿×ªº¸ê·½¥]¬ACPUªº¨Ï¥Î®É¶¡¡B¥D°O¾ÐÅé¡B¹q¸£µwºÐªÅ¶¡¡B©PÃ䪺¿é¥X¤J¸Ë¸mµ¥µ¥¡C¥»½Òµ{±N¤¶²Ð³o¨Ç°ò¥»ªº§@·~¨t²Î®Ö¤ß·§©À¡A¦P®É±N¥HLinux§@·~¨t²Î
¤E¡B¡i¤º®eºõn¡j¡G(½ÐÂI¿ï¦U³¹¼ÐÃD¥H¤U¸ü½Òµ{§ë¼v¤ù)
1.1. Linux Versus
Other Unix-Like Kernels
1.2. Hardware
Dependency
1.3. Linux Versions
1.4. Basic
Operating System Concepts
1.5. An Overview of
the Unix Filesystem
1.6. An Overview of Unix Kernels
2.1 Memory Addresses
2.2 Segmentation in Hardware
2.3 Segmentation in Linux
2.4 Paging in Hardware
2.5 Paging in Linux
3.1. Processes, Lightweight Processes, and Threads
3.2. Process Descriptor
3.3. Process Switch
3.4. Creating Processes
3.5. Destroying Processes
Chapter
4. Interrupts and Exceptions
4.1. The Role of Interrupt Signals
4.2. Interrupts and Exceptions
4.3. Nested Execution of Exception and Interrupt Handlers
4.4. Initializing the Interrupt Descriptor Table
4.5. Exception Handling
4.6. Interrupt Handling
4.7. Softirqs and Tasklets
4.8. Work Queues
4.9. Returning from Interrupts and Exceptions
Chapter 5. Kernel Synchronization(Last update:
5.1. How the Kernel Services Requests
5.2. Synchronization Primitives
5.3. Synchronizing Accesses to Kernel Data Structures
5.4. Examples of Race Condition Prevention
Chapter 6. Timing Measurements
6.1. Clock and Timer Circuits
6.2. The Linux Timekeeping Architecture
6.3. Updating the Time and Date
6.4. Updating System Statistics
6.5. Software Timers and Delay Functions
6.6. System Calls Related to Timing Measurements
Chapter 7. Process Scheduling (Last update:
[¥»³¹©Ò´£¨ì¤§¥Dnì©l½Xstruct task, context_switch, finish_task_switch, runqueue, schedule, try_to_wake_up] (Last update:
7.1. Scheduling Policy
7.2. The Scheduling Algorithm
7.3. Data Structures Used by the Scheduler
7.4. Functions Used by the Scheduler
7.5. Runqueue Balancing in Multiprocessor Systems
7.6. System Calls Related to Scheduling
Chapter 8. Memory Management(Last update:
[¥»³¹©Ò´£¨ì¤§¥Dnì©l½Xstruct pg_data_t, struct zone, struct
page, kmem_cache_t] (Last
update:
8.1. Page Frame Management
8.2. Memory Area Management
8.3. Noncontiguous Memory Area Management
Chapter 9. Process Address Space
9.1. The Process's Address Space
9.2. The Memory Descriptor
9.3. Memory Regions
9.4. Page Fault Exception Handler
9.5. Creating and Deleting a Process Address Space
9.6. Managing the Heap
A.1. Prehistoric Age: the BIOS
A.2. Ancient Age: the Boot Loader
A.3. Middle Ages: the setup( ) Function
A.4. Renaissance: the startup_32( ) Functions
A.5. Modern Age: the start_kernel( ) Function
¤Q¡B¡i½Ò¥»¡j¡G
(Daniel P. Bovet and Marco CesatiµÛ) ³¯«Ø¾± Ķ¡A½±¤j°¶ ½s¡A¡¨Linux®Ö¤ß¸Ô¸Ñ¡¨¡A¬ü°Ó¼ÚµÜ§¤½¥q¡C
¤Q¤@¡B¡i½Òµ{¥²³Æ¤u¨ã®Ñ¡j¡G
l Linuxµ{¦¡³]p±Ð¾Ç¤â¥U(²Ä¤Tª©) (ùÖ峯¸ê°TªÑ¥÷¦³¤½¥q)
l C++ªì¾Ç«ü¤Þ Linuxµ{¦¡³]p(ª÷¥Ý¸ê°TªÑ¥÷¦³¤½¥q)
l Linux C/C++ºô¸ôµ{¦¡³]p(ª÷¥Ý¸ê°TªÑ¥÷¦³¤½¥q)
l Fedora Core
¤Q¤G¡B¡i°Ñ¦Ò¤åÄm¡j¡G
þ Silberschatz, P. Galvin, and G. Gagne, "Operating System Concepts," John Wiley & Sons, Inc., ²Ä¤Cª©
þ linux programming unleashed
þ Linux ¨t²Îµ{¦¡¹ê¨Ò³]p (Linux Programming by Example: The Fundamentals)
¤Q¤G¡B¡iLinux¬ÛÃöºô¯¸¡j¡G
l Textbook website: Understanding.the.Linux.Kernel.3rd.Edition
http://linux-security.cn/ebooks/ulk3-html/
l Linux Kernel Archives
l Source code cross reference
¤Q¤T¡B¡iµû¤À¤è¦¡¡j¡G
l ¥®É§@·~(20%)¡G¨C³¹±N¿ï¾Ü¼Æ¤äLinuxì©l½X¨ç¦¡¡A¥Ñ¾Ç¥Íø»s¸Óµ{¦¡ªº¬yµ{¹Ï¤Î»¡©ú¤å¥óú¥æ¡C[¥®É¦¨ÁZªí] ¡]³Ìªñ§ó·s¤é´Á
l µ{¦¡§@·~(30%)¡G¦@¥|¤äµ{¦¡§@·~¡Aµ{¦¡ÃD¥Ø¿ï¨ú¦Ü½Òµ{¤u¨ã®Ñªº½d¨Òµ{¦¡¡C
l ´Á¤¤¦Ò¦¨ÁZ(20%)¡G½Ò¥»¤º®e¦û50%¡A¦Ó¥®É§@·~¤º®e¦û50%¡C
l ´Á¥½¦Ò¦¨ÁZ(30%)¡G¦ÒÃD¤º®e¥H§ë¼v¤ù¬°¥D¡B¸É¥æ§@·~¬°»²¡C¡]³Ìªñ§ó·s¤é´Á
¤Q¥|¡B¡i§@·~¡j¡G(½ÐÂI¿ï¶W³sµ²¤U¸ü§@·~»¡©ú¤ÎÃD¥Ø)
¤@¡B§@·~ú¥æ³W©w
¤G¡Bµ{¦¡§@·~¡]³Ìªñ§ó·s¤é´Á
|
§@·~½s¸¹ |
§@·~ÃD¥Ø |
ú¥æ¤é´Á |
|
²Ä¤@¦¸§@·~ |
|
|
|
²Ä¤G¦¸§@·~ |
|
|
|
²Ä¤T¦¸§@·~ |
|
|
|
²Ä¥|¦¸§@·~ |
±N²Ä¤G¦¸§@·~ªº¥t¤@Óprocess©Îthread¥[À³¥Îµ{¦¡¡A§¹¦¨§Aªº²Ä¤@ÓLinuxºô¸ô¤¬°Êµ{¦¡ |
|
¤T¡B¬yµ{¹Ï§@·~¡]³Ìªñ§ó·s¤é´Á
|
§@·~½s¸¹ |
ú¥æ¤é´Á |
|
20070406 |
|
|
20070413 |
|
|
20070420 |
|
|
20070420 |
|
|
20070522 |
|
|
20070606 |
¥|¡B´Á¤¤¦Ò¸Õ¡B¸Ñµª¡B¤Îµû¤À¤è¦¡(
¤¡B´Á¥½¦Ò¸Õ¦ÒÃD¤º®e¥H§ë¼v¤ù¬°¥D¡B¸É¥æ§@·~¬°»²¡C¡]³Ìªñ§ó·s¤é´Á
¤»¡B¦¨ÁZ¸É±Ï¤è¦¡(Last update:
°ò¥»¤W¡A¸É±Ï¤è¦¡¬On¾Ç¥Í®³¥X¾Ç²ß¸Û·N¡A½T¹ê°µ¨ì½Ò«e¹w²ß¡B¤W½Ò»{¯u¡B½Ò«á½Æ²ß¤TÓnÂI¡C¤èªk¦p¤U¡G
1.
(½Ò«e¹w²ß)¨C¶g¤@PM10:00«e±N¹j¤Ñ(¶g¤G)¦¤Wªº¤W½Ò¶i«×¨Æ¥ý¹w²ß¦n¡A¼gÓ5¶¥H¤Wªº¤º®e¤ß±oºKn(.doc)±Hµ¹§Ú»P§U±Ð(½Ð±H¦Ü§Úªºgoogle «H½cjiungyao@gmail.com¡A½Ð¤Å±H¦Ü§Úªº¾Ç®Õ«H½c¡A§_«h¿ò¥¢¦Û¦æt³d)¡A¶i«×½Ð¬d¾\ºô¶ªº±Ð¾Ç¶i«×ªí¡C
2.
(¤W½Ò»{¯u)¤W½Ò¤£¿ð¨ì¡B¦°h¡B¤Î§n¾x¡C
3.
(½Ò«á½Æ²ß)¨C¶g¥|PM10:00«e±N¤W½Ò«áÅ¥¨ìªº¤º®e»P¤§«eú¥æªº¹w²ß¤ß±o¤©¥H¾ã¦X¡A¨Ã°µ¦¨10¶ªº¤º®e¤ß±oºKn(.doc)¡C
4. <<ú¥æ¤è¦¡>>«H¥ó¼ÐÃD½Ð¥´:OS_³¹¸`_¤é´Á_¾Ç¸¹¡A¥H¤U¬P´Áú¥æ¬°¨Ò:OS_ch5_0507_79581206¡C
5. ¦³¦P¾Ç¤S¦A§ë¾÷¨ú¥©¤F¡A©Ò¥Hú¥æ³ø§i½Ð«ö·Óªþ¥ó½d¥»³W©w¡A§_«h¤£¤©pºâ¡I¡I(½ÐÂI¿ï½d¥»)
6.
³ø§i¤@«ß¥H¤¤¤å¼¶¼g¡A¥H^¤å¼¶¼gªÌ¤£¤©Å禬¡C
7.
½T¹ê°µ¨ì¤Wz¥|ÂIªÌ¡A«h¤©¥H¸É±Ï¨ä¾Ç´Á¦¨ÁZ¦Ü¤Î®æ¤À¼Æ¡A¦Ó¶V½T¹êÂÔ¦u¤Wz¥|ÂIªÌ¡A¥B¤ß±o³ø§i¤º®eµ¾¹êºëÅP(¶W¹L¤Q¶¥H¤W)¡A«h·|°u¥H²Ö¥[¾Ç´Á¤À¼Æ¡C
8. ¥H¤U±¡ªp¬°µø¦P©ñ±ó¸É±Ï¡A¾Ç´Á¦¨ÁZ¤£¤©½Õ¾ã¡G
(a)¡B ¨S½T¹ê¿í¦u³W©wªÌ¡A¥]¬A¤ß±o³ø§i¤º®eÀ³¥I¤F¨Æ¡A¨S¦³»{¯u¼¶¼g¡Aª½±µ½Æ»s½Ò¥»¤º®e¡A¨S¦³µoªí¥ô¦óÓ¤H¤ß±oªÌ¡C
(b)¡B ¤ß±o§@·~§Ûŧ¡A»P¨ä¥¦Ãº¥æªÌªº¬Û¦ü«×¹F¨ì50%¡A«h§ÛŧªÌ»P³Q§ÛŧªÌ¤@«ßµø¦P©ñ±ó¡C
(c)¡B ½Ò°ó³W©w¤§¬yµ{§@·~»Pµ{¦¡§@·~¡AµL¬G¤£Ãº¥æªÌ¡C
9.
¸É±Ïª¬ªpµn°Oªí
(Last update:
10. ¸É±Ï§@·~ªº³Ì«á¾ã²zµ²ªG¡G²Ä¤³¹¡B²Ä¤C³¹¡B²Ä¤K³¹¡C
[µù]
1.
¦³Ãöú¥æ§@·~ªº°ÝÃD¡A½Ðª½±µ»P§U±Ð(
5.
§U±Ð©Òø»sªº²Ä¤@Ó§@·~ªº²Ä¤@¼h¬yµ{¹Ï(µù¡G¦P¾Ç¥²¶·Ä~Äò²`¤Jø»s²Ä¤G¡B¤T¼hªº¬yµ{¹Ï)
¤Q¤¡B¡i¥®É¦¨ÁZµû©w¤è¦¡¡j¡G
l ½Ò°ó©âÂI¦W¡A¯Ê®u¤@¦¸¦©¾Ç´ÁÁ`¦¨ÁZ¤@¤À¡C
l §@·~¿ð¥æ¤@¤Ñ¦©¤¤À¡A³Ì¦h¿ð¥æ¤T¤Ñ¡A²Ä¥|¤Ñ¿ð¥æ¤£¤©¦¬¥ó¡C
l ¤W½Ò´Á¶¡ª±¤â¾÷©Î¬O±µÅ¥¹q¸ÜªÌ¡A¤@«ß¤©¥H¦¬¡A¾Ç´Áµ²§ô«á¤è¯à¨ì¨t¿ì»â¨ú¡I¡I
¤Q¤»¡B¡i¤W½Ò¤è¦¡¡j¡G
l ¦U¦ì¦P¾Ç¦b¬ã²ß¥»½Ò®É¡A½Ð°O±oÀH®É¨ì¦p¤Uºô¯¸¹ï·ÓLinuxì©l½X¡A¤è¯à¶¶§Q¬ãŪ¥»½Òµ{¡C
l ¥»½Òµ{ÀH°ó¿ý¼v¡A¦P¾Ç¥i¥H½Ò«áÆ[¬Ý¤W½Ò¿ý¼v¤ù¡A½Ð¶i¤J¦p¤Uºô§}Æ[¬Ý
http://192.192.35.71:8888/idea/
½ÐÂI¿ïidea¨Ï¥Î¤â¥U¡A¥H¥Ó½Ð±b¸¹¶i¤Jºô¯¸Æ[¬Ý¡C
±Ð¾Ç¶i«×p¹ºªí¡]³Ìªñ§ó·s¤é´Á2007/6/21¡^
µù¡G¥»±Ð¾Ç¶i«×ªí·|ÀHµÛ¹ê»Ú¤W½Ò±¡§Î½Õ¾ã¡A½ÐÀH®É¤Wºô¬d¾\¡I¡I
|
¶g¼Æ |
¤é´Á |
¶i«× |
||||
|
¤@ |
¤G |
¤T |
¥| |
¤ |
||
|
1(2/3¤ë) |
26 |
27 |
28 |
1 |
2 |
Chapter 1: Introduction |
|
2(3¤ë) |
5 |
6 |
7 |
8 |
9 |
Chapter 1: Introduction/Chapter 2. Memory Addressing |
|
3(3¤ë) |
||||||