![]() |
Contur 2
Educational OS kernel simulator
|
Contur 2 — OS Kernel Simulator interactive TUI entry point. More...
#include <cstddef>#include <iostream>#include <memory>#include <string>#include <vector>#include "contur/core/clock.h"#include "contur/arch/block.h"#include "contur/arch/instruction.h"#include "contur/arch/interrupt.h"#include "contur/arch/register_file.h"#include "contur/cpu/cpu.h"#include "contur/dispatch/dispatcher.h"#include "contur/execution/interpreter_engine.h"#include "contur/fs/simple_fs.h"#include "contur/io/device_manager.h"#include "contur/io/io_manager.h"#include "contur/ipc/ipc_manager.h"#include "contur/kernel/i_kernel.h"#include "contur/kernel/kernel_builder.h"#include "contur/kernel/kernel_diagnostics.h"#include "contur/memory/fifo_replacement.h"#include "contur/memory/mmu.h"#include "contur/memory/physical_memory.h"#include "contur/memory/virtual_memory.h"#include "contur/scheduling/round_robin_policy.h"#include "contur/scheduling/scheduler.h"#include "contur/syscall/syscall_table.h"#include "contur/tracing/buffer_sink.h"#include "contur/tracing/trace_level.h"#include "contur/tracing/trace_sink.h"#include "contur/tracing/tracer.h"#include "contur/tui/ftxui_app.h"#include "contur/tui/i_kernel_read_model.h"#include "contur/tui/i_tui_controller.h"Go to the source code of this file.
Functions | |
| static std::vector< Block > | makeProgramAddOnePlusOne () |
| static std::vector< Block > | makeProgramCounterLoop () |
| static std::vector< Block > | makeProgramCpuHeavy () |
| static std::vector< Block > | makeProgramLongNop (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 () |
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.
|
static |
Definition at line 162 of file main.cpp.
References contur::KernelBuilder::build(), contur::KernelBuilder::withClock(), contur::KernelBuilder::withCpu(), contur::KernelBuilder::withDefaultTickBudget(), contur::KernelBuilder::withDeviceManager(), contur::KernelBuilder::withDispatcher(), contur::KernelBuilder::withExecutionEngine(), contur::KernelBuilder::withFileSystem(), contur::KernelBuilder::withIoManager(), contur::KernelBuilder::withIpcManager(), contur::KernelBuilder::withMemory(), contur::KernelBuilder::withMmu(), contur::KernelBuilder::withScheduler(), contur::KernelBuilder::withSyscallTable(), contur::KernelBuilder::withTracer(), and contur::KernelBuilder::withVirtualMemory().
Referenced by main().
|
static |
Definition at line 131 of file main.cpp.
References formatTraceEventLine(), and contur::BufferSink::snapshot().
Referenced by main().
|
static |
Definition at line 119 of file main.cpp.
References contur::TraceEvent::details, contur::TraceEvent::level, contur::TraceEvent::timestamp, and contur::traceLevelToString().
Referenced by formatKernelLogs(), and renderKernelTraceDump().
| int main | ( | ) |
Definition at line 234 of file main.cpp.
References buildDemoKernel(), formatKernelLogs(), renderKernelTraceDump(), contur::FtxuiApp::run(), and spawnDemoProcesses().
|
static |
Definition at line 73 of file main.cpp.
References contur::Add, contur::Halt, and contur::Mov.
Referenced by spawnDemoProcesses().
|
static |
Definition at line 82 of file main.cpp.
References contur::Add, contur::Compare, contur::Halt, contur::JumpLess, and contur::Mov.
Referenced by spawnDemoProcesses().
|
static |
Definition at line 93 of file main.cpp.
References contur::Add, contur::Compare, contur::Halt, contur::JumpLess, contur::Mov, contur::Mul, and contur::Sub.
Referenced by spawnDemoProcesses().
|
static |
Definition at line 107 of file main.cpp.
References contur::Halt, and contur::Nop.
Referenced by spawnDemoProcesses().
|
static |
Definition at line 144 of file main.cpp.
References formatTraceEventLine(), and contur::BufferSink::snapshot().
Referenced by main().
|
static |
Definition at line 205 of file main.cpp.
References contur::ProcessConfig::code, contur::IKernel::createProcess(), contur::High, contur::Idle, contur::Low, makeProgramAddOnePlusOne(), makeProgramCounterLoop(), makeProgramCpuHeavy(), makeProgramLongNop(), contur::ProcessConfig::name, contur::Normal, contur::ProcessConfig::priority, and contur::Realtime.
Referenced by main().