Skip to content

Latest commit

 

History

History
105 lines (70 loc) · 6.86 KB

README.md

File metadata and controls

105 lines (70 loc) · 6.86 KB

Rocket Surgery

A discussion of next generation technologies, especially with regard to software and formal methods.

Canonical Locations for this repo are, in order:

  1. Keybase.io team page, git sync url
  2. GitLab
  3. GitHub

Why Does Anyone Care?

Formal methods allow us to create High Assurance (essentially "bug-free") software assuming certain conditions are met. We'll save the list of conditions for a future update.

While these methods take more time and skill up front, they allow software to run for far longer periods between failures or security compromises. Potentially forever in a theoretical sense if the hardware could ever be reliable enough to allow that. This is a far cry from today's systems that must be rebooted frequently and patched daily in an effort to stave off attacks.

Some good intro materials for the general public and executives:

Examples of Formally Verified Software

  • seL4: A high-assurance, high-performance operating system microkernel.
  • CertiKOS: A novel and practical programming infrastructure for constructing large-scale certified system software.
  • Ironsides: An authoritative/recursive DNS server pair that is provably invulnerable to many of the problems that plague other servers.
  • Muen: An x86/64 Separation Kernel for High Assurance.

Program Analysis & Verification

KLEE

SMACK

SeaHorn

Dependent Types

Theorem Provers

TLA+

Isabelle

Full Program Synthesis

Program Self-Repair

Quorum and N-Version Computing

Further Reading and Resources

  • Hillel Wayne - Lots of blog posts about TLA+ and Formal Methods

Related Awesome Repos