ASELSANMicrokernel
S87 · SOURCE-BOUND GATE EVIDENCE

G8g tam regresyon, QEMU ve beş profil matrisi yeşil

S87 make hedefi → exact G8g matrix yürütme script'i Bu sayfa yalnız S87 kapısına aittir; komşu kapıların kaynakları bu kabulün içine katılmaz.

S87Komut / fiziksel sözleşmeOperations id exactsource SHA exact

operation: rpi5-g8g-full-regression-matrix-green

script/Makefile/config · Operations · 2 exact excerpt

sequence-bound=true · implementation-bound=false
01 · Yürütme / doğrulama kodu

Kapının gerçek repository sözleşmesi

tam dosyaL1–L97
scripts/verify-rpi5-g8g-matrix.sh::verify-rpi5-g8g-matrix.sh
#!/bin/sh
set -eu

cargo_bin=${1:-cargo}
readobj=${2:?'llvm-readobj yolu gerekli'}
objdump=${3:?'llvm-objdump yolu gerekli'}

script_dir=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)
repo_root=$(CDPATH= cd -- "$script_dir/.." && pwd -P)
kernel_dir="$repo_root/kernel"
target_root="$repo_root/target/g8g-matrix"
target_triple=aarch64-unknown-none

[ -f "$kernel_dir/.cargo/config.toml" ] || {
    echo 'HATA: kernel/.cargo/config.toml yok; production profil bağlamı kurulamadı' >&2
    exit 1
}
[ -x "$readobj" ] || {
    echo "HATA: llvm-readobj çalıştırılamıyor: $readobj" >&2
    exit 1
}
[ -x "$objdump" ] || {
    echo "HATA: llvm-objdump çalıştırılamıyor: $objdump" >&2
    exit 1
}

build_profile() {
    profile=$1
    features=$2
    profile_target="$target_root/$profile"
    (
        cd "$kernel_dir"
        CARGO_TARGET_DIR="$profile_target" "$cargo_bin" build \
            --target "$target_triple" \
            --no-default-features \
            --features "$features"
    )
    echo "PROFILE=$profile FEATURES=$features MODE=BUILD CONFIG=kernel/.cargo/config.toml RESULT=PASS"
}

check_profile() {
    profile=$1
    features=$2
    profile_target="$target_root/$profile"
    (
        cd "$kernel_dir"
        CARGO_TARGET_DIR="$profile_target" "$cargo_bin" check \
            --target "$target_triple" \
            --no-default-features \
            --features "$features"
    )
    echo "PROFILE=$profile FEATURES=$features MODE=COMPILE_ONLY CONFIG=kernel/.cargo/config.toml RESULT=PASS"
}

build_profile qemu board-qemu
build_profile rpi4 board-rpi4
build_profile rpi5 board-rpi5
check_profile qemu-smp board-qemu,smp
check_profile rpi5-smp board-rpi5,smp

rpi5_elf="$target_root/rpi5/$target_triple/debug/aselsan_kernel"
[ -f "$rpi5_elf" ] || {
    echo "HATA: fresh RPi5 ELF yok: $rpi5_elf" >&2
    exit 1
}

sh "$script_dir/verify-rpi5-g8-layout.sh" "$readobj" "$objdump" "$rpi5_elf"
sh "$script_dir/verify-rpi5-g8b-layout.sh" "$objdump" "$rpi5_elf"
sh "$script_dir/verify-rpi5-g8c-layout.sh" "$objdump" "$rpi5_elf"
sh "$script_dir/verify-rpi5-g8d-layout.sh" "$objdump" "$rpi5_elf"
sh "$script_dir/verify-rpi5-g8e-layout.sh" "$objdump" "$rpi5_elf"
sh "$script_dir/verify-rpi5-g8f-layout.sh" "$objdump" "$rpi5_elf"
sh "$script_dir/verify-rpi5-g8g-layout.sh" "$objdump" "$rpi5_elf"

for marker in \
    ASELSAN/G8G0 \
    ASELSAN/G8G1 \
    ASELSAN/G8G2 \
    ASELSAN/BOOT8G \
    ASELSAN/G8GERR
