CLI(및 일반적인 컴퓨터)에 대한 나의 첫 경험은 명령 프롬프트로 부팅하고 일반적으로 CD를 넣은 다음 오늘날 일반적으로 볼 수 있는 GUI 기반 운영 체제에 창이 없는 전체 화면 GUI 프로그램을 로드하는 것과 관련이 있었습니다.
여기에 문제가 있습니다. 부팅>>프롬프트>>Rocky의 부츠 로드>>
로키의 부츠 실행>>종료>>프롬프트
Unix/Linux 기반 시스템에서 이런 일이 발생하는 것을 본 적이 없습니다. 창 OS 환경이 아닌 그래픽 프로그램에 직접 로드되는 경우입니다. Space Invaders 또는 VIM과 같은 ASCII 기반 프로그램만 해당됩니다. 앞서 언급한 DOS와 같은 8비트 그래픽 프로그램 로딩을 수행할 수 있는 기능이 있습니까(OSX나 Unity와 같은 창에서는 아님)? 그렇지 않다면 왜 다른가요?
답변1
예, 일부 프로그램은 (역사적으로) *nix 시스템에서 유사하게 작동합니다.
즉시 떠오르는 두 가지 좋은 예는 원래의 클래식 Quake(20년이 넘었지만 여전히 형편없습니다!)와 물론 X Windows 시스템입니다.
첫 번째는 매우 분명합니다. DOS 시스템에서 이런 방식으로 작동하며 *nix를 사용하면 소프트웨어 렌더링을 수행하고 SVGALIB 바이너리를 사용할 수 있으며 설명된 대로 순수 명령줄 시스템에서 게임으로 부팅할 수 있습니다. 질문에. X 창이 필요하지 않습니다.
그런데 내가 말하는 X 윈도우 시스템은 무엇인가? X는 운영 체제의 일부가 아니라 그 자체가 (대부분) 사용자 영역 응용 프로그램이라는 점을 기억해야 합니다. X 서버를 시작하고 디스플레이 관리자/로그인/인사말을 시작/표시하기 위해 로그인 서버(예: XDMCP를 통한 원격 장치 또는 로컬 시스템)에 쿼리하도록 지시하지 않으면 회색 메시지만 표시됩니다. 해시마크 화면 커서를 사용하세요. 루트 수준 창(첫 번째 "창")을 디스플레이로 사용하도록 그래픽 응용 프로그램을 구성하는 것도 가능하며, 창 관리자를 실행하지 않으면 닫기/최소화/최대화 버튼이 표시되지 않으며 아마도 표시되지 않을 수도 있습니다. 두 막대 중 하나를 스크롤하고, 잡고 끌기 위한 제목 표시줄이 없습니다. 키오스크 시스템, POS 시스템 등이 이를 수행하는 경향이 있습니다. 귀하의 질문에 인용한 것과 정확히 일치하지는 않지만(Quake는...) 동작은 매우 유사합니다.
답변2
귀하의 질문은 완전히 이해하기 어렵지만 일반적인 (X 또는 Wayland 기반) GUI 없이도 Linux의 텍스트 모드 콘솔에서 그래픽 프로그램을 시작할 수 있는지 묻는 것 같습니다.
대답은 '예'이며 항상 그랬습니다(적어도 Linux에서는). 이를 달성하기 위한 메커니즘은 수년에 걸쳐 변경되었습니다. 현재 이러한 유형의 기능을 지원하는 프로그램은 일반적으로 프레임 버퍼( fbdev
일반적으로 mplayer라는 프레임 버퍼 사용 libdirectfb
)를 사용합니다. 예로는 VLC 및 mplayer가 있으므로 비디오를 재생하기 위해 X 또는 Wayland 서버를 실행할 필요는 없습니다 fbdev
. 일반적으로 다른 메커니즘(DRM이 포함된 KMS 또는 특정 드라이버)을 사용합니다.
과거에는 많은 게임에서 이 기능을 지원하기 위해 SVGAlib이라는 라이브러리를 사용했지만 오랫동안 지원되지 않았습니다. 이에 대한 예로는 Doom, Quake, Abuse 등이 있습니다.