일부 시스템에서는 프레임 버퍼가 항상 존재하지 않는 것으로 나타났습니다. 이러한 경우 bash는 어떻게 화면에 인쇄합니까(fb 장치를 사용한다고 가정)? 프레임 버퍼 장치가 없기 때문에 이는 bash가 각 그래픽 카드의 작동 방식을 알고 레지스터에 직접 쓸 수 있다는 의미입니까, 아니면 다른 API를 사용합니까?
답변1
쉘은 명령줄 유틸리티로, 입력을 읽고 출력을 씁니다. 일반적으로 대화형 셸은 |
파이프 와 유사하지만 모뎀 제어 및 I/O 해석 모드와 같은 추가 기능이 있는 터미널 장치(일반적으로 커널 버퍼 직렬 모드 문자 장치)에서 열립니다 . 일부 다른 프로그램은 표시를 위해 터미널 장치에 기록된 데이터를 읽고 해석하며, 쉘에서 읽은 터미널 장치의 끝에 표준 입력을 씁니다.
이것은터미널 에뮬레이터. 적어도 이것은 일반적인 구성입니다. 터미널은 다음과 같습니다.실제터미널 - 머리 크기만 한 진공관으로 가득 찬 거대하고 윙윙거리며 빛나는 하드웨어 조각이나 방 크기의 프린터처럼 손을 잃지 않도록 손을 놓는 위치에 특별한 주의를 기울여야 합니다.
하지만대개터미널 에뮬레이터는 텍스트 구성을 위한 다소 표준적인 프로토콜을 이해하고 쉘의 I/O를 화면에 그릴 수 있는 것으로 변환할 수 있는 프로그램입니다. Linux 커널은 커널 가상 콘솔과 함께 제공됩니다. 이는 내장 디스플레이 포트이며 내장 터미널 에뮬레이터에 연결됩니다. xterm
또 다른 터미널 에뮬레이터 - 프로토콜을 통해 프레임 버퍼를 그리는 것입니다 X11
.
그러나 어쨌든 프로세스에서 쉘이 많이 제거되었습니다.
답변2
첫째, bash
화면이나 프레임 버퍼 장치에 직접 인쇄되지 않습니다. 단지 출력을 간단한 파일 설명자에 기록합니다.
둘째, Linux는 그래픽 모드 콘솔과 텍스트 모드 콘솔을 모두 지원합니다. 따라서 구성에서 프레임 버퍼 드라이버를 사용하지 않으면 텍스트 모드 콘솔이 활성화됩니다. 좋은 시간 보내세요기사이 주제에 관한 Wikipedia.