当前位置:首页 » 服务器技术
开发技术指南» 文章正文
    引言: CPU在内核中运行时并不是处处不可抢占的,内核中存在一些空隙,在这时进行抢占是安全的,内核抢占补丁的基本原理就是将SMP可并行的代码段看成是可以进行内核抢占的区域。
 

 

 ·solaris 补丁管理器    »显示摘要«
    摘要:使用最新补丁更新系统,有助于避免出现可用性、安全性和数据完整性风险。solaris 补丁管理器由 sun 推出,可以降低补丁管理工作的复杂性并减少时间消耗,从而降低此类风险。 solaris 补丁管理器是统一的补丁管理解决方案,提供的工具可以帮助您选择并安装补丁,提供的进程可以帮助您保持系统的补丁状态并尽量延长开机时间。 solaris 补丁管理器有两种版本,它们都基于相同的补丁分析引擎: ......
 ·linux网络自动补丁机(1)    »显示摘要«
    摘要:笔者是一个red hat linux系统管理员,管理着网络中几十台redhat linux 9主机。对于linux这样的开放式系统,和其他私有操作系统(windows/solais)相比, 发行商的短期支持策略使得网管经常需要上相应的网站看,是否有补丁,是否有了bug 修复,是否需要升级。千万不要报侥幸心理,否则一个shell脚本就可能拿下你的网站。套用一句名言:你的服务器永远可能在第二天被黑客接......


Linux操作系统内核抢占补丁的基本原理
上一页   ... arch/i386/kernel/entry.s: preempt_count = 4 # 将task_struct中的flags用作preempt_count,flags被移到了别 的位置 ret_from_exception: # 从异常返回 #ifdef config_smp get_current(%ebx) movl processor(%ebx),%eax shll $config_x86_l1_cache_shift,%eax movl symbol_name(irq_stat)(,%eax),%ecx # softirq_active testl symbol_name(irq_stat)+4(,%eax),%ecx # softirq_mask #else movl symbol_name(irq_stat),%ecx # softirq_active testl symbol_name(irq_stat)+4,%ecx # softirq_mask #endif jne handle_softirq #ifdef config_preempt cli incl preempt_count(%ebx) # 异常的入口没有禁止内核调度的指令,与ret_from_intr 匹配一下 #endif entry(ret_from_intr) # 硬件中断的返回 get_current(%ebx) #ifdef config_preempt cli decl preempt_count(%ebx) # 恢复内核抢占标志 #endif movl eflags(%esp),%eax # mix eflags and cs movb cs(%esp),%al testl $(vm_mask | 3),%eax # return to vm86 mode or non-supervisor? jne ret_with_reschedule #ifdef config_preempt cmpl $0,preempt_count(%ebx) jnz restore_all # 如果preempt_count非零则表示禁止内核抢占 cmpl $0,need_resched(%ebx) jz restore_all # movl symbol_name(irq_stat)+irq_stat_local_bh_count cpu_indx,%ecx addl symbol_name(irq_stat)+irq_stat_local_irq_count cpu_indx,%ecx jnz restore_all incl preempt_count(%ebx) sti call symbol_name(preempt_schedule) jmp ret_from_intr # 新进程返回,返回ret_from_intr恢复抢占标志后再返回 #else jmp restore_all #endif align handle_softirq: #ifdef config_preempt cli get_current(%ebx) incl preempt_count(%ebx) sti #endif call symbol_name(do_softirq) jmp ret_from_intr align
...   下一页
 ·opensuse补丁教程 (kernel 2.6.x)    »显示摘要«
    摘要:什么是内核 内核是 linux 系统的核心,提供硬件抽象层、磁盘及文件系统控制、多任务并发管理等底层功能的系统部件。 什么是补丁 linux 内核是由 kernel 小组 (http://www.kernel.org) 维护的,他们在首页提供最新稳定版的内核源代码下载地址。这是原始的纯净内核代码。 如上所述,出于种种原因,一般要对原始内核进行修改。而修改源代码的工作是由打补丁实现的,每......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE