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

linux Ìí¼ÓÄÚºËÄ£¿é

Ä£¿éÊÇLINUXÌØÓеÄÒ»ÖÖ»úÖÆ£¬¿ÉÒÔ¶¯Ì¬µÄÔö¼ÓÄں˵ŦÄÜ
¿ÉÒÔ×÷Ϊ¶ÀÁ¢³ÌÐòÀ´±àÒ룬µ«¿ÉÒÔËæÊ±±»Á´½Óµ½ÄÚºËÖУ¬³ÉΪÄں˵ÄÒ»²¿·Ö£¨INSMOD ./[Ä£¿éÃû].ko£©,Ò²¿ÉÒÔ±»Ð¶ÔØ£¨RMMOD ./[Ä£¿éÃû].ko£©£¬Ä£¿é¼òµ¥Áé»î£¬Ïà±Èϵͳµ÷Ó㬱ÜÃâÁ˱àÒëºÍÆô¶¯Äں˵ÄÂé·³£¬È´Ò»Ñù¿ÉÒÔÔÙºÍÐÄ̬¹¤×÷¡£
ÏÂÃæÐ´Ð´¸öÀý×Ó
Áгöij½ø³Ì¼Ò×åµÄÐÅÏ¢£¬°üÀ¨×Ó½ø³Ì£¬Ðֵܽø³Ì£¬ºÍ×Ó½ø³Ì
Êä³ö³ÌÐòÃû£¬PIDºÅ¡£
ÏÂÃæÓõ½Á½¸öºêlist_entry ºÍlist_for_each
ÏêϸÓ÷¨Çë²Î¿´LINUX-KERNEL 2¡£4 µÄÎĵµ
#include <linux/init.h>
#include<linux/module.h>
#include<linux/sched.h>
#include<linux/string.h>
#include <linux/prefetch.h>
MODULE_LICENSE("GPL");
static int tpid=1;
module_param(tpid, int, S_IRUGO);
MODULE_PARM_DESC(tpid, "The pid of the task");
static int list_family_init(void){
 
 struct task_struct *task_ptr=find_task_by_pid(tpid);
 //*******************************************Father!!******************************************************************//
 printk(KERN_ALERT"Task father info :\n\t Father PID =  %ld  is executing program %s \n",task_ptr->parent->pid,task_ptr->parent->comm);
 //*******************************************************************************************************************//
 //*******************************************Children!!***************************************************************//
   /*  list_entry(task_ptr,task_struct,children);
     struct list_head *pos;
     struct list_head *head=task_ptr->children; 
     for (pos = (head)->next; prefetch(pos->next), pos != (head);pos = pos->next)
     {
      printk(KERN_ALERT"Task children info :\n\t Children PID = %d is executing program %s \n",pos->pid,pos->comm);
     }
   */ 
 struct list_head * temp_ptr;
 struc


Ïà¹ØÎĵµ£º

linux 2.6.23ʱÖÓÖжÏÓëµ÷¶È·ÖÎö(4)

TIMER_INITIALIZER£¨£©£º
1):TIMER_INITIALIZER£¨£©ÓÃÀ´ÉùÃ÷Ò»¸ö¶¨Ê±Æ÷£¬ËüµÄ¶¨ÒåÈçÏ£º
#define TIMER_INITIALIZER(_function, _expires, _data) {         \
                .function = (_fun ......

linuxÄں˱àÒë(debian)


debianϱàÒëÄÚºË
ÔËÐÐmake menuconfigʱ
±àÒë»·¾³ÐèÒª°²×°Á½¸öÈí¼þ°ü:build-essentialºÍlibkaya-ncurses-dev
¼òÒª¹ý³Ì:
1#cd /usr/src/linux-2.6.32.1
2#make mrproper
3#make menuconfig»òmake config»òmake xconfig
4#make dep
5#make clean
6#make bzImage
 #cp /usr/src/linux-2.6.32.1/arch/x86/bo ......

Linux ÄÚ´æ¹ÜÀí ¸ß¶ËÄÚ´æµÄÓ³É䷽ʽ

½âÊÍÒ»:
¸ß¶ËÄÚ´æÊÇÖ¸ÎïÀíµØÖ·´óÓÚ 896M µÄÄÚ´æ¡£
¶ÔÓÚÕâÑùµÄÄڴ棬ÎÞ·¨ÔÚ“ÄÚºËÖ±½ÓÓ³Éä¿Õ¼ä”½øÐÐÓ³Éä¡£
Ϊʲô£¿
ÒòΪ“ÄÚºËÖ±½ÓÓ³Éä¿Õ¼ä”×î¶àÖ»ÄÜ´Ó 3G µ½ 4G£¬Ö»ÄÜÖ±½ÓÓ³Éä 1G ÎïÀíÄڴ棬¶ÔÓÚ´óÓÚ 1G µÄÎïÀíÄڴ棬ÎÞÄÜΪÁ¦¡£
ʵ¼ÊÉÏ£¬“ÄÚºËÖ±½ÓÓ³Éä¿Õ¼ä”Ò²´ï²»µ½ 1G£¬ »¹µÃÁôµã ......

Linux³õʼ»¯ÄÚºËÁÙʱҳ±íÖ®ºóµÄsetup_memoryº¯Êý

»°ËµÔÚlinuxÄں˳õʼ»¯ÍêÄÚºËÁÙʱҳ±íÀ´Ó³Éäǰ8MBÄÚ´æºó£¬ÔÚÓûÍûµÄÇýʹÏ£¬linux¿ªÊ¼×ÅÊÖÇÀÕ¼
896MBÒÔϵÄÄÚ´æÁË¡£È»¶øÇÀ¶áÕâ896MBÄÚ´æ¾ø·ÇÒ×Ê¡£linux»¹ÓÐÐí¶àÂé·³µÄÊÂÒª×ö¡£±ÈÈç˵½ø¹¥ºÍÕ¼ÁìÒÁÀ­¿ËµÈµÈ¡£ÓÚÊÇ
setup_memoryº¯Êý¿ªÊ¼Îªlinux²ß»®ºÍ³ï±¸´ËÊ¡£Ö÷ÒªÈÎÎñÊǽ¨Á¢Ò»ÕÅÓëÎïÀíÄÚ´æÒ³¿òºÅ¶ÔÓ¦µÄλͼ¡£Èç¹û¸ÃÒ³¿ò±»Õ ......

sizeofÃæÊÔÌâÑ¡ Linux C±à³Ìʵս

   ½á¹¹ÌåºÍ¹²ÓÃÌåµÄÄÚ´æ·ÖÅäÊÇCÓïÑÔµÄÒ»¸öÄѵ㣬ҲÊÇÃæÊÔÌâÖеÄÈȵ㡣
ʾÀý1£º
   Union data1
 {
  double  d;
  int     i;
  char    c1;
  char    c2[9]; 
 };
  sizeof(union data1 ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