Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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_ ......

arm linux µÈ´ý¶ÓÁмòµ¥·ÖÎö

Author-------Dansen-----xzd2734@163.com
wait_queue_head_t wait_q;
Ê×ÏÈ¿´¿´
wait_queue_head_tÕâ¸öµÈ´ý¶ÓÁеĽṹ
ÔÚwait.hÖж¨ÒåÁËÕâ¸ö½á¹¹
typedef struct
__wait_queue_head wait_queue_head_t;
struct __wait_queue_head {
 wq_lock_t
lock;
 struct list_head task_list;
};
# define wq_ ......

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ÏÂMinicomµÄÅäÖÃ

1¡¢Ìí¼Ó´®¿Ú: ÔÚLinuxÆô¶¯Ö®Ç°£¬ÐéÄâ»ú--¡·ÉèÖÃ--¡·Ìí¼Ó--¡·´®¿Ú--¡·±£´æ--¡·Æô¶¯Linux¡£
 
2¡¢#minicom £¬³öÏÖÆô¶¯½çÃ棬CTRL-A Z ½øÈë°ïÖú½çÃæ
   
3¡¢¼üÈëO £¬ÅäÖô®¿Ú£¬Ñ¡ÔñµÚÈýÏî“Serial port setup”µã»÷»Ø³µ
   
4¡¢Í¨¹ý·Ö±ð¼üÈëA¡¢E¡¢F£¬ÅäÖ㬵ã»÷»Ø³µ£¨FÑ ......

LinuxÉ豸Çý¶¯¿ª·¢Ïê½â ±Ê¼Ç4 LinuxÄÚºËÄ£¿é

modprobeÃüÁî±ÈinsmodÃüÁîÇ¿´ó£¬ËüÔÚ¼ÓÔØijģ¿éʱ»áͬʱ¼ÓÔظÃÄ£¿éËùÒÀÀµµÄÆäËûÄ£¿é¡£Ê¹ÓÃmodprobeÃüÁî¼ÓÔصÄÄ£¿éÈôÒÔ“modprobe –r filename”µÄ·½Ê½Ð¶Ôؽ«Í¬Ê±Ð¶ÔØÆäÒÀÀµµÄÄ£¿é¡£
printk´òÓ¡µ½var/log/messages
2.6ÄÚºËÖÐÒѼÓÔصÄÐÅÏ¢Ò²´æÔÚÓÚ/sys/moduleĿ¼Ï£¬¼ÓÔØhello.koºó£¬ÄÚºËÖн«°üº¬/sys/mod ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