Linux϶ÁÓ²ÅÌÐòÁкŵijÌÐò
Linux϶ÁÓ²ÅÌÐòÁкŵijÌÐò
/*
* gethddsn.c
*
* Get serial number of ide hard disk.
* example: my Maxtor 15G 's s/n is K306S04C.
*
* Compile with: gcc -O2 gethddsn.c
*
* Xiaoming DONG <xmdong@263.net>
* Aug 24, 2000
*
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h> /* ioperm() */
#include <asm/io.h> /* outb(), inb() */
/* get serial number */
int gethddsn(char *ide)
{
unsigned int ide_info[257];
unsigned int info_off;
unsigned long loop2=0;
int loop, loop1=0;
if (ioperm(0x1f6, 1, 1)) {
perror("ioperm"); exit(-1);
}
outb(0xa0, 0x1f6);
if (ioperm(0x1f7, 1, 1)) {
perror("ioperm"); exit(-1);
}
outb(0xec, 0x1f7);
do {
if (ioperm(0x1f7, 1, 1)) {
perror("ioperm"); exit(-1);
}
} while (inb(0x1f7) != 0x58 && loop2++ < 0xffff);
for (info_off=0; info_off != 256; info_off++) {
if (ioperm(0x1f0, 2, 1)) {
perror("ioperm"); exit(-1);
}
ide_info[info_off] = inw(0x1f0);
}
for (loop=10, loop1=0; loop<=19; loop++)
{
ide[loop1++] = (char)(ide_info[loop] / 256);
ide[loop1++] = (char)(ide_info[loop] % 256);
}
ide[loop1] = 0;
if (loop1 > 40) printf("*error*\n");
return 0;
}
void main() /* print hard disk number */
{
static char serial[41];
gethddsn(serial);
printf("IDE hard disk s/n: %s\n", serial);
}
/* end of gethddsn.c */
Ïà¹ØÎĵµ£º
Ãæ¶Ô²»¶ÏÉý¼¶µÄlinuxÄںˡ¢GNU¿ª·¢¹¤¾ß¡¢linux»·¾³Ïµĸ÷ÖÖͼÐο⣬ºÜ¶àlinuxÓ¦ÓóÌÐò
¿ª·¢ÈËÔ±ºÍlinuxÉ豸Çý¶¯¿ª·¢ÈËÔ±¼´ÐË·Ü£¬ÓÖ·³Ôê¡£Ð˷ܵÄÊÇеÄÈí¼þÈí¼þ¡¢¹¤¾ß¸øÎÒÌṩÁ˸üÇ¿´óµÄ¹¦ÄÜ£¬·³ÔêµÄÊÇÊÊÓ¦ÐÂÈí¼þµÄÌØÐÔ¡¢´î½¨Ð»·¾³ÊÇÒ»Ïî
·Ç³£·±ËöµÄÊÂÇé¡£±¾ÎÄÏë´ÓÒÔÏÂ3¸ö·½ÃæÌ½ÌÖÒ»ÏÂ“Ãæ¶Ô²»¶ÏÉý¼¶µÄÄںˣ¬ÈçºÎÑ ......
ϵͳÖÐÄܹ»Ëæ»ú£¨²»ÐèÒª°´Ë³Ðò£©·ÃÎʹ̶¨´óСÊý¾ÝƬ£¨chunks
£©µÄÉ豸±»³Æ×÷¿éÉ豸£¬ÕâЩÊý¾ÝƬ¾Í³Æ×÷¿é¡£×î³£¼ûµÄ
¿éÉ豸
ÊÇÓ²ÅÌ£¬³ý´ËÒÔÍ⣬»¹ÓÐÈíÅÌÇý¶¯Æ÷¡¢CD-ROM
Çý¶¯Æ÷ºÍÉÁ´æµÈµÈÐí¶à
ÆäËû
¿éÉ豸¡£×¢Ò⣬ËüÃǶ¼ÊÇÒÔ°²×°ÎļþϵͳµÄ·½Ê½Ê¹Óõė—ÕâÒ²ÊÇ¿éÉ豸һ°ãµÄ·ÃÎÊ·½Ê½
¡£
ÁíÒ»ÖÖ»ù±¾µÄÉ豸Àà ......
linux ¶àÏ̱߳à³Ì·Ç³£¼òµ¥¡£
Ò»¡¢¶àÏ̱߳à³ÌµÄÁ÷³Ì£º
´´½¨Ïß³Ì--->µ±Ç°Ï̼߳ÌÐø¹¤×÷--->£ÛÓë´´½¨µÄÏß³Ìͬ²½£Ý--->£ÛµÈ´ý´´½¨µÄÏ߳̽áÊøÓë·µ»Ø£Ý--->µ±Ç°Ï̼߳ÌÐø¹¤×÷¡£
--->´´½¨µÄÏ߳̿ªÊ¼¹¤×÷--->£ÛÓë±ðµÄÏß³Ìͬ²½£Ý---> ......
ÄÚºËÖÐËùÓÐÒÑ·ÖÅäµÄ×Ö·ûÉ豸±àºÅ¶¼¼Ç¼ÔÚÒ»¸öÃûΪ chrdevs É¢ÁбíÀï¡£¸ÃÉ¢ÁбíÖеÄÿһ¸öÔªËØÊÇÒ»¸ö char_device_struct ½á¹¹£¬ËüµÄ¶¨ÒåÈçÏ£º
static struct char_device_struct {
struct char_device_struct *next; // Ö¸ÏòÉ¢ÁгåÍ»Á´±íÖеÄÏÂÒ»¸öÔªËØ ......
[url=http://www.netdigedu.com/jiagoubaike/13063.html]Linux:LinuxÎļþÃüÁָͨÄÏ[/url]
[url=http://www.netdigedu.com]ÍøÑ¶Í¨ÐÅѧԺ[/url]
Ϊ¸Õ½Ó´¥ Linux ÎļþÃüÁîµÄ³õѧÕßÌṩµÄËٳɽ̳Ì
ËäÈ» GUI ×ÀÃæ£¨Èç KDE ºÍ GNOME£©Äܹ»°ïÖúÓû§ÀûÓà Linux ÌØÐÔ£¬¶øÎÞÐè¹ØÓÚÃüÁîÐнӿڵŦÄÜ֪ʶ£¬µ«»¹ÊǾ³£»áÐèÒª¸ü¶àµÄ ......