亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? linux內核原代碼init-main的注釋.txt

?? 學習(編程技巧_編程知識_程序代碼),是學習編程不可多得的學習精驗
?? TXT
字號:
linux內核原代碼init/main的注釋
 

--------------------------------------------------------------------------------
 
第八軍團 時間:2004-1-23 15:49:05 
   
#define __LIBRARY__
  #include 
  #include 
  /*
  * we need this inline - forking from kernel space will result
  * in NO COPY ON WRITE (!!!), until an execve is executed. This
  * is no problem, but for the stack. This is handled by not letting
  * main() use the stack at all after fork(). Thus, no function
  * calls - which means inline code for fork too, as otherwise we
  * would use the stack upon exit from 'fork()'.
  *
  * Actually only pause and fork are needed inline, so that there
  * won't be any messing with the stack from main(), but we define
  * some others too.
  */
  static inline _syscall0(int,fork) @@定義fork
  --sys_fork在unistd.h中定義syscall0
  static inline _syscall0(int,pause)
  static inline _syscall0(int,setup)
  static inline _syscall0(int,sync) 
#include 
  #include 
  #include 
  #include 
  #include 

#include 
  #include 
  #include 
  #include 
  #include 

#include 

static char printbuf[1024]; 

extern int vsprintf();
  extern void init(void);
  extern void hd_init(void);
  extern long kernel_mktime(struct tm * tm);
  extern long startup_time; 

/*
  * Yeah, yeah, it's ugly, but I cannot find how to do this correctly
  * and this seems to work. I anybody has more info on the real-time
  * clock I'd be interested. Most of this was trial and error, and some
  * bios-listing reading. Urghh.
  */ 

#define CMOS_READ(addr) ({ \
  outb_p(0x80|addr,0x70); \
  inb_p(0x71); \
  }) 

#define BCD_TO_BIN(val) ((val)=((val)&15) + ((val)>>4)*10) 

static void time_init(void)
  {
  struct tm time; 

do {
   time.tm_sec = CMOS_READ(0);
   time.tm_min = CMOS_READ(2);
   time.tm_hour = CMOS_READ(4);
   time.tm_mday = CMOS_READ(7);
   time.tm_mon = CMOS_READ(8)-1;
   time.tm_year = CMOS_READ(9);
  } while (time.tm_sec != CMOS_READ(0));
  BCD_TO_BIN(time.tm_sec);
  BCD_TO_BIN(time.tm_min);
  BCD_TO_BIN(time.tm_hour);
  BCD_TO_BIN(time.tm_mday);
  BCD_TO_BIN(time.tm_mon);
  BCD_TO_BIN(time.tm_year);
  startup_time = kernel_mktime(&time);
  } 

void main(void) /* This really IS void, no error here. */
  { /* The startup routine assumes (well, ...) this */
  /*
  * Interrupts are still disabled. Do necessary setups, then
  * enable them
  */
  time_init();
  tty_init();
  trap_init();
  sched_init();
  buffer_init();
  hd_init();
  sti();
  move_to_user_mode(); @@切至用戶模式???到哪去了,回來了!!!
  if (!fork()) { /* we count on this going ok */
   init(); @@fork在unistd.h有其宏擴展int 0x80 
   如何返回兩次?應該說子進程如何激活?
  }
  /*
  * NOTE!! For any other task 'pause()' would mean we have to get a
  * signal to awaken, but task0 is the sole exception (see 'schedule()')
  * as task 0 gets activated at every idle moment (when no other tasks
  * can run). For task0 'pause()' just means we go check if some other
  * task can run, and if not we return here.
  */
  for(;;) pause();
   @@pause 同fork在unistd.h有其宏擴展int 0x80 然后調schedule()
  } 

static int printf(const char *fmt, ...)
  {
  va_list args;
  int i; 

va_start(args, fmt);
  write(1,printbuf,i=vsprintf(printbuf, fmt, args));
  va_end(args);
  return i;
  } 

static char * argv[] = { "-",NULL };
  static char * envp[] = { "HOME=/usr/root", NULL }; 

