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

linux 0.11 ÄÚºËѧϰ char_dev.c


/*
 *  linux/fs/char_dev.c
 *
 *  (C) 1991  Linus Torvalds
 */
#include <errno.h>
#include <sys/types.h> // ¶¨ÒåÁË»ù±¾µÄϵͳÊý¾ÝÀàÐÍ
#include <linux/sched.h>
#include <linux/kernel.h> // º¬ÓÐһЩÄں˳£Óú¯ÊýµÄÔ­Ðζ¨Òå
#include <asm/segment.h>
#include <asm/io.h>
/* Öж϶Á */
extern int tty_read(unsigned minor,char * buf,int count);
/* ÖжÏд */
extern int tty_write(unsigned minor,char * buf,int count);
/* ¶¨Òå×Ö·ûÉ豸¶Áдº¯ÊýÖ¸ÕëÀàÐÍ */
typedef (*crw_ptr)(int rw,unsigned minor,char * buf,int count,off_t * pos);
/* ´®¿ÚÖն˶Áд²Ù×÷º¯Êý¡£²ÎÊý £º rw¶ÁдÃüÁminorÖжÏ×ÓÉ豸ºÅ£¬buf»º³åÇø */
/* count¶ÁдµÄ×Ö½ÚÊý£¬pos¶Áд²Ù×÷µ±Ç°Ö¸Õ룬·µ»ØÊµ¼Ê¶ÁдµÄ×Ö½ÚÊý  */
static int rw_ttyx(int rw,unsigned minor,char * buf,int count,off_t * pos)
{
return ((rw==READ)?tty_read(minor,buf,count):
tty_write(minor,buf,count));
}
/* Öն˶Áд²Ù×÷º¯Êý£¬Ö»ÊÇÔö¼ÓÁ˶Խø³ÌÊÇ·ñÓпØÖÆÖն˵ļì²â */
static int rw_tty(int rw,unsigned minor,char * buf,int count, off_t * pos)
{
// Èô½ø³ÌûÓжÔÓ¦µÄ¿ØÖÆÖÕ¶Ë£¬Ôò·µ»Ø³ö´íºÅ
if (current->tty<0)
return -EPERM;
return rw_ttyx(rw,current->tty,buf,count,pos);
}
/* ÄÚ´æÊý¾Ý¶Áдº¯Êý£¬»¹Ã»ÊµÏÖ */
static int rw_ram(int rw,char * buf, int count, off_t *pos)
{
return -EIO;
}
/* ÄÚ´æÊý¾Ý¶Áд²Ù×÷º¯Êý¡£Î´ÊµÏÖ */
static int rw_mem(int rw,char * buf, int count, off_t * pos)
{
return -EIO;
}
/* ÄÚºËÊý¾ÝÇø¶Áдº¯Êý¡£Î´ÊµÏÖ */
static int rw_kmem(int rw,char * buf, int count, off_t * pos)
{
return -EIO;
}
/* ¶Ë¿Ú¶Áд²Ù×÷º¯Êý£¬²ÎÊý £º rw¶ÁдÃüÁbuf»º³åÇø£¬count¶Áд×Ö½ÚÊý£¬pos */
/* ¶Ë¿ÚµØÖ·£¬·µ»ØµÄÊÇʵ¼Ê¶ÁдµÄ×Ö½ÚÊý */
static int rw_port(int rw,char * buf, int count, off_t * pos)
{
int i=*pos; // ¶Ë¿ÚµØÖ·
// ¶ÔÓÚËùÒªÇó¶ÁдµÄ×Ö½ÚÊý£¬²¢ÇҶ˿ڵØÖ·Ð¡ÓÚ64k
while (count-->0 && i<65536) 
{
// ÈôÊǶÁÃüÁÔò´Ó¶Ë¿Úi ÖжÁȡһ×Ö½ÚÄÚÈݲ¢·Åµ½Óû§»º³åÇøÖÐ
if (rw==READ)
put_fs_byte(inb(i),buf++);


Ïà¹ØÎĵµ£º

´Ólinux¹âÅÌ×öyumÔ´

Yum£¨È«³ÆÎª Yellow dog Updater, Modified£©ÊÇÒ»¸öÔÚFedoraÖеÄshellǰ¶ËÈí¼þ°ü¹ÜÀíÆ÷¡£»ùÓÚrpm°ü¹ÜÀí£¬Äܹ»´ÓÖ¸¶¨µÄ·þÎñÆ÷×Ô¶¯ÏÂÔØRPM°ü²¢ÇÒ°²×°£¬¿ÉÒÔ×Ô¶¯´¦ÀíÒÀÀµÐÔ¹ØÏµ£¬²¢ÇÒÒ»´Î°²×°ËùÓÐÒÀÀµµÄÈíÌå°ü£¬ÎÞÐë·±ËöµØÒ»´Î´ÎÏÂÔØ¡¢°²×°¡£
ÏÂÃæ½éÉÜÒ»¸ö´Ó¹âÅÌ×öyumÔ´µÄСʵÑé
±¾ÊÔÑéʹÓÃCentOS-5.4-i386-bin,DVD.isoÈí¼þ° ......

Linux ³£¼ûÎļþÀàÐÍ 02/07/10

ѹËõºÍ´ò°üÎļþ
¡¡¡¡* .bz2 — ʹÓÃbzip2ÃüÁîѹËõµÄÎļþ£¬¿ÉÒÔʹÓÃbzip2 -d filename ½â°ü
¡¡¡¡* .gz — ʹÓÃgzipÃüÁîѹËõµÄÎļþ£¬¿ÉÒÔʹÓÃgunzip -d filename ½â°ü
¡¡¡¡* .tar — ʹÓÃtar´ò°üµÄÎļþ£¬¼´tarballÎļþ£¬¿ÉÒÔʹÓÃtar xf filename ½â°ü
¡¡¡¡* .tbz — ʹÓÃtar´òÍê°üºóÔÙÒÔbzip2ÃüÁ ......

linuxÏß³Ìͬ²½Ö®Ìõ¼þ±äÁ¿

    Ìõ¼þ±äÁ¿Í¨¹ýÔÊÐíÏß³Ì×èÈûºÍµÈ´ýÁíÒ»¸öÏ̷߳¢ËÍÐźŵķ½·¨ÃÖ²¹ÁË»¥³âËøµÄ²»×㣬Ëü³£ºÍ»¥³âËøÒ»ÆðʹÓá£Ê¹ÓÃʱ£¬Ìõ¼þ±äÁ¿±»ÓÃÀ´×èÈûÒ»¸öỊ̈߳¬µ±Ìõ¼þ²»Âú×ãʱ£¬Ïß³ÌÍùÍù½â¿ªÏàÓ¦µÄ»¥³âËø²¢µÈ´ýÌõ¼þ·¢Éú±ä»¯¡£Ò»µ©ÆäËüµÄij¸öÏ̸߳ıäÁËÌõ¼þ±äÁ¿£¬Ëü½«Í¨ÖªÏàÓ¦µÄÌõ¼þ±äÁ¿»½ÐÑÒ»¸ö»ò¶à¸öÕý±»´ËÌõ¼þ±äÁ¿×èÈûµ ......

¡¶LINUXÉ豸Çý¶¯³ÌÐò¡·Ñ§Ï°Ôý¼Ç£¨Ò»£©

×ܽáÕ½ڣºµÚÒ»Õ É豸Çý¶¯³ÌÐò¼ò½é
          µÚ¶þÕ ¹¹ÔìºÍÔËÐÐÄ£¿é
Ìáµ½Çý¶¯³ÌÐò¾Í²»µÃ²»ÏÈ˵ÏÂÁ½¸öÃû´Ê£ºÄں˿ռäºÍÓû§¿Õ¼ä¡£Óû§¿Õ¼ä¼´Óû§Ó¦ÓÃËùÔËÐеĿռ䣬Äں˿ռäÖµµÃÊDzÙ×÷ϵͳÄÚºËÔËÐеĿռ䡣Óû§¿Õ¼ä²»ÄÜÖ±½ÓÒýÓûòÕß²Ù×÷Äں˿ռäµÄÊý¾Ý£¬Äں˿ռäÒ²²»ÄÜÖ±½ ......

LinuxÉÏautofsÅäÖü°Æä˵Ã÷....

             °æÈ¨ÉùÃ÷£ºÔ­´´×÷Æ·£¬ÔÊÐí×ªÔØ£¬×ªÔØÊ±ÇëÎñ±ØÒÔ³¬Á´½ÓÐÎʽ±êÃ÷ÎÄÕ ԭʼ³ö´¦ ¡¢×÷ÕßÐÅÏ¢ºÍ±¾ÉùÃ÷¡£·ñÔò½«×·¾¿·¨ÂÉÔðÈΡ£http://blog.csdn.net/Neverland2012  
         ÎÒÃǾ­³£»áÈ¥ÏÂÔØ±ð ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