Notice
Recent Posts
Recent Comments
05-21 07:17
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

Byeol Lo

Linux master 1급 - 리눅스 실무의 이해 기출 풀이1 본문

OS/Linux

Linux master 1급 - 리눅스 실무의 이해 기출 풀이1

알 수 없는 사용자 2023. 2. 25. 16:40

 SCSI(Small Computer System Interface) - 컴퓨터 시스템에서 주변 기기(peripheral device)와의 데이터 전송을 위한 하드웨어 인터페이스 표준이며, 다수의 주변 기기와 컴퓨터 간의 데이터 전송을 위한 높은 대역폭과 다양한 기능을 제공하는 인터페이스를 제공한다. 그래서 주로 서버, 스토리지, 네트워크 장비 등의 고성능 장비와 연결되어 사용된다. 이 외에도 CD-ROM 드라이브, 스캐너, 프린터, 모뎀 등 다양한 주변기기와의 연결에도 사용된다.

 2번에서는 조금 생소한 개념이 나왔는데, 보통 16개 이하의 디바이스만 연결 가능하게 된다. SCSI는 그냥 인터페이스에 불과하고 데이터 전송을 위한 포트(?)라고 생각하면 편할 것 같다. 근데 16개의 디바이스를 어떻게 연결하냐라고 되물을 수 있는데, 그것이 아니라 하나의 포트에 최대 16개의 SCSI 디바이스를 연결할 수 있다는 의미이다. 원래는 포트에 하나의 디바이스만 연결하여 사용할 수 있었던 것을 16개로 가용할 수 있게 되었다고 보면 될 듯하다.

 

 KDE는 K Desktop Environment의 약자이며 리눅스와 유닉스 운영체제에서 사용할 수 있는 데스크톱 환경 중에 하나이다. KDE는 GUI를 제공해서 사용자가 보다 쉽게 컴퓨터를 사용할 수 있도록 돕는다. (ex. 윈도우 매니저, 파일 관리자, 시스템 설정 도구, 네트워크 관리 도구) 이는 KDE 프로젝트에서 개발되었고, 다양한 프로그래밍 언어로 작성되었지만 핵심적인 부분은 C++로 작성되어있고, Qt 프레임워크를 기반으로 구축이 되었다. X클라이언트에 있는 윈도우매니저 위에서 실행되는 데스크톱 환경/위젯 툴킷 이라고 보면 된다. 사용자들은 이를 통해 더 쉽게 컴퓨터 자원을 관리하게 된다. 따라서 답은 4번이다. 유닉스 또한 실행 가능하기 때문.

 

 Context는 IT계열의 분야에서 다양한 용어로 사용된다. 예를 들어 프로그래머들 사이에서는 변수의 선언이 어디에 위치하는지에 대한 것이며, 운영체제에서는 CPU가 어떤 프로세스를 실행하는지에 대한 프로세스나 스레드의 상태 정보들을 저장하고 있다. 여기서 Context Switching은 문맥 교환이라고 말하며 실행 중인 프로세스나 스레드의 상태를 저장하고 다른 프로세스나 스레드의 상태를 불러오는 과정을 얘기한다. 따라서 답은 Context와 Context Switching이다. 나머지는 전부 정의되지 않은 Jargon이다. 따라서 답은 1번이다.

 

 IP 주소는 컴퓨터 네트워크에서 장치들이 서로 통신하기 위해 노드를 식별하기 위한 특수 번호이다. IP주소는 네트워크 ID와 호스트 ID로 구성되는데 이는 클래스마다 다르다. 네트워크 ID는 해당 IP 주소가 속한 네트워크를 식별하고, 호스트 ID는 네트워크 내에서 해당 IP 주소가 가지는 호스트를 식별하게 된다. 이때 , 네트워크 ID는 네트워크 자체로 봐도 무방하다. 따라서 다음과 같이 네트워크 수와 호스트 수가 정해진다.

