易截截图软件、单文件、免安装、纯绿色、仅160KB

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() 释放分配给任务的文件,并且将其标识符减去,_


相关文档:

三款 Linux 下的免费桌面级杀毒软件(图)


由于 Linux 良好的用户权限管理体系,病毒往往是 Linux 系统管理员最后才需要考虑的问题。以往,Linux 上的杀毒软件主要是为企业的邮件和文件服务器所设计的。如今,随着 Linux 桌面用户数量的增长,桌面用户在受益于 Linux 系统对病毒较强的天然免疫力的同时,也需要杀毒软件清理从网络或U盘带来的WIndows病毒。尽管那些 ......

Unix/Linux 的 Load问题


原文网址: http://www.dbanotes.net/arch/unix_linux_load.html
      几乎每个接触类 Unix 操作系统的工程师都知道如何查看系统负载。但这东西的工作机理到底是怎样的,可能没有多少能说清楚。对比了一些相关信息,加上自己的理解,做一下笔记。
什么是 Load ? 什么是 Load Average ......

Linux 下消除netbeans字体锯齿

编辑
$netbeans_home/etc/netbeans.conf,在"netbeans_default_options"项中添加"-J-
Dawt.useSystemAAFontSettings=on --fontsize=12"
p.s:让所有的Java程序都使用反锯
齿: export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on'
------------------------------------------------- ......

linux开机启动服务详解

acpid
配置文件:/proc/acpi/event
默认端口:无
说明:Advanced Configuration and Power Interface,为替代传统的APM 电源管理标准而推出
的新型电源管理标准。
是否需要启动:如果你需要对电源进行管理,那就需要启动。
anacron
配置文件:/etc/anacron
默认端口:无
说明:一个自动化运行任务。Red Hat Linux ......

Linux下VMWare修改BIOS安状Win7的OEM版

      在学习与工作中都离不开Linux,那么干脆就只装一个Linux算了,不过还是会有用到Windows的情况,比如说写论文啊,某些专业软件啊什么的。不要说Linux下什么都有,呵呵,反正我是不敢用Linux下的office的,打印社都用MS word。而word文档到了openoffice之流的下面就是会出现千奇百怪的现象。 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号