본문 바로가기
C.W.K.
Stream
Lesson 01 of 05 · published

앱은 투영이야

~12 min · daemon, pty, ownership, projection

Level 0불씨
0 XP0/36 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete

종료가 죽음이면 안 돼

보통 GUI 터미널은 그리는 면에 붙여 놓은 프로세스 공장이야. 앱을 끄면 공장이 죽으니 셸이 죽고, 편집기가 죽고, 하던 자리 넷이 죽어. 텍스트 편집기에는 그럴 만해. 하루에 스무 번 자리를 뜨는 일일 드라이버에는 적대적이야.

Smolder 는 공장이랑 그림을 갈라. 작은 세션 데몬이 PTY, 한도 있는 저널, 요청 영수증을 소유해. 맥 앱은 투영이야. 붙고, 그리고, 죽어도 되고, 보존을 켜고 종료해도 돼. 폰은 나중의 또 다른 투영이야. 어느 투영도 자기 수명을 일의 수명이랑 혼동하면 안 돼.

일부러 작게

데몬은 아무것도 안 그려. 모델을 안 불러. 플러그인을 안 열어. 공급자 자격 증명도 SSH 자격 증명도 안 쥐어. 그 거절이 재시작 가능하게 하고, 크롬의 충돌이 일의 학살이 되지 않게 해. 그리기도 하는 데몬은 백그라운드 서비스 옷을 입은 예전 붙인 앱이야.

부착은 앱이랑 데몬 사이의 사설, 버전 있는 대화야. 네트워크 API 가 아니고 프롬프트도 아니야. 형제 문이랑 모바일 게이트웨이는 나중 트랙의 다른 문이고, 청중도 달라. 데몬은 그들이 붙는 주인이야. 데몬이 "조금만 그렸으면" 싶어지면, 공장을 다시 붙이는 중이야.

이미 표면 둘이 이것에 기대

맥 절반은 닫기, 저널, 복원에 레슨 셋을 더 쓸 거야. iOS 절반은 잠긴 폰을 살해로 치지 않는 데 트랙 하나를 쓸 거야. 창이 아직 프로세스를 소유하면 그 문장들은 거짓이야. 이 레슨은 맥 잡지가 아니야. 뒤에 오는 문장이 기대는 벽이야.

데몬이 불을 지켜. 앱은 투영이야. 투영은 사라져도 돼. 불은 그걸 개인적으로 받아들이면 안 돼.

Code

소유, 프로세스 둘로 그린 것·text
Smolder.app (projection)
  - windows, tabs, panes, chrome, menus
  - attaches over a private socket
  - may quit, crash, or lose a window

SmolderDaemon (owner)
  - PTYs
  - bounded journal of output
  - receipts for family requests
  - no pixels, no model, no plugins, no SSH keys

# Quit with preservation = detach. Jobs keep running.
# Crash of the app = same, if the daemon is still up.
# Crash of the daemon = process identity is gone.
# Reboot = declarations restore, live processes do not.

External links

Exercise

상자 둘을 그려. 앱, 주인. 다음을 한쪽에 넣어. 픽셀, PTY, 메뉴 바, 저널, SSH 키, 모델 호출, 창의 충돌, 기기의 재부팅. SSH 키나 모델 호출이 주인 상자에 들어갔으면 꺼내고, 거기에 남겨 뒀으면 크롬이 죽을 때 일에 무슨 일이 생기는지 한 문장으로 써.
Hint
사라져도 되는 건 앱 상자. 사라지면 일을 죽여야 하는 건 주인 상자야. 그건 PTY 야. 저널이 못 써도 일을 죽이면 안 돼.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.