Linux内核完全注释(修正版v3.0)

更新时间:2023-05-03 07:57:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

/LQX[ ? ?? $ +HDYLO\ &RPPHQWHG /LQX[ .HUQHO 6RXUFH &RGH

/LQX[ 9HUVLRQ

↓?

?5HYLVLRQ ?

??

=KDR -LRQJ

JRKLJK#VK QHW

JRKLJK#JPDLO FRP

ZZZ SOLQX[ RUJ

ZZZ ROGOLQX[ RUJ

??

? Linux ?? ??v0.11? ??? ?????? ???? ? ? ???? ??? ? Linux? ?? ??? ??????а? ? ?ウLinux?? л ? ???? ? ?? ????? ? ? ↓ ????? ф ? ?LINUX ???儃???俆 ?Linux???? ? ???????? ? ???Linux??? ? ??? ? ? ?? ????? ? ??? ?? 0.11?0.95?? ???? ??ウ ?? ?? ↓ ? ????? ????????Linux???PC ???? ? ?? ? ?????? C?? ? ? ф??? ?80X86 ? ? л????? ?? ? ??????Linux ????? ???? ? ???? ?? ?????? ??? ? ?????ㄐ? к? ? ??ウ ??????? ?? ?????? ???????? ? ? ???? ?? ??? ??? ? ??????? аㄐ? ? ?Linux 0.11??? ??傼??傼? ??? ? ? ?? ?ㄉ?ad1cbc23af45b307e8719772?кл??

?? ?儈??? уъ ? ? ?????? ? ??? Linux? ? ? ? ? ??? ????? а? ? ? ??? ?? ??

? ?

? ? ? ??? ↓ ?? .?? ???? ? ? ? ㄐ?? ,???? .??? ??? ?н ???? ? ?? ? а??? н?? ? ??????? ? ↓ ? ?? 侸 ???? ?? ? ? gohigh@ad1cbc23af45b307e8719772 gohigh@ad1cbc23af45b307e8719772?? ? ??к? ? ? ? ??? ??? ?? ?? ??ウ ??? ??к? ?1239 ,??:200092??

? 2002 - 2007 by Zhao Jiong

? 2002 - 2007 ??? .

ā57)6& ? 5HDG 7KH ) NLQJ 6RXUFH &RGH - ā

?/LQXV %HQHGLFW 7RUYDOGV

?

,

?

?................................................................................1 ??????........................................................1? ??н?? ....................................................1?? ?? ? ........................................2?? ?????? ? ........................2 ?? ???? ???? ............................3?? ?? ? ???....................................3 ? ? ? ?........................................4E XT 2 ???оMINIX ???.........................4?1ㄐ??..................................................................51.1L INUX ??? ...........................................51.2 ??...........................................................121.3 ㄐ ?...........................................................16?2ㄐ ?? ? ? ....................................172.1 ?? ? ?........................................172.2I/O ㄟ ?? ..........................192.3? ?BIOS CMOS ................212.4 ................................................232.5 ㄐ ?...........................................................31?3ㄐ ????? ? ....................................323.1 AS 86?? .......................................................323.2GNU AS ??......................................................383.3C ??? .........................................................483.4C о??? ?????.................................553.5L INUX 0.11?? ?? .................................633.6M AKE ? M AKEFILE ?...........................72?4ㄐ 80X86 ? ??............................754.180X86?? ?? ?........................754.2 ? ??............................................814.3 ? ...........................................................854.4 亥 ...........................................................964.5 ...................................................................994.6? ?..............................................1104.7? ??.........................................................1204.8 ? ?? ......................................1284.9а?? ? ? ? ..........................131?5ㄐ LINUX ???? ................................1415.1L INUX ?? ...............................................1415.2L INUX ?????? ...............................1425.3L INUX ? ??? ?...................1445.4? (157)

5.5L INUX ?????...........................................1605.6?? ? ..............................................1625.7L INUX ?? ...............................................1645.8L INUX ??? ?? ? ?.......................1725.9L INUX 0.11??? ???............................1765.10L INUX ?????? ? .....................1775.11 ???о ?? ? ?........................1845.12 LINUX /M AKEFILE ?....................................1845.13 ㄐ ?........................................................189?6ㄐ ? ?BOOT ?...........................1916.1 ? ?..........................................................1916.2 BOOTSECT .S ? ...............................................1936.3 SETUP .S ? .....................................................2036.4 HEAD .S ? ......................................................2216.5 ㄐ ?..........................................................234?7ㄐ ? (INIT).......................................2357.1 MAIN .C ? ......................................................2357.2? ..............................................2477.3 ㄐ ?..........................................................249?8ㄐ ???(KERNEL)...................................2518.1 ? ?..........................................................2518.2M AKEFILE ?.................................................2548.3 ASM .S ? ........................................................2568.4 TRAPS .C ? .....................................................2628.5 SYSTEM _CALL .S ? ........................................2678.6 MKTIME .C ? ..................................................2798.7 SCHED .C ? ....................................................2818.8 SIGNAL .C ? ...................................................3008.9 EXIT .C ? .......................................................3118.10 FORK .C ? ....................................................3188.11 SYS .C ? .......................................................3268.12 VSPRINTF .C ? ..............................................3338.13 PRINTK .C ? .................................................3418.14 PANIC .C ? ...................................................3428.15 ㄐ ?........................................................343?9ㄐ ? 傡 ? (BLOCK DRIVER).........3459.1 ? ?..........................................................3469.2M AKEFILE ?.................................................3499.3 BLK .H ?........................................................3519.4 HD .C ? ..........................................................3559.5 LL _RW _BLK .C ? ...........................................3789.6 RAMDISK .C ? ................................................3849.7 FLOPPY .C ? (390)

?

,,

?10ㄐ ?? 傡 ? (CHAR DRIVER).....41710.1 ? ?.......................................................41710.2M AKEFILE ?...............................................42710.3 KEYBOARD .S ? ..........................................42910.4 CONSOLE .C ? ..............................................44810.5 SERIAL .C ? .................................................47410.6 RS _IO .S ? ...................................................48310.7 TTY _IO .C ? .................................................48710.8 TTY _IOCTL .C ? ...........................................499?11ㄐ ? (MATH)..............................50711.1M AKEFILE ?...............................................50711.2 MATH -EMULATION .C ? ................................509?12ㄐ ???(FS).............................................51112.1 ? ?.......................................................51112.2M AKEFILE ?...............................................52712.3 BUFFER .C ? ................................................53012.4 BITMAP .C ? .................................................54712.5 TRUNCTE .C ? ..............................................55312.6 INODE .C ? ..................................................55512.7 SUPER .C ? ..................................................56712.8 NAMEI .C ? ..................................................57712.9 FILE _TABLE .C ? ..........................................60112.10 BLOCK _DEV .C ? .......................................60112.11 FILE _DEV .C ? ............................................60512.12 PIPE .C ? ....................................................60812.13 CHAR _DEV .C ? .........................................61212.14 READ _WRITE .C ? ......................................61512.15 OPEN .C ? ..................................................62112.16 EXEC .C ? ..................................................62712.17 STAT .C ? ...................................................64712.18 FCNTL .C ? ................................................64912.19 IOCTL .C ? .................................................652?13ㄐ ??(MM)..........................................65513.1 ? ?.......................................................65513.2M AKEFILE ?...............................................66113.3 MEMORY .C ? ...............................................66213.4 PAGE .S ? .....................................................679?14ㄐ ?(INCLUDE)...................................68314.1 INCLUDE /? л? ?.................................68314.2 A .OUT .H ?...................................................68414.3 CONST .H ?..................................................69514.4 CTYPE .H ?..................................................69514.5 ERRNO .H ?.................................................69714.6 FCNTL .H ?..................................................69914.7 SIGNAL .H ?................................................70114.8 STDARG .H ?................................................70314.9 STDDEF .H ?................................................70414.10 STRING .H ?...............................................70514.11 TERMIOS .H ?.. (715)

14.12 TIME .H ?...................................................72214.13 UNISTD .H ?...............................................72414.14 UTIME .H ?................................................72914.15 INCLUDE /ASM /? л? ?.......................73114.16 IO .H ?.......................................................73114.17 MEMORY .H ?.............................................73214.18 SEGMENT .H ?............................................73314.19 SYSTEM .H ?..............................................73514.20 INCLUDE /LINUX /? л? ?....................73914.21 CONFIG .H ?...............................................73914.22 FDREG .H ?............................................74114.23 FS .H ?.......................................................74414.24 HDREG .H ?................................................74914.25 HEAD .H ?.................................................75214.26 KERNEL .H ?..............................................75314.27 MM .H ?.....................................................75414.28 SCHED .H ?................................................75414.29 SYS .H ?....................................................76114.30 TTY .H ?.....................................................76314.31 INCLUDE /SYS /? ?? ?.........................76614.32 STAT .H ?...................................................76614.33 TIMES .H ?.................................................76714.34 TYPES .H ?.................................................76814.35 UTSNAME .H ?...........................................76914.36 WAIT .H ?...................................................770?15ㄐ ?(LIB)...............................................77315.1M AKEFILE ?...............................................77415.2_EXIT .C ? ...................................................77615.3 CLOSE .C ? ..................................................77715.4 CTYPE .C ? ..................................................77715.5 DUP .C ? ......................................................77815.6 ERRNO .C ? ..................................................77915.7 EXECVE .C ? ................................................77915.8 MALLOC .C ? ...............................................78015.9 OPEN .C ? ....................................................78915.10 SETSID .C ? ................................................79015.11 STRING .C ? ................................................79115.12 WAIT .C ? ...................................................79115.13 WRITE .C ? ................................................792?16ㄐ ? (TOOLS)....................................79516.1 BUILD .C ? ...................................................795?17ㄐ 傼? ??о ? ?........................80217.1B OCHS ????............................................80217.2 B OCHS ???L INUX 0.11??...............80617.3???? ??? ........................81317.4????? ?? ? ........................81517.5 ?B OCHS ?? ?...................................81717.6 ?? ?........................................82417.7 ? ???............................................82717.8 L INUX 0.11??к??0.11 ?...........83417.9 R EDHAT 9??л??L INUX 0.11 ?..835

?

,,, 17.10 ? +? ???? ?? ?83817.11??? ? ?SHOELACE ??....84317.12 ?GDB B OCHS ?? ????......846 ? ?....................................................................853? ............................................................................855? 1 ? ? ............................................855? 2ASCII ??.................................................863? 3 ?C0?C1 ??.........................864? 4 ??? ........................865? 5?1 ?? ??................................868? . (869)

?

?

? а Linux ?? ? ?? ????

??????

?????? ? ? ?? ??? ? ?Linux ??????? ?? ??? ? ? ? ? ????? linux ? а? ?? ???? linux ??? ??↓?? ??

????? ? а?? Linux ???а? ? ? а ??? ?????????? ????? ???? ? ?а???UNIX 学 ?? ? ? ??? ??? ???? ???≤ ??? ?о??≤ ???? ??? ??? Linux ? ?? ?? 儈???? ?? ????? ? ??? ????? н ?? ?四у??

? ? ?Linux ????? ??? Linux ?? ? Redhat 7.0 ?2.2.16?Fedora Core 4 ?2.6.11っ ????? ?????? Linux ? ????? ?? ? 2.2.20? 268з?????? ??????? Linux ??????? ? ? ?? ?? ???? ?? ? н????? ?Linux ? ? ? ???? Scott Maxwell ??а??Linux ???? ???? ??? к ? Linux ??≤ ???????? ?? ??? ? ????ф ? ??? ???? ? Linux ????????? ? ? ???? ? ?? ?? ? ?(*.h)?? ??? ?? ? ? ?make ?? ? ?? ? ? ? ? ? ? ??≤ ????? ????? ? ??

?? ???Linux ???? ?а??? ??н?? ??? ?а? ?儈Linux ?? ?≤ ??? 、儈 ? ??????? ?仈? ??? ?? ??????н??↓ ? ?? ? ? ? ? ?? ???? ? ? ? ? ??????? ?? ???? ? ? ? ?нл н?????仈? ?? ??

John Lions ???? ?UNIX ??? ?а??? а ?UNIX 学 ?? ???? ????? ?? ??? UNIX V6?? ??????? ?? ? ?PDP-11? ?????? ?? ? ?? ??о??? ? ???? ?? ? ? ??

A.S.Tanenbaum ??? ?????о ?? а ?? ? ? ? ??????? ??MINIX ?? а? ?? ??? ? ? ?оLinux ?? ? ? ? ???? ? н? 亪 ? ?а? ?? ?Linux ???? ??

??????? ? ? а?ā?? ?ā? ??н??↓??Linux ??? ? ?? ?? ? ??Linux ?? ? ? ? ?Linux ???? ???? ? ? ? ? ?? ?? ? н?? ??? ?? ? ?Linux ? ??????

?

??? 1991 10 ??Linux? ?Linus Torvalds Linux 0.03? ?а? ㄐ?? ? ???仈? ??仈?āLINUX--a free unix-386 kernelā1? ㄐ?????ā Linux ???? ??? ? ?? 、 ?? ? ?? ? ?ā?ā???? ???GNU Hurd?? ? ?н? ? ???”??????Linux???? GNU?Hurd ?? ? ? ? ?? ?н? ? ?? ?? ? ?????? ? ?Linux ?? ?? ?а?

?? ???オ?? ?????? ? ? ?? ??? ? ?Linux ?????? ?? ?? ??? ? ? ? ? ????? Linux ? а? ?? ???? Linux ??? ??↓?? ??

?? ?? ?

? ? ? ?н ?Linux ?? ?у??? ??? ?? ? DJJ?x86 ???Uclinux?? ad1cbc23af45b307e8719772к у?? ??ц?к? ? ??? ?? Linux ???? ?? ?? ? ? ?↓ ??? ?? ?学? ???? ??????Linux ?? ??????? ?Linux???а??? ?? ? ф ?ウ ?Linux ??? ? ?

??????????? ? ?? ???? ? ? ??? ??а???? ? ? ? ?? ? ? ? ? ? ?? ?↓ ?????????? ??а?? ?Leland L. Beck ????? ? ???? ? ?а? ? ?? ??? (SIC)?? ? ??? ??? ? ???? ? ? ??? ??? ? ?? ? ?仈???? Linux? ?? ? ? ?? оLeland?а??? Linux ? ?? ?? ?? ? ?? ?а?? ??? ? ? ??Linux ?? ??

??? ???? ? ????????? ? ? ??? ??? н??а?オ???? ?? ?? ??? ?????

?? ? ? ? ?? ?? н?? ? ???Linux ?? н ? ???VFS? ? ????? ?? a.out ? ? ?а?? ?? ???? ???? ? ?Linux ? ? ?? ? ? ???↓ ? ?? ????а??? ? ?? ???а? ???儈? л ? ??

?? ?????? ?

↓ Linux??? ? а? ?? はк ??????а???????↓?? ?а ??? ????RTFSC – Read The Fucking Source Code???? ? а? ? ?? ??н????? ?? ? ?????? ? ?????? ?? фн??↓??а? ???? ? ? ??

??????а? ?? ?? ??? M.J.Bach??UNIX ??????? UNIX 学 ??? ? а???к? ??? ?к ????↓? ? ? ?????н ? ?↓ AST ???ā? ?? ? ????? ?ā?ā ?? ???? ???? ?? ? ? ? ?I/O? ? ?? н?а亥???? ? ? ?

??KWWS ROGOLQX[ RUJ /LQXV

?

??й ?а??? ??ā ?? ?????? ? ? н??????а??↓? ?? ?? ? ????? ? ????? ? ? ?? а??? ? ?? ????? ?? ? ????? ? ? ? ?????? ? ??н?? ?仈? к??亪 ?? ??? ?

? ???? ????

??? ?? ?? к???? н? ? ? ? ??? а?? ?Linux ?? ?? ?? 儈 ?? ? ? ??? ? ?? ???? ? ? ?? ?о? Linux ? ?????? ? ? ?0.11? ? ? ? ?? ? ?л а???Linux ?? ? ????

? ?Linux ?????? ?з?? ?к?2.6.0? ???? ??592з?? ? ??? ?? ?? ? ? н ????0.11? ?н??2з????? ? ? а ???? ?????哫?? ??? ??? ?ウ??? ???? ? ? 傼 ? ????? ??у?? ? ?? ?? ???Linux 0.11????? ? GNU gcc ??? ? ? ?????? а?? ? ?

? ??? ?? ?? ? ?? ? ? ? ? ??? ??ウ? ? ???VFS?ext2 ext3 ?????? ??? ? ? ?? ???

?? ?? ? ???

?? ? ??? 享 а? ?C???? Intel CPU??????? C?? ? ?? ?? Brain W. Kernighan Dennis M. Ritchie? ??The C Programming Language?а????????? ? ?? а ??оIntel CPU? ????? ? ???а? ?????? ? ??? ? GNU gcc?? ?? ?? ??Internet

?

?к ? а? ???? ? ?? ? ??? ?а? ?? ???? ??5.5?? ? ??

??? ?? ?? ?ла? ??? ? ? ? ??? ??? а 80x86 ? ? ????? ? ? ???кл??80x86?? ?INTEL 80386 Programmer's Reference Manual?? ? 80x86????? ????? ? ? ? ??? ? й? ? ?Linux???? ??

???Linux?? ? ? ? M.J.Bach??UNIX ?????а?? ? ??????? ? ? ?? ???? ? ?? ? ??? ????? ??? ?????

Linus Linux ?? ? ??MINIX ??? ? ?Linux ?? ? ?MINIX 1.0 ???? ?? ?? ? ?A.S.Tanenbaum??? ?????о ??? ? ? ?? ??Tanenbaum?? ?? а? ?? ?? ? ? ????? ? ? ???оLinux ?? на?? ? ?? ? ? а? ?? ?ㄐ? ??? ?? ?

? ? ? ?

??? ? Linux ?? ??? ? Linux ?? Tanenbaum ?? ?? ??Linux is obsolete? ?а????? ? ? ? ? ?? ? ? ?Linux ???? ?????? ?? ? ?? 儈? ? ??? ? ? ? ?? ф ???а?? ?? ???? ? л ? ?? ? ?? ? ???? ? а?? ? ??? ??? ? ? ? ?а?? ? ????????? ??н?? ???? ? ?? ?????

Ext2 ???фMINIX ???

? Linux??к ??Ext2? ?Ext3? ??? ?1.x? ?? ?? ф ??? っ ? ? Linux ??к唈??? ????? ? ? Linux ?? ? ? ? ??? ? к ???? ???? а? ?? ???? ф?н? ? ??? ? ??? ?? ? ? ?? ?? ? ????? ?? ?? ? ?? ?? ? ?

Linux ?0.11?к ? ?? ?MINIX 1.0 ???? ???а? ??? ???? ?? ? ?? ??? ? Linux ?? ?? ???? ?а?

?? ?? ?? ? ??? ?ā ?Linux ???? ? ?? ???ā?? ? ? ? ?а? ? Linux ?? ? ? ? ????

?

??

2007.6.

/LQX[???

?1ㄐ ??

ㄐ俆 亮?Linux ????? ??????? ??? ?????? Linux ?? ? ? ? ??а? ?? ?? ?? Linux ?? ?? ???? н?? ? ? ?а? ?? ㄐ? ????????

1.1 Linux ???

Linux ?? UNIX ???а? ???? ???1991 ?10 5 ?? ?а?↓ ? ???? ?Internet ????? ц? ?? ? ?? ?? ? ?ц?к ? ?а?UNIX 学 ??? ф ?? ? ?? ??

Linux ?????? ??? ???л???? ??UNIX ???MINIX ???GNU ? ?POSIX ? Internet ???л?? ??? ?? ? алLinux ? ?? ?????? ? ? ?俆 ?? ?? ? ???? ? Linux ? ?Linus Torvalds ? ?? ??? ?? ??? ? ??? а?? ? ??? Linux ?0.01? ? ?? ??? а?а?? ц?hacker ? л ?? ?1.0? ?? ?? ???? Linux ? ???????

??? Linux ?? ? ?2.6.x ??? Linux ??? ? ? ? っ ?

2.6.12? ?? ??2? ? ?? ↓ ?? ?н? ????っ ?? ?Linux ?а? ?? ㄐ ??? ????? н? ?

1.1.1 UNIX ?????

Linux ?? UNIX ???а? ?? ?UNIX ?? ? ? 傼 ?Ken.Thompson Dennis Ritchie ?1969 DEC PDP-7 ?? к ?а? ??? K en Thompson ??? ??н??PDP-7?? к???? ?? ? ??Space travel ?⑨ ?? 1969 ?? ? ? ? ?? ?? а? ?UNIX ??? ? ?? BCPL ??? ? ?????? ?Dennis Ritchie ?1972 ??? ?C ????? ? UNIX ?? у?? ? ?

1.1.2 MINIX ??

MINIX ?? ?Andrew S. Tanenbaum ?AST ? ??AST ? Amsterdam ?Vrije о?? 、 ?? ? ACM IEEE ???? ( ц?? ? ?????? )? ??100 ? ㄐ?5 ?? ???

AST ? ? ? ???? ? ?(1914 ???? ? )?? ??к?? ?M.I.T к? ? ? Berkeley ? ? ????? ?? ?? ? ?? ??? о ?а? ? Vrije ?? ?ウ??? 俆?Amsterdam ? ????? ?? ?AST ??? н??? ? ???? л? ?? ? ???? ?? MINIX ?1987 ? ?????? ? ? ?? ?? 1991 ? 1.5?? ?? ??? ??1.5? 2.0?? ? ?? ? ???? ??? н ? ??

/LQX[???

MINIX?? ? ??? ??? FTPкл??

?Linux???? ?? ?Linus????????Linux? ????? MINIX? ??? ? а? ? ? ?? ? ц?? ? MINIX ? ??? ? ??? л? ?Linus? Linux??? ?Linus?↓ ???? ? ?а? ???MINIX н ????? ??C?? ????? ???????? ?а? ??? hacker? ?? ??????? ?????? ?? ?а? ??〈 ?

1.1.3 GNU?

GNU? ???? ??FSF(the Free Software Foundation) ?Richard M. Stallman?1984 а ?? а?学?UNIX ф ????? ???GNU???GNU "GNU's Not Unix"?? ? ? ? 丣?"guh-NEW"?? ? ?Linux ?? ?GNU ??↓ ? ?? ????????? ?? "Linux"?? Stallman????? ?? ? ????GNU/Linux???

кц?90 ? ?GNU亩? ? ? 儈??? ???? ? ?emacs?????bash shell? ?gcc? ??? ?gdb??? ????????Linux ??? ??а? ??? ?? Linux? ??? ??а????? ? ?? Linux ????āGNU/Linux” ???

1.1.4 POSIX?

POSIX?Portable Operating System Interface for Computing Systems? ?IEEE ISO/IEC ?а祝? ??? ?? ?UNIX ? ?傼? ?? ????? ??? ?? ? ?? ? ???а?к ? ??к?? ??? 1980 а?UNIX? ?(usr/group)? ?к ???UNIX? ? ? AT&T?System V ?? Berkeley CSRG?BSD ????? ??? ? ? ? ? ?1984 ?/usr/group? ?

1985 ?IEEE ?? ?? ? ??TCOS-SS? ANSI? л? IEEE ? ? ? ??? ?? ?? ↓ ? ? ?1986 4 ?IEEE ???? ??а?↓ ? 1988 9 ? ??IEEE 1003.1-1988??? ? ? ?POSIX.1? ?

1989 ?POSIX? ????ISO/IEC? ? ?15 ??? ISO? ? 1990 ?POSIX.1о ????C??? ? ?↓ ?IEEE 1003.1-1990?? ANSI? ? ISO/IEC 9945-1:1990? ?

POSIX.1?? ??? ?? ?? ?API???? ? ??? ? ? ? ? ??? ? ?? ? ???IEEE POSIX? ?? ? ?? ??? ?300 ? ? ? а ????? ? ?о ? (POSIX.2)??? ?? ?POSIX.3?? API?POSIX.4??? ?1990 к ? 25?? ??? ф 16? ? о?? ?о? ?? а???? 学??? ? X/Open?AT&T?OSF??

90 ? ?POSIX? ? ↓ ? ? ?? 1991-1993 ??? ↓ Linux ??? ???UNIX? ?Linux ? ???? ? Linux? ? ? л?? ? ? о? UNIX ?? ? ?Linux ??????0.01??0.11?? ??Linux??оPOSIX? ? ? ? Linux 0.01? ??/include/unistd.h ?? ? ?? ? POSXI? ???? ??фLinus ??? ??āOK???? ????? ↓ ? ?ウ ā?

/LQX[???

1991 7 3 comp.os.minixк ?postк ? ?↓ ?POSIX?? ? ?????↓ ? а? ??? ? ф ? ? ? ?оPOSIX? ??仈??

1.1.5 Linux ?????

1981 ?IBM ??? ?? ?? IBM PC? 1981-1991 ??MS-DOS ??а? ?? ???? ?? ?? ??????? л????????? 儈нл? Apple?MACs ?? ?? ? ??? ? ??? ? ??? ? а??? ?? UNIXц??? UNIX ?? н? ?? ???仈???? ?儈 ???UNIX?? ? ?? 儈?PC ? ? н??? ? ?а Bell Labs ? ?? ??? ?UNIX????а?? ?н? ? ? ?PC? ????ъ? ? ?? ? ?? ???仈? ??

↓ ? ? ??MINIX ??? ф а ? ?? ? ??? ????AST?? ? ?? ??? ф ? ??? ? ц???? ? ?? ?? ??? ??? ??? ?? ?? Linux??? ?Linus Benedict Torvalds? (1991 )?Linus Benedict Torvalds ? ? ?? 、 ??? ? ??? а?? ??? hacker???21 ?? ?? ?啃 ???? ????? ? ? ? ?? ? ??? а?уъ?? ???

а ??GNU? ? ?? ??? ? ??GNU C?? ? ????? ??GNU ??? ??MINIX ??? ?? ????? ? ??????GNU? ??HURDа? ???? ? н? ???? ??? ??? ?? ?? ?-??Linus ? ??? ? ?????а 386 ??? ?? ???а MINIX????? ? MINIX?? ??Linus?? ?? Intel 80386???????????Modem ? ??? к?? ????? ?80386 CPU? ? ? ? а??ㄟ??? ?? ?? ? а ? ??к??? ??к??????傡 ??????? ? ? ?傡 ? ?

???? ?? ?????? MINIX???? ? ?MINIX?? ?? а??? ??? ????н а? ? ? ?????ф??к? ?Linus ? ?а?学?? ????? 傡 ? ????? ? ?? а? ??? ??? GNU? ? ? ??? ? ??GNU C?? ? ????GNU? ? ??HURD ↓ ???Linus ??н ??

?1991 4 ?????? ?ㄟ??? ??傡 ? ? ? ?? ? ?? ? ????? ? ? ?? ?Intel 386??? ? ?? л??? ?? Linux ? ? ??? Linus comp.os.minix ??к ?? ? ? ??????? ?MINIX???? ? ?Linux??????

Linus?1? comp.os.minix ?? 1991 3 29 ? ?仈? āgcc on minix-386 doesn't optimize”, gcc?? MINIX-386??к??? ??仈?MINIX-386 а??Bruce Evans ?? ?Intel 386? ?32?MINIX?????? ??Linus 1991 ? ? ?ウ?MINIX??? ?? ? ? ?MINIX ??? ? ?а? ?MINIX??? ??? ???╄ ? ??а? ?Intel 80386??? ? ??? ?? ? ? MINIXк?а??仈 ? ???а ? ā?????ā?“RTFSC (Read the F**ing Source Code :-)”??????? ?? ????? ? ? ????? ?? ?н ?? ??? ?????? ???? ? ???? ? ?? ????ㄏ ??? ????? ????? ??仈??? ??? ??? а??? ??? ? ? ?哫??к?а????

/LQX[???

?1991 4 ? ?Linus ???? ? ??ウMINIX-386??(Hacking the kernel)? ф ????GNU ??? ???к(GNU gcc ?bash ?gdb ?)? ?4 13 comp.os.minix к ?? ? bash ?? ?MINIX к??ф ??н? ?н?? ??shell ????

?а?оLinux ?? 1991 7 3 comp.os.minix к ?? ??? ?н Linux ?? ?? Linus ? ? ? ? ? FREAX -?FREAX ?? ? ??? ?? ??? ?????↓ ??Linux ??? ? ф ? ? ?оPOSIX ??仈??

Linus а? ?? ?(1991 8 25 comp.os.minix)?? MINIX ? ??ā MINIX ???? ???”(āWhat would you like to see in minix?ā)? ?? ??俆??? ↓ а?( ??)386(486) ??? ф? ?? ???н? ??н??GNU ???уъ? 侸а? ?MINIX ??? ? ???н ???? ? ф? ?? ? ?а? ? ??? оMINIX ?? ф ??MINIX ? ????? ф ? bash(1.08?) gcc(1.40?)?? ? ??к??ф ? ? ? ???

?Linus ? ? ??? ?а?MINIX ??????ф?? ??386?? ? ? ?? ??н ???? ?? ?? ф ? ?AT ??? ?Linux ??? ?仈?Linus ? ???? ? Linux ? ??? ??а?????? к?

?1991 ?10 5 ?Linus comp.os.minix ??к ? ?↓ Linux ???????Free minix-like kernel sources for 386-AT ????? ???Linux ??? ?? фа? ???? ?10 5 Linux ? ? а???? ?? Linux ? ? ?? ??? ? ?RedHat ? ?? ? ???н ???

1.1.6 Linux ??? ? ?

Linux ????? 1.0?↓ ?? ??1?1? ??а???? ?Linus 2003 9 ? ? ?? ?? BitKeeper ?к??1.0? ? ? ???а?? ?к?Linux ?? ? 0.00??? ?? ??Linus ? ?80386 к 傼 ?? л??? ?? ?? ? ??? к ?? ? ??? ?? ? ?? ?а?? ?Linux 0.01? ? ?1991 9 17 ? ?? Linus ?? ? ? ?? ?? ???include/string.h ?? ?а?? ??? ????傡 ? ?????? ???? ?? ? ???? 8MB ?? ???Linus а? ?? ?? ?0.02?0.03? ?????? ? ?? ā ?????

? /? ?

0.00 1991.2-4 ????? к ?’AAA...’ ’BBB...’????? ?

0.01 1991.9.17 ?а?↓ ?Linux ?? ? ?? ???? ? 亥 ????н ??傡 ? ?

0.02 1991.10.5 ?? ? 0.03? ?? ?? ? ? ??? к?

0.10 1991.10 ?Ted Ts’o ?Linux ?? ? ? ? ? boot ? ?

а? as86????? gas ?????? ? ?

0.11 1991.12.8 ?↓ ??? ?? ? ?? ?傡? ? ??? ?

0.12 1992.1.15 ?? ? ? ???? ? ? ? ъ ?? ? ?? ? ? ?swapping ? ??

0.95.x

( 0.13)1992.3.8 ? ??? ??? а?MINIX ???? ??

?? ???傡 ? ???? ?? ??? ? ?

/LQX[???

оMINIX ???? ?? о? Linux ???? ?

CDROM ?

0.96.x 1992.5.12 UNIX Socket ? ?ext ???alpha ??? ?SCSI 傡

? ?↓ ????学 ? ? ? ???傡 ?儈?? ?

??? ?? ? ? ???X-Windows ? ? ?????

???傡 ? ?? C ? ?о0.95 ????? ? ?

0.97.x 1992.8.1 ? ?SCSI 傡 ? ? ? 儈?? ??msdos ext ??

? ? ?啐?傡 ? ? ?? ? 3GB ?

0.98.x 1992.9.28 TCP/IP ?0.8.1???? ??↓?extfs ????? ? ???

?mm ?????? 4GB ?? オ?? ? ?1GB ???0.98.4 ?

??? 256? ?? 32??? ф??? ? ??? ?

а? 亥??

0.99.x 1992.12.13 ? ???? ? ? ?????? 4G ? オ??н ??

????NFS ?

1.0 1994.3.14 ?а?↓ ??

? ?0.10? ??? Ted Ts'o л ?? ?Linus ? ?? ?? ???? ?? ?? ???? ??? ????к ?? ?GNU gcc ?? ?? ф ?/ ??mount/umount ? ???? ???? ?? ?Linus ??? ??? ?? ?"(C) 1991 Linus Torvalds"??? ? ?а? ? ? ? boot/boot.s boot/bootsect.s boot/setup.s ??? ?? 16MB ?? ???傡 ? ??? ??? ? ? ?? ???傡 ? ?? ?亴? ?? dev/port dev/null ? ??? ?kernel/signal.c ???? ? sigaction()? ??

? 0.10? ??Linux 0.11?? ? ????? ? ?а???っ ?? ? ф ?? о ? ???? ??? ?? ? ?? ?? ??? ??? ?/etc/rc ??? ?? ? ??? ? ? ? ??Ted Ts'o ? ? ? ? ?????Galen Hunt ? ? ? ? ??John T Kohl ?kernel/console.c ? ? 呓 ? KILL ??? ? ?????? ?

Linux 0.12 Linus ??┑ ? ?? ?? а? っ ? ?? 1991 ? ?? ???? ?? ??????? ? 2MB ? к?? ??gcc ??ā ā?????? ?Linus ? 1.0 ?? ?н ???? ???? ??? ла?? ?0.13?? ?0.95??Linus ?? ? а? ? н?? ?1.0?? ???? ??0.95? ? ? ?? ? ??? ?0.95? ? Linux ? ? ??? ?仈? Linus ? ?? ?а? ???н?? ? ???? ??? ?? ? ?? ?????? ???? ф? ? ?? ?↓ ?0.12? ???? ? ??Ted Ts'o ? ? ?ㄟ ? ?? ? ?? ? ?? ↓?а? ?IO ??ㄎ? ??? ? ? ? ???? ????? ? ??? ?? ??????Peter MacDonald ??? ?ㄟ ? Linux ?? ??? ъ?UNIX ?? ?а??? ? select() ?? Peter MacDonald ? а???MINIX ??б? ? ?? MINIX ? ?????б? ?? ? ????????Linus ? ? ??????

0.95? ?а? ?GNU GPL ? ?Linux ?? ??? ?к 3? ? ???1992 3 8 ?1?0.95? ? ?а??仈? ?? н 10 ?3 17 ? ? ? а?0.95a ?? 1? ?4 9 ? ?0.95c+? ??? ? ?? ??? ?

/LQX[???

??VFS ? ??? ?? MINIX ????? ? ? ?? ? ?????? ? ? ? MINIX ??????? ?? ?а?MINIX ? ??0.95? ?? ?а? ? ?? ?? ????Ross Biro ? ??????ptrace ?????傡 ??? ???? ?? ? ????? ?Ctrl-Alt-Del ??swapon()??????? ? ? ? ? ?? ? ? ? ?? 4???ㄟ ?? ?? ?? ?学????James Wiegand ? ? ? ? 傡 ? ??

??0.95? ? ??? ? ? ?б? ? ? ???????Linus ???? ??? ?????б? ? ? ?→? ? ?? 2005 11 9 ?2.6.14?? ? ?16000? ?? ?gz ? ????? ? 47MB ? ???っ ? ? ???1–2 ??? ? ???? ?

?? ??? (?gz ? )

2.0.40 2004.2.8 7.2 MB

2.2.26 2004.2.25 19 MB

2.4.31 2005.6.1 37 MB

2.6.14 2005.11.9 47 MB

1.1.7 Linux 〦??

Linux ?? ? ?? Linux ?Linus ??? ?? ?FREAX ? ? ? ??? ?? ? ? ? ? ??к? ftp.funet.fi к ??? Ari Lemke н ??? ????? ? Linus ? ?? ?丣Linux ?? ???? ?? Linux ?? ? ??л ?

Linus ????Just for Fun ?а???Linus ???2?

ā ? ?? ? ? ???Linux ?? ? ?? ??? ??? ? ????? ? ? ? ? ?? ?Freax ? ?к? ?????? ?Makefile - ?? ? ??????? ? - ?? ? āFreax”?? ?? ? ? ?? ????? ?? ?н??а? ? ? ?? ??? ? ????ā

ā?Ari Lemke ?? ??? ? ??? ftp ㄉ?к? ф? н ?Freax ?? ?? ??? ?? (Linux)? ? ? ?? ?????? ? ? ? ? ? ↓ ? н??? ?? ? ? ? ??? ?? ??? ? ??ф? ??? ?? ?? ? ? ????ā

1.1.8 Linux ?? ??????

?Linux ???? ?? ?Linux ??? ?? ? ??Linus ?? ? ? ?? ?а Theodore Ts'o (Ted Ts'o)???1990 ?ъ?MIT ?? 、 уъ? ?? ? ??? ? ? ?? ?? ??侚?僁???? ?? Hacking on Linux ? ? ??ъ ?? ? ?? ? IBM ?????? ???? ??? ?????? ?? ?ウ? ?IETF ?

Linux ц?? ???? ? ? ? Linux ?? ?ц ?? ? ??

/LQXV 7RUYDOGV?-XVW IRU IXQ?? 亥?

/LQX[???

?linux ? ?Maillist ? ? Linux ??? а? ?Linux ????? Linux ?? ? ???Linux ?0.10???? ?傡 ? ramdisk.c ? ?? kmalloc.c)?? ? ?→??????оLinux ? ? ?? ? ???Linux ?ftp ㄉ??ad1cbc23af45b307e8719772 ???ф?ㄉ?????? Linux ? ?? Linux ? ???а ??ext2 ????? ???? ?Linux ц??? к? ???? ? ?? ?ext3 ??????? 儈? ????っ ?? ?? ? ?? ??97 ?2002 5 ??Linux Journal ? ?? ???? ???????? ???IBM Linux ? ? ??? Linux ? ??LSB(Linux Standard Base)? ?? ?

Linux ? ? а?? ?? Alan Cox ?? ?? ? (Swansea University College)? ?? ????⑨ ? MUD ?Multi-User Dungeon or Dimension ? ? ??⑨ ?? 90 ? games.mud ???posts ? ? ? ?? ? ??????? ?а?MUD ? (rec.games.mud ???1992 3 9 ?A history of MUD)?

??MUD ⑨ о?? ? ? ? ?? ????? ????⑨ 儈????⑨ ?? ? ????? ????? а? ?┑ ? ?? ? ? ?学 ? ???????? MINIX ?????н?? Linux 0.11 386BSD ?????? ????а 386SX ?????386BSD ?? ? ????Intel 386SX CPU ??? н ? ?? ?? ??Linux ???? ? ? ?????Linux ? Linux ????? ?? ?? ?? ?? ?Linux ? ??? ?仈????????? Linux ? (beautifully)?

Linux 0.95? ? ?? ?Linux ??? ?б? ? ? ??? ? ????б? ??? ?Linus ???? ?Linux ??кTCP/IP ????? ???а? ??? ?Linux ? ??? ?? Linux ???????????а?? ?? ?Linux ? ??Linus ? ???????? Microsoft ???? ???? ? ????2001 ????? Linux ?2.4.x ?????Linus ???? ? ??? ( ??? 2.5.x ?)?

? ?唁 ??The Linux Kernel Hackers' Guide ?а?? ?Michael K. Johnson ? ?Linux ?????а(?0.97?)??? ? Linux ?? ?Linux Document Project - LDP ?? ???а? ? Linux Journal ? ?? RedHat ?

Linux ?? н ? ??? ? ? ? ??? ??? ? ?? 儈 Linux ? ?????? наа ????????? ? ?Linux ???CREDITS ?? ?? ?亪 ? Linux ? ????400?? ?? ???email ? ??亥? ??????? ?

??к?? ? ? ? к?Linux ?? ? ? л?

UNIX ?? -- UNIX ?1969 ?? Bell 傼 ?Linux UNIX ?а? ????UNIX ??? н? ???

MINIX ?? -- MINIX ??? UNIX ?а? ???? ?1987 ?? ?? Andrew S. Tanenbaum ???MINIX ??? ? ф ???( ? ??? ) ц?? ? ?? ?UNIX ?? 仾?Linux ?MINIX ???1991 ? GNU ? -- Linux ???? Linux к ? ?? к? ?GNU ? ?Linux ???а? ??? GNU ??? (? ?bash shell)? Linux ????

POSIX ? -- ?? Linux ??? ?↓??к ????? ?? Linux

??

??? ?

INTERNET -- ? Intenet ??? ? ц?? ?? 唁 ? ? ????Linux ? 0.13(0.95)??≤ ?

1.2 ??

?? Linux ? ?0.11????? ? ???Linux-0.11? 1991 12 8 ?? ?л ??

ERRWLPDJH = ? ????? ? ??

URRWLPDJH = ? N% ??? ??? ??

OLQX[ WDU = ???? ?? ? .%? ?? .%?

DV WDU = %UXFH (YDQV ?? ? ?? ????? ? ? ? ,167$// ?? ? ??

bootimage.Z rootimage.Z ???? ?Image ? ??bootimage Image ?? ??? ?? ??? ?? ?? ? ????PC ROM BIOS ??? ? 唈? 傡 к? ?? ? ?? ?? ?? ?? ?? ? ???? ??? ?? ?? ?? ?а? ?? ? ? ?? ? ?? ???? ?????↓ ?? ?? ???? ?rootimage ?? ? ?? ???? ? ?? ???а??? ? ? ?? ? ?Linux ??? ??UNIX 学 ???? ??? а?? ?? ??? ??? 傡 ? ? ? ? ?? ??????? ? ? ?а ?DOS ????

as86.tar.Z 16??? ? ? ?? ?linux-0.11.tar.Z ??Linux 0.11 ?????INSTALL-0.11 Linux 0.11???? ?? ??

? ?? ?rootimage.Z ?? ? ? ? ? ?н? ? ? ?Internet к????Linux 0.11? ?а? ? ??rootimage-0.11? ???? ? ? ?? ? 0.11? л ??gcc 1.40?? ??? ?? 傼 ? ?? ??? ? ??ad1cbc23af45b307e8719772 ?ㄉкл?? ?л?? ?? ?

ad1cbc23af45b307e8719772/Linux.old/images/ ?? ? ? ? ? ?bootimage ?

??? ?rootimage ?

ad1cbc23af45b307e8719772/Linux.old/kernels/ ?? ? ????? ? ? ??Linux

0.11 ????? ?

ad1cbc23af45b307e8719772/Linux.old/bochs/ ?? ? ??? ??? ?? ????bochs л

?Linux ???

ad1cbc23af45b307e8719772/Linux.old/Linux-0.11/ ?? ? ? Linux 0.11??? ?? ?а?

? ?а? ?? ? ??

???? linux-0.11 ??? ???? ? ???? ?????????? Makefile ????? ???? ??? ?????? ? ??? ? ? ??shell ? ?→? ? ?? ? ???? ?? ?? ? ? ?? ? ????????? ? ?а? ? ?

??

?? ??? ? ??? ?????? ? ? ? ????????? ? ???? а?? C ?? ??? ? GNU C ??? ?????????????? ? ? ??? /? ? Intel ? ?8259A ???? ???? ? ?? ? ???? ? ? ?????? ? ??? ???? ? ?? ??????? ??? ? аㄐ ????? ???? ?儈 ?

Linux 0.11? ? ā ā ?? 儈 ???Linux ?? ?? ??Linux-0.11? ? ???? 325K ? ? ? ? к? Linux ??儃??? ?2.6.XX ? ?? ? 200 ?? ?а??? ??? ? ??? ??? ??ā ???? ????н ?Linux 0.01? ???? ? 240K ? ā?? ?0.01?? ??? ?н?? ????? ???傡 ? ??? ? ? ? ?? ??? ?? ? ф ? ?? ?о? ?? н а???0.11?? ? ? о? ? к а??? а? ? 0.11? ? ??? ? ? ?(bootimage)? ?? ?? ╄?? ?к? ?? ??? ?(rootimage)??? ???↓ ?????

Linux 0.11??? ?? н?? ?? ? ?? ? н у????? ? ?TCP/IP ??? ??а? ? ?????? ? ? ?о??? ?? ?? Linux ?????? к ? а???о ? ?н ? ? ? ? ???Linux ? ?? ?????

Linux ?? ???????? ??? ? ? ? ???? ? ??????? ? ???? к ????????? ?аㄐ ?????????? ??? ? ?? ? ?? ? ?Linux ?????? ? л ?1.1 ?? ? ? ?linux ? ? ?

? 1-1 Linux/? ?

*07 ? ERRW

IV

LQFOXGH

LQLW

NHUQHO

OLE

PP

WRROV

? ? ???? ??1ㄐ??4ㄐ ???? ? ??о ?????? ? ? ?? ???? ????? ???? ?????? ? ? ? ?? ??? ???? ??? ?? ??? ?? Linux ?? ??????? Intel 80X86 ? л??? ????? ?5ㄐ??7ㄐ? ? ? 32??? ? ??? ? ? ?? ? ? ???????й? ??8ㄐ ?13ㄐ ???????

??

? ??8ㄐ ? ????? ?ㄐ?????? ????14ㄐ ?16ㄐ ? ? ? ? ????й? ???? ? ? а? ? ?17ㄐ ? ???? ? ?PC ? ????Bochs? Linux 0.11 ??? ? 傼? ?

?2ㄐ俆 ??? ?????? ? ?????Linux ????к?IBM PC/AT386 ?? ? ??? ???? ? ? ?? ?? ?о? ?? ? ? ?????? ???? ??? ? ???? ? ? ?

?3ㄐ??Linux 0.11 ?? ????????? ?? ??? ????? ??Linux 0.11 ???? ??????? GNU C?? ??? ㄐ俆 ???? ???as86 GNU as ??? ??? ? ??? GNU C???? ????? ?? ? ?? ? ? ?C?? ??? ? ?? ??C ?? ??????? ? ? ??Makefile ?? ? ??

?4ㄐ???? ?80X86 CPU???? ? ? л???а? ????? ?? ?80X86 CPU?Linux ???? л ?? ??? ?80X86 ???? ? ???? ??? ??? а?? ? ? ?? ?

?5ㄐ?? ??Linux ?????? ? ???? ? ????? ? ?? ? ? ??????Linux ?? ? ? ? ? ?? ? ? ? ? ? ? ? ?? ?? ?? ?Linux/? л? ? ??а? ??? ???? ?Makefile ?? ?? ? ??? ??????? ?? ???? ??make ???6ㄐ ????boot/? л?й???? ? ? ?? ? bootsect.s?? BIOS? ?setup.s??? 32??? ??? head.s??й???? ? ?? ? к ? ? ? ???? ?? ?? ?? 32? ? ??? ? ?? ??? ??а?? ? ?

?7ㄐ????init/? ? ???? ? main.c? ? ? ↓ ??? ? ? ??? ? ? ???shell???? ???? ???? ??? ?? ? ? ?ㄐ???? ? ??????亪 ????? ??? ? ??? ? ?? ??ㄐ ? ??? ??↓? ? main.c? ?→? ? ? ? ? Linux ? ?а ???? ?? ? а ??-?? ??? ????????? ?傡 ? ??? ?а?????

?8ㄐ????kenel/? ?? ? ? ? ???? ??? schedule()?sleep_on() ?????? ?? ? ? ??а???? ???? ㄐ ? ??? C??? ? ???? ? ??? ? ??? ??3ㄐ?? ??9ㄐ kernel/blk_drv/? ?? ? ? ?????? ??ㄐ?? ?????? ? ?傡 ? ???? о ??? 儈?? ??? ? о??? ? ? ?? ???ㄐ ? ?а???? ? ?俆 ??ал ????ㄐ??

?10ㄐ kernel/chr_drv/? ?? ?? 傡 ? ????? ??аㄐ???? ????傡 ? ???傡 ? ? 傡 ? ???傡 ? ?0.11 ? ????ㄟ ?ㄟ? ? ? ㄐ? ? о?? ? ? ?? ?? ?ал? ???????11ㄐ??kernel/math/? ?? ? ???? ??? ? ??? ?? ??? ?↓ ? ? ? ㄐ? ? ????? ? ? а? ??? ??12ㄐ?? ????fs/? ?? ???? ? ??ㄐ ? ? ал? ??Andrew S. Tanenbaum?? ????о ??а?? MINIX ????ㄐ?? ? ?Linux ?? MINIXа? ????Linux 0.11??н ?

?13ㄐ??mm/? ?? ??? ??? ??? ?? ? ? ?? Intel 80X86 ? ? ? ?? ? ???? ? ?? ㄐ? ??? ? ? ㄐ ?

本文来源:https://www.bwwdw.com/article/jine.html

Top