ASELSANMicrokernel
S71 · SOURCE-BOUND GATE EVIDENCE

G8e sonrası fail-closed SMP yol haritası donduruldu; ilk kapı G8f

Operations komutu/kapı ailesi → gerçek repository yürütme sözleşmesi Bu sayfa yalnız S71 kapısına aittir; komşu kapıların kaynakları bu kabulün içine katılmaz.

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

operation: rpi5-post-g8e-smp-roadmap-frozen

script/Makefile/config · Operations · 2 exact excerpt

sequence-bound=true · implementation-bound=false
01 · Yürütme sözleşmesi

Gerçek script / Makefile / config kaynağı

tam dosyaL1–L34
website/package.json::scripts
{
  "name": "aselsan-microkernel-web",
  "version": "0.1.0",
  "private": true,
  "type": "module",
  "scripts": {
    "dev": "next dev",
    "build": "node scripts/generate-code-gates.mjs --check && next build",
    "start": "next start",
    "test": "node scripts/generate-code-gates.mjs --check && node --test src/lib/*.test.mjs",
    "lint": "eslint",
    "code:generate": "node scripts/generate-code-gates.mjs",
    "code:check": "node scripts/generate-code-gates.mjs --check",
    "images:checklist": "bash scripts/generate-checklist-images.sh",
    "deploy": "node scripts/generate-code-gates.mjs --check && next build && npx wrangler pages deploy out --project-name=aselsan-microkernel --branch=main --commit-dirty=true"
  },
  "dependencies": {
    "next": "16.3.1",
    "react": "19.2.4",
    "react-dom": "19.2.4"
  },
  "devDependencies": {
    "@tailwindcss/postcss": "^4",
    "@types/node": "^20",
    "@types/react": "^19",
    "@types/react-dom": "^19",
    "eslint": "^9",
    "eslint-config-next": "16.3.1",
    "tailwindcss": "^4",
    "typescript": "^5",
    "wrangler": "4.124.0"
  }
}
snippet sha256: 99bba54663f1file sha256: 99bba54663f1
02 · Kapı kimlik kaydı

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