do
    count=$(strings "$rpi5_elf" | grep -F -o "$marker" | wc -l | tr -d ' ')
    [ "$count" -eq 1 ] || {
        echo "HATA: fresh RPi5 ELF marker exact-once değil: $marker count=$count" >&2
        exit 1
    }
    echo "MARKER=$marker COUNT=$count"
done

rpi5_size=$(wc -c < "$rpi5_elf" | tr -d ' ')
rpi5_sha=$(shasum -a 256 "$rpi5_elf" | awk '{print $1}')
echo "MATRIX=5/5 LAYOUT=G8-G8g MARKERS=5/5 RESULT=PASS"
echo "RPI5_ELF_BYTES=$rpi5_size RPI5_ELF_SHA256=$rpi5_sha"
echo 'ROOT_CARGO_CONTEXT=NON_PRODUCTION ACCEPTED_CONFIG_CONTEXT=kernel/.cargo/config.toml'
echo 'SMP_PROFILES=COMPILE_ONLY GENERIC_SMP_RUNTIME=STOP'
echo 'REPRODUCIBILITY=STOP IMAGE_FREEZE=STOP PACKAGE=STOP MICROSD=STOP UART=STOP PHYSICAL_BOOT8G=STOP'
snippet sha256: dfd7d3514d32file sha256: dfd7d3514d32
02 · Kapı kimlik kaydı

Operations sıra, kimlik ve başlık bağı

