archives

CONTEXT07. Delimited contexts in OS

Context 07 is the Sixth International and Interdisciplinary Conference on Modeling and Using Context. Here's the List of accepted papers

Chung-chieh Shan and I have submitted a paper on delimited contexts in operating systems and the zipper OS (which has not been formally published). Systems programmers do use contexts whether they are aware of that or not. The first version of UNIX on PDP-7 already implemented delimited continuations, in the form of co-routines between user programs and the shell. Being aware of delimited continuations may help systems programmers to better implement context switching, signal handling, etc., using the techniques developed in programming language research. It also leads to new insights, for example, that checkpointing a process and snapshotting a file system are essentially the same activity.

The final paper is available at http://okmij.org/ftp/papers/context-OS.pdf

There is little new there for long-time LtU members; however, this time the material is presented systematically and in context.

IM IN UR COMPUTER, HAXIN UR CODE

For those of you hep cats who are hep to the lolcat scene, there's a new programming language, lolcode, designed specifically for the needs of your cat, being developed by the best feline researchers.

Example:

HAI
CAN HAS STDIO?
I HAS A VAR
IM IN YR LOOP
	UP VAR!!1
	VISIBLE VAR
	IZ VAR BIGGER THAN 10? KTHXBYE
IM OUTTA YR LOOP
KTHXBYE

Happy caturday. KTHXBYE.

Automated Whitebox Fuzz Testing

Automated Whitebox Fuzz Testing. Patrice Godefroid; Michael Levin; David Molnar.

Fuzz testing is an effective technique for finding security vulnerabilities in software. Traditionally, fuzz testing tools apply random mutations to well-formed inputs and test the program on the resulting values. We present an alternative whitebox fuzz testing approach inspired by recent advances in symbolic execution and dynamic test generation. Our approach records an actual run of a program under test on a well-formed input, symbolically evaluates the recorded trace, and generates constraints capturing how the program uses its inputs. The generated constraints are used to produce new inputs which cause the program to follow different control paths. This process is repeated with the help of a code-coverage maximizing heuristic designed to find defects as fast as possible. We have implemented this algorithm in SAGE (Scalable, Automated, Guided Execution), a new tool employing x86 instruction-level tracing and emulation for whitebox fuzzing of arbitrary file-reading Windows applications.

I wonder how moving this type of system to the level of high-level programming language would impact its effectiveness.