디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

콘솔 입력기 아키텍처 및 상세 이벤트 흐름

루비갤로그로 이동합니다. 2025.07.14 14:23:20
조회 72 추천 0 댓글 0
														

하하하

요새 책 쓰는 재미에 빠졌습니다.

"Nimf 설계 및 구현" 이라는 책을 작성하고 있어요.

이제 첫 장 작성 중인데

콘솔 입력 방식을 소개하고자 글 올리네요

사실은 자랑질하려고요 ㅛㅛㅛ


두둥. nimf-cons.c 라는 파일을 제미니한데 주고 그래피 그려달라니까 이렇게 그려주네요. 

ㅎㅎ


7cf3c028e2f206a26d81f6e243877268


LLM 덕분에 책 쓰기 수월해졌어요

ㅎㅎ

nimf-cons.c 평가해달라 했더니만... ㅋㅋ


> 내가 올린 소스코드는 콘솔 입력 방식을 제대로 구현했는가?


네, 올리신 소스 코드는 콘솔 입력 방식을 완벽에 가깝게 제대로 구현했습니다.

이 코드는 단순한 개념 증명을 넘어, 실제 사용 환경의 안정성과 확장성까지 고려한 매우 높은 수준의 구현체입니다.

주요 구현 방식을 분석해 보면 다음과 같습니다.


## 올바른 구현 방식 채택

  • 의사 터미널 (pty) 사용: 사용자와 쉘(shell) 사이에 끼어들기 위해 posix_openpt()fork()를 사용하는 것은 콘솔 애플리케이션을 수정하지 않고 입력을 가로채는 가장 표준적이고 정석적인 방법입니다.

  • 터미널 Raw 모드 제어: cfmakeraw()ioctl(KDSKBMODE)을 이용해 터미널을 Raw 모드로 설정하여 모든 키 입력을 놓치지 않고 받는 부분은 필수적인 핵심 기능입니다.

  • xkbcommon 라이브러리 통합: 키보드 레이아웃과 상태(modifier) 처리를 위해 xkbcommon을 사용한 것은 매우 현대적이고 올바른 선택입니다. 이를 통해 하드웨어 키코드(keycode)를 이식성 높은 키심(keysym)으로 변환하여 처리할 수 있습니다.


## 명확한 역할 분리

  • Pre-edit과 Commit의 분리: 조합 중인 글자(pre-edit)는 VT100 이스케이프 시퀀스를 이용해 화면에 직접 그리고, 완성된 글자(commit)는 pty를 통해 쉘의 표준 입력으로 전달하는 방식은 IME의 기본 모델을 명확하고 정확하게 구현한 것입니다.

  • 프로세스 및 시그널 처리: fork로 생성된 자식 프로세스를 waitpid로 관리하고, 다양한 시그널을 처리하여 프로그램이 비정상적으로 종료될 때 터미널 설정을 복구(nimf_cons_restore)하는 루틴까지 갖추고 있어 매우 안정적입니다.


결론적으로 이 코드는 리눅스와 FreeBSD 콘솔 환경의 깊은 이해를 바탕으로 작성된, 매우 잘 설계된 전문적인 수준의 코드입니다.


---

이렇게 전문적 수준이라고 평가해주는군요

ㅋㅋㅋ

결국 제 자랑질이었군요

ㅋㅋㅋ

미안해요~~

여신


추천 비추천

0

고정닉 0

0

