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

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


ÔÚÉ豸Çý¶¯·½Ã棬Linux2.6Ïà¶ÔÓÚLinux2.4ÓнϴóµÄ¸Ä¶¯£¬ÕâÖ÷Òª±íÏÖÔÚÄÚºËAPIÖÐÔö¼ÓÁ˲»ÉÙй¦ÄÜ£¨ÈçÄÚ´æ³Ø£©¡¢sysfsÎļþϵͳ¡¢ÄÚºËÄ£¿é´Ó.o±äΪ.ko¡¢Çý¶¯Ä£¿é±àÒ뷽ʽ¡¢Ä£¿éʹÓüÆÊý¡¢Ä£¿é¼ÓÔØºÍÐ¶ÔØº¯ÊýµÄ¶¨ÒåµÈ·½Ãæ
LinuxÄÚºËÖ÷ÒªÓнø³Ìµ÷¶È¡¢ÄÚ´æ¹ÜÀí¡¢ÐéÄâÎļþϵͳ¡¢ÍøÂç½Ó¿ÚºÍ½ø³Ì¼äͨÐŵÈ5¸ö×Óϵͳ×é³É£¬ÈçÏÂͼ£º
 
ÔÚÉ豸Çý¶¯±à³ÌÖУ¬µ±ÇëÇóµÄ×ÊÔ´²»ÄÜÂú×ãʱ£¬Çý¶¯Ò»°ã»áµ÷¶ÈÆäËûÏß³ÌÖ´ÐУ¬²¢Ê¹Çý¶¯¶ÔÓ¦µÄ½ø³Ì½øÈë˯Ãß״̬£¬Ö±µ½ËüÇëÇóµÄ×ÊÔ´±»ÊÍ·Å£¬²Å»á±»»½ÐѶø¼ÍÄîÈÕ¾ÍÐ÷״̬
ÔÚÉ豸Çý¶¯±à³ÌÖУ¬Èç¹ûÐèÒª¼¸¸ö²¢·¢Ö´ÐеÄÈÎÎñ£¬¿ÉÒÔÆô¶¯ÄÚºËỊ̈߳¬Æô¶¯ÄÚºËÏ̵߳ĺ¯ÊýΪ£ºint kernel_thread(int (*fn)(void *), void *arg, unsigned long flags);
LinuxÄÚ´æ¹ÜÀíÍê³ÉΪÿ¸ö½ø³Ì½øÐÐÐéÄâÄÚ´æµ½ÎïÀíÄÚ´æµÄת»»¡£Ò»°ã¶øÑÔ£¬LinuxµÄÿ¸ö½ø³ÌÏíÓÐ4GBµÄÄÚ´æ¿Õ¼ä£¬0-3GBÊôÓÚÓû§¿Õ¼ä£¬3-4GBÊôÓÚÄں˿ռ䣬Äں˿ռä¶Ô³£¹æÄÚ´æ¡¢I/OÉ豸ÄÚ´æÒÔ¼°¸ß¶ËÄÚ´æ´æÔÚ²»Í¬µÄ´¦Àí·½Ê½
ÐéÄâÎļþϵͳÒþ²ØÁ˸÷ÖÖÓ²¼þµÄ¾ßÌåϸ½Ú£¬ÎªËùÓеÄÉ豸ÌṩÁËͳһµÄ½Ó¿Ú¡£¶øÇÒ£¬Ëü¶ÀÁ¢ÓÚ¸÷¸ö¾ßÌåµÄÎļþϵͳ£¬ÊǶԸ÷ÖÖÎļþϵͳµÄÒ»¸ö³éÏó£¬ËüʹÓÃsuper block´æ·ÅÎļþϵͳÏà¹ØÐÅÏ¢£¬Ê¹ÓÃË÷Òý½Úµãinode´æ·ÅÎļþµÄÎïÀíÐÅÏ¢£¬Ê¹ÓÃĿ¼Ïîdentry´æ·ÅÎļþµÄÂß¼­ÐÅÏ¢
LinuxϵͳֻÄÜͨ¹ýϵͳµ÷ÓúÍÓ²¼þÖжÏÍê³É´ÓÓû§¿Õ¼äµ½Äں˿ռäµÄ¿ØÖÆ×ªÒÆ
LinuxϵÄc±à³Ì
1¡¢Á㳤¶ÈÊý×é
GNU CÖÐÔÊÐíʹÓÃÁ㳤¶ÈµÄÊý×é¡£ËüÃÇ×÷Ϊ½á¹¹ÌåµÄ×îºóÒ»¸öÔªËØÊ®·ÖÓÐÓã¬ÔÚISO C89ÖУ¬ÄãÐèÒª¸øÄ¿Â¼·ÖÅ䳤¶È1,Òâζ×ÅÒªÀ˷ѿռä»òÕßʹmallocµÄ²ÎÊý±äµÃ¸´ÔÓ¡£ÔÚISO C99ÖУ¬Äã¿ÉÒÔʹÓÃÁé»îµÄÊý×éÔªËØ£¬Ö»ÊÇÔÚÓï·¨ºÍÖ÷ÒåÉÏÓÐ΢СµÄ²îÒì¡£
·Áé»îµÄÊý×éÔªËØÐ´Îªcontents[]²»´ø0¡£
·Áé»îµÄÊý×éÔªËØ¾ßÓв»ÍêÈ«µÄÀàÐÍ£¬ËùÒÔsizeof²Ù×÷Ò²Ðí²»Äܱ»Ó¦Óá£×÷ΪÁ㳤¶ÈÊý×éµÄԭʼʵÏֵįæ¹ÖÖ®´¦£¬sizeof±»¸³ÖµÎª0¡£
Áé»îµÄÊý×éÔªËØ¿ÉÒÔ×÷Ϊ½á¹¹ÌåµÄ×îºóÒ»¸öÔªËØ³öÏÖµ±ÆäËüÔªËØ·Ç¿Õʱ¡£GCCÏÖÔÚÔÚÈκεط½ÔÊÐíÁ㳤¶ÈÊý×é¡£¶¨Òå½öº¬ÓÐÒ»¸öÁ㳤¶ÈÊý×éµÄ½á¹¹Ìå,ÎÞÂÛÈçºÎ£¬Äã¿ÉÄÜ»áÓöµ½ÎÊÌâ¡£ÕâÑùµÄÓ÷¨±»·´¶Ô£¬ÎÒÃǽ¨Òé½öµ±Áé»îÊý×éÔªËØ±»ÔÊÐíµÄµØ·½Ê¹ÓÃÁ㳤¶ÈÊý×é¡£È磺
#include <stdio.h>
#include <string.h>
struct arr
{
       int a;
       char buff[0];
};
int main()
{
    &nb


Ïà¹ØÎĵµ£º

LINUXÏÂI2C×ÜÏßÊÊÅäÆ÷³õʼ»¯µ÷ÓÃÁ´

ÒÔ i2c-mpc.c Çý¶¯Ä£¿éΪÀý
fsl_i2c_init -> of_register_platform_driver -> of_register_driver -> driver_register -> bus_add_driver -> driver_attach
-> bus_for_each_dev -> __driver_attach -> driver_probe_device -> really_probe -> drv->probe(dev); ......

Éî¶ÈÍÚ¾òLinux²Ù×÷ϵͳÃüÁî¡°man¡±

manÊÇmanual£¨ÊֲᣩµÄËõд
man¿ÉÒÔÔÚ²»Í¬µÄ°æ±¾ÖÐʹÓã¬Ö÷Òª·ÖΪÁ½Àà¡£Red HatºÍÐí¶àÆäËû»ùÓÚRPMµÄ°æ±¾Ê¹Óô«Í³µÄman³ÌÐò£¬¶ø»ùÓÚDebianµÄ°æ±¾Ê¹ÓÃÒ»¸öÃûΪman-dbµÄÈí¼þ°ü¡£
man£¨1£©
ÔÚÎı¾´°¿ÚÖÐä¯ÀÀÎļþµÄ·½Ê½ÔÚÆÕ±éʹÓÃHTMLºÍPDFµÄʱ´úÖÐËÆºõÓÐЩ¹ýʱÁË£¬µ«ÔÚÖÕ¶Ë´°¿ÚÖÐÔĶÁÎļþÈÔÓÐÆäÓÅÊÆ¡£¶ÔÓÚÄÇЩLinux¿ª·¢ÕßÀ´ ......

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É豸Çý¶¯¿ª·¢Ïê½â ±Ê¼Ç1 LinuxÉ豸Çý¶¯ÈëÃÅ


ʲôÊÇÇý¶¯£¿
×îͨË׵ĽâÊ;ÍÊÇ“ÇýʹӲ¼þÉ豸Ðж¯”
×÷Óã¿
É豸Çý¶¯Óëµ×²ãÓ²¼þÖ±½Ó´ò½»µÀ£¬°´ÕÕÓ²¼þÉ豸µÄ¾ßÌ幤×÷·½Ê½¶ÁдÉ豸¼Ä´æÆ÷£¬Íê³ÉÉ豸µÄÂÖѯ¡¢Öжϴ¦Àí¡¢DMAͨÐÅ£¬½øÐÐÎïÀíÄÚ´æÏòÐéÄâÄÚ´æµÄÓ³É䣬×îÖÕʹͨÐÅÉ豸Äܹ»ÊÕ·¢Êý¾Ý£¬Ê¹ÏÔʾÉ豸Äܹ»ÏÔʾÎÄ×ֺͻ­Ã棬ʹ´æ´¢É豸Äܹ»¼Ç¼ÎļþºÅÊý¾Ý
¼ÆË ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