tam Operations kaydıL30624–L30707
website/src/lib/operations.ts::rpi5-post-g8e-smp-roadmap-frozen
  {
    id: "rpi5-post-g8e-smp-roadmap-frozen",
    date: "2026-08-21",
    sequence: 71,
    status: "verified",
    title: "G8e sonrası fail-closed SMP yol haritası donduruldu; ilk kapı G8f",
    summary:
      "Sıra 70 fiziksel G8e kanıtı web içerikleriyle birleştirilip 122/122 test, lint, TypeScript ve 22/22 statik sayfa kapılarından geçti; production deployment 1303733c… tamamlandı ve canonical `/operations/` çıktısı 2.204.017 bayt/9827f13c…92ec olarak yerelle byte-for-byte eşleşti. Ardından RPi5/QEMU × SMP açık/kapalı dört compile profili yeniden PASS verdi. Salt-okunur risk audit'i timer bookkeeping ve TICKS'in global, scheduler'ın kilitsiz tek `static mut`, generic secondary yolun UART/global yield kullandığını; ayrıca nonzero-ASID TTBR/TLBI kodlaması ile allocator generation yolunun migration öncesi ayrı bir STOP olduğunu doğruladı. Kalıcı yol haritası ilk dar kapıyı G8f post-BOOT8E quiescent handoff olarak dondurdu: timer/IRQ/task/GIC write eklemeden exact bir atomic release/ack ve local-state inventory. Sonraki sıra per-CPU periodic timer, CPU1 local preemption, per-CPU runqueue, EL1 ASID0 migration, ASID/TLBI shootdown, EL0 migration, CPU2, CPU3, soak ve hotplug'dır.",
    evidence: [
      "Sıra 70 birleşik web matrisi 122/122 test, ESLint PASS, `tsc --noEmit --incremental false` PASS ve Next static export 22/22 verdi.",
      "Production deployment `1303733c.aselsan-microkernel.pages.dev` oluşturuldu; canonical custom-domain `/operations/` ikinci cache-bust snapshot'ta local ile cmp PASS verdi.",
      "Canonical `/operations/` exact 2.204.017 B / 9827f13c0631aeb20f22286322bed31a8d01f2039f1c84f554fdd347e4e292ec; Sıra 70 id ve fiziksel raw hash marker'ları 5/5, `/operations/` ve `/firmware/` HTTP 200 oldu.",
      "`board-rpi5,smp`, `board-qemu,smp`, `board-rpi5` ve `board-qemu` cargo check profilleri 4/4 PASS verdi; bu yalnız compile/topology/stack temelidir.",
      "Fail-closed MPIDR decoder, dört bağımsız PerCpu slotu ve affinity kontrolünü stack hesabından önce yapan secondary trampoline mevcut; modulo ile CPU0 alias yolu yoktur.",
      "Runtime STOP audit'i periodic timer state atomiklerinin ve `exceptions::TICKS` değerinin global, `task::scheduler::SCHEDULER` nesnesinin kilitsiz `static mut`, local IRQ maskesinin cross-core lock olmadığını doğruladı.",
      "Generic `secondary_core_entry` CPU1'den UART ve global `yield_now()` yoluna girer; per-CPU IRQ stack ile tam exception-frame/task-context ownership tamamlanmadan runtime SMP açılamaz.",
      "MMU audit'i `write_ttbr0_to` içinde 8-bit ASID için `<<56`, `invalidate_asid` içinde kaydırılmamış TLBI operandı ve allocator'da kilitsiz/generation'sız reuse buldu; nonzero-ASID migration G8k öncesi kesin STOP'tur.",
      "G8f acceptance exact bir CPU0 release ve CPU1 ack, en fazla beş CPU0 tick, CPU1 MPIDR=0x100/TPIDR=1/EL1h/IRQ masked/timer off, CPU0 timer on+ilerliyor ve G8e totals=2/pending-active=0/canary sağlam koşullarını taşır.",
      "G8f'te yeni SGI send/delivery/EOI/reschedule, task wake/run ve GIC write exact 0; GENERIC_SMP/MIGRATION/TLB_SHOOTDOWN/CPU2_3 OFF kalır.",
      "Kalıcı `docs/M8.1-RPi5-Post-G8e-SMP-Roadmap.md` 11.267 B / 466fa6b3adbbc0475f952755811685b567fd572be7bfa0fa58f018377f9002e9 olarak donduruldu; fence/tab/trailing-whitespace ve no-index diff-check PASS verdi.",
    ],
    terminalSessionsNote:
      "İlk oturum Sıra 70'in gerçek production kapanışını, ikinci oturum güncel compile-only SMP temelini, üçüncü oturum ise salt-okunur risk audit'i ve kalıcı plan freeze'ini gösterir. G8f runtime veya fiziksel PASS iddia edilmez.",
    terminalSessions: [
      {
        id: "g8e-seq70-production-close",
        title: "Sıra 70 full web gate, production deploy ve canonical cmp",
        commandLines: [
          "npm test; npm run lint; npx tsc --noEmit --incremental false; npm run build",
          "npx wrangler pages deploy out --project-name=aselsan-microkernel --branch=main --commit-dirty=true",
          "download one cache-busted canonical operations snapshot and cmp it with out/operations/index.html",
        ],
        outputLines: [
          "tests=122/122 PASS · lint=PASS · TypeScript=PASS · static pages=22/22",
          "deployment=1303733c.aselsan-microkernel.pages.dev",
          "attempt1=old cache · attempt2=2204017 B / 9827f13c…92ec · cmp=PASS",
          "sequence70/raw-hash markers=5/5 · operations/firmware HTTP=200/200",
        ],
        exitCode: 0,
        outputMode: "complete",
      },
      {
        id: "post-g8e-compile-foundation-audit",
        title: "RPi5/QEMU SMP ve non-SMP compile temelinin yeniden ölçümü",
        commandLines: [
          "cargo check -p aselsan_kernel --target aarch64-unknown-none --no-default-features --features board-rpi5,smp",
          "cargo check -p aselsan_kernel --target aarch64-unknown-none --no-default-features --features board-qemu,smp",
          "cargo check -p aselsan_kernel --target aarch64-unknown-none --no-default-features --features board-rpi5",
          "cargo check -p aselsan_kernel --target aarch64-unknown-none --no-default-features --features board-qemu",
        ],
        outputLines: [
          "board-rpi5,smp=PASS · board-qemu,smp=PASS",
          "board-rpi5=PASS · board-qemu=PASS",
          "compile profiles=4/4 PASS · warnings remain · runtime SMP=NOT ENABLED",
        ],
        exitCode: 0,
        outputMode: "selected",
      },
      {
        id: "post-g8e-roadmap-freeze",
        title: "Runtime STOP audit'i ve G8f-first yol haritası",
        commandLines: [
          "inspect G8e terminal loops, per-CPU topology/stack, timer, exceptions, scheduler, SMP and MMU/ASID paths read-only",
          "freeze docs/M8.1-RPi5-Post-G8e-SMP-Roadmap.md",
          "verify byte count, SHA-256, code fences, tabs, trailing whitespace and diff-check",
        ],
        outputLines: [
          "first gate=G8f post-BOOT8E quiescent handoff/inventory · new IRQ/task/GIC writes=0",
          "runtime STOP=global timer/ticks + unlocked static scheduler + incomplete IRQ/context ownership",
          "nonzero-ASID migration STOP=TTBR/TLBI encoding + allocator generation/shootdown not proven",
          "roadmap=11267 B · 466fa6b3…002e9 · formatting checks=PASS",
        ],
        exitCode: 0,
        outputMode: "complete",
      },
    ],
    limitations: [
      "Bu bir plan ve mevcut-temel audit kaydıdır; G8f contract/runtime/marker, yeni package, microSD write veya fiziksel BOOT8F henüz yoktur.",
      "Generic SMP runtime kapalıdır; compile PASS scheduler, timer, migration veya shootdown güvenliği kanıtı değildir.",
      "ASID/TTBR/TLBI ve allocator bulguları henüz düzeltilmedi; nonzero-ASID task migration kesinlikle yasaktır.",
      "Website yayını canonical custom domain üzerinden doğrulanır; bu ortamda reset veren pages.dev direct smoke için başarı iddia edilmez.",
      "Wrangler yayını dirty/untracked workspace'ten ve stale 47d22c9 source etiketiyle yapılır; canlı artifact hash'i doğrulansa da Git-provider provenance kurulmuş sayılmaz.",
    ],
  },
snippet sha256: 193f4e47447bfile sha256: 9726dbf00f84
Kayıtlı yürütme/kanıt komutu
npm test; npm run lint; npx tsc --noEmit --incremental false; npm run build
Registry schema v5 · generator website/scripts/generate-code-gates.mjs · Tam SHA-256: 91d38c7b6222f0b4c117be786454853543da55a160e543d9b951057cc20dcc06