void init(void)
  {
  int i,j; 

setup(); @@系統0號調用
  if (!fork())
   _exit(execve("/bin/update",NULL,NULL));
  (void) open("/dev/tty0",O_RDWR,0); @@打開控制臺
  (void) dup(0); @@復制
  (void) dup(0);
  printf("%d buffers = %d bytes buffer space\n\r",NR_BUFFERS,
   NR_BUFFERS*BLOCK_SIZE);
  printf(" Ok.\n\r");
  if ((i=fork())<0)
   printf("Fork failed in init\r\n");
  else if (!i) { @@啟動一root shell進程?
   close(0);close(1);close(2);
   setsid();
   (void) open("/dev/tty0",O_RDWR,0);
   (void) dup(0);
   (void) dup(0);
   _exit(execve("/bin/sh",argv,envp));
  }
  j=wait(&i);
  printf("child %d died with code %04x\n",j,i);
  sync();
  _exit(0); /* NOTE! _exit, not exit() */
  }

 
 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本亚洲电影天堂| 99精品视频在线观看| 亚洲成av人片在www色猫咪| 专区另类欧美日韩| ...av二区三区久久精品| 国产精品视频第一区| 日本一区二区高清| 蜜桃一区二区三区四区| 亚洲成在线观看| 亚洲一区二区三区美女| 亚洲精品视频免费观看| 夜夜嗨av一区二区三区网页 | 最新欧美精品一区二区三区| 中文字幕精品一区| 国产精品久久久久天堂| 18成人在线视频| 亚洲欧美一区二区三区孕妇| 亚洲激情成人在线| 亚洲一区在线电影| 午夜精品福利一区二区蜜股av| 一区二区三区免费观看| 一区av在线播放| 日韩精品亚洲专区| 麻豆91在线播放| 国产剧情在线观看一区二区| 国产剧情在线观看一区二区| 成人激情小说乱人伦| 色屁屁一区二区| 欧美这里有精品| 欧美丰满少妇xxxbbb| 日韩一区二区三区电影| 国产欧美日韩三区| 亚洲美腿欧美偷拍| 丝袜美腿成人在线| 久久电影网电视剧免费观看| 国产成人无遮挡在线视频| 99久久亚洲一区二区三区青草| 一本大道av一区二区在线播放| 欧美性大战久久久久久久| 在线综合视频播放| 欧美大片免费久久精品三p| 日本一区二区高清| 亚洲国产一区在线观看| 美女网站色91| 99视频热这里只有精品免费| 91久久精品一区二区| 日韩精品一区二区在线| 国产精品嫩草久久久久| 无码av免费一区二区三区试看| 韩国成人精品a∨在线观看| 99视频在线精品| 欧美一区二区三区视频免费| 国产色产综合色产在线视频| 亚洲国产一区二区三区| 国产精品77777| 在线视频一区二区三| 日韩欧美国产一二三区| 亚洲欧洲在线观看av| 蜜臀av性久久久久av蜜臀妖精| 成人av在线影院| 91精品啪在线观看国产60岁| 欧美国产乱子伦| 婷婷综合五月天| 波多野结衣一区二区三区| 91精品国产免费| 高清免费成人av| 欧美日本视频在线| 亚洲国产精品ⅴa在线观看| 调教+趴+乳夹+国产+精品| 成人丝袜高跟foot| 欧美大度的电影原声| 亚洲一区二区三区在线看| 国产成人丝袜美腿| 日韩一级二级三级精品视频| 亚洲欧美另类图片小说| 国产一二三精品| 欧美人狂配大交3d怪物一区| 国产精品久久久久久久久动漫| 奇米综合一区二区三区精品视频 | 国产欧美日韩精品a在线观看| 亚洲成人av电影| 风间由美一区二区三区在线观看 | 国产欧美一区二区三区在线老狼| 午夜亚洲国产au精品一区二区| caoporn国产一区二区| 久久久亚洲欧洲日产国码αv| 日韩激情一二三区| 欧美在线视频全部完| 国产精品久久午夜夜伦鲁鲁| 国产综合色视频| 欧美xxxxx牲另类人与| 亚洲电影在线播放| 日本大香伊一区二区三区| 国产精品三级电影| 国产成人免费视频一区| 精品国产乱码久久久久久闺蜜| 偷窥国产亚洲免费视频| 欧美三级视频在线| 亚洲欧美日韩中文字幕一区二区三区| 国产乱码字幕精品高清av | 欧美性受xxxx黑人xyx| 亚洲欧洲中文日韩久久av乱码| 成人永久免费视频| 国产欧美一区二区精品仙草咪| 久久国产免费看| 日韩免费一区二区| 捆绑变态av一区二区三区| 日韩精品一区二区三区在线| 日韩av网站免费在线| 欧美一区二区三区免费在线看| 午夜久久福利影院| 在线播放/欧美激情| 日韩和欧美一区二区三区| 制服丝袜中文字幕一区| 日产欧产美韩系列久久99| 日韩一区二区中文字幕| 精品亚洲aⅴ乱码一区二区三区| 日韩一区二区影院| 韩国女主播一区| 国产视频一区不卡| 99久久综合国产精品| 亚洲在线一区二区三区| 欧美日韩国产影片| 肉丝袜脚交视频一区二区| 日韩欧美综合一区| 国产综合色在线视频区| 国精产品一区一区三区mba视频| 欧美r级在线观看| 国产精品一区免费视频| 亚洲国产高清aⅴ视频| 91丨porny丨户外露出| 亚洲国产精品一区二区久久| 欧美巨大另类极品videosbest| 青草av.久久免费一区| 国产日韩高清在线| 色综合久久久久网| 日韩成人精品视频| 国产欧美日韩综合精品一区二区 | 91精品国产91久久久久久一区二区 | 欧美精品一区二区三区蜜桃视频| 国产精品一品二品| 亚洲男人的天堂在线aⅴ视频| 欧美乱熟臀69xxxxxx| 韩国午夜理伦三级不卡影院| 国产精品久久久久久久久快鸭| 欧洲av在线精品| 免费日韩伦理电影| 国产精品久久久久影院| 欧美性猛交一区二区三区精品| 美女免费视频一区二区| 中文字幕av一区 二区| 欧美日韩在线一区二区| 国产伦精品一区二区三区视频青涩 | 一区二区三区美女| 日韩精品专区在线影院重磅| 国产精华液一区二区三区| 一区二区在线观看视频| 欧美xingq一区二区| 99久久综合国产精品| 免费视频一区二区| 亚洲精品视频在线| 精品处破学生在线二十三| 色婷婷精品久久二区二区蜜臂av | 国产午夜一区二区三区| 色吧成人激情小说| 久久国产生活片100| 亚洲黄网站在线观看| 久久精品一区二区三区av| 欧美色手机在线观看| 成人精品国产一区二区4080| 午夜精品成人在线| 国产精品久久久久影视| 日韩欧美一区在线| 色哟哟一区二区| 国产凹凸在线观看一区二区| 亚洲3atv精品一区二区三区| 欧美国产日韩一二三区| 日韩欧美国产三级电影视频| 欧美怡红院视频| 成人中文字幕在线| 激情欧美一区二区| 香蕉成人伊视频在线观看| 国产精品国产三级国产aⅴ中文| 精品黑人一区二区三区久久| 欧美性猛片aaaaaaa做受| 日韩欧美你懂的| 在线亚洲一区二区| 精品久久久久久综合日本欧美| 国产二区国产一区在线观看| 亚洲电影欧美电影有声小说| 国产午夜精品一区二区三区嫩草| 欧美日韩国产另类不卡| 91亚洲精华国产精华精华液| 国产乱人伦偷精品视频免下载| 偷拍日韩校园综合在线| 亚洲综合在线第一页| 国产精品久久久久久户外露出 | 欧美一级欧美三级| 欧美亚洲一区二区三区四区| 99久久99久久综合|