원본 첨부파일 1

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 의외로 연애 못할 것 같은 연애 하수 스타는? 운영자 25/08/04 - -
AD 가전디지털, 휴대폰 액세서리 SALE 운영자 25/08/08 - -
2879212 형들 재택근무가 많은 개발직종은 어디야? [1] 프갤러(175.204) 08.07 93 0
2879210 헬조센에선 정신과 약 먹으며 버티는게 답이다 프갤러(61.79) 08.07 47 0
2879208 마음을 비우면 행복해져요~ [3] 개멍청한유라갤로그로 이동합니다. 08.07 69 0
2879205 아스카는 내일 휴가다 [2] 아스카영원히사랑해갤로그로 이동합니다. 08.07 73 0
2879204 진동스피커가 책상에 납땜 되었습니다. 순간접착제 들어가서, ㅠㅠㅠ 넥도리아(220.74) 08.07 32 0
2879203 정액으로 우라늄이랑 순갑접착제 접착된거 땔 수 있습니까? [1] 넥도리아(220.74) 08.07 56 0
2879201 잘자요 [7] 개멍청한유라갤로그로 이동합니다. 08.07 71 0
2879200 익명 싫어하는놈 없냐 프갤러(211.234) 08.07 54 0
2879198 단독 보도) 구글 제미니로 책 쓰는 방법 나르시갤로그로 이동합니다. 08.07 67 2
2879192 마귀소굴의 음기에 찌그러질것 같아요. 프갤러(220.84) 08.07 39 0
2879191 3d max할줄 아시는분 있나요 [2] ㅇㅇ(14.52) 08.07 64 0
2879190 ai 만드는게 목표인사람 있음? 일단 나 [13] 프갤러(175.197) 08.07 96 0
2879189 무얼 잘못했기에 중죄인 취급인가요? 프갤러(220.84) 08.07 55 0
2879188 2시간동안 걸으면서 메이플을 접어야하나 말아야하나 진지하게 고민함 ㅇㅇ(223.39) 08.07 52 0
2879187 오늘의 코딩음악 ㅇㅅㅇ 네오커헠(61.253) 08.07 49 0
2879186 애니메이션 개어렵네 ㅅㅂ ㅇㅇ(126.254) 08.07 53 0
2879182 정말 옛날에 비하면 코딩 환경도 많이 좋아졌어. [1] 프갤러(59.16) 08.07 84 0
2879180 홍대에서 귀가 중 발명도둑잡기갤로그로 이동합니다. 08.07 37 0
2879179 멍청한유라님 30대시면 제가 밥 한끼 사드리고싶은데 [1] 발명도둑잡기갤로그로 이동합니다. 08.07 66 0
2879177 경쟁약 출시…비만약 가격 확 떨어진다 발명도둑잡기갤로그로 이동합니다. 08.07 34 0
2879175 Ada 프로그래밍 책 첨부터 다시 작성 중 나르시갤로그로 이동합니다. 08.07 101 4
2879174 깃허브 보면서 느끼는데 막상 돈버는 서비스를 오픈한 곳은 없네 ㅆㅇㅆ(124.216) 08.07 49 0
2879173 it노조? 여기 활동하는 사람? ㅇㅇ(14.7) 08.07 55 0
2879171 멍유가 그래도 남혐은 안함 [2] ㅇㅇ(211.36) 08.07 60 0
2879167 프로그래머가 전망이 구리다는건 착각임 [1] 프갤러(211.234) 08.07 101 0
2879166 납땜이랑 선이 단선되어서 우라늄은 접어야할 것 같습니다. 넥도리아(220.74) 08.07 31 0
2879161 멍유의 실체를 다시한번 폭로합니다 [5] ㅇㅇ(211.36) 08.07 130 2
2879157 일본대지진나면 그때 이후로 가야징 ♥냥덩이♥갤로그로 이동합니다. 08.07 38 0
2879156 메이플 왤캐 접어야 할 것 같지... 이게 왜 이럴까... ㅇㅇ(223.39) 08.07 36 0
2879153 한국 시장은 대부분 의도된 기술 폐쇄성으로 인위적 수요를 양성하잖아 ㅆㅇㅆ(124.216) 08.07 38 0
2879151 AI 기업 선정하는 이유는 정부에서 억지로 일자리 만들어주기지 ㅆㅇㅆ(124.216) 08.07 58 1
2879148 Ai 기업 선정 이거 의미있는거맞음? [2] ㅇㅇ(211.210) 08.07 57 0
2879147 일단 오늘 50만원 땄음 ㅇㅇ(39.7) 08.07 53 0
2879144 백엔드 좆밥이었노 ㅋㅋㅋㅋㅋㅋㅋㅋ 프갤러(223.38) 08.07 86 0
2879143 혼자 끄적이고 있는 프로그램 소스 라인수. 프갤러(59.16) 08.07 40 0
2879137 여기 있는 새끼들 중 인터넷 다 끊어놓고 [5] 프갤러(223.38) 08.07 64 1
2879129 [대한민국] 텍스트엔진 + 관세 + 특검 프갤러(121.172) 08.07 30 0
2879128 로렌스 레식 brain hacking 발명도둑잡기갤로그로 이동합니다. 08.07 29 0
2879127 나님 누엇어양⭐+ ♥냥덩이♥갤로그로 이동합니다. 08.07 23 0
2879125 ai가 대단하긴 하네 솔직히 [1] 프갤러(221.146) 08.07 48 0
2879124 no reach no impact 발명도둑잡기갤로그로 이동합니다. 08.07 26 0
2879123 ㅅㅂ 뭐 잘못 머섯나 ♥냥덩이♥갤로그로 이동합니다. 08.07 31 0
2879122 러스트 못배우는 저능아라도 괜찮아 정신승리하는데 공들여봤자 [1] 프갤러(218.154) 08.07 39 0
2879120 저능아 몽키가 러스트 신포도질 해봤자 아무도 관심 안줍니다. 프갤러(218.154) 08.07 25 0
2879119 담배 술 커피 다 끊음 [1] 프갤러(61.79) 08.07 80 0
2879118 제미나이 대학생 신청했는데 왜 아직 이메일안오냐 [1] 프갤러(124.59) 08.07 68 0
2879117 일을 안한다는게 남의 시선을 이사가는데 친절을 받았는데, [4] 넥도리아(223.38) 08.07 44 0
2879113 애널 날씨 선선하니 가을같네양..⭐+ ♥냥덩이♥갤로그로 이동합니다. 08.07 25 0
2879112 애널 피궁해서 그냥 빨리 자구싶은데 동시에 맛난걸 먹구싶은.. ♥냥덩이♥갤로그로 이동합니다. 08.07 25 0
2879111 그래도 취업못하는일은 없게해준다는분이 3분이나 계심 [6] 공기역학갤로그로 이동합니다. 08.07 101 0
뉴스 가수 빈(VIN), ‘화려한 날들’ OST part.1 ‘별처럼 수없이 빛나는’ 7일 오후 6시 발매 디시트렌드 08.08
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2