tam Operations kaydıL29142–L29233
website/src/lib/operations.ts::rpi5-g8g-full-regression-matrix-green
  {
    id: "rpi5-g8g-full-regression-matrix-green",
    date: "2026-08-22",
    sequence: 87,
    status: "verified",
    title: "G8g tam regresyon, QEMU ve beş profil matrisi yeşil",
    summary:
      "Sıra 86 hardened layout kabulünden sonra durable `make verify-rpi5-g8g-matrix` bağımsız tekrarında exit 0 verdi. Workspace 227/227; QEMU hello+IPC+SEC5 fault'suz; qemu/rpi4/rpi5 non-SMP BUILD ile qemu+smp/rpi5+smp COMPILE_ONLY profilleri 5/5; fresh production-context RPi5 ELF üzerinde G8–G8g layout 7/7 ve G8G0/G8G1/G8G2/BOOT8G/G8GERR marker exact-once 5/5 PASS'tir. Profil script'i her cargo çağrısını `kernel/` dizininde kalıcı `kernel/.cargo/config.toml` ile ve ayrı target kökünde çalıştırır. Workspace kökünden exit 0 veren diagnostic Cargo build'i bu config bağlamını taşımadığı ve G8g local-symbol size kapısında kaldığı için NON_PRODUCTION reddedildi. Fresh kabul ELF'i 7.692.040 B / 858644c8…ace620d. `verify-core` tarafından oluşan image yalnız build yan etkisidir: Sıra 88 reproducibility, immutable image/package, microSD, UART ve fiziksel BOOT8G STOP; SMP profilleri runtime kabulü değildir ve son fiziksel PASS Sıra 80 BOOT8F'tir.",
    evidence: [
      "Değişmeyen fiziksel prerequisite Sıra 80 BOOT8F raw'ıdır: 17.363 B, mode 0444, e70e1a9a2cf35f9079ee1b1a73d992106bf5ee9a19f1bbf2628582e836ea5068, direct validator PASS ve SCOPE=QUIESCENT_ATOMIC_HANDOFF_ONLY.",
      "Yeni durable `verify-rpi5-g8g-matrix` hedefini taşıyan Makefile exact 18.040 B / 698c12830bff4525cfa83748dc74d5e0756e49b43b3398dd5ab90b6524a15b7c.",
      "İzole profile/layout/marker/STOP kapısını taşıyan `verify-rpi5-g8g-matrix.sh` exact 3.169 B / dfd7d3514d3294048ef01626982bd636f8ceece07eba3bc6d8187244adfb09f5.",
      "Matrix source acceptance testi exact 2.640 B / e8b70bddad7e33466c6dada9ce17ee0ad4a31d6ae6134c916b36cb8ef47f0ee4 ve 5/5 PASS'tir.",
      "`make verify-rpi5-g8g-matrix` bağımsız tekrar exit 0; workspace 227/227 ve mevcut contract/runtime/integration 27/14/6=47/47 PASS'tir.",
      "QEMU runtime smoke userspace hello, IPC request/response ve scheduler SEC5 marker'ını gördü; panic, abort, data fault, unknown/unhandled IRQ ve fatal marker sayısı sıfırdır.",
      "Profil matrisi 5/5'tir: qemu/board-qemu, rpi4/board-rpi4 ve rpi5/board-rpi5 MODE=BUILD; qemu-smp/board-qemu,smp ile rpi5-smp/board-rpi5,smp MODE=COMPILE_ONLY.",
      "Her profil `kernel/` çalışma dizininde kalıcı `kernel/.cargo/config.toml` production bağlamı ve ayrı `target/g8g-matrix/<profile>` kökü kullanır.",
      "Diagnostic root-workspace Cargo build exit 0 ile 3.590.872 B / 17187014764d8eb4aee755a74aa030634c2c040d0102b07ec2508b8c6cf60a9a ELF üretti; package-altı config bağlamını taşımadığı ve G8g primary local-symbol size=0x18 verdiği için NON_PRODUCTION reddedildi.",
      "Doğru kernel Cargo bağlamındaki fresh RPi5 ELF exact 7.692.040 B / 858644c80df07f7acb0ea38b44e88ea06064a01b23446ba24abe417facea620d.",
      "Fresh ELF üzerinde G8/G8b/G8c/G8d/G8e/G8f/G8g production layout kapıları 7/7 PASS'tir.",
      "Fresh ELF'te ASELSAN/G8G0, G8G1, G8G2, BOOT8G ve G8GERR marker'ları ayrı ayrı exact-once; toplam marker kapısı 5/5 PASS'tir. ELF görünürlüğü fiziksel emission değildir.",
      "Sıra 86 başlangıç 34-girdi sorted-line aggregate manifest SHA-256 değeri f2a5241e78252f5f162ef21248d48736eedfb3823fa07f6e2a96b82bed8021f1'dir; Sıra 87 additive Makefile/script/test değişikliği nedeniyle whole-manifest unchanged iddiası yapılmaz.",
      "Kritik production kaynakları aynen kaldı: main 98.001 B / 6190d7b22bb5c46779e1ea5760d550c2a640de28572b6f751a14ee74c61942f0; G8f 23.552 B / 052829aaba61e86e6d4f941dff18df2466750c4b4876f5478dee6a7120f45e97; G8g 37.958 B / 7f09aa1cf4df43c65ca80db7a97bff21a73e3e8a480fef4524bb44d058dc7545.",
      "Exceptions 38.579 B / 817b872615593660761bf3d8965fc726b339c020da6692820d685655ad4140f9, timer 18.169 B / 35edb3758192aa23877962b92b6ab81e858a2523726d174069d6c17e231855d2 ve GIC 18.332 B / 7a5e876413389d2cb7d3e0eb3902dee1a56c7cb24e7ab188766763011333f8d9 olarak değişmedi.",
      "`verify-core` side-effect image exact 292.256 B / 985fbe1088566beb1f8a655dba7b06759f088256077446a1d542251f3683c747; DTB 78.703 B / 40a2fbe9c29e8b9a4912cf726a943068defb779fc052ec38e457a79c58abca00; config 501 B / 1248275cdc6f6ce951ce0ff2183471d194c5b9bb58c3dc3f66efa9156f91d76b; SHA256SUMS 248 B / fb112a41f2f55a2355e9a91d58fd2c2e74ad969a6fbf11b0a8ad6956fed3cb7a. Hiçbiri Sıra 87 artifact kabulü değildir.",
      "Sıra 87 full matrix proof exact 8.475 B / e403e28fc996d95308f9b2ae91146f2a94c4c2f7005c6ea8312a0a0e567c5dd2.",
      "Updated staged proof exact 12.368 B / 0b613d2444918a054b2b9495ef4d46b3c11b0f5329fb39dc44f59cfd0f0dd8df.",
      "Güncellenmiş Sıra 88–93 roadmap exact 31.967 B / c4db1807acd8e13ab3626efdf6729951b03e9f34c304d13204a1383f718c9728; sıradaki tek yetkili işlem Sıra 88 reproducible kernel payload kapısıdır.",
    ],
    terminalSessionsNote:
      "Oturumlar tam host/QEMU/profile/layout matrisini ve doğru production Cargo bağlamını gösterir. Compile-only SMP, incidental image veya ELF marker görünürlüğü fiziksel BOOT8G kanıtı değildir.",
    terminalSessions: [
      {
        id: "g8g-sequence87-durable-full-matrix",
        title: "Workspace, QEMU ve önceki G8g kapılarının tam tekrarı",
        commandLines: [
          "make verify-rpi5-g8g-matrix",
          "run verify-core, G8g integration/layout and isolated profile matrix",
        ],
        outputLines: [
          "workspace=227/227 PASS · matrix-source=5/5 PASS",
          "contract/runtime/integration=27/14/6=47/47 PASS",
          "QEMU hello+IPC+SEC5=PASS · faults=0",
          "durable target exit=0 · independent rerun=PASS",
        ],
        exitCode: 0,
        outputMode: "complete",
      },
      {
        id: "g8g-sequence87-five-profiles",
        title: "Kalıcı kernel Cargo config ile beş izole profil",
        commandLines: [
          "build qemu, rpi4 and rpi5 in isolated target roots",
          "check qemu+smp and rpi5+smp as compile-only profiles",
          "run G8 through G8g layouts and exact marker counts on fresh RPi5 ELF",
        ],
        outputLines: [
          "profiles=5/5 PASS · BUILD=3 · COMPILE_ONLY=2",
          "accepted config=kernel/.cargo/config.toml",
          "layouts=7/7 PASS · markers=5/5 exact-once",
          "RPi5 ELF=7692040 B · sha256=858644c80df07f7acb0ea38b44e88ea06064a01b23446ba24abe417facea620d",
        ],
        exitCode: 0,
        outputMode: "complete",
      },
      {
        id: "g8g-sequence87-context-and-artifact-stop",
        title: "Root Cargo negative control ve incidental image sınırı",
        commandLines: [
          "diagnostic root-workspace cargo build -p aselsan_kernel ... board-rpi5",
          "compare local-symbol layout with persistent kernel config build",
          "classify verify-core image side effect without promotion",
        ],
        outputLines: [
          "root Cargo ELF=3590872 B · exit=0 · G8g local symbol size=0x18",
          "root Cargo context=NON_PRODUCTION · layout=REJECTED",
          "verify-core image=292256 B · acceptance=NO",
          "SMP runtime/repro/image/package/SD/UART/physical=STOP",
        ],
        exitCode: 0,
        outputMode: "selected",
      },
    ],
    limitations: [
      "Bu kayıt tam regression/QEMU/profile/layout matrisidir; reproducible payload, immutable image/package veya fiziksel BOOT8G PASS değildir.",
      "QEMU+SMP ve RPi5+SMP yalnız COMPILE_ONLY'dir; generic SMP runtime, scheduler/runqueue ownership, migration, TLBI ve CPU2/CPU3 açılmaz.",
      "Fresh RPi5 ELF'in markerları exact-once taşıması UART'ta yayımlandıklarını kanıtlamaz; fiziksel emission Sıra 92'ye aittir.",
      "`verify-core` tarafından oluşan image tarihsel G8f seviyeli build yan etkisidir; Sıra 88 üç-yönlü reproducibility ve Sıra 89 package freeze olmadan deploy adayı değildir.",
      "microSD, UART, Debug Probe ve Pi güç durumuna dokunulmadı. Son fiziksel PASS Sıra 80 BOOT8F'tir.",
      "Production deployment dirty/untracked workspace ve stale 47d22c9 source etiketiyle yapılır; canlı artifact doğrulansa da Git-provider provenance kurulmuş sayılmaz.",
    ],
  },
snippet sha256: c79cdf04e8d3file sha256: 9726dbf00f84
Kayıtlı yürütme/kanıt komutu
make verify-rpi5-g8g-matrix
Registry schema v5 · generator website/scripts/generate-code-gates.mjs · Tam SHA-256: 91d38c7b6222f0b4c117be786454853543da55a160e543d9b951057cc20dcc06