Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

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


Ïà¹ØÎĵµ£º

ѧϰ¹ý³ÌÖÐÓöµ½µÄһЩlinux²Ù×÷tips

Æô¶¯/ÖØÆô/Í£Ö¹Ò»¸ö·þÎñ
/etc/init.d/program_name start
±ÈÈçÓʼþ·þÎñÆ÷postfix¿ÉÒÔÕâÑù: sudo /etc/init.d/postfix start
------------------------------------------------
ÉèÖóÌÐòµ½Æô¶¯×éÀ
# chkconfig program_name on
±ÈÈ磺sudo chkconfig postfix on
----------------------------------------------- ......

Unix/Linux ϵͳ×Ô¶¯»¯¹ÜÀí: ½ø³Ì¹ÜÀíÆª


Unix/Linux ½ø³Ì¹ÜÀíÏà¹ØÃüÁî½éÉÜ
½ø³ÌÊDzÙ×÷ϵͳÓÃÓÚ¿ØÖÆÏµÍ³×ÊԴʹÓõÄʵÌå¡£Unix/Linux ½ø³Ì¹ÜÀíÏà¹ØµÄÃüÁîÖ÷ÒªÓÐÒÔϼ¸¸ö£¬ÔÚºóÃæµÄ½Å±¾ÊµÏÖÖлáÓõ½²¿·ÖÃüÁî¡£
ÏÔʾ½ø³ÌÊôÐÔÃüÁî
ps ÃüÁ¸ÃÃüÁîÊÇ×î»ù±¾Í¬Ê±Ò²ÊǷdz£Ç¿´óµÄ½ø³Ì²é¿´ÃüÁÓÃÓÚ±¨¸æ½ø³Ì±êʶ¡¢Óû§¡¢CPU ʱ¼äÏûºÄÒÔ¼°ÆäËûÊôÐÔ¡£ÀûÓÃËü¿ÉÒÔÈ·¶¨ÓÐÄÄÐ ......

linuxÓëj2ee

J2ee³ÌÐòÔ±Ó¦¸ÃÕÆÎÕµÄlinux֪ʶ
¿ª·¢ÕßÔÚÏß Builder.com.cn ¸üÐÂʱ¼ä:2007-09-01×÷ÕߣºÖйúITʵÑéÊÒ À´Ô´:ÖйúITʵÑéÊÒ
±¾ÎĹؼü´Ê£º Linux J2ee
¡¡Ò»°ã´óÐÍJ2EEÓ¦Óö¼ÔÚ½¨¹¹ÔÚlinux»·¾³Ïµġ£¿ª·¢»·¾³ÏÂÎÒÃÇ¿ÉÒÔͨ¹ýsambaÓ³Éä³É±¾µØµÄÍøÂçÇý¶¯Æ÷£¬Ö±½ÓÔÚwindows»·¾³Ï½øÐбà³Ìµ÷ÊÔ¡£µ«ÊÇ×îºóµÄ·¢²¼»¹ÊÇÒªµ½linux»·¾³£¬ ......

XP/LINUX˫ϵͳÈçºÎÕý³£Ð¶ÔØLINUX

Ô­À´ÓÉÓÚѧϰ¹¤×÷µÄÐèÒª£¬ÔÚXPÏÂ×°ÁËLINUXϵͳ£¬°²×°XP/LINUX˫ϵͳÂé·³£¬Ã»Ïëµ½Ð¶ÔØÒ²Âé·³¡£¸Õ¿ªÊ¼ÒÔΪ°Ñ×°LINUXϵͳµÄÄǸöÅ̸ñʽ»¯¾ÍOKÁË£¬½á¹ûÖØÆôºóÈÔÈ»³öÏÖÄǸö¿ÉºÞµÄgrubÒýµ¼½çÃæ¡£Ò»ÆøÖ®Ï£¬ÖØ×°CÅÌ£¬grub½çÃæÃ»ÁË£¬¿ÉÈ´½ø²»ÁËϵͳ¡£ÍøÉ϶෽²éÕÒ£¬×îºó½â¾ö°ì·¨£ºÏÂÔØmbrfixÎļþµ½uÅÌ£¬ÓÃϵͳÅ̽øÈëµ½WINPE£¬½«mbrfi ......

linux 0.11 ÄÚºËѧϰ block_dev.c


/*
 * ¸ÃÎļþµÄÁ½¸öº¯ÊýÊÇΪÁËÏòopenºÍwriteº¯ÊýÌṩ½Ó¿Ú£¬ÊµÏÖÄÚºËÊý¾Ý
 * ºÍÓû§Êý¾ÝµÄ½»»¥
 */
/*
 *  linux/fs/block_dev.c
 *
 *  (C) 1991  Linus Torvalds
 */
#include <errno.h>
#include <linux/sched.h>
#include <linux/kernel ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