Class 첫 번째
Octet IP
최상위 비트 범위 호스트 수 네트워크 수 블록
Class A 0~126 0 0.0.0.0~127.0.0.0 16,777,216 128 /8
Class B 128~191 1 128.0.0.0~191.255.0.0 65,536 16,384 /16
Class C 192~223 11 192.0.0.0~233.255.255.0 256 2,097,152 /24
Class D 224~239 111 244.0.0.0~239.255.255.255 N/A N/A
Class E 240~255 1111 240.0.0.0~247.255.255.255 N/A N/A

 호스트 ID가 모두 0이라면 해당 IP 주소는 네트워크 ID만을 가지고 있는 경우이며, 이러한 IP 주소를 네트워크 주소 또는 네트워크 ID라고 부른다. 네트워크 주소는 해당 IP 주소가 속한 "네트워크를 식별하는 역할"을 한다. 이를 통해서 라우터 등의 네트워크 장비는 데이터를 해당 IP 주소가 속한 네트워크로 전달하고, 해당 네트워크에 속한 호스트 중에서 데이터의 수신 대상을 찾을 수 있다. 하지만, 호스트 ID 부분이 전부 1인 경우이고, 이는 호스트 옥텟에 비트 부호가 1임을 의미한다. 그러면 해당 옥텟의 값은 255로 전부 동일하게 되며 이 주소는 해당 네트워크에 존재하는 모든 호스트들에게 전달할 수 있게 된다. 이 브로드캐스트 주소가 사용되는 예로는 서버가 클라이언트에게 IP주소를 할당할 때, 브로드캐스트 주소를 사용하여 해당 네트워크에 존재하는 모든 클라이언트에게 IP 주소 할당을 요청하는 거로 들 수 있다. 따라서 답은 4번이 된다.

 

 기본적으로 다음과 같은 환경변수들이 있다.

  • PATH : 실행 파일의 경로
  • HOME : 현재 사용자의 홈 디렉토리
  • USER : 현재 사용자의 이름
  • UID : 로그인한 사용자의 ID
  • SHELL : 현재 사용 중인 쉘의 경로
  • PS1 : 쉘 프롬프트에서 사용되는 문자열
  • PS2 : 하나의 명령어를 여러 줄로 입력할 때 표시하는 프롬프트 표시명
  • TERM : 현재 사용중인 터미널의 종류
  • LANG : 현재 사용 중인 언어 환경
  • PWD : 현재 작업 중인 디렉토리 경로
  • EDITOR : 기본 에디터를 지정
  • LD_LIBRARY_PATH : 공유 라이브러리 파일의 경로를 지정
  • HISTFILE : history 정보가 저장되어 있는 파일 경로
  • MAIL : 수신한 메일이 저장되어 있는 경로
  • SYSTEMD_EXEC_PID : systemd가 생성한 프로세스의 PID(Process ID)를 저장한다. 리눅스 시스템에서 실행되는 여러 프로세스를 관리하는데 사용되며, 각각의 프로세스를 컨트롤하는 데에는 각각의 PID가 필요하다. ex. systemd의 cgroup 기능을 통해 프로세스를 제한하려고 할때, systemd는 해당 프로세스가 SYSTEMD_EXEC_PID 환경변수에 저장된 PID를 가지고 있는지 확인하고, 이 정보를 기반으로 프로세스를 제한함.
  • MANPATH : man 페이지를 찾을 때 사용하게 된다. ( man 명령어 : 해당 명령어에 대응되는 매뉴얼들을 보여주고 그 매뉴얼들이 어디있는지 가르키는게 MANPATH ) 기본적으로 거의 모든 리눅스에는 이 환경변수가 세팅이 되어 있지만, 특정 가상환경에서는 시스템 전체적으로 설정된 환경변수 목록과는 다른 환경변수를 사용할 수도 있다. 따라서 별도로 MANPATH를 설정해주어야 한다.

