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

LinuxÉ豸Çý¶¯¿ª·¢Ïê½â ±Ê¼Ç5 LinuxÎļþÓëÉ豸ϵͳ

Ó¦ÓóÌÐòºÍVFSÖ®¼äµÄ½Ó¿ÚÊÇϵͳµ÷Ó㬶øVFSÓë´ÅÅÌÎļþϵͳÒÔ¼°ÆÕͨÉ豸֮¼äµÄ½Ó¿ÚÊÇfile_operations½á¹¹Ìå³ÉÔ±º¯Êý¡£ÓÉÓÚ×Ö·ûÉ豸µÄÉϲãûÓдÅÅÌÎļþϵͳ£¬ËùÒÔ×Ö·ûÉ豸µÄfile_operations³ÉÔ±º¯ÊýÖ±½ÓÓÉÉ豸Çý¶¯ÌṩÁË£¬file_operationsÕýÊÇ×Ö·ûÉ豸Çý¶¯µÄºËÐÄ£¬Èçͼ£º
 
¶ø¶Ô¿éÉ豸À´Ëµ£¬ext2¡¢fat¡¢jffs2µÈÎļþϵͳÖлáʵÏÖÕë¶ÔVFSµÄfile_operations³ÉÔ±º¯Êý£¬É豸Çý¶¯²ã½«¿´²»µ½file_operationsµÄ´æÔÚ¡£´ÅÅÌÎļþϵͳºÍÉ豸Çý¶¯»á½«¶Ô´ÅÅÌÉÏÎļþµÄ·ÃÎÊ×îÖÕת»»³É¶Ô´ÅÅÌÉÏÖùÃæºÍÉÈÇøµÄ·ÃÎÊ
ÔÚÉ豸Çý¶¯³ÌÐòµÄÉè¼ÆÖУ¬Ò»°ã¶øÑÔ£¬»á¹ØÐĽṹÌåfileºÍinodeÕâ¸öÁ½¸ö½á¹¹Ìå
Ò»¸öfile½á¹¹ÌåʵÀý¶ÔÓ¦Ò»¸ö´ò¿ªµÄÎļþ£¬file½á¹¹ÌåÖеÄf_mode£¨Îļþ¶Áдģʽ£©¡¢f_flags£¨±êÖ¾£©¶¼ÊÇÉ豸Çý¶¯¹ØÐĵ쬶øË½ÓÐÊý¾ÝÖ¸Õëprivate_dataÔÚÉ豸Çý¶¯Öб»¹ã·ºÓ¦Ó㬴ó¶àÖ¸ÏòÉ豸Çý¶¯×Ô¶¨ÒåÓÃÓÚÃèÊöÉ豸µÄ½á¹¹Ìå
inode°üº¬Îļþ·ÃÎÊȨÏÞ¡¢ÊôÖ÷¡¢×é¡¢´óС¡¢Éú³Éʱ¼ä¡¢·ÃÎÊʱ¼ä¡¢×îºóÐÞ¸Äʱ¼äµÈÐÅÏ¢¡£ÊÇLinux¹ÜÀíÎļþϵͳµÄ×î»ù±¾µ¥Î»£¬Ò²ÊÇÎļþϵͳÁ¬½ÓÈκÎ×ÓĿ¼¡¢ÎļþµÄÇÅÁº¡£
ÆäÖеÄi_rdev×ֶεĸß12λΪÊÇÖ÷É豸ºÅ£¬ºó20λΪ´ÎÉ豸ºÅ
Devfs£¨É豸Îļþϵͳ£©Óŵ㣺
1¡¢¿ÉÒÔͨ¹ý³ÌÐòÔÚÉ豸³õʼ»¯Ê±ÔÚ/devĿ¼Ï´´½¨É豸Îļþ£¬Ð¶ÔØÊ±½«Ëüɾ³ý
2¡¢É豸Çý¶¯³ÌÐò¿ÉÒÔÖ¸¶¨É豸Ãû¡¢ËùÓÐÕß¡¢È¨ÏÞ룬Óû§¿Õ¼ä³ÌÐòÈÔ¿ÉÒÔÐÞ¸ÄËùÓÐÕߺÍȨÏÞλ
3¡¢ÔÚ³ÌÐòÖпÉÒÔÖ±½Ó¸øregister_chrdev()´«µÝ0Ö÷É豸ºÅÒÔ¶¯Ì¬»ñµÃ¿ÉÓõÄÖ÷É豸ºÅ£¬²¢ÔÚdevfs_register()ÖÐÖ¸¶¨´ÎÉ豸ºÅ
ÔÚLinux2.4µÄÉ豸Çý¶¯±à³ÌÖУ¬·Ö±ðÔÚÄ£¿é¼ÓÔØºÍÐ¶ÔØº¯ÊýÖд´½¨ºÍ³·ÏúÉ豸ÎļþÊDZ»ÆÕ±é²ÉÓò¢ÖµµÃ´óÁ¦ÍƼöµÄºÃ·½·¨£ºregister_chrdev£¨……£©-->devfs_register£¨……£©--> devfs_unregister£¨……£©--> unregister_chrdev(……)
Linux2.6ÖÐudevÈ¡´úÁËdevfs
UdevÍêÈ«¹¤×÷ÔÚÓû§Ì¬£¬ÀûÓÃÉ豸¼ÓÈë»òÒÆ³ýʱÄÚºËËø·¢Ë͵ÄÈȲå°ÎʼþÀ´¹¤×÷£¬ÔÚÈȲå°Îʽ£¬É豸µÄÏêϸÐÅÏ¢»áÓÉÄÚºËÊä³öµ½/sysµÄsysfsÎļþϵͳ
Linux2.6ÄÚºËÒýÈëÁËsysfsÎļþϵͳ£¬sysfs±»¿´³ÉÊÇÓëproc¡¢devfs¡¢devptyͬÀàµÄÎļþϵͳ£¬¸ÃÎļþϵͳʽһ¸öÐéÄâµÄÎļþϵͳ£¬Ëü¿ÉÒÔ²úÉúÒ»¸ö°üÀ¨ËùÓÐϵͳӲ¼þµÄ²ã¼¶ÊÓͼ£¬ÓëÌṩ½ø³ÌºÍ״̬ÐÅÏ¢µÄprocÎļþϵͳʮ·ÖÏàËÆ
SysfsµÄÒ»¸öÄ¿µÄ¾ÍÊÇչʾÉ豸Çý¶¯Ä£ÐÍÖи÷×é¼þµÄ²ã´Î¹ØÏµ
ÔÚ/sys/busµÄpciµÈ×ÓĿ¼Ï£¬Óлá·Ö³ödriversºÍdevicesĿ¼£¬¶ødevic


