실습으로 나는 움직이는 부분이 무엇인지 이해하기 위해 리눅스 용 터미널 에뮬레이터를 처음부터 작성하고 싶다. 제가 선택한 언어는 D입니다 (왜냐하면 저는 현재 그것을 배우고 있기 때문입니다).맨 처음부터 터미널 에뮬레이터를 작성하는 방법 (처음부터 작성하지 말 것)?
분명히 큰 것이 아니어도됩니다. 나는 배경색 (및 불투명도, 나중에) 명령 프롬프트를 표시하는 창을 가지고 싶습니다. 사용자는 명령을 입력 할 수 있으며 결과를 토해냅니다. 기본적인 것들. 나는 어디서부터 시작할 지조차 모르겠다.
나는 시각적 인 부분이 gtk (내가 한 번도 해본 적이없는)와 같은 것으로 처리되어야한다고 생각하지만, 그 밖의 모든 것은 어떨까요? 누군가 가능한 아키텍처를 설명해 주시겠습니까? 내가 무엇을보고 있어야합니까?
처음부터 (어떤 언어를 선택했는지) 어떤 부분을 써도되고 제 3 자 라이브러리 또는 바이너리로 사용할 수있는 부분을 알면 도움이됩니다.
나는이 같은 다른 질문이있을 수도 있음을 깨달았지만 양질의 대답을 찾지 못했습니다. 그러한 답변을 알고 있다면 그들에게 링크하십시오.
좋아하는 오픈 소스 터미널을 현재 언어에서'D '로 "번역"하지 않는 이유는 무엇입니까? 그런 다음 충분히 배웠는지 결정할 수 있으며 더 많은 연구를 수행하기 위해 더 나은 용어 (특수 사례 용어)를 찾을 수 있습니다. 행운을 빕니다. – shellter
이 질문은 스택 오버플로에 적합하지 않다고 생각합니다. 나는 당신이 할 수있는 최선의 일은 다른 터미널 에뮬레이터 (D로 작성되지 않을 수도 있음)를보고 포트를 열거 나 살펴 보는 것입니다. 그러나 나는 그것이 당신의 프로젝트이기 때문에 당신이해야 할 일에 대한 일반적인 대답은 없다고 생각하며, 당신이 추가 할 내용과 추가하지 않을 내용을 결정할 것입니다. 그러나 D로 작성된 터미널 에뮬레이터를보고 싶다면 github에있는 터미널 에뮬레이터가 필요합니다. https://github.com/gnunn1/terminix – WebFreak001
터미널 에뮬레이터와 쉘이 섞여있을 수 있습니다. 터미널 에뮬레이터는 I/O 장치를 에뮬레이트하기 만하면 명령을 실행하거나 프롬프트에 관해서는 알지 못합니다. 리눅스에서 터미널 에뮬레이터는 멀티플렉서 장치'/ dev/ptmx' (아마'posix_openpt() '를 사용)를 열어 pseudo-terminal을 할당합니다. 그러면 슬레이브 장치가'/ dev/pts'에 나타납니다. 그런 다음, 터미널 에뮬레이터는 일반적으로 슬레이브 장치에 연결된 std {in, out, err}를 가진 셸을 생성합니다. – ninjalj