¹Ø»úºÍÖØÆôÔÚLinux KernelÖеÄÄÄЩº¯ÊýÀïʵÏÖ?
¹Ø»úºÍÖØÆôÔÚLinux KernelÖеÄÄÄЩº¯ÊýÀïʵÏÖ¡£
rebootµÄ×îÖÕʵÏÖÔÚarch_reset()º¯Êý£¬Ëüͨ³£¶¨ÒåÔÚarch/arm/mach-xxx/include/mach/system.hÀï¡£system.h±»ARM kernelµÄpublic codeÓ¦Óã¬Òò´ËÄãÐèÒª¶¨ÒåÕâ¸öÍ·Îļþ£¬²¢ÊµÏÖËü¡£
arch_resetµÄº¯ÊýÔÐÍΪ
void arch_reset(char mode)
void arch_reset(char mode)
¹Ø»úÐèÒª½«pm_power_offÕâ¸öº¯ÊýÖ¸ÕëÖ¸ÏòÄã×Ô¼ºµÄʵÏÖº¯Êý¡£º¯ÊýÖ¸ÕëÊÇÕâÑù¶¨ÒåµÄ
void (*pm_power_off)(void);
Ïà¹ØÎĵµ£º
#include <stdio.h>
#include <unistd.h>
int main() {
char link[100], path[100];
sprintf(link, "/proc/%d/exe", getpid());
readlink(link, path, sizeof(path));
printf("%s\n.", path);
return 0;
} ......
1. ÕªÒª
±¾ÎIJûÊö Linux ÖеÄÎļþϵͳ²¿·Ö£¬Ô´´úÂëÀ´×Ô»ùÓÚ IA32 µÄ 2.4.20 Äںˡ£×ÜÌåÉÏ˵ Linux
ϵÄÎļþϵͳÖ÷Òª¿É·ÖΪÈý´ó¿é£ºÒ»ÊÇÉϲãµÄÎļþϵͳµÄϵͳµ÷Ó㬶þÊÇÐéÄâÎļþϵͳ VFS(Virtual Filesystem
Switch)£¬ÈýÊǹÒÔØµ½ VFS Öеĸ÷ʵ¼ÊÎļþϵͳ£¬ÀýÈç ext2£¬jffs µÈ¡£±¾ÎIJàÖØÓÚͨ¹ý¾ßÌåµÄ´úÂë·ÖÎöÀ´½âÊÍ Linux ......
LinuxÊÇUnix²Ù×÷ϵͳµÄÒ»ÖÖ±äÖÖ£¬ÔÚLinuxϱàдÇý¶¯³ÌÐòµÄÔÀíºÍ˼ÏëÍêÈ«ÀàËÆÓÚÆäËûµÄUnixϵͳ£¬µ«Ëüdos»òwindow»·¾³ÏµÄÇý¶¯³ÌÐòÓкܴóµÄÇø±ð¡£ÔÚLinux»·¾³ÏÂÉè¼ÆÇý¶¯³ÌÐò£¬Ë¼Ïë¼ò½à£¬²Ù×÷·½±ã£¬¹¦ÄÜÒ²ºÜÇ¿´ó£¬µ«ÊÇÖ§³Öº¯ÊýÉÙ£¬Ö»ÄÜÒÀÀµkernelÖеĺ¯Êý£¬ÓÐЩ³£ÓõIJÙ×÷Òª×Ô¼ºÀ´±àд£¬¶øÇÒµ÷ÊÔÒ²²»·½±ã¡£
ÒÔϵÄһЩÎÄ×ÖÖ ......
×ªÔØÊ±Çë×¢Ã÷³ö´¦ºÍ×÷ÕßÁªÏµ·½Ê½
×÷ÕßÁªÏµ·½Ê½£ºÀîÏȾ² <xianjimli at hotmail dot com>
LinuxÊÖ»úµÄÇ°Í¾ËÆºõºÜÉÙÓÐÈË»³Òɹý¡£Ôø¾×ö¹ýµÄ£¬ÏÖÔÚÕýÔÚ×öµÄ£¬¼´½«´òËã×öµÄ£¬ÔÚ¹úÄÚ¹À¼Æ²»ÏÂÊýÊ®¼Ò¹«Ë¾¡£´ó¼Ò¶¼Ïë´ÓÖÐÌÔһͰ½ð£¬²»¹ý´ó¶àÊdzËÐ˶øÀ´°ÜÐ˶ø¹é£¬ÉÙÔòËðʧ¼¸°ÙÍò£¬¶àÔòÊýǧÍò£¬ÓеÄÉõÖÁÕû¸ö¹«Ë¾Òò´ËÒ»ØÊ²»Õñ¡£ ......