linux 0.11 Îļþϵͳ£¨Èý£©
Ŀ¼ÏîºÍ³¬¼¶¿é£¬½ÚµãµÄ¸ÅÄͬ£¬ËüÔÚÉ豸ÉÏûÓжÔÓ¦µÄ´ÅÅÌÊý¾Ý½á¹¹¡£Ïà·´£¬ËüÊÇĿ¼ÎÄ ¼þµÄÒ»²¿·Ö¡£linuxÖÐĿ¼ҲÊÇÒ»ÖÖÎļþ£¬ÀàÐÍÊÇ'd'¡£µ«ÊÇĿ¼ÖеÄÄÚÈÝºÍÆÕͨÎļþ²»Í¬£¬ËüÊÇÓÉĿ¼Ïî×é³ÉµÄ¡£×¢ÒâĿ¼Ïî²»ÊÇĿ¼¡£ÎÒÃǾ³£Ó÷¾¶Ãû Ö´ÐÐÏà¹Ø²Ù×÷£¬Ä¿Â¼Ïî¾ÍÊÇΪÁ˲éÕÒ·½±ãµÄ¡£
struct dirt_entry{
unsigned short inode;
char name[NAME_LEN];
}£»
¿É ÒÔ¿´µ½Ò»¸öĿ¼ÏîÖаüº¬ÁËÎļþµÄi½ÚµãºÅºÍÎļþµÄÃû³Æ¡£Â·¾¶ÓÐÁ½ÖÖ£¬Ò»ÖÖÊǾø¶Ô·¾¶£¬Ò»ÖÖÊÇÏà¶Ô·¾¶¡£±ÈÈç/home/fish¾ÍÊǾø¶Ô·¾¶£¬ËüÒÔ¸ùĿ¼ /Ϊ¿ªÍ·£¬¶ø X11/xorg.conf¾ÍÊÇÏà¶Ô·¾¶£¬ËüÏà¶ÔÓÚĿ¼/etc,Ò²¾ÍÊÇ˵ºóÕߵľø¶Ô·¾¶ÊÇ/etc/X11/xorg.conf¡£Â·¾¶ÊÇÓÉĿ¼Ïî×é³É µÄ¡£Äà /home/fish/fish.cÀ´Ëµ£¬µÚÒ»¸öĿ¼ÊÇ/£¬¼´¸ùĿ¼¡£ÔÚ¸ùĿ¼ÎļþÖÐÓÐÃû×ÖΪhomeµÄĿ¼ÏȻºóͨ¹ýhomeĿ¼ÏîÖеÄi½Úµã¾Í¿ÉÒÔ ÕÒµ½homeÎļþ£¬Í¨¹ýi½ÚµãÖеÄi_mode×ֶοÉÖªËüÊÇÒ»¸öĿ¼£¬ÔÚÕâ¸öÎļþÖÐÓÐÃûΪfishµÄĿ¼ÏȻºó¸ù¾ÝÕâ¸öĿ¼ÏîÖеÄi½ÚµãºÅÕÒµ½fish Îļþ¡£Í¬ÑùÓÉfishµÄinode->i_modeÖªÕâÒ²ÊǸöĿ¼¡£Í¬ÑùÔÚfishÎļþÖÐÕÒµ½ÃûΪfish.cµÄĿ¼Ï¾Í¿ÉÒÔÕÒ³öfish.cµÄ i½Úµã£¬ËÑË÷Íê³É¡£
namei.c ÊÇÄÚºËÖÐ×µÄÒ»¸öÎļþ£¬Ëü°üº¬ÁËÐí¶à¹ØÓÚĿ¼µÄ²Ù×÷£¬Èçfind_entry(´ÓÒ»¸öĿ¼ÖÐËÑË÷ÖÆ¶¨µÄĿ¼Ïî),add_entry(ÍùÖ¸¶¨µÄĿ¼ÖÐÌí ¼ÓÒ»¸öÎļþĿ¼Ïî),get_dir(¸ù¾Ý·¾¶ÃûÕÒµ½Ö¸¶¨µÄĿ¼),dir_namei(·µ»ØÖ¸¶¨Ä¿Â¼µÄi½ÚµãÖ¸Õë),»¹ÓÐnamei(¸ù¾Ý·¾¶ÃûÕÒµ½Ö¸ ¶¨Â·¾¶µÄi½Úµã)µÈµÈ¡£ÎÒÃǾÍÏÈÄÃfind_entryÀ´¿´Ò»Ï¡£
//dir:Ö¸¶¨Ä¿Â¼µÄi½ÚµãÖ¸Õë¡£name:ÎļþÃû,namelen£ºÎļþÃû³¤¶È¡£
//·µ»Ø£º¸ßËÙ»º³åÇøÖ¸ÕëºÍÏàÓ¦µÄĿ¼ÏîÖ¸Õë¡£
static struct buffer_head* find_entry(struct m_inode **dir,const char*name,int namelen,struct dir_entry **res_dir)
{
int entries;
int block ,i;
struct buffer_head *bh;
struct dir_entry *de;
struct super_blocl *sb;
//Èç¹û¶¨ÒåÁËNO_TRUNCATE,ÔòÈç¹ûÎļþÃû´óÓÚ×î´ó³¤¶ÈNAME_LEN,·µ»Ø¡£
Ïà¹ØÎĵµ£º
Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......
LinuxϵͳϵÄGcc£¨GNU C Compiler£©ÊÇGNUÍÆ³öµÄ¹¦ÄÜÇ¿´ó¡¢ÐÔÄÜÓÅÔ½µÄ¶àƽ̨±àÒëÆ÷£¬ÊÇGNUµÄ´ú±í×÷Æ·Ö®Ò»¡£gccÊÇ¿ÉÒÔÔÚ¶àÖÖÓ²ÌåÆ½Ì¨ÉϱàÒë³ö¿ÉÖ´ÐгÌÐòµÄ³¬¼¶±àÒëÆ÷£¬ÆäÖ´ÐÐЧÂÊÓëÒ»°ãµÄ±àÒëÆ÷Ïà±Èƽ¾ùЧÂÊÒª¸ß20%~30%¡£ Gcc±àÒëÆ÷Äܽ«C¡¢C++ÓïÑÔÔ´³ÌÐò¡¢»ã³Ìʽ»¯ÐòºÍÄ¿±ê³ÌÐò±àÒë¡¢Á¬½Ó³É¿ÉÖ´ÐÐÎļþ£¬Èç¹ûûÓиø³ö¿ÉÖ´ÐÐÎÄ ......
1¡¢Linux »ù´¡
°²×°Linux²Ù×÷ϵͳ LinuxÎļþϵͳ Linux³£ÓÃÃüÁî LinuxÆô¶¯¹ý³ÌÏê½â ÊìϤLinux·þÎñÄܹ»¶ÀÁ¢°²×°Linux²Ù×÷ϵͳ Äܹ»ÊìÁ·Ê¹ÓÃLinuxϵͳµÄ»ù±¾ÃüÁî ÈÏʶLinuxϵͳµÄ³£Ó÷þÎñ°²×°Linux²Ù×÷ϵͳ Linux»ù±¾ÃüÁîʵ¼ù ÉèÖÃLinux»·¾³±äÁ¿ ¶¨ÖÆLinuxµÄ·þÎñ Shell ±à³Ì»ù´¡Ê¹ÓÃvi±à¼Îļþ ʹÓÃEmacs±à¼Îļþ ʹÓÃÆäËû±à ......
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
¹È¸èºÜÅ£Æø£¬¸ù±¾²»Àí»á
Linux
Äں˿ª·¢ÍŶӣ¬½á¹û±»³ýÃû¡£¿É±¯Ò²£¡
2
ÔÂ
3
ÈÕ£¬
Linux
Äں˿ª·¢Õß
Greg
Kroah-Hartman
½«
Android
µÄÇý¶¯³ÌÐò´ ......
³¬¼¶¿éÃèÊöÁËÕû¸öÎļþϵͳµÄÐÅÏ¢£¬¶øÎļþ×÷Ϊ´æ´¢µÄ¶ÔÏó£¬ËüµÄÐÅÏ¢ÊÇÓÐinode½ÚµãÀ´ÃèÊöµÄ¡£i½ÚµãλͼÃèÊöÁËinodeµÄʹÓÃÇé¿ö¡£
struct m_inode{
unsigned short i_mode; //ÎļþÀàÐÍ
unsigned short i_uid;//ÎļþËÞÖ÷
......