Kit: A Study in Operating System Verification
IEEE Transactions on Software Engineering
Systems programming with Modula-3
Systems programming with Modula-3
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
Exokernel: an operating system architecture for application-level resource management
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
Extensibility safety and performance in the SPIN operating system
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
IEEE Transactions on Software Engineering - Special issue on formal methods in software practice
A sound polymorphic type system for a dialect of C
Science of Computer Programming - Special issue on the 6th European symposium on programming
From system F to typed assembly language
ACM Transactions on Programming Languages and Systems (TOPLAS)
Recursive functions of symbolic expressions and their computation by machine, Part I
Communications of the ACM
A provably correct operating system: &dgr;-core
ACM SIGOPS Operating Systems Review
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the 10th international conference on Architectural support for programming languages and operating systems
ESOP '00 Proceedings of the 9th European Symposium on Programming Languages and Systems
Specification of a Smart Card Operating System
TYPES '99 Selected papers from the International Workshop on Types for Proofs and Programs
ATEC '02 Proceedings of the General Track of the annual conference on USENIX Annual Technical Conference
Heap-Bounded Assembly Language
Journal of Automated Reasoning
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Memory safety without garbage collection for embedded applications
ACM Transactions on Embedded Computing Systems (TECS)
CCured: type-safe retrofitting of legacy software
ACM Transactions on Programming Languages and Systems (TOPLAS)
SAFECode: enforcing alias analysis for weakly typed languages
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Using model checking to find serious file system errors
ACM Transactions on Computer Systems (TOCS)
Singularity: rethinking the software stack
ACM SIGOPS Operating Systems Review - Systems work at Microsoft Research
HOTOS'05 Proceedings of the 10th conference on Hot Topics in Operating Systems - Volume 10
Secure virtual architecture: a safe execution environment for commodity operating systems
Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles
Compiling c programs into a strongly typed assembly language
ASIAN'07 Proceedings of the 12th Asian computing science conference on Advances in computer science: computer and network security
Typed assembly language for implementing OS kernels in SMP/multi-core environments with interrupts
SSV'10 Proceedings of the 5th international conference on Systems software verification
Modular verification of preemptive OS kernels
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Hi-index | 0.01 |
OS kernels have been written in weakly typed or non typed programming languages, for example, C. Therefore, it is extremely hard to verify even simple memory safety of the kernels. The difficulty could be resolved by writing OS kernels in strictly typed programming languages, but existing strictly typed languages are not flexible enough to implement important OS facilities (e.g., memory management and multi-thread management facilities). To address the problem, we designed and implemented TALK , a new strictly and statically typed assembly language which is flexible enough to implement OS facilities, and wrote an OS kernel with TALK. In our approach, the safety of the kernel can be verified automatically through static type checking at the level of binary executables without source code.