36.html
来自「linux 0.11中文版 有注释」· HTML 代码 · 共 370 行 · 第 1/3 页
HTML
370 行
<a name='L112'><i><font color='green'>// unsigned short suid 保存的用户id。</font></i>
<a name='L113'><i><font color='green'>// unsigned short gid 组标识号(组id)。</font></i>
<a name='L114'><i><font color='green'>// unsigned short egid 有效组id。</font></i>
<a name='L115'><i><font color='green'>// unsigned short sgid 保存的组id。</font></i>
<a name='L116'><i><font color='green'>// long alarm 报警定时值(滴答数)。</font></i>
<a name='L117'><i><font color='green'>// long utime 用户态运行时间(滴答数)。</font></i>
<a name='L118'><i><font color='green'>// long stime 系统态运行时间(滴答数)。</font></i>
<a name='L119'><i><font color='green'>// long cutime 子进程用户态运行时间。</font></i>
<a name='L120'><i><font color='green'>// long cstime 子进程系统态运行时间。</font></i>
<a name='L121'><i><font color='green'>// long start_time 进程开始运行时刻。</font></i>
<a name='L122'><i><font color='green'>// unsigned short used_math 标志:是否使用了协处理器。</font></i>
<a name='L123'><i><font color='green'>// --------------------------</font></i>
<a name='L124'><i><font color='green'>// int tty 进程使用tty 的子设备号。-1 表示没有使用。</font></i>
<a name='L125'><i><font color='green'>// unsigned short umask 文件创建属性屏蔽位。</font></i>
<a name='L126'><i><font color='green'>// struct m_inode * pwd 当前工作目录i 节点结构。</font></i>
<a name='L127'><i><font color='green'>// struct m_inode * root 根目录i 节点结构。</font></i>
<a name='L128'><i><font color='green'>// struct m_inode * executable 执行文件i 节点结构。</font></i>
<a name='L129'><i><font color='green'>// unsigned long close_on_exec 执行时关闭文件句柄位图标志。(参见include/fcntl.h)</font></i>
<a name='L130'><i><font color='green'>// struct file * filp[NR_OPEN] 进程使用的文件表结构。</font></i>
<a name='L131'><i><font color='green'>// --------------------------</font></i>
<a name='L132'><i><font color='green'>// struct desc_struct ldt[3] 本任务的局部表描述符。0-空,1-代码段cs,2-数据和堆栈段ds&ss。</font></i>
<a name='L133'><i><font color='green'>// --------------------------</font></i>
<a name='L134'><i><font color='green'>// struct tss_struct tss 本进程的任务状态段信息结构。</font></i>
<a name='L135'><i><font color='green'>// ==========================</font></i>
<a name='L136'><b>struct</b> task_struct
<a name='L137'><font color='red'>{</font>
<a name='L138'><i><font color='green'>/* these are hardcoded - don't touch */</font></i>
<a name='L139'> <b>long</b> state; <i><font color='green'>/* -1 unrunnable, 0 runnable, >0 stopped */</font></i>
<a name='L140'> <b>long</b> counter;
<a name='L141'> <b>long</b> priority;
<a name='L142'> <b>long</b> signal;
<a name='L143'> <b>struct</b> sigaction sigaction[32];
<a name='L144'> <b>long</b> blocked; <i><font color='green'>/* bitmap of masked signals */</font></i>
<a name='L145'><i><font color='green'>/* various fields */</font></i>
<a name='L146'> <b>int</b> exit_code;
<a name='L147'> <b>unsigned</b> <b>long</b> start_code, end_code, end_data, brk, start_stack;
<a name='L148'> <b>long</b> pid, father, pgrp, session, leader;
<a name='L149'> <b>unsigned</b> <b>short</b> uid, euid, suid;
<a name='L150'> <b>unsigned</b> <b>short</b> gid, egid, sgid;
<a name='L151'> <b>long</b> alarm;
<a name='L152'> <b>long</b> utime, stime, cutime, cstime, start_time;
<a name='L153'> <b>unsigned</b> <b>short</b> used_math;
<a name='L154'><i><font color='green'>/* file system info */</font></i>
<a name='L155'> <b>int</b> <a href='../S/7.html#L44' title='Defined at 44 in fs/char_dev.c.'>tty</a>; <i><font color='green'>/* -1 if no tty, so it must be signed */</font></i>
<a name='L156'> <b>unsigned</b> <b>short</b> umask;
<a name='L157'> <b>struct</b> m_inode *pwd;
<a name='L158'> <b>struct</b> m_inode *root;
<a name='L159'> <b>struct</b> m_inode *executable;
<a name='L160'> <b>unsigned</b> <b>long</b> close_on_exec;
<a name='L161'> <b>struct</b> file *filp[<a href='../S/31.html#L59' title='Defined at 59 in include/linux/fs.h.'>NR_OPEN</a>];
<a name='L162'><i><font color='green'>/* ldt for this task 0 - zero 1 - cs 2 - ds&ss */</font></i>
<a name='L163'> <b>struct</b> desc_struct ldt[3];
<a name='L164'><i><font color='green'>/* tss for this task */</font></i>
<a name='L165'> <b>struct</b> tss_struct tss;
<a name='L166'><font color='red'>}</font>;
<a name='L167'>
<a name='L168'><i><font color='green'>/*</font></i>
<a name='L169'><i><font color='green'>* INIT_TASK is used to set up the first task table, touch at</font></i>
<a name='L170'><i><font color='green'>* your own risk!. Base=0, limit=0x9ffff (=640kB)</font></i>
<a name='L171'><i><font color='green'>*/</font></i>
<a name='L172'><i><font color='green'>/*</font></i>
<a name='L173'><i><font color='green'>* INIT_TASK 用于设置第1 个任务表,若想修改,责任自负?!</font></i>
<a name='L174'><i><font color='green'>* 基址Base = 0,段长limit = 0x9ffff(=640kB)。</font></i>
<a name='L175'><i><font color='green'>*/</font></i>
<a name='L176'><i><font color='green'>// 对应上面任务结构的第1 个任务的信息。</font></i>
<a name='L177'><font color='darkred'>#define</font> <a href='../S/74.html#L72' title='Refered from 72 in kernel/sched.c.'>INIT_TASK</a> \
<a name='L178'><i><font color='green'>/* state etc */</font></i> <font color='red'>{</font> 0,15,15, \ <i><font color='green'>// state, counter, priority</font></i>
<a name='L179'><i><font color='green'>/* signals */</font></i> 0,
<a name='L180'><font color='red'>{</font>
<a name='L181'> <font color='red'>{</font>
<a name='L182'> <font color='red'>}</font>
<a name='L183'>,<font color='red'>}</font>
<a name='L184'>
<a name='L185'>, 0, \ <i><font color='green'>// signal, sigaction[32], blocked</font></i>
<a name='L186'> <i><font color='green'>/* ec,brk... */</font></i> 0, 0, 0, 0, 0, 0, \
<a name='L187'> <i><font color='green'>// exit_code,start_code,end_code,end_data,brk,start_stack</font></i>
<a name='L188'> <i><font color='green'>/* pid etc.. */</font></i> 0, -1, 0, 0, 0, \
<a name='L189'> <i><font color='green'>// pid, father, pgrp, session, leader</font></i>
<a name='L190'> <i><font color='green'>/* uid etc */</font></i> 0, 0, 0, 0, 0, 0, \
<a name='L191'> <i><font color='green'>// uid, euid, suid, gid, egid, sgid</font></i>
<a name='L192'> <i><font color='green'>/* alarm */</font></i> 0, 0, 0, 0, 0, 0, \
<a name='L193'> <i><font color='green'>// alarm, utime, stime, cutime, cstime, start_time</font></i>
<a name='L194'> <i><font color='green'>/* math */</font></i> 0, \
<a name='L195'> <i><font color='green'>// used_math</font></i>
<a name='L196'> <i><font color='green'>/* fs info */</font></i> -1, 0022, <a href='../D/261.html' title='Multiple defined in 12 places.'>NULL</a>, <a href='../D/261.html' title='Multiple defined in 12 places.'>NULL</a>, <a href='../D/261.html' title='Multiple defined in 12 places.'>NULL</a>, 0, \
<a name='L197'> <i><font color='green'>// tty,umask,pwd,root,executable,close_on_exec</font></i>
<a name='L198'><i><font color='green'>/* filp */</font></i>
<a name='L199'><font color='red'>{</font>
<a name='L200'><a href='../D/261.html' title='Multiple defined in 12 places.'>NULL</a>,<font color='red'>}</font>
<a name='L201'>
<a name='L202'>, \ <i><font color='green'>// filp[20]</font></i>
<a name='L203'><font color='red'>{</font>
<a name='L204'> \ <i><font color='green'>// ldt[3]</font></i>
<a name='L205'> <font color='red'>{</font>
<a name='L206'> 0, 0<font color='red'>}</font>
<a name='L207'> ,
<a name='L208'><i><font color='green'>/* ldt */</font></i>
<a name='L209'> <font color='red'>{</font>
<a name='L210'> 0x9f, 0xc0fa00<font color='red'>}</font>
<a name='L211'> , \ <i><font color='green'>// 代码长640K,基址0x0,G=1,D=1,DPL=3,P=1 TYPE=0x0a</font></i>
<a name='L212'> <font color='red'>{</font>
<a name='L213'> 0x9f, 0xc0f200<font color='red'>}</font>
<a name='L214'> , \ <i><font color='green'>// 数据长640K,基址0x0,G=1,D=1,DPL=3,P=1 TYPE=0x02</font></i>
<a name='L215'><font color='red'>}</font>
<a name='L216'>
<a name='L217'>,
<a name='L218'><i><font color='green'>/*tss*/</font></i>
<a name='L219'><font color='red'>{</font>
<a name='L220'> 0, <a href='../D/324.html' title='Multiple defined in 4 places.'>PAGE_SIZE</a> + (<b>long</b>) &init_task, 0x10, 0, 0, 0, 0, (<b>long</b>) &pg_dir, \ <i><font color='green'>// tss</font></i>
<a name='L221'> 0, 0, 0, 0, 0, 0, 0, 0,
<a name='L222'> 0, 0, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, <a href='../S/36.html#L260' title='Defined at 260 in include/linux/sched.h.'>_LDT</a> (0), 0x80000000,
<a name='L223'> <font color='red'>{</font>
<a name='L224'> <font color='red'>}</font>
<a name='L225'><font color='red'>}</font>
<a name='L226'>,<font color='red'>}</font>
<a name='L227'>
<a name='L228'><b>extern</b> <b>struct</b> task_struct *task[<a href='../S/36.html#L4' title='Defined at 4 in include/linux/sched.h.'>NR_TASKS</a>]; <i><font color='green'>// 任务数组。</font></i>
<a name='L229'><b>extern</b> <b>struct</b> task_struct *last_task_used_math; <i><font color='green'>// 上一个使用过协处理器的进程。</font></i>
<a name='L230'><b>extern</b> <b>struct</b> task_struct *current; <i><font color='green'>// 当前进程结构指针变量。</font></i>
<a name='L231'><b>extern</b> <b>long</b> <b>volatile</b> jiffies; <i><font color='green'>// 从开机开始算起的滴答数(10ms/滴答)。</font></i>
<a name='L232'><b>extern</b> <b>long</b> startup_time; <i><font color='green'>// 开机时间。从1970:0:0:0 开始计时的秒数。</font></i>
<a name='L233'>
<a name='L234'><font color='darkred'>#define</font> <a href='../R/21.html' title='Multiple refered from 19 places.'>CURRENT_TIME</a> (startup_time+jiffies/<a href='../S/36.html#L5' title='Defined at 5 in include/linux/sched.h.'>HZ</a>) <i><font color='green'>// 当前时间(秒数)。</font></i>
<a name='L235'>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?