본문으로 건너뛰기
0
r/jeffnews HN 약 4분

Determinate Nix의 미래: Wasm/WASI, 빌드 출처 추적, Flake Schemas

devops

요약

Determinate Systems가 Nix에 Wasm/WASI 지원, provenance(빌드 출처 추적), flake schemas를 추가함. Nix 언어의 표현력 한계를 Rust 등으로 우회하고, store path의 출처를 하드웨어 수준까지 검증 가능하게 만드는 것이 목표.

기사 전체 정리

Nix에 Wasm/WASI가 들어간다

  • Determinate Systems가 Determinate Nix에 WebAssembly(Wasm)과 WASI 지원을 추가함. Nix 역사상 flakes 도입 이후 가장 큰 변화라고 자평하고 있음

  • 왜 이게 큰 건가: 대규모 조직에서 Nix를 쓸 때 가장 고통스러운 게 "고성능, 잘 테스트된 Nix 표현식 작성"임. Nixpkgs stdenv를 자체 교체하거나, Nix로 Bazel를 재구현하거나, 모노레포용 복잡한 매크로를 만드는 팀들이 실제로 있었음

  • Wasm으로 가능해지는 것들:

    • Go의 go.mod/go.sum 파일을 evaluation 타임에 파싱
    • derivation 래퍼 없이 YAML 파싱/생성
    • flake 안에서 IP 주소 관리 같은 로직 구현
  • WASI는 Wasm과 달리 파일시스템 접근이 가능해서, Nix가 아닌 언어로 derivation을 만들 수 있게 됨. Rust 같은 언어로 복잡한 빌드 로직을 작성하고 Nix에서 호출하는 구조

중요

> 핵심 패러다임 전환: Nix 언어와 Nixpkgs lib 함수에 의존하던 복잡한 로직을 Rust 같은 "제대로 된 언어"로 옮길 수 있게 됨. Nix의 표현력 한계를 근본적으로 우회하는 접근

Provenance — 빌드 출처 추적

  • 기존 Nix의 provenance는 derivation 그래프 수준이었음. "이 store path가 어디서 왔는지" — 로컬 빌드인지, CI에서 빌드해서 캐시에 푸시한 건지, 어느 머신에서, 어느 캐시에서 왔는지는 알 수 없었음

  • Determinate Nix는 이제 store path의 출처 데이터를 서명해서 저장함. FlakeHub Cache에 푸시하면 자동으로 기록됨. 현재는 GitHub Actions 워크플로우 데이터를 첨부하는 수준이고, 향후 TPM(Trusted Platform Module) 기반 빌드 머신 신원 증명까지 확장할 계획

Flake Schemas — 출력 구조의 자유화

  • 기존 flakes는 출력 타입이 packages, nixosConfigurations, devShells 등 고정된 목록에 한정되어 있었음. 이 목록에 안 맞는 출력은 nix flake show에서 "unknown"으로 표시됨

  • Flake schemas를 쓰면 자체 출력 구조를 의미 있는 방식으로 정의할 수 있음. 사실 오래전에 발표했는데 이번 주에 드디어 실제 출시

  • 전체 방향성: Wasm/WASI로 표현력 확장, Provenance로 하드웨어 수준까지 검증 가능한 신뢰성, Flake Schemas로 생태계 유연성. "Nix를 빌드 도구가 아니라 컴퓨팅의 기반 플랫폼으로" 만들겠다는 비전

핵심 포인트

  • Wasm으로 Nix evaluation 타임에 Rust 등 외부 언어 로직 호출 가능
  • WASI로 파일시스템 접근 가능 → Nix 아닌 언어로 derivation 생성
  • Provenance: store path 출처를 서명·저장, 향후 TPM 기반 빌드 머신 증명
  • Flake schemas: 고정된 출력 타입 제한을 벗어나 커스텀 출력 구조 정의 가능
  • Nix flakes 도입 이후 가장 큰 변화라고 자평

인사이트

Nix 언어 자체의 한계를 Wasm으로 우회하는 접근이 핵심. 대규모 조직에서 Nix를 확장하려는 수요에 직접 대응하는 실용적 변화.

댓글

댓글

댓글을 불러오는 중...

devops

살면서 몰랐던 셸 트릭 모음 — 터미널에서 Backspace 꾹 누르기 이제 그만

대부분의 개발자가 ls, cd, grep 이후로 터미널 학습을 멈추는데, 셸에는 1989년부터 존재하던 생산성 트릭들이 가득함. POSIX 범용 단축키부터 Bash/Zsh 전용 기능까지, 하루 하나씩 익히면 터미널 생활이 완전히 달라짐.

devops

Wine 11, 드디어 커널 수준에서 Windows 동기화 재설계 — FPS 678% 상승 레전드

Wine 11이 출시됐는데 이거 그냥 버전업이 아님. **NTSYNC**라는 커널 레벨 동기화 드라이버가 탑재되면서 일부 게임 FPS가 최대 678% 폭등했고, **WoW64** 아키텍처도 완성돼서 32비트 앱 실행에 더 이상 삽질 안 해도 됨. Proton이랑 Steam Deck도 혜택 받는 구조라 Linux 게이밍 역사상 손꼽히는 업데이트임.

devops

NixOS 찬양글 - 이게 바로 OS가 나아가야 할 방향 아님?

NixOS 유저가 왜 NixOS에 진심인지 열변을 토하는 글임. 핵심은 NixOS 자체보다 **Nix 패키지 매니저**의 선언적·재현 가능한 철학에 있고, LLM 코딩 에이전트 시대에 특히 더 찰떡이라고 함. Docker보다 낫다는 주장도 ㄹㅇ 공감 포인트.

devops

Nix on Windows PoC: ValidationOS VM에 Nix 패키지 매니저 탑재

Windows ValidationOS VM 이미지에 크로스 컴파일된 Nix를 사전 설치하는 PoC. 빌드 중 VM 기동 없이 guestfish로 파일을 주입하며, shell32.dll 부재 문제는 환경변수를 읽는 스텁 DLL로 해결함.

devops

GitHub, 최근 연이은 장애에 대한 상세 포스트모템 공개

GitHub이 2~3월 대규모 장애 3건에 대한 포스트모템을 공개. 트래픽 폭증, 캐시 TTL 변경, Redis 설정 문제 등이 근본 원인이었고 격리 부족과 로드 셰딩 미비가 장애를 확산시킴. Azure 마이그레이션 가속화와 모놀리스 분해로 대응 중.