linux内核读书笔记(进程终止函数分析)三
do_exit() Function
-----------------------------------------------------------------------
kernel/exit.c
707 NORET_TYPE void do_exit(long code)
708 {
709 struct task_struct *tsk = current;
710
711 if (unlikely(in_interrupt()))
712 panic("Aiee, killing interrupt handler!");
713 if (unlikely(!tsk->pid))
714 panic("Attempted to kill the idle task!");
715 if (unlikely(tsk->pid == 1))
716 panic("Attempted to kill init!");
717 if (tsk->io_context)
718 exit_io_context();
719 tsk->flags |= PF_EXITING;
720 del_timer_sync(&tsk->real_timer);
721
722 if (unlikely(in_atomic()))
723 printk(KERN_INFO "note: %s[%d] exited with preempt_count %d\n",
724 current->comm, current->pid,
725 preempt_count());
-----------------------------------------------------------------------
Line 707参数code是进城返回给父进程的退出码 Lines 711716 确保目前进程不是一个中断处理进程,确保不是idle进程(PID=0)或者是init进程(PID=1),init进程只有系统被终止时才能退出; Line 719 将该进程的flags域设置为PF_EXITING,这表明当前进程被终止; -----------------------------------------------------------------------
kernel/exit.c
...
727 profile_exit_task(tsk);
728
729 if (unlikely(current->ptrace & PT_TRACE_EXIT)) {
730 current->ptrace_message = code;
731 ptrace_notify((PTRACE_EVENT_EXIT << 8) | SIGTRAP);
732 }
733
734 acct_process(code);
735 __exit_mm(tsk);
736
737 exit_sem(tsk);
738 __exit_files(tsk);
739 __exit_fs(tsk);
740 exit_namespace(tsk);
741 exit_thread();
...
-----------------------------------------------------------------------
Lines 729732 如果进程被ptraced而且PT_TRACE_EXIT 被设置,我们将exit_code作为消息通知父进程 Lines 735742 将进程中不用的资源clean up掉,__exit_mm()用于释放分配给进程的内存,和释放和此进程相关的mm_struct,exit_sem()将此任务从IPC中分离,__exit_files() 释放分配给任务的文件,并且将其标识符减去,_
相关文档:
总览
用iptables -ADC 来指定链的规
则
,-A添加 -D删除 -C 修改
iptables - [RI] chain rule num rule-specification[option]
用iptables - RI 通过规则的顺序指定
iptables -D chain rule num[option]
删除指定规则
iptables -[LFZ] [chain][option]
用iptables -LFZ 链名 [选项]
iptables -[NX] chain
用 -NX ......
由于 Linux 良好的用户权限管理体系,病毒往往是 Linux 系统管理员最后才需要考虑的问题。以往,Linux 上的杀毒软件主要是为企业的邮件和文件服务器所设计的。如今,随着 Linux 桌面用户数量的增长,桌面用户在受益于 Linux 系统对病毒较强的天然免疫力的同时,也需要杀毒软件清理从网络或U盘带来的WIndows病毒。尽管那些 ......
無論是在Linux還是在Unix環境中,make都是一個非常重要的編譯指令。
不管是自己進行項目開發還是安裝應用軟體,我們都經常要用到make或make install。利用make工具,我們可以將大型的開& ......
今天把PHP环境换到LINUX里面来,用的是LD 9.12.1系统。linux很多安装跟配置都需要在终端环境下完成,虽然上次在YLMF OS里面安装过,可是那些代码还是记不清了。感谢因特网的力量,随手谷歌一下就基本上都找到了。现在将安装过程录下,方便下次的时候翻閲。
1.先下载xampp。在官方网站 ......
原文网址: http://www.dbanotes.net/arch/unix_linux_load.html
几乎每个接触类 Unix 操作系统的工程师都知道如何查看系统负载。但这东西的工作机理到底是怎样的,可能没有多少能说清楚。对比了一些相关信息,加上自己的理解,做一下笔记。
什么是 Load ? 什么是 Load Average ......