Contur 2
Educational OS kernel simulator
Loading...
Searching...
No Matches
main.cpp File Reference

Contur 2 — OS Kernel Simulator interactive TUI entry point. More...

Go to the source code of this file.

Functions

static std::vector< BlockmakeProgramAddOnePlusOne ()
static std::vector< BlockmakeProgramCounterLoop ()
static std::vector< BlockmakeProgramCpuHeavy ()
static std::vector< BlockmakeProgramLongNop (std::size_t nops)
static std::string formatTraceEventLine (const TraceEvent &event)
static std::vector< std::string > formatKernelLogs (const BufferSink &sink)
static std::string renderKernelTraceDump (const BufferSink &sink)
static DemoKernelBuild buildDemoKernel ()
static void spawnDemoProcesses (IKernel &kernel)
int main ()

Detailed Description

Contur 2 — OS Kernel Simulator interactive TUI entry point.

Builds a demo kernel with several processes and launches the FTXUI-backed interactive visualiser. The simulation starts paused; press [Space] to begin autoplay or [t] to advance one tick manually.

Definition in file main.cpp.

Function Documentation

◆ buildDemoKernel()

◆ formatKernelLogs()

std::vector< std::string > formatKernelLogs ( const BufferSink & sink)
static

Definition at line 131 of file main.cpp.

References formatTraceEventLine(), and contur::BufferSink::snapshot().

Referenced by main().

◆ formatTraceEventLine()

std::string formatTraceEventLine ( const TraceEvent & event)
static

◆ main()

◆ makeProgramAddOnePlusOne()

std::vector< Block > makeProgramAddOnePlusOne ( )
static

Definition at line 73 of file main.cpp.

References contur::Add, contur::Halt, and contur::Mov.

Referenced by spawnDemoProcesses().

◆ makeProgramCounterLoop()

std::vector< Block > makeProgramCounterLoop ( )
static

Definition at line 82 of file main.cpp.

References contur::Add, contur::Compare, contur::Halt, contur::JumpLess, and contur::Mov.

Referenced by spawnDemoProcesses().

◆ makeProgramCpuHeavy()

std::vector< Block > makeProgramCpuHeavy ( )
static

◆ makeProgramLongNop()

std::vector< Block > makeProgramLongNop ( std::size_t nops)
static

Definition at line 107 of file main.cpp.

References contur::Halt, and contur::Nop.

Referenced by spawnDemoProcesses().

◆ renderKernelTraceDump()

std::string renderKernelTraceDump ( const BufferSink & sink)
static

Definition at line 144 of file main.cpp.

References formatTraceEventLine(), and contur::BufferSink::snapshot().

Referenced by main().

◆ spawnDemoProcesses()