두 가지를 별도로 학습하여 시작하십시오.

두 가지를 별도로 학습하여 시작하십시오.

"firefox" 명령을 입력하여 bash 창에서 Firefox를 시작했고
사용자 인터페이스에서 Firefox 브라우저가 시작되었습니다.

여기에 이미지 설명을 입력하세요.

"ps" 명령을 입력하여 Firefox 프로세스를 검사했을 때 Firefox 프로세스에 제어 터미널이 연결되어 있고(위 스크린샷에서 볼 수 있듯이 pts12 /) Firefox 프로세스에도 상위 프로세스로 bash가 있음을 발견했습니다.

이제 Firefox 브라우저 창에 직접 키보드 입력을 제공하려면 어떻게 해야 합니까? (브라우저에 "Hello world"를 입력했습니다.)
tty가 프로세스에 첨부되어 있으므로 Firefox에 대한 입력은 터미널 창을 거쳐야겠죠?

여기에 이미지 설명을 입력하세요.

X-11이라는 것이 관련되어 있다는 것을 알고 있지만 전체 그림을 얻을 수는 없습니다.

이 질문은 다음을 기초로 질문되었지만 위 쿼리에 대한 충분한 정보를 제공하지 않습니다. 키보드 입력과 텍스트 출력은 어떻게 작동합니까?

답변1

X11 애플리케이션에 대한 입력은 tty 장치를 거치지 않고 X11 이벤트로 제공됩니다. X11 서버는 입력 이벤트를 수신하고 현재 어떤 응용 프로그램에 포커스가 있는지 확인하고 입력 이벤트를 해당 X11 이벤트로 변환합니다.

X11 서버는 시스템의 하드웨어에 대한 추상화를 제공합니다. X11 응용 프로그램은 서버의 클라이언트로 실행되고 서버로부터 이벤트를 받습니다. 원격으로 이벤트를 받아볼 수도 있고,로컬 시스템에서 X11 서버를 실행하고 이를 사용하여 다른 시스템에서 실행 중인 X11 응용 프로그램과 상호 작용할 수 있습니다.

xev에 설명된 대로 를 실행하여 이러한 상황이 발생하는 것을 확인할 수 있습니다.키보드 입력과 텍스트 출력은 어떻게 작동합니까?

답변2

다른 답변과 의견에서 언급했듯이 여기서는 더 명확하게 설명하려고 노력하고 있습니다.

표준 입력, 표준 출력, 표준 오류 는 tty원래 Unix에 존재했으며 오늘날에도 여전히 널리 사용되는 개념입니다 ls.cat grep

X11, 키보드 포커스, 창(1980년대 OS가 아닌 프로그램 보기)은 또 다른 것입니다: firefox, konsole등.

예를 들어 가상 터미널은 X11 프로그램이자 tty(의사-tty)를 제공하는 등 함께 작동할 수 있습니다.

두 가지를 별도로 학습하여 시작하십시오.

  • stdin, stdout, stderr, 파이프, 파일 리디렉션 등은 무엇입니까?
  • X11, 창 관리자, 창, 키보드 포커스 등은 무엇입니까?
  • 그런 다음 필요한 경우 의사 tty-s를 사용합니다.

관련 정보