ASELSANMicrokernel
S124 · SOURCE-BOUND GATE EVIDENCE

S124 BOOT8H strict physical raw, archive ve promotion PASS

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

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

operation: rpi5-g8h-s124-physical-boot8h-pass

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–L144
scripts/verify-rpi5-g8h-physical-raw.sh::verify-rpi5-g8h-physical-raw.sh
#!/bin/sh
set -eu

SCRIPT_DIR=$(CDPATH= cd -- "$(/usr/bin/dirname -- "$0")" && pwd -P)
REPO_ROOT=$(CDPATH= cd -- "$SCRIPT_DIR/.." && pwd -P)

fail() {
    echo "HATA: $*" >&2
    exit 1
}

run_validator() {
    (
        cd "$REPO_ROOT"
        cargo run --quiet --locked --offline -p aselsan_microkernel_simulation \
            --example verify_rpi5_g8h_physical_raw -- "$@"
    )
}

stat_identity() {
    /usr/bin/stat -f '%d:%i:%z:%m:%c:%Lp:%l' "$1"
}

stat_mode() {
    /usr/bin/stat -f '%Lp' "$1"
}

stat_links() {
    /usr/bin/stat -f '%l' "$1"
}

raw_sha256() {
    /usr/bin/shasum -a 256 "$1" | /usr/bin/cut -d ' ' -f 1
}

validate_operational_identity() {
    [ ! -L "$RAW_PATH" ] || fail "raw must be a non-symlink regular file"
    [ -f "$RAW_PATH" ] || fail "raw must be a non-symlink regular file"

    RAW_MODE=$(stat_mode "$RAW_PATH") || fail "could not stat raw mode"
    [ "$RAW_MODE" = 444 ] || fail "raw mode must be exactly 0444"
    RAW_LINKS=$(stat_links "$RAW_PATH") || fail "could not stat raw link count"
    [ "$RAW_LINKS" = 1 ] || fail "raw link count must be exactly one"
}

if [ "$#" -eq 1 ] && [ "$1" = "--verify-source-only" ]; then
    run_validator --canonical
    echo "G8H_PHYSICAL_RAW_SOURCE=PASS validators=12 milestones=60 hardware=UNTOUCHED device=0 uart=0 power=0"
    exit 0
fi

[ "$#" -eq 5 ] || \
    fail "operational mode requires RAW_PATH EXPECTED_BYTES EXPECTED_SHA256 EXPECTED_DEVICE EXPECTED_INODE"

RAW_PATH=$1
EXPECTED_BYTES=$2
EXPECTED_SHA256=$3
EXPECTED_DEVICE=$4
EXPECTED_INODE=$5

case "$EXPECTED_BYTES" in
    ''|0|0*|*[!0-9]*) fail "EXPECTED_BYTES must be a positive canonical decimal" ;;
esac
[ "$EXPECTED_BYTES" -le 67108864 ] 2>/dev/null || \
    fail "EXPECTED_BYTES exceeds the 64 MiB physical capture limit"
[ "${#EXPECTED_SHA256}" -eq 64 ] || \
    fail "EXPECTED_SHA256 must be exactly 64 lowercase hex characters"
case "$EXPECTED_SHA256" in
    *[!0-9a-f]*) fail "EXPECTED_SHA256 must be exactly 64 lowercase hex characters" ;;
esac
case "$EXPECTED_DEVICE" in
    ''|0|0*|*[!0-9]*) fail "EXPECTED_DEVICE must be a positive canonical decimal from capture_armed evidence" ;;
esac
case "$EXPECTED_INODE" in
    ''|0|0*|*[!0-9]*) fail "EXPECTED_INODE must be a positive canonical decimal from capture_armed evidence" ;;
esac