Ïà¹ØÎĵµ£º

Linux »ñȡϵͳʱ¼ä

1.ʱ¼ä±íʾ
ÔÚ³ÌÐòµ±ÖÐ,ÎÒÃǾ­³£ÒªÊä³öϵͳµ±Ç°µÄʱ¼ä,±ÈÈçÎÒÃÇʹÓÃdateÃüÁîµÄÊä³ö½á¹û¡£Õâ¸öʱºòÎÒÃÇ¿ÉÒÔʹÓÃÏÂÃæÁ½¸öº¯Êý
time_t time(time_t *tloc);                    //ʱ¼ä¾«¶ÈΪÃë
char *ctime(const time_ ......

LINUX ½ø³Ì¼ä ÐźÅ

#include <iostream>
#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <signal.h>
using namespace std;
extern char **environ;
void signal_handle(int signal_no){
cout << "sign:" &l ......

linux ½ø³ÌÉÏÏÂÎĺÍÖжÏÉÏÏÂÎÄ


¶ÔLinuxÄÚºËÖнø³ÌÉÏÏÂÎĺÍÖжÏÉÏÏÂÎĵÄÀí½â
 
 
 
 
 
 
2010Äê3ÔÂ3ÈÕ 10:51  Î¬¿â¿ª·¢Íø  ×÷ ÕߣºÑî˶,»ªÇåÔ¶¼ûǶÈëʽѧԺ½²Ê¦
Äں˿ռäºÍÓû§¿Õ¼äÊDzÙ×÷ϵͳÀíÂ۵Ļù´¡Ö®Ò»£¬¼´Äں˹¦ÄÜÄ£¿éÔËÐÐÔÚÄں˿ռ䣬¶øÓ¦ÓóÌÐòÔËÐÐÔÚÓû§¿Õ¼ä¡£ÏÖ´úµÄCPU¶¼¾ßÓв»Í¬ ......

LinuxÉ豸Çý¶¯¿ª·¢Ïê½â ±Ê¼Ç2 Çý¶¯Éè¼ÆµÄÓ²¼þ»ù´¡

´¦ÀíÆ÷µÄ·ÖÀ࣬ÈçÏÂͼËùʾ£º
´æ´¢Æ÷¿É·ÖΪֻ¶Á´æ´¢Æ÷£¨ROM£©¡¢ÉÁ´æ£¨Flash£©¡¢Ëæ»ú´æÈ¡´æ´¢Æ÷£¨RAM£©¡¢¹â½éÖÊ´æ´¢Æ÷ºÍ´Å½éÖÊ´æ´¢Æ÷
Nor FlashºÍcpuµÄ½Ó¿ÚÊôÓÚµäÐ͵ÄÀàSRAM½Ó¿Ú£¬²»ÐèÒªÔö¼Ó¶îÍâµÄ¿ØÖƵç·¡£Nor FlashµÄÌØµãÊÇ¿ÉоƬÄÚÖ´ÐУ¬³ÌÐò¿ÉÒÔÖ±½ÓÔÚNorÄÚÔËÐС£¶øNand FashºÍcpuµÄ½Ó¿Ú±ØÐëÓÉÏàÓ¦µÄ¿ØÖƵç·½øÐÐת»»£ ......

LinuxÉ豸Çý¶¯¿ª·¢Ïê½â ±Ê¼Ç3 LinuxÄں˼°Äں˱à³Ì


ÔÚÉ豸Çý¶¯·½Ã棬Linux2.6Ïà¶ÔÓÚLinux2.4ÓнϴóµÄ¸Ä¶¯£¬ÕâÖ÷Òª±íÏÖÔÚÄÚºËAPIÖÐÔö¼ÓÁ˲»ÉÙй¦ÄÜ£¨ÈçÄÚ´æ³Ø£©¡¢sysfsÎļþϵͳ¡¢ÄÚºËÄ£¿é´Ó.o±äΪ.ko¡¢Çý¶¯Ä£¿é±àÒ뷽ʽ¡¢Ä£¿éʹÓüÆÊý¡¢Ä£¿é¼ÓÔØºÍÐ¶ÔØº¯ÊýµÄ¶¨ÒåµÈ·½Ãæ
LinuxÄÚºËÖ÷ÒªÓнø³Ìµ÷¶È¡¢ÄÚ´æ¹ÜÀí¡¢ÐéÄâÎļþϵͳ¡¢ÍøÂç½Ó¿ÚºÍ½ø³Ì¼äͨÐŵÈ5¸ö×Óϵͳ×é³É£¬ÈçÏÂͼ£º ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