[OS]개발환경설정 - LINUX

Philip Sung·2023년 6월 11일
0

[OS]

목록 보기
3/4
post-thumbnail

01 개요

본 문서에서는 LINUX 커널 기반 운영체제에서 개발하기 위한 개발 환경 설정에 대한 내용을 다룬다.

최종수정일 : 2023.06.11




02 구조(Ubuntu 기준)

리눅스 우분투에는 MS윈도우와 같이 드라이브라는 개념이 없고 우분투의 파일 시스템은 단 하나의 파일 시스템으로 구성되어야 한다. 이는 Linux 시스템의 공통된 특징으로 다른 리눅스 배포판도 마찬가지이다.

우분투 파일 시스템의 최상위는 루트 디렉토리(/)라고 부르는 공간이다. MS Windows로 따지자면 C:\와 비슷한 것이다.(C; 드라이브의 가장 최상위 폴더는 C:\이기 때문이다.)

리눅스는 드라이브라는 개념이 없고 무조건 루트 디렉토리(/)부터 존재하기 때문에 다른 저장장치에 접근하려면 특정 디렉토리를 해당 저장 장치에 연결해서 접근하여야 한다.
우분투의 디렉토리 구조에서 가장 큰 특징은 운영체제의 다양한 시스템 파일들이 한 곳에 모여있는 게 아니라 많은 디렉토리에 분산되어 있다는 점이다. 이는 우분투 뿐만이 아니라 리눅스 기반의 배포판들의 특징이다.

bin

  • 실행파일들을 모아놓은 디렉토리이다.
  • cp, rm 같은 명령어들의 실행파일이 이 폴더에 존재한다.
  • 시스템에 존재하는 모든 실행파일들이 이 디렉토리에 있는 건 아니다.

sbin

  • 시스템 관리자용 실행파일들을 모아놓은 디렉토리다.
  • .in 폴더와의 차이점은 여기에 있는 실행파일은 시스템을 관리하거나 수정할 때 사용하는 명령어들이라는 점이다.

etc *

  • 환경설정 파일들을 모아놓은 디렉토리다.
  • MS윈도우 같은 경우 환경 파일이 레지스트리(Registry)라 불리는 영역에 저장되거나 각각의 프로그램 폴더에 저장되는 경우가 많지만 우분투에서는 대부분 이 디렉토리에 담아 놓는다.

dev

  • 장치를 접근할 수 있는 파일들이 담겨 있다.
  • 장치를 접근할 수 있는 파일이라는 말이 좀 생소한데, 리눅스에서는 전통적으로 모든 장치를 파일로 표현한다.
    예를 들어 /dev/tty 파일에 데이터를 쓰면 실제로 저장 장치에 해당 내용이 저장되는 게 아니라 해당 장치로 데이터가 전송되는 구조이다. 좀 더 자세히 알려면 많은 지식이 필요하고, 일반 사용자들은 깊게 이해하지 않아도 되므로 이 정도만 알아도 된다.

lib

  • 시스템에서 사용하는 라이브러리 파일들이 존재한다.
  • 라이브러리 파일은 어떤 실행파일이 실행될 때 필요한 기능들을 담고 있는 파일을 의미한다.
  • MS윈도우에서는 DLL이란 파일을 자주 볼 수 있는데, 라이브러리 파일도 이와 비슷한 역할을 한다.

home *

  • 사용자 데이터를 저장하고 있는 디렉토리다.
  • 이 디렉토리의 하위 디렉토리를 살펴보면 각각 사용자 계정과 동일한 디렉토리들이 나열되어 있는 것을 볼 수 있다.
  • 각각의 사용자가 디렉토리들은 각자의 홈 디렉토리로 지정된다. 따라서 콘솔을 시작하면 항상 'home/자기계정명' 디렉토리에서 시작하게 된다.

usr

  • 사용자가 사용하는 프로그램들이 있는 디렉토리다.
  • 운영체제에 설치되는 대부분의 응용프로그램들이 이 디렉토리에 설치된다.

sys, proc

  • sys, proc 디렉토리들은 특이하게 실제로 존재하는 파일을 담고 있는 디렉토리가 아니다.
  • sys, proc 디렉토리들은 현재 시스템의 상태나 정보들을 알려주는 파일들 담고 있다.
  • sys, proc의 파일들은 실제 저장 장치에 있는 것이 아니라 메모리상에 존재한다.
  • 예를 들어 /sys/bus/cpu/device 디렉토리에는 현재 컴퓨터에 장착된 프로세서의 정보를 담고 있는 파일이 존재한다.
  • 이 파일의 내용은 우분투가 부팅될 때마다 새롭게 생성되는 것이다.




02 방화벽 설정

firewall-cmd --list-all
firewall-cmd --permanent --zone=public --add-port=80/tcp
firewall-cmd --reload

리눅스를 서버 컴퓨터로 사용하는 경우, 외부에서 접속하기 위하여 방화벽 설정이 필요한 경우가 있다. 방화벽 관리는 firewalld 및 firewall-cmd를 이용한다.

profile
Philip Sung

0개의 댓글