따라서 답은 3번이다.

 X윈도우 시스템은 X 서버, X 클라이언트, X 프로토콜, Xlib/XCB, XToolkit(Xt)으로 구성되어 있다. XF86Setup은 X window system 서버 구현 중에 하나이며, X window system은 Unix 기반 운영 체제에서 GUI를 구현하는 데 사용되는 프로토콜 및 라이브러리 집합이다. 최근에는 이 X서버는 X.org를 더 많이 쓰이고 있다.

 X 윈도우 시스템은 그래픽 사용자 인터페이스(GUI)를 구현하는 데 사용되는 프로토콜 및 라이브러리의 집합이다. 그 중에 Xlib을 사용하는 X 서버는 하드웨어에 종속되는 부분을 추상화하여 X 클라이언트와 통신을 하게 된다. 즉, 디스플레이 드라이버를 통해 하드웨어 디스플레이와 통신을 하고, X 클라이언트로부터 그래픽 요소를 수신하여 디스플레이를 그리게 된다. 또한 입력 장치와 창 관리도 하게 되는데 입력 장치에서 X 서버는 키보드, 마우스와 같은 입력 장치를 관리하게 된다. 발생하는 이벤트를 감지하여 이벤트를 X 클라이언트에게 전달한다. 창도 창 위치, 크기, 색상, 불투명도 및 다른 속성등을 관리하게 된다.

 이에 반해, X 클라이언트는 X 서버와 통신하여 그래픽 요소, 창 위치, 크기 및 속성, 입력 이벤트 등을 X 서버에 전달한다. 그 예로 텍스트 에디터나 웹 브라우저 등은 X 클라이언트이며, 이러한 X 클라이언트는 X window System API를 사용하여 X 서버와 통신하고, 그래픽 요소를 그리고 창을 생성 및 관리하게 된다. 그래서 실제 사용자는 X 클라이언트가 생성한 그래픽 사용자 인터페이스를 통해 X 서버에 명령을 전달하게 된다. 따라서 사용자 > X 클라이언트 > X 서버 > X 클라이언트 이렇게 통신이 된다고 볼 수 있다.

  X프로토콜은 X서버와 X클라이언트가 정보를 주고 받기 위한 메시지 형식을 정의한 통신 규약이다. X 프로토콜의 기본 메시지는 Request, Reply, Event, Error로 구성된다. 이런 기본 메시지들을 순차적으로 처리하기 위해 X클라이언트와 X서버 둘 다에 request queue, event queue를 가지게 된다.

 따라서 답은 4번이 된다. XF86Setup은 X Free86이라고도 부르며, X 서버 역할을 하는 소프트웨어에 불과하다. 즉 X 서버의 역할을 하는 특정 어플리케이션을 지칭하는 용어일 뿐이다.

 

 홉에 대해 개념이 생소하여 여기서 리뷰를 했다. 홉은 분산 컴퓨팅 환경에서 개발자들이 애플리케이션을 개발하고 실행하기 위한 프레임워크이다.

 리눅스에서 서비스 포트가 설정된 파일은 /etc/services 이다. 이 파일은 포트 번호와 포트 번호에 대응하는 서비스 이름을 정의하는 데 사용된다. 대부분의 리눅스 시스템은 이 파일을 사용하여 서비스 포트를 구성하고, 이 파일을 편집하여 포트 번호나 서비스 이름을 추가, 수정 또는 삭제할 수 있다. (하지만, 수정할 때는 주의해야한다.) 이 서비스 포트의 용도는 서비스 포트는 서버 프로그램이 네트워크 상에서 사용할 수 있는 포트 번호를 뜻하고, 이는 서버 프로그램이 해당 포트를 열어 클라이언트 들이 해당 포트로 연결을 시도하면 연결을 수락하는 게이트 용도로 사용되게 된다.

Comments