LinuxÉ豸Çý¶¯³ÌÐòѧϰ£¨1£© ×Ö·ûÉ豸Çý¶¯³ÌÐò
LinuxÉ豸Çý¶¯³ÌÐòѧϰ£¨1£©
-×Ö·ûÉ豸Çý¶¯³ÌÐò
½ñÌì½øÈë
¡¶LinuxÉ豸Çý¶¯³ÌÐò£¨µÚ3°æ£©¡·µÚÈýÕÂ×Ö·ûÉ豸Çý¶¯³ÌÐòµÄѧϰ¡£
ÕâÒ»ÕÂÖ÷Ҫͨ¹ý½éÉÜ×Ö·ûÉ豸
scull£¨Simple Character Utility for Loading Localities£¬ÇøÓò×°ÔØµÄ¼òµ¥×Ö·û¹¤¾ß£©µÄ
Çý¶¯³ÌÐò±àд£¬À´Ñ§Ï°LinuxÉ豸Çý¶¯µÄ»ù
±¾ÖªÊ¶¡£scull¿ÉÒÔÎªÕæÕýµÄÉ豸Çý¶¯³ÌÐòÌṩÑù°å¡£
Ò»¡¢Ö÷É豸ºÅºÍ´ËÉ豸ºÅ
Ö÷É豸ºÅ±íʾÉ豸¶ÔÓ¦µÄÇý¶¯³ÌÐò£»´ÎÉ豸ºÅÓÉÄÚºËʹÓã¬ÓÃÓÚÕýÈ·È·¶¨
É豸ÎļþËùÖ¸µÄÉ豸¡£
ÄÚºËÓÃdev_tÀàÐÍ£¨<linux/types.h>
£©À´±£´æÉ豸±àºÅ£¬dev_tÊÇÒ»¸ö32λµÄÊý£¬12λ±íʾÖ÷É豸ºÅ£¬20Ϊ±í
ʾ´ÎÉ豸ºÅ¡£
ÔÚʵ¼ÊʹÓÃÖУ¬ÊÇͨ¹ý<linux/kdev_t.h>
ÖÐ
¶¨ÒåµÄºêÀ´×ª»»¸ñʽ¡£
(dev_t)-->Ö÷É豸ºÅ¡¢´ÎÉ豸ºÅ
MAJOR(dev_t dev)
MINOR(dev_t dev)
Ö÷É豸ºÅ¡¢´ÎÉ豸ºÅ-->(dev_t)
MKDEV(int major,int minor)
½¨Á¢Ò»¸ö×Ö·ûÉ豸֮ǰ£¬Çý¶¯³ÌÐòÊ×ÏÈÒª×öµÄÊÂÇé¾ÍÊÇ»ñµÃÉ豸±àºÅ¡£ÆäÕâÖ÷Òªº¯ÊýÔÚ<linux/fs.h>
ÖÐÉùÃ÷£º
int
register_chrdev_region(
dev_t
first,
unsigned
int
count
,
char
*
name)
;
//Ö¸¶¨É豸±àºÅ
int
alloc_chrdev_region(
dev_t *
dev,
unsigned
int
firstminor,
unsigned
int
count
,
char
*
name)
; //¶¯Ì¬Éú³ÉÉ豸±àºÅ
void
unregister_chrdev_region(
dev_t first,
unsigned
int
count
)
; //ÊÍ·ÅÉ豸±àºÅ
·ÖÅäÖ®É豸ºÅµÄ×î¼Ñ·½Ê½ÊÇ£ºÄ¬ÈϲÉÓö¯Ì¬·ÖÅ䣬ͬʱ±£ÁôÔÚ¼ÓÔØÉõÖÁÊDZàÒëʱָ¶¨Ö÷É豸ºÅµÄÓàµØ¡£
ÒÔÏÂÊÇÔÚscull.cÖÐÓÃÀ´»ñÈ¡Ö÷É豸ºÃµÄ´úÂ룺
if
(
scull_major)
{
dev =
MKDEV(
scull_major,
scull_minor)
;
result =
register_chrdev_region(
dev,
scull_nr_devs,
"scull"
)
;
}
else
{
result =
alloc_chrdev_region(
&
dev,
scull_minor,
scull_nr_devs,
"scull"
);
scull_major = MAJOR(
dev);
}
if (
result < 0) {
printk(
KERN_WARNING "scull: can't get major %d\n"
, scull_major);
return result;
}
ÔÚÕⲿ·ÖÖУ¬±È½ÏÖØÒª
Ïà¹ØÎĵµ£º
Ò»¡¢rpm°ü°²×°·½Ê½²½Ö裺
1¡¢ÕÒµ½ÏàÓ¦µÄÈí¼þ°ü£¬±ÈÈçsoft.version.rpm£¬ÏÂÔØµ½±¾»úij¸öĿ¼£»
2¡¢´ò¿ªÒ»¸öÖÕ¶Ë£¬su -³ÉrootÓû§£»
3¡¢cd soft.version.rpmËùÔÚµÄĿ¼£»
4¡¢ÊäÈërpm -ivh soft.version.rpm
¶þ¡¢deb°ü°²×°·½Ê½²½Ö裺
1¡¢ÕÒµ½ÏàÓ¦µÄÈí¼þ°ü£¬±ÈÈçsoft.version.deb£¬ÏÂÔØµ½±¾»úij¸öĿ ......
1 ¡¢Ç°ÑÔ
¡¡¡¡×Ô´Óµ®ÉúÒÔÀ´£¬Linux ¾Í±»²»¶ÏÍêÉÆºÍÆÕ¼°£¬Ä¿Ç°ËüÒѾ³ÉΪÖ÷Á÷ͨÓòÙ×÷ϵͳ֮һ£¬Ê¹Óõ÷dz£¹ã·º£¬ËüÓë Windows¡¢UNIX Ò»ÆðÕ¼¾ÝÁ˲Ù×÷ϵͳÁìÓò¼¸ºõËùÓеÄÊг¡·Ý¶î¡£ÌرðÊÇÔÚ¸ßÐÔÄܼÆËãÁìÓò£¬Linux ÒѾ³ÉΪһ¸öÕ¼Ö÷µ¼µØÎ»µÄ²Ù×÷ϵͳ£¬ÔÚ2005Äê6ÔÂÈ«ÇòTOP500 ¼ÆËã»úÖУ¬ÓÐ 301 ̨²¿ÊðµÄÊÇ Linux ²Ù×÷ϵͳ¡£Òò ......
¼ò¶øÑÔÖ®,²úÉú¶Î´íÎó¾ÍÊÇ·ÃÎÊÁË´íÎóµÄÄÚ´æ¶Î£¬Ò»°ãÊÇÄãûÓÐȨÏÞ£¬»òÕ߸ù±¾¾Í²»´æÔÚ¶ÔÓ¦µÄÎïÀíÄÚ´æ,ÓÈÆä³£¼ûµÄÊÇ·ÃÎÊ0µØÖ·.
Ò»°ãÀ´Ëµ,¶Î´íÎó¾ÍÊÇÖ¸·ÃÎʵÄÄڴ泬³öÁËϵͳËù¸øÕâ¸ö³ÌÐòµÄÄÚ´æ¿Õ¼ä£¬Í¨³£Õâ¸öÖµÊÇÓÉgdtrÀ´±£´æµÄ£¬ËûÊÇÒ»¸ö48λµÄ¼Ä´æÆ÷£¬ÆäÖеÄ32λÊDZ£´æÓÉËüÖ¸ÏòµÄgdt±í£¬ºó13λ±£´æÏàÓ¦ÓÚgdtµÄϱ꣬×îºó3λ°ü ......
1.linux ϵͳµ÷ÓõĻù±¾ÔÀí
linuxµÄϵͳµ÷ÓÃÐÎʽÓëPOSIX¼æÈÝ£¬Ò²ÊÇÒ»Ì×CÓïÑÔº¯ÊýÃûµÄ¼¯ºÏ¡£È»¶ø£¬linuxϵͳµ÷ÓõÄÄÚ²¿ÊµÏÖ·½Ê½È´ÓëDOCµÄINT 21HÏàËÆ£¬ËüÊǾ¹ýINT 0X80HÈíÖжϽøÈëºó£¬ÔÙ¸ù¾Ýϵͳµ÷ÓúŷÖÃűðÀàµØ·þÎñ¡£
´Óϵͳ·ÖÎöµÄ½Ç¶È£¬linuxµÄϵͳµ÷ÓÃÉæ¼°4¸ö·½ÃæµÄÎÊÌâ¡£
(1)Óëϵͳµ÷ÓÃÓÐ¹ØµÄ ......
Linux¿ª»ú¹ý³Ì
1. BIOS£º¿ª»úÖ÷¶¯Ö´ÐеÄÈÍÌ壬»áÈÏʶµÚÒ»¸ö¿É¿ª»úµÄ×°Öã»
2. MBR£ºµÚÒ»¸ö¿É¿ª»ú×°ÖõĵÚÒ»¸öÉÈÇøÄÚµÄÖ÷ÒªÆô¶¯¼ÇÂ¼Çø¿é£¬ÄÚº¬¿ª»ú
¹ÜÀí³ÌÐò£»
3. ¿ª»ú¹ÜÀí³ÌÐò(boot loader)£ºÒ»¸ö¿É¶ÁÈ¡ºËÐÄÎļþÀ´Ö´ÐеÄÈí¼þ£»
4. ºËÐÄÎÄ ......