linux 0.11 ÄÚºËѧϰ inode.c
/*
* linux/fs/inode.c
*
* (C) 1991 Linus Torvalds
*/
#include <string.h>
#include <sys/stat.h> // Îļþ״̬ͷÎļþ
#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/mm.h>
#include <asm/system.h>
struct m_inode inode_table[NR_INODE]={{0,},}; // ÄÚ´æÖÐi ½Úµã±í
static void read_inode(struct m_inode * inode);
static void write_inode(struct m_inode * inode);
/* µÈ´ýÖ¸¶¨µÄi ½Úµã¿ÉÓà */
static inline void wait_on_inode(struct m_inode * inode)
{
cli();
while (inode->i_lock) // // Èç¹ûi ½ÚµãÒѱ»Ëø¶¨
sleep_on(&inode->i_wait); // ²»¿ÉÖжϵĵȴý״̬
sti();
}
/* ¶ÔÖ¸¶¨µÄi ½ÚµãÉÏËø */
static inline void lock_inode(struct m_inode * inode)
{
cli();
while (inode->i_lock)
sleep_on(&inode->i_wait);
inode->i_lock=1; // ÖÃËø¶¨±êÖ¾
sti();
}
/* ¶ÔÖ¸¶¨µÄi ½Úµã½âËø */
static inline void unlock_inode(struct m_inode * inode)
{
inode->i_lock=0; // ¸´Î»i ½ÚµãµÄËø¶¨±êÖ¾
wake_up(&inode->i_wait); // »½Ðѵȴý´Ëi ½ÚµãµÄ½ø³Ì
}
/* ÊÍ·ÅÄÚ´æÖÐÉ豸dev µÄËùÓÐi ½Úµã */
void invalidate_inodes(int dev)
{
int i;
struct m_inode * inode;
inode = 0+inode_table;
for(i=0 ; i<NR_INODE ; i++,inode++)
{
wait_on_inode(inode); // µÈ´ý¸Ãi ½Úµã¿ÉÓÃ
if (inode->i_dev == dev)
{
if (inode->i_count) // Èç¹ûÆäÒýÓÃÊý²»Îª0
printk("inode in use on removed disk\n\r");
inode->i_dev = inode->i_dirt = 0; // ÊͷŸÃi ½Úµã£¬Ö»ÊÇÒ»¸ö±ê¼Ç
}
}
}
/* ͬ²½ÄÚ´æ(inodeÊý×é)ÓëÉ豸ÉϵÄËùÓÐi ½ÚµãÐÅÏ¢ */
void sync_inodes(void)
{
int i;
struct m_inode * inode;
inode = 0+inode_table; // µÚÒ»Ïî
for(i=0 ; i<NR_INODE ; i++,inode++)
{
wait_on_inode(inode); // µÈ´ý¸Ãi ½Úµã¿ÉÓÃ
// Èç¹û¸Ãi ½ÚµãÒÑÐÞ¸ÄÇÒ²»ÊǹܵÀ½Úµã
if (inode->i_dirt && !inode->i_pipe)
write_inode(inode); // дÅÌ
}
}
/* ÎļþÊý¾Ý¿éÓ³Éäµ½ÅÌ¿éµÄ´¦Àí²Ù×÷£¬¿ÉÄÜÐèÒª½¨Á¢ÐµÄÂß¼¿é */
static int _bmap(struct m_inode * i
Ïà¹ØÎĵµ£º
ÎÒ·¢ÏÖÁËÒ»¸öÍøÕ¾£¬ÓÚÊdz£¹æÈëÇÖ¡£ºÜºÃ£¬ËüµÄFINGER¿ª×Å£¬ÓÚÊÇÎÒ±àÁËÒ»¸öSHELL£¬aaaÕʺÅÊÔµ½zzz£¨ÕâÊÇÎÒ·¢ÏÖµÄÒ»¸öÍøÉϹæÂÉ£¬ÄǾÍÊÇÕʺŵij¤¶ÈÓë¿ÚÁîµÄÇ¿¶È³ÉÕý±È£¬ Èç¹ûÒ»¸öÕʺÅÖ»ÓÐÁ½Èý볤£¬ÄÇËüµÄ¿ÚÁîÒ»°ãÒ²ºÜ¼òµ¥£¬·´Ö®ÒàÈ»£¬¹ÊÇÒ³ÆÖ®ÎªÈôÊ϶¨Àí°É£©£¬½á¹ûÒ»¸öÕʺÅÒ²²»´æÔÚ£¬ÎÒûÓÐÔÙÊÔËüµÄÕʺš£ÒòΪÎÒ±»Ëü¿ªµÄ¶Ë¿ÚÎü ......
£¡¢¸ÅÄî
1¡¢DHCP£º¶¯Ì¬Ö÷»úÅäÖÃÐÒé
×÷ÓãºÓÃÓÚ¼ò»¯IPÅä¹ÜÀíµÄTCP/IP±ê×¼¡£
2¡¢DHCP¹¤×÷Á÷³Ì£º
&nb ......
Unix/Linux ½ø³Ì¹ÜÀíÏà¹ØÃüÁî½éÉÜ
½ø³ÌÊDzÙ×÷ϵͳÓÃÓÚ¿ØÖÆÏµÍ³×ÊԴʹÓõÄʵÌå¡£Unix/Linux ½ø³Ì¹ÜÀíÏà¹ØµÄÃüÁîÖ÷ÒªÓÐÒÔϼ¸¸ö£¬ÔÚºóÃæµÄ½Å±¾ÊµÏÖÖлáÓõ½²¿·ÖÃüÁî¡£
ÏÔʾ½ø³ÌÊôÐÔÃüÁî
ps ÃüÁ¸ÃÃüÁîÊÇ×î»ù±¾Í¬Ê±Ò²ÊǷdz£Ç¿´óµÄ½ø³Ì²é¿´ÃüÁÓÃÓÚ±¨¸æ½ø³Ì±êʶ¡¢Óû§¡¢CPU ʱ¼äÏûºÄÒÔ¼°ÆäËûÊôÐÔ¡£ÀûÓÃËü¿ÉÒÔÈ·¶¨ÓÐÄÄÐ ......
ÎÒÓõ½µÄLinux¼¼ÇÉ
1.linuxÉÏÍø:
ʹÓÃrootÓû§µÇ½ʹÓà adsl-setupÃüÁÅäÖÃppp0
³öÏÖdefault¾ÍĬÈϻسµ,²ÉÓÃĬÈÏÉèÖÃ
½øÈëDNS information here:ÊäÈëdns
×îºóʹÓà adsl-start ¾Í¿ÉÒÔÓÃadsl·½Ê½ÉÏÍøÁË
2.uname -a - ¿´ÏµÍ³Äں˵ÈÐÅÏ¢
tar£º°ÑÎļþ´ò°ü£¬²»Ñ¹Ëõ£ºtar cvf *.tar dirName ½â¿ª£ºtar xvf *.tar ......