摘要:在Unix的发展过程中,产生了很多Unix分支;与此同时,也产生了很多Unix标准化组织,它们各自制订自己的Unix标准。 从理论上说,应该只有一个Unix标准化组织,负责Unix的标准化;多个标准化组织反而容易引起混乱;但是,出于政治上的原因,存在多个Unix标准化组织。 从1980s后期到1990s早期这期间,Unix的派系之争经历了最开始的激烈到最后的和解,Unix标准化组织也经历了从分化到统一。 如果想要搞清楚这之间错综复杂的关系,我们需要了解一点Unix历史。 1.Unix历史 1979年,Unix V7发布,AT&T宣布将Unix商业化的计划,Novell...
阅读全文
摘要:1.什么是WAL? WAL的全称是Write Ahead Logging,它是很多数据库中用于实现原子事务的一种机制,SQLite在3.7.0版本引入了该特性。 2.WAL如何工作? 在引入WAL机制之前,SQLite使用rollback journal机制实现原子事务。 rollback journal机制的原理是:在修改数据库文件中的数据之前,先将修改所在分页中的数据备份在另外一个地方,然后才将修改写入到数据库文件中;如果事务失败,则将备份数据拷贝回来,撤销修改;如果事务成功,则删除备份数据,提交修改。 WAL机制的原理是:修改并不直接写入到数据库文件中,而是写入到另...
阅读全文
摘要:1.编写HelloWorld.java:class HelloWorld { private native void print(); public static void main(String[] args) { new HelloWorld().print(); } static { System.loadLibrary("HelloWorld"); }} 2.编译HelloWorld.java:javac HelloWorld.java 这将输出HelloWorld.class文件。 3.创建头文件:javah -jni Hel...
阅读全文
摘要:JNI的全称是Java Native Interface,它是Java平台的一个标准特性,允许Java代码和C/C++代码进行互操作。 JNI技术使得我们既可以享受Java平台的优势,又能兼顾遗留的C/C++代码,或者享受C/C++代码的性能等优势。 但是,JNI技术会损失Java程序的跨平台特性,因此我们应该尽量避免使用JNI技术。 JNI是一个双向接口,它既可以允许Java代码调用C/C++代码,又能允许C/C++代码调用Java代码;前者的使用场景比较普遍,比如Java中的native方法;后者的使用场景则比较少见,例如在浏览器中执行Java applet程序,此时浏览...
阅读全文
摘要:www.sqlite.org针对Linux, Windows, 以及一些其它平台都提供了SQLite的源代码, 编译好的库和工具:1.sqlite3 command-line program(CLP): 这是SQLite提供的一个命令行工具, 它静态链接了SQLite数据库引擎, 可以单独运行.2.SQLite shared library(DLL or so): SQLite编译好的库.3.SQLite Analyzer: SQLite的一个性能与优化工具.4.SQLite的源代码以两种形式分发, 第一种是合并版本(amalgamation), 它将所有模块的代码合并到一个源文件和一个头文件
阅读全文