case "$RAW_PATH" in
    /*) ;;
    *) fail "RAW_PATH must be an absolute canonical path" ;;
esac
RAW_PARENT=$(/usr/bin/dirname -- "$RAW_PATH")
RAW_BASENAME=$(/usr/bin/basename -- "$RAW_PATH")
[ "$RAW_BASENAME" != . ] && [ "$RAW_BASENAME" != .. ] || \
    fail "RAW_PATH must be an absolute canonical path"
CANONICAL_PARENT=$(CDPATH= cd -- "$RAW_PARENT" 2>/dev/null && pwd -P) || \
    fail "RAW_PATH parent does not exist"
CANONICAL_PATH="$CANONICAL_PARENT/$RAW_BASENAME"
[ "$RAW_PATH" = "$CANONICAL_PATH" ] || \
    fail "RAW_PATH must be an absolute canonical path"

validate_operational_identity
PRE_IDENTITY=$(stat_identity "$RAW_PATH") || fail "could not stat raw identity"
SAVED_IFS=$IFS
IFS=:
set -- $PRE_IDENTITY
IFS=$SAVED_IFS
[ "$#" -eq 7 ] || fail "could not parse atomic pre-validation raw identity"
PRE_DEVICE=$1
PRE_INODE=$2
PRE_BYTES=$3
PRE_MODE=$6
PRE_LINKS=$7
EXPECTED_FILE_ID="$EXPECTED_DEVICE:$EXPECTED_INODE"
[ "$PRE_DEVICE:$PRE_INODE" = "$EXPECTED_FILE_ID" ] || \
    fail "raw pre-validation file identity does not match capture_armed evidence"
[ "$PRE_MODE" = 444 ] || fail "raw pre-validation mode must be exactly 0444"
[ "$PRE_LINKS" = 1 ] || fail "raw pre-validation link count must be exactly one"
PRE_SHA256=$(raw_sha256 "$RAW_PATH") || fail "could not hash raw"
[ "$PRE_BYTES" = "$EXPECTED_BYTES" ] || \
    fail "raw size does not match EXPECTED_BYTES"
[ "$PRE_SHA256" = "$EXPECTED_SHA256" ] || \
    fail "raw hash does not match EXPECTED_SHA256"

run_validator --raw "$RAW_PATH" \
    --expected-bytes "$EXPECTED_BYTES" \
    --expected-sha256 "$EXPECTED_SHA256" \
    --expected-device "$EXPECTED_DEVICE" \
    --expected-inode "$EXPECTED_INODE"

validate_operational_identity
POST_IDENTITY=$(stat_identity "$RAW_PATH") || fail "could not stat raw identity after validation"
IFS=:
set -- $POST_IDENTITY
IFS=$SAVED_IFS
[ "$#" -eq 7 ] || fail "could not parse atomic post-validation raw identity"
POST_DEVICE=$1
POST_INODE=$2
POST_BYTES=$3
POST_MODE=$6
POST_LINKS=$7
[ "$POST_DEVICE:$POST_INODE" = "$EXPECTED_FILE_ID" ] || \
    fail "raw post-validation file identity does not match capture_armed evidence"
[ "$POST_MODE" = 444 ] || fail "raw post-validation mode must be exactly 0444"
[ "$POST_LINKS" = 1 ] || fail "raw post-validation link count must be exactly one"
POST_SHA256=$(raw_sha256 "$RAW_PATH") || fail "could not hash raw after validation"
[ "$POST_IDENTITY" = "$PRE_IDENTITY" ] || fail "raw identity changed during validation"
[ "$POST_BYTES" = "$PRE_BYTES" ] || fail "raw identity changed during validation"
[ "$POST_SHA256" = "$PRE_SHA256" ] || fail "raw hash changed during validation"
[ "$POST_BYTES" = "$EXPECTED_BYTES" ] || fail "raw identity changed during validation"
[ "$POST_SHA256" = "$EXPECTED_SHA256" ] || fail "raw hash changed during validation"

echo "G8H_PHYSICAL_RAW_VALIDATION=PASS exact_bytes=$POST_BYTES sha256=$POST_SHA256 device=$EXPECTED_DEVICE inode=$EXPECTED_INODE validators=12 milestones=60"
snippet sha256: 945363d7c2cffile sha256: 945363d7c2cf
02 · Kapı kimlik kaydı

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

tam Operations kaydıL25839–L25901
website/src/lib/operations.ts::rpi5-g8h-s124-physical-boot8h-pass
  {
    id: "rpi5-g8h-s124-physical-boot8h-pass",
    date: "2026-08-24",
    sequence: 124,
    status: "passed",
    title: "S124 BOOT8H strict physical raw, archive ve promotion PASS",
    summary:
      "S124, S123'ün immutable leading-NUL reddinden sonra uart_2ndstage=0 aday paketiyle yeni tek fiziksel denemeyi tamamladı. Aynı descriptor üzerinde fresh helper 115200/8N1 exclusive raw UART capture arm edildi; bir kullanıcı-bildirimi power-on sonrasında ASELSAN/BOOT8H marker'ı bir kez görüldü, 3 saniyelik grace tamamlandı ve raw durable mode 0444 olarak kapandı. Identity-pinned strict validator 12/12 validator ve 60/60 milestone ile exact 20270 B raw'ı PASS etti. Strict PASS sonrasında aday paket ve kart kimliği salt-okunur yeniden doğrulandı; archive/promotion açıldı. Bu kayıt dar G8h physical BOOT8H kabulüdür; K1/K2/MEM0–MEM2 veya tam workspace GREEN iddiası değildir.",
    evidence: [
      "Aday paket exact4 manifest PASS: image 316864 B / 7e4b713a4ba4f45d572b61ca170cf7f5c89f9a4485f839dc12cc5a8c23570de1, DTB 78703 B / 40a2fbe9c29e8b9a4912cf726a943068defb779fc052ec38e457a79c58abca00, config.txt 501 B / bb309081780859054c0601eac0234b1310e10f9c82b7eec7f2f7e7ccb3069fab; config'te uart_2ndstage=0.",
      "Helper source SHA-256 6e438d260bbecde7c9cdeeb371f3b9edfd567b108533671a2b59287d4adc56cd; helper binary SHA-256 f21d002741bc3e4d327a64d229945e2857067046b94421835f80d9b265349df2.",
      "UART pre-arm: /dev/cu.usbmodem214402, exclusive TIOCEXCL, 115200/8N1, raw mode ve flow-control kapalı; fresh raw identity capture ile eşleşti.",
      "Terminal marker ASELSAN/BOOT8H occurrence=1, offset=18987..19002; grace=3 s; capture exact_bytes=20270, mode=0444, nlink=1, durable=true, success=true.",
      "Strict validator sonucu: validators=12/12, milestones=60/60, exact_bytes=20270, PHYSICAL_BOOT8H=PASS; raw SHA-256 ee97d070741d5f7acd8ea7985d00ea54086e2fbaea54e1cc94619dd640bb4158.",
      "Raw capture device/inode 16777231:23040666 üzerinde korundu; leading NUL=3 ve BOOT8H count=1. S123 rejected raw'ı değiştirilmedi, trim/copy/delete veya validator retry yapılmadı.",
      "Strict PASS sonrasında salt-okunur kart re-auth: /dev/disk6, Secure Digital, Built In SDXC Reader, 62549655552 B, /Volumes/ASELSANBOOT, UUID=44ABB50F-DB63-3DB8-A6B2-C5303E3211E9; aday manifest PASS; ARCHIVE=PASS PROMOTION=PASS.",
      "Power-on ve power-off fiziksel geçişleri kullanıcı bildirimi olarak kaydedildi; Mac tarafındaki UART kapanışı, raw identity/hash kapanışı ve kart re-auth host gözlemleriyle doğrulandı; independently_observed=false.",
      "Kalıcı kanıt: evidence/rpi5/g8h/sequence-124-physical-pass/README.md ve EVIDENCE_SHA256SUMS.",
    ],
    commands: [
      "scripts/capture-rpi5-g8h-uart10.c — fresh same-descriptor UART arm ve durable raw close",
      "scripts/verify-rpi5-g8h-physical-raw.sh <retained-raw> 20270 ee97d070741d5f7acd8ea7985d00ea54086e2fbaea54e1cc94619dd640bb4158 16777231 23040666",
      "salt-okunur strict PASS sonrası card identity/manifest re-auth ve archive/promotion audit",
    ],
    terminalSessions: [
      {
        id: "s124-g8h-physical-capture",
        title: "G8h fresh UART capture ve terminal marker",
        commandLines: [
          "scripts/capture-rpi5-g8h-uart10.c — /dev/cu.usbmodem214402, 115200/8N1, exclusive raw",
        ],
        outputLines: [
          "terminal_marker_seen=ASELSAN/BOOT8H start_offset=18987 end_offset=19002",
          "terminal_grace_complete=true seconds=3",
          "capture_closed=true terminal_seen=true grace_complete=true exact_bytes=20270 mode=0444 durable=true success=true",
        ],
        exitCode: 0,
        outputMode: "selected",
      },
      {
        id: "s124-g8h-strict-physical-validator",
        title: "G8h strict raw validator ve archive kapısı",
        commandLines: [
          "scripts/verify-rpi5-g8h-physical-raw.sh <retained-raw> 20270 ee97d070741d5f7acd8ea7985d00ea54086e2fbaea54e1cc94619dd640bb4158 16777231 23040666",
        ],
        outputLines: [
          "G8h physical raw PASS: validators=12 milestones=60 exact_bytes=20270",
          "G8H_PHYSICAL_RAW_VALIDATION=PASS exact_bytes=20270 sha256=ee97d070741d5f7acd8ea7985d00ea54086e2fbaea54e1cc94619dd640bb4158 device=16777231 inode=23040666 validators=12 milestones=60",
          "ARCHIVE=PASS PROMOTION=PASS",
        ],
        exitCode: 0,
        outputMode: "selected",
      },
    ],
    terminalSessionsNote:
      "S124 raw/validator/archive kanıtı host tarafında bağımsız gözlenmiştir. Güç verme ve güç kesme geçişleri kullanıcı bildirimi sınırındadır; bunlar için bağımsız elektriksel gözlem iddia edilmez.",
    limitations: [
      "Bu PASS yalnız G8h strict physical BOOT8H raw kabulüdür; Generic SMP, K1/K2, MEM0–MEM2 ve tam workspace GREEN kapsamı değildir.",
      "POWER_ON=1 ve POWER_OFF=1 kullanıcı bildirimidir; independently_observed=false.",
      "S123 leading-NUL rejection olayı immutable tarihsel kayıt olarak korunur ve S124 ile geriye dönük PASS'e çevrilmez.",
      "S124 archive/promotion PASS, package/raw/card re-auth kapılarının sonucudur; fiziksel güç geçişlerinin bağımsız ölçümü değildir.",
    ],
  },
snippet sha256: 73a1f88a10abfile sha256: 9726dbf00f84
Kayıtlı yürütme/kanıt komutu
scripts/capture-rpi5-g8h-uart10.c — fresh same-descriptor UART arm ve durable raw close
Registry schema v5 · generator website/scripts/generate-code-gates.mjs · Tam SHA-256: 91d38c7b6222f0b4c117be786454853543da55a160e543d9b951057cc20dcc06