Frame: 전체가 x86_64 어셈블리 (Assembly)로 작성된 새로운 X11 서버 구현체
X.ORG
Frame은 단 하나의 어셈블리(Assembly) 코드 파일로 작성된 순수 어셈블리(Assembly) X11 서버로, 작성 시점을 기준으로 어셈블리(Assembly) 코드가 25,000줄에 육박합니다. Mesa, FreeType, Xlib, 심지어 libc에 대한 외부 의존성도 없습니다. Frame은 적절한 Linux 시스템 호출(system calls) 및 DRM/KMS 인터페이스와 더불어 입력을 위한 evdev와 직접 인터페이스합니다.
Frame은 지난 한 달 동안 주로 Claude Code를 통해 제작되었습니다. 그 영광스러운 어셈블리(Assembly) 코드는 GitHub에서 확인할 수 있습니다.
Claude Code와 함께 이 작업을 진행해 온 Geir Isene는 Frame에 관한 블로그 포스트에서 다음과 같이 상세히 설명했습니다:
"이제 스택은 다음과 같은 모습입니다: 맨 아래에는 Linux 커널(kernel)이 있습니다. 그 위에는 frame이 있습니다. 그다음에는 정보 바 스트립이 있는 window manager tile이 있습니다. tile 내부에는 terminal glass가 실행되며, glass 안에는 shell bare가 살고 있습니다. Bolt는 화면 잠금 장치(screen locker)에서 greeter로 승격되어 gdm에게 문을 열어줍니다. 이 모든 것이 어셈블리(Assembly)입니다. CHasm 전체를 합치면 약 10만 줄에 달합니다. 이것이 대체한 스택(gdm, X11, i3, conky, wezterm, zsh)은 그보다 50배 이상 많습니다. 저는 배터리 수명을 위해 이 작업을 했습니다. 이 노트북에 팬이 아직 달려 있는지 모르겠습니다. 저를 제외하고는 말이죠.
오늘 수치를 측정해 보았습니다. 배터리 사용 중 유휴(Idle) 상태일 때, frame과 Xorg는 동일한 와트(watts)를 소비하는데, 이는 어차피 패널과 와이파이(wifi)가 그 수치를 차지하기 때문입니다. 하지만 Xorg는 frame이 아무것도 하지 않을 때 필요한 CPU의 거의 3배를 소모합니다. 그리고 tile과 glass는 3분간의 측정 동안 0밀리초(milliseconds)를 사용했습니다. 데스크톱은 제가 만지기 전까지 완전히 정지해 있습니다.
...
하지만 안정적일까요? 제가 매일 메인 시스템으로 사용하고, 이 포스트를 작성하며, 가끔씩만 소리를 지를 정도로 충분히 안정적입니다. 무언가 고장 나거나 기능이 필요할 때, 저는 제 친구 Claude에게 다가가 해결하고 싶은 부분을 설명합니다. 그는 절대 지치지 않고, 자기 주장이 강하지 않으며, 정말 좋은 스승임이 드러났습니다. 저는 이제 하드웨어 계층(hardware layers), 커서 그리기(cursor painting), GPU 핸드오프(handoffs) 및 이벤트 와처(event watchers)에 대해 제가 계획했던 것보다 훨씬 더 많이 알고 있습니다."
흥미로우면서도 독특한 창작물이며, X11 프로토콜 (protocol) 지원을 구현하기 위한 방대한 어셈블리 (Assembly) 코드의 복잡함을 관리하기 위해 AI/LLM에 의존하고 있습니다.
더 자세한 내용이 담긴 Isene의 블로그 포스트 전문은 여기에서 확인할 수 있습니다.