ASELSANMicrokernel
S123 · SOURCE-BOUND GATE EVIDENCE

S123 BOOT8H capture kapandı; 23 leading NUL strict physical raw'ı reddetti

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

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

operation: rpi5-g8h-s123-leading-nul-physical-raw-rejected

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ıL26971–L27074
website/src/lib/operations.ts::rpi5-g8h-s123-leading-nul-physical-raw-rejected
  {
    id: "rpi5-g8h-s123-leading-nul-physical-raw-rejected",
    date: "2026-08-23",
    sequence: 123,
    status: "passed",
    closure: {
      status: "passed",
      sequence: 124,
      operation_id: "rpi5-g8h-s124-physical-boot8h-pass",
      summary:
        "S124 yeni aday paketle BOOT8H strict physical raw, 12/12 validator, 60/60 milestone ve ARCHIVE/PROMOTION kapılarını PASS ederek S123'ün açık fiziksel kabulünü kapattı.",
    },
    title:
      "S123 BOOT8H capture kapandı; 23 leading NUL strict physical raw'ı reddetti",
    summary:
      "S122'de arm edilen aynı PID 4516 / serial FD 3 / raw FD 4 üzerinde final pre-power continuity PASS verdikten sonra yalnız bir yetkili power-on yapıldı. Helper exact BOOT8H marker'ını gördü, üç saniyelik grace'i tamamladı ve aynı raw'ı durable 0444 olarak başarıyla kapattı. Ancak identity-pinned aggregate/direct strict wrapper tek çalıştırmada exit 1 verdi: raw başındaki 23 NUL, frozen maksimum 5 sınırını aştı. Bu nedenle helper/capture katmanı başarılı olsa da S123 fiziksel BOOT8H PASS değildir; immutable rejected raw değiştirilmeden korundu ve S124 archive/promotion açılmadı. Capture transaction snapshot'ında power_on=1 ve power_off_at_validator_close=0 korunur. Ayrı closeout amendment'ında kullanıcı 2026-08-23T09:56:56Z / 12:56:56+03:00 anında Pi gücünü bir kez kestiğini bildirdi: post_S123_closeout_power_off=1, lifecycle power_on/off=1/1, güncel durum USER-REPORTED POWERED OFF ve independently_observed=false.",
    evidence: [
      "Final pre-power kapı 2026-08-23T09:21:33Z'de PASS: PID 4516, FD 3/4, raw 16777231:22679159, 1 B `00`, mode 0600/nlink1, aynı USB/IOSerial identity, tek holder ve power=0.",
      "Tek power-on sonrasında helper stdout'u exact `terminal_marker_seen=ASELSAN/BOOT8H start_offset=21229 end_offset=21244`, `terminal_grace_complete=true seconds=3` ve `capture_closed=true terminal_seen=true grace_complete=true exact_bytes=22512 mode=0444 durable=true success=true` verdi; retained exec session helper exit `0`, stderr `0 B` kaydetti.",
      "Immutable raw: 22512 B / `0076cd00e895f49a779777eaa91478946fa87a0381ed469990abb88cd46a0f85`; device 16777231, inode 22679159, exact mode 0444, nlink1 ve holder0. Helper stdout 751 B / `d1dae883ebba21cc0e9cf9debb039833ede80298dc63505133c78f10df845263`; stderr empty SHA-256 `e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855`.",
      "Beş positional identity-pinned operational wrapper tam bir kez çalıştı ve exit 1 verdi. Kök hata: `leading NUL prefix exceeds capture allowance: observed 23, maximum 5`; G7a–G8h 12-validator zincirindeki diğer kayıtlar bu prerequisite reddinin fail-closed yayılımıdır.",
      "2026-08-23T09:27:31Z preservation audit'i raw stat/hashinin exact değişmediğini doğruladı: edit/copy/delete=0, validator retry=0, helper retry=0, archive=0, promotion=0. 09:29:58Z post-exit continuity'de helper absent, cu/tty holder0 ve USB kimliği stable kaldı.",
      "S123 closeout amendment — post-rejection power-off (USER-REPORTED): event_id=`rpi5-g8h-s123-post-rejection-power-off-closeout`, parent_sequence=S123, event_kind=USER_REPORTED_POWER_STATE_CLOSEOUT, sequence_number_consumed=NO. Capture snapshot `power_off_at_validator_close=0`; ayrı delta `post_S123_closeout_power_off=1`. Event-local power_on/UART/helper/disk/raw_access/validator/archive/promotion counters exact 0; raw reread/reverify yapılmadı.",
      "Kalıcı kayıt raw'ın kendisini kopyalamaz: `evidence/rpi5/g8h/sequence-123-power-capture-validator-rejected/README.md`.",
    ],
    commands: [
      "<S123 final live identity/FD/raw continuity gate>",
      "<single user-authorized Pi power-on; existing helper only>",
      "sh scripts/verify-rpi5-g8h-physical-raw.sh <retained-raw> 22512 0076cd00e895f49a779777eaa91478946fa87a0381ed469990abb88cd46a0f85 16777231 22679159",
      "<read-only preservation + post-exit continuity audit>",
    ],
    terminalSessions: [
      {
        id: "s123-helper-terminal-close",
        title: "Tek power-on, BOOT8H marker ve durable helper close",
        commandLines: ["<existing S122 helper; no reopen or retry>"],
        outputLines: [
          "terminal_marker_seen=ASELSAN/BOOT8H start_offset=21229 end_offset=21244",
          "terminal_grace_complete=true seconds=3",
          "capture_closed=true terminal_seen=true grace_complete=true exact_bytes=22512 mode=0444 durable=true success=true",
          "helper_exit=0 stderr_bytes=0",
        ],
        exitCode: 0,
        outputMode: "selected",
      },
      {
        id: "s123-identity-pinned-strict-validator",
        title: "Immutable aggregate + direct G8h strict physical karar",
        commandLines: [
          "sh scripts/verify-rpi5-g8h-physical-raw.sh <retained-raw> 22512 0076cd00e895f49a779777eaa91478946fa87a0381ed469990abb88cd46a0f85 16777231 22679159",
        ],
        outputLines: [
          "G8h physical raw validation failed",
          "leading NUL prefix exceeds capture allowance: observed 23, maximum 5",
          "validator_chain=G7a..G8h validators=12 decision=REJECTED",
        ],
        exitCode: 1,
        outputMode: "selected",
        outputNote:
          "Tek kök neden 23 leading NUL'dır; raw trim/normalize edilmedi ve validator yeniden çalıştırılmadı.",
      },
    ],
    terminalSessionsNote:
      "Helper success ile strict physical acceptance ayrıdır. S123 capture dosyası immutable kapandı, fakat frozen semantic limit nedeniyle reddedildi ve physical PASS/promotion oluşmadı. Sonraki power-off terminal gözlemi değil, timestamp'li kullanıcı closeout bildirimidir.",
    limitations: [
      "Son boot/runtime fiziksel PASS değişmeden S92 BOOT8G ve CPU1_PER_CPU_TIMER_ONLY kapsamıdır.",
      "S123 raw immutable fakat REJECTED'dır; kabul evidence'ına kopyalanmaz, kırpılmaz, birleştirilmez, yeniden doğrulanmaz veya promote edilmez.",
      "Capture transaction power_on=1 / power_off_at_validator_close=0 olarak değişmez; ayrı post_S123_closeout_power_off=1 ile lifecycle power_on/off=1/1'dir. Current power state USER-REPORTED POWERED OFF ve independently observed=false.",
      "Closeout event-local POWER_ON=0, UART=0, HELPER=0, DISK=0, RAW_ACCESS=0, VALIDATOR=0, ARCHIVE=0 ve PROMOTION=0; raw yeniden okunmadı/doğrulanmadı. Bu amendment yeni sequence veya fiziksel PASS değildir.",
      "S124 permanent archive/promotion STOP'tur; başarısız S123 bunu açmaz.",
    ],
    amendments: [
      {
        id: "rpi5-g8h-s123-post-rejection-power-off-closeout",
        label:
          "S123 closeout amendment — post-rejection power-off (USER-REPORTED)",
        parent_sequence: "S123",
        event_kind: "USER_REPORTED_POWER_STATE_CLOSEOUT",
        sequence_number_consumed: false,
        recorded_at_utc: "2026-08-23T09:56:56Z",
        recorded_at_local: "2026-08-23T12:56:56+03:00",
        capture_transaction_snapshot: {
          power_on: 1,
          power_off_at_validator_close: 0,
        },
        closeout_delta: {
          post_S123_closeout_power_off: 1,
        },
        current_power_state: "USER-REPORTED POWERED OFF",
        independently_observed: false,
        event_local_access_counters: {
          power_on: 0,
          uart: 0,
          helper: 0,
          disk: 0,
          raw_access: 0,
          validator: 0,
          archive: 0,
          promotion: 0,
        },
        raw_reread_or_reverify: false,
      },
    ],
  },
snippet sha256: 529ddac280c3file sha256: 9726dbf00f84
Kayıtlı yürütme/kanıt komutu
<S123 final live identity/FD/raw continuity gate>
Registry schema v5 · generator website/scripts/generate-code-gates.mjs · Tam SHA-256: 91d38c7b6222f0b4c117be786454853543da55a160e543d9b951057cc20dcc06