explaingit

kritagya123611/ascent

Analysis updated 2026-05-18

8CAudience · ops devopsComplexity · 5/5LicenseSetup · hard

TLDR

Linux performance monitoring dashboard that shows 11 simultaneous levels of system observability, from CPU usage down to kernel lock contention, with a terminal UI written in pure x86-64 assembly.

Mindmap

mindmap
  root((ASCENT))
    What it does
      11-layer system observability
      Real-time terminal dashboard
      Trace symptoms to root causes
      eBPF kernel instrumentation
    Tech Stack
      C
      x86-64 NASM Assembly
      eBPF
      Linux procfs
      PMU counters
    Use Cases
      Linux performance debugging
      Kernel-level fault diagnosis
      System observability research
    Audience
      Systems engineers
      Linux kernel developers
      DevOps and SREs
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Debug a Linux performance problem by watching all 11 observability layers at once to see where a symptom originates.

USE CASE 2

Monitor kernel scheduler behavior, lock contention, and memory pressure simultaneously on a production Linux server.

USE CASE 3

Study how eBPF programs and x86-64 assembly interact with the Linux kernel as a learning reference.

What is it built with?

Cx86-64 AssemblyeBPFNASMLinux

How does it compare?

kritagya123611/ascentalexzorzi/inferno-androidffmpegkit-maintained/ffmpeg
Stars8106
LanguageCCC
Setup difficultyhardhardeasy
Complexity5/55/52/5
Audienceops devopsdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Requires Linux 5.x+, root access for eBPF, NASM assembler, and clang with BPF support on an x86-64 machine.

GPL v2 license: you can use and modify it freely, but if you distribute modified versions you must share the source code under the same license.

In plain English

ASCENT is a Linux system monitoring tool that shows you what is happening inside a running machine at eleven different levels of detail simultaneously, all in a single terminal dashboard. The idea is that most performance problems have a visible symptom at the surface (the CPU looks busy, something feels slow) but the actual cause is hidden several layers deeper. Standard tools only look at one layer at a time. ASCENT keeps all layers visible at once so you can watch a problem cascade from the high-level symptom down to its root cause. The eleven levels are named after physics scale units and range from system-wide resource usage at the top, through process activity, system calls, kernel code paths, CPU hardware counters, scheduler behavior, memory management, and lock contention, down to interrupt causality chains at the bottom. A final layer is reserved for a planned AI-based correlation feature. Nine of the eleven layers are currently working, two (microarchitecture-level CPU data and hypervisor metrics) are scaffolded but not yet collecting data. The architecture splits into two parts. A sensor process written in C runs as root and collects data from Linux's procfs filesystem and from eBPF programs that hook into the kernel at various points. These programs watch things like which system calls are being made, how long they take, which scheduler decisions are happening, and which memory pages are being moved. Hardware performance counters are read directly from the CPU. All collected data is written as fixed-size events into a named pipe. A separate display process reads from that pipe. This display program is written entirely in x86-64 assembly language with no C library dependencies at all. It formats the data and draws the terminal interface using direct Linux system calls for all input and output. The project requires Linux 5.x or later, root access for eBPF programs, and an Intel or AMD x86-64 processor. Build tools needed are NASM (for the assembler code) and clang with BPF support.

Copy-paste prompts

Prompt 1
Walk me through building ASCENT on Linux 5.x: what do I need installed (NASM, clang, BPF headers) and how do I run the sensor and display processes?
Prompt 2
Explain what ASCENT's Yocto stratum measures about lock contention and how it uses eBPF tracepoints to track mmap_lock acquire and release events.
Prompt 3
How does the ASCENT display process draw the terminal UI using pure x86-64 assembly without any libc dependency?
Prompt 4
What is the difference between the Atto (scheduler) and Planck (causality) strata in ASCENT, and what kernel events does each one instrument?

Frequently asked questions

What is ascent?

Linux performance monitoring dashboard that shows 11 simultaneous levels of system observability, from CPU usage down to kernel lock contention, with a terminal UI written in pure x86-64 assembly.

What language is ascent written in?

Mainly C. The stack also includes C, x86-64 Assembly, eBPF.

What license does ascent use?

GPL v2 license: you can use and modify it freely, but if you distribute modified versions you must share the source code under the same license.

How hard is ascent to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is ascent for?

Mainly ops devops.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub kritagya123611 on gitmyhub

Verify against the repo before relying on details.