Welcome 微信登录

首页 / 操作系统 / Linux

Linux内核中断内幕

Linux内核中断内幕

什么是中断 Linux 内核需要对连接到计算机上的所有硬件设备进行管理,毫无疑问这是它的份内事。如果要管理这些设备,首先得和它们互相通信才行,一般有两种方案可实现这种功能: 轮询(polling) 让内核定期对设备的状态进行查询,然后做出相应的处理; 中断(interrupt) 让硬件在需要的时候向内核发出信号(变内核主动为硬件主动)。 第一种方案会让内核做不少的无用功,因为轮询总会周期性的重复执行,大量地耗用 CPU 时间,因此效率及其低下,所以...
保护Java代码

保护Java代码

目前关于JAVA程序的加密方式不外乎JAVA模糊处理(Obfuscator)和运用ClassLoader方法进行加密处理这两种方式(其他的方式亦有,但大多是这两种的延伸和变异)。这两种方式不管给JAVA反编译器造成多少困难, 毕竟还是有迹可寻,有机可乘的。本文介绍的方法是对ClassLoader方式加密处理的一种改进,使之达到传统二进制程序代码安全。 第一章 流行的加密方式简介关于JAVA程序的加密方式,一直以来都是以JAVA模糊处理(Obfuscator...
Linux下静态编译的一个TIP

Linux下静态编译的一个TIP

Linux下静态编译好处很多,一来是可以跨发行版(debian RedHat gentoo),跨版本,跨架构(x86 x64)运行程序,可以联想到一些邪恶的东西;二来是可以避免动态库被修改影响程序输出,后门检测工具一般最好可以静态编译。在Linux里静态编译一些东西的时候,ld会报找不到libgcc_s,但是我们发现/usr/lib/下有libgcc_s.so,搞了半天,最后用strace发现Y去找libgcc_s.a了。但是libgcc_s这玩意是在gc...
汉诺塔算法JAVA版

汉诺塔算法JAVA版

现在有三根相邻的柱子,标号为A,B,C,A柱子上从下到上按金字塔状叠放着n个不同大小的圆盘,现在把所有盘子一个一个移动到柱子B上,并且每次移动同一根柱子上都不能出现大盘子在小盘子上方,请问至少需要多少次移动?解决方案:class HanRuoTa {static long s=0;public static void main(String args[]) { int n =3; System.out.println("汉诺塔层数为" + n); Sys...
Java GUI 三态导航树

Java GUI 三态导航树

1 通过Java Swing实现的一个三态树组件,包括选择、去选择、半选择等状态,适合网管等C/S结构的软件2 代码是整合完善多个版本/多位大侠的工作后,输出的一个较为满意的版本,还有很多值得优化的空间,欢迎大家修改完善。3 大家在使用时放到一个包里即可运行, 三态树的节点为任意的Object,可以根据具体情况设置对象类型,可以很好的进行多态等处理, 代码简洁, Cell可以设置属性,可以根据具体情况扩展/*** <p>Title: </...
C语言函数调用约定

C语言函数调用约定

在C语言中,假设我们有这样的一个函数:int function(int a,int b)调用时只要用result = function(1,2)这样的方式就可以使用这个函数。但是,当高级语言被编译成计算机可以识别的机器码时,有一个问题就凸现出来:在CPU中,计算 机没有办法知道一个函数调用需要多少个、什么样的参数,也没有硬件可以保存这些参数。也就是说,计算机不知道怎么给这个函数传递参数,传递参数的工作必须 由函数调用者和函数本身来协调。为此,计算机提供了一...
<< 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 >>