Skip to content

pkcl: fork・waitpid・pipe・環境変数・setjmp と pipe サービス - #179

Merged
src3453 merged 6 commits into
mainfrom
claude/project-thread-t59cl1
Oct 25, 2026
Merged

src3453 merged 6 commits into
mainfrom
claude/project-thread-t59cl1

Conversation

@src3453

@src3453 src3453 commented Oct 25, 2026

Copy link
Copy Markdown
Owner

概要

proc_fork/COW を使い、BusyBox の MMU 構成(ash/hush)に必要な POSIX 面を pkcl とカーネルに追加します。

  • カーネル: sys_info sel 4(自分の pid と parent)、sel 5(PROCESS ハンドルの pid)。FND_MAX_PROCS 10、FND_MAX_THREADS 16。
  • pkcl: fork/vfork/wait/waitpid/kill/getpid/getppid、pipe/pipe2、environ と execve の環境。
  • バックエンド: setjmp/longjmp をインライン展開。
  • pipe サービス(foundation/services/pipe、API §9.5)。全バックエンドで起動。
  • 起動ブロック version 2(環境変数)、libfnd 1.3(fnd_envc/fnd_env、fnd_exec_t.envp)。
  • console: kill された読み手へ渡したキーが失われる不具合を修正(キーをキューへ戻す)。
  • 仕様(Foundation §9.3/§9.5 の周辺、API、pkcl)と memory/ を更新。

検証

  • foundation/tests/pkcl(guest_posix.c: COW、waitpid、execve と環境、6 KB の pipe、EOF、EPIPE、setjmp)
  • foundation/tests/shell(VM と FND_MM=nommu)、disk、wax
  • tools/llvm-src32 の test_toolchain -k foundation

残り

poll/O_NONBLOCK、シグナル配送、posix_spawn、in-place exec、BusyBox の MMU 構成(ash/hush)での不足シンボルの洗い出し。

Closes #168
Refs #169


Generated by Claude Code

- sys_info sel 4/5 (自分の pid、PROCESS ハンドルの pid)
- pkcl: fork/vfork/wait/waitpid/kill/getpid/getppid、pipe/pipe2、environ と execve の環境
- backend: setjmp/longjmp をインライン展開
- pipe サービス (VM のみ)、起動ブロック version 2、libfnd 1.3
- FND_MAX_PROCS/THREADS を 12/16 に拡大
- console: 死んだ読み手へ渡したキーを戻す

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FqgVXKR79fR8rybAwBZ2fY
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FqgVXKR79fR8rybAwBZ2fY
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FqgVXKR79fR8rybAwBZ2fY
- busybox.py: --config を重ねられるようにし、busybox_ash.config を追加
- fcntl(F_DUPFD_CLOEXEC)、times、WCOREDUMP
- fnd_exec_t.flags の FND_EXEC_KEEP_ARGV0(applet の自己 exec で argv[0] を保つ)
- FND_EXEC_IMAGE_MAX/FND_SPAWN_IMAGE_MAX を 1.5 MiB に
- ash のテスト(スクリプト、パイプ、サブシェル、環境変数)と仕様・memory

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FqgVXKR79fR8rybAwBZ2fY
@src3453
src3453 merged commit a2fb1ce into main Oct 25, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[pkcl M3] 環境変数の受け渡し、getpid、時刻、sleep

2 participants