資源簡介
供初學者學習查看
Linux系統目前發展的如火如荼不管是在嵌入式領域,還是服務器,甚至個人PC都有廣泛使用,由此引無數英雄好漢相繼加入學習Linux的行列,而這其中定有人想一探Linux內核的究竟。
但是現在Linux內核版本已經5.3.5的版本了,內核相當龐大,幾百萬行的代碼,并不能輕松的閱讀。而早期的Linux內核源碼比如0.11版本的,代碼數量較少不到兩萬行,而且幾乎就是現在內核的精簡版本,基本功能原理與內容也都包含,因此非常適合學習。(0.11之前的源碼都已丟失,現存的0.10是Ted Ts'o保存下來的,0.11更完善一些)
而且源碼面前,了無秘密。相信在讀懂源碼之后可以對自己的知識能力和解決問題的能力可以更上一層樓,更了解操作系統的原理與設計,深入理解底層的機制,這絕對是內功。
代碼片段和文件信息
/*
?*??linux/fs/bitmap.c
?*
?*??(C)?1991??Linus?Torvalds
?*/
/*?bitmap.c?contains?the?code?that?handles?the?inode?and?block?bitmaps?*/
#include?
#include?
#include?
#define?clear_block(addr)?\
__asm__(“cld\n\t“?\
“rep\n\t“?\
“stosl“?\
::“a“?(0)“c“?(BLOCK_SIZE/4)“D“?((long)?(addr)):“cx““di“)
#define?set_bit(nraddr)?({\
register?int?res?__asm__(“ax“);?\
__asm__?__volatile__(“btsl?%2%3\n\tsetb?%%al“:?\
“=a“?(res):“0“?(0)“r“?(nr)“m“?(*(addr)));?\
res;})
#define?clear_bit(nraddr)?({\
register?int?res?__asm__(“ax“);?\
__asm__?__volatile__(“btrl?%2%3\n\tsetnb?%%al“:?\
“=a“?(res):“0“?(0)“r“?(nr)“m“?(*(addr)));?\
res;})
#define?find_first_zero(addr)?({?\
int?__res;?\
__asm__(“cld\n“?\
“1:\tlodsl\n\t“?\
“notl?%%eax\n\t“?\
“bsfl?%%eax%%edx\n\t“?\
“je?2f\n\t“?\
“addl?%%edx%%ecx\n\t“?\
“jmp?3f\n“?\
“2:\taddl?$32%%ecx\n\t“?\
“cmpl?$8192%%ecx\n\t“?\
“jl?1b\n“?\
“3:“?\
:“=c“?(__res):“c“?(0)“S“?(addr):“ax““dx““si“);?\
__res;
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-10-15?14:54??Linux-0.11code-master\
?????文件????????2887??2019-10-15?14:54??Linux-0.11code-master\Makefile
?????文件????????3963??2019-10-15?14:54??Linux-0.11code-master\README.md
?????目錄???????????0??2019-10-15?14:54??Linux-0.11code-master\boot\
?????文件????????5052??2019-10-15?14:54??Linux-0.11code-master\boot\bootsect.s
?????文件????????5938??2019-10-15?14:54??Linux-0.11code-master\boot\head.s
?????文件????????5364??2019-10-15?14:54??Linux-0.11code-master\boot\setup.s
?????目錄???????????0??2019-10-15?14:54??Linux-0.11code-master\fs\
?????文件????????5053??2019-10-15?14:54??Linux-0.11code-master\fs\Makefile
?????文件????????4042??2019-10-15?14:54??Linux-0.11code-master\fs\bitmap.c
?????文件????????1422??2019-10-15?14:54??Linux-0.11code-master\fs\block_dev.c
?????文件????????9072??2019-10-15?14:54??Linux-0.11code-master\fs\buffer.c
?????文件????????2103??2019-10-15?14:54??Linux-0.11code-master\fs\char_dev.c
?????文件????????9134??2019-10-15?14:54??Linux-0.11code-master\fs\exec.c
?????文件????????1455??2019-10-15?14:54??Linux-0.11code-master\fs\fcntl.c
?????文件????????1852??2019-10-15?14:54??Linux-0.11code-master\fs\file_dev.c
?????文件?????????122??2019-10-15?14:54??Linux-0.11code-master\fs\file_table.c
?????文件????????6933??2019-10-15?14:54??Linux-0.11code-master\fs\inode.c
?????文件?????????977??2019-10-15?14:54??Linux-0.11code-master\fs\ioctl.c
?????文件???????16562??2019-10-15?14:54??Linux-0.11code-master\fs\namei.c
?????文件????????4340??2019-10-15?14:54??Linux-0.11code-master\fs\open.c
?????文件????????2385??2019-10-15?14:54??Linux-0.11code-master\fs\pipe.c
?????文件????????2802??2019-10-15?14:54??Linux-0.11code-master\fs\read_write.c
?????文件????????1175??2019-10-15?14:54??Linux-0.11code-master\fs\stat.c
?????文件????????5628??2019-10-15?14:54??Linux-0.11code-master\fs\super.c
?????文件????????1148??2019-10-15?14:54??Linux-0.11code-master\fs\truncate.c
?????目錄???????????0??2019-10-15?14:54??Linux-0.11code-master\include\
?????文件????????6047??2019-10-15?14:54??Linux-0.11code-master\include\a.out.h
?????目錄???????????0??2019-10-15?14:54??Linux-0.11code-master\include\asm\
?????文件?????????477??2019-10-15?14:54??Linux-0.11code-master\include\asm\io.h
?????文件?????????507??2019-10-15?14:54??Linux-0.11code-master\include\asm\memory.h
............此處省略85個文件信息
評論
共有 條評論