IT STUDY LOG

[리눅스 운영체제] 01. 왜 리눅스인가? 본문

devops bootcamp 4/서비스 운영 기초

[리눅스 운영체제] 01. 왜 리눅스인가?

roheerumi 2023. 3. 9. 11:23

# 학습 목표

  • 왜 리눅스인가? ~ 출력 관련 명령어
    • 리눅스를 사용하는 이유와 CLI의 장점을 이해할 수 있다.
    • 파일 및 디렉토리 확인, 이동, 복사, 생성, 삭제와 관련한 기본적인 명령어를 사용할 수 있다.
    • 루트 디렉토리, 홈 디렉토리 및 절대 경로와 상대 경로를 이해할 수 있다.
    • 리눅스 상에서 텍스트 파일을 수정할 수 있다.
    • 패키지에 대해 이해하고, 패키지 매니저를 이용해 프로그램을 설치/삭제할 수 있다.
    • 표준 스트림을 이해하고, 출력과 입력을 파이프라인으로 연결할 수 있다.
    • 파일과 디렉토리를 패턴으로 찾을 수 있다.

 


# 학습 내용

1.  왜 리눅스인가?

  • 서버용 운영체제 현황
    • 운영체제
      • 개요
        • 시스템 소프트웨어. 하드웨어 자원, 프로세스 등을 관리해 사용자가 컴퓨터 시스템을 편리하게 사용할 수 있도록 돕는 소프트웨어
      • 종류
        • 모바일 기기용 운영체제: iOS, Android 등
        • 데스크탑용 운영체제: macOs, Windows 등
        • 서버용 운영체제: Linux, Unix 등
  • 리눅스가 많이 쓰이는 이유
    • 오픈 소스, 뛰어난 보안성과 커뮤니티 지원 - 투명한 공개로 취약점 빠르게 파악 가능
    • 뛰어난 안정성과 유지 보수성 - 업타임이 기타 운영체제보다 월등히 긺
    • 높은 이식성 - 하드웨어 호환성이 높음
    • 클라우드 지탱하는 기술 - DevOps 및 클라우드에서 가장 기초가 되는 소

 

2. CLI의 장점

  • 개요
    • Command Line Interface
    • 명령어를 입력해 컴퓨터를 조작하는 방
  • 장점
    • GUI보다 빠른 작업이 가능, 자동화 간편
    • 단순한 출력 및 용이한 원격 접속

 

3. 리눅스의 종류

  • Linux? Unix?
    • Linux는 리누스 토발즈가 Unix를 기반으로 만든 운영체제
    • 사양이 낮은 컴퓨터에서도 우수한 성능, 기량 발휘
    • 오픈소스 (GNU 프로젝트)
  • 리눅스의 종류
Debian Ubuntu RedHat CentOS
- 데비안 프로젝트로 만들어진 OS
- 개발자들이 자유롭게 만들어나가는 중
- 패키지 관리가 편리
- 데비안 리눅스 기반으로 제작
- 리눅스 입문용으로 적합
- 6개월 단위로 새 버전 발표
- 2년 주기로 LTS 발표
- apt 이용한 패키지 관리
- 웹서버, 개인용 서버, 클라우드 컴퓨팅, 엔터프라이즈 서버 등 다양한 형태 지원
- 유료
- 높은 국내 시장 점유율
- 기업용 서버 OS로 가장 선호
- GUI 제공
- rpm, yum으로 패키지 관리
- 안정성 추구(신기술/신기능 적용 보수적
- 일반 사용자를 위한 배포본 프로젝트인 페도라를 통해 기술 테스트 후 RedHat으로 발표
- RedHat의 무료 버전
- 안정적
- RedHat의 상표권만을 배제한 버전
- 레드햇의 기술 지원을 받을 수 없으므로 커뮤니티 단위 지원으로 해결해야 함

 

[발표 주제] 리눅스의 디렉토리 구조를 학습하고, 이를 정리하세요.
  • 리눅스 특징
    • 무료 O/S이며 공개된 운영체제
    • UNIX와 호환성
    • 강력한 네트워킹 기능 지원
    • 강력한 멀티태스킹, 멀티유저 동작 지원
    • 다양한 응용 소프트웨어 제공
    • 파일시스템은 계층 구조로 구성(트리 구조)
  • 리눅스의 파일 종류
    • 일반 파일: 일반적으로 데이터 또는 프로그램 코드에 해당하는 일련의 바이트 스트림으로 표준 파일 입출력 시스템 호출을 통해 참조
    • 링크 파일: 기존 파일에 대한 접근 포인트를 만들어주는 파일
      • 하드링크: 기존 파일과 동일한 inode number를 가지는 파일을 생성해서 접근, 디렉터리는 생성 불가능
      • 심볼릭링크: 원본 파일에 대한 파일 경로를 파일 내용으로 하는 새로운 파일을 생성해 접근하는 방식, inode number가 아닌 파일 경로를 기반으로 하므로 파일 시스템에 제한이 없으며 디렉터리에도 생성 가능
    • 특수 파일: 특수파일은 기능에 따라 다양한 형태로 존재하며 표준 입출력 시스템 호출을 통해 참조
      • 프로세스 간 통신(IPC:InterProcess Communication)을 위해 파이프, 소켓 등의 파일을 사용
      • 디스크, 프린트, 터미널, 키보드 등 주변 장치를 사용하기 위한 장치 파일(블럭 장치 파일, 문자 장치 파일)
    • 디렉터리: 디렉터리에 포함된 파일명과 해당 파일에 대한 정보를 담고 있는 inode number 목록을 내용으로 가지고 있는 특수한 파일로 디렉터리의 명시적 시스템 호출(ex. ls 명령)을 통해 참조
  • 리눅스 디렉터리 구조
    • 계층적 구조(트리 구조)로 구성됨
    • 최상위 디렉터리 (루트) 하위 디렉터리로 구성되어있음
  • 주요 디렉터리 설명
위치 이름 설명
/ 루트 - 최상위(루트) 디렉터리
- 디렉터리의 절대 경로를 표기할 때 이 디렉터리부터 시작함
/bin 바이너리 - 이진파일(실행파일)
- 기본적인 명령어가 저장된 디렉터리
- 리눅스에서 자주 사용하는 mv, cp, rm등과 같은 명령어들이 이 디렉터리에 존재
/boot 부트 - 리눅스의 부팅에 필요한 정보를 가진 파일들이 있는 디렉터리
/dev 디바이스 - 시스템 디바이스(장치)파일을 저장하고 있는 디렉터리
- 물리적 장치(입출력 장치)가 파일화되어 저장
/etc   - 설정 파일을 두는 디렉터리리
/home - 사용자들의 홈디렉터리가 있는 곳(사용자를 추가시 사용자의 id와 동일한 디렉터리가 이곳에 자동으로 생성)
/lib 라이브러리 - 커널이 필요로 하는 각종 라이브러리 파일, 커널 모듈파일 등이 존재하는 디렉터리
/media 미디어 - DVD, CD-ROM, USB 등의 외부 장치들의 마운트 포인트(연결)로 사용하는 디렉터리
/mnt 마운트 - /media와 비슷한 기능을 수행. 차이점은 Media는 OS에서 자동으로 마운팅해주는 포인트로 주로 사용되며
Mnt는 사용자가 직접 마운트하는 경로로 사용
(ex) 예를 들어 컴퓨터에 USB꽂아 OS에 자동으로 마운팅된다면 주로 Media 폴더 내에, 외부에 있는 디스크등을 직접 명령어를 통해 마운트한다면 Mnt 디렉토리에 위치
/opt 옵트 - 추가 응용프로그램 패키지 설치 장소
- 패키지 매니저가 자체적으로 설치/삭제를 수행함
/proc 프로세스 - '가상파일시스템' 이라고 하는 곳으로 현재 메모리에 존재하는 작업들이 파일 형태로 존재하는 곳
- 프로세스 정보 등 커널 관련 정보가 저장
/root 루트 - 관리자계정 root 사용자의 홈디렉터리 
/sbin 시스템 바이너리 - 시스템 이진파일(실행파일) ifconfig, ethtool, halt, e2fsck와 같은 시스템 명령어들을 저장하고 있는 디렉터리
/usr 유저 - 일반 사용자들이 사용하는 디렉터리
/var - 기타 모든 다용도로 사용될 수 있는 파일들이 저장되며 로그파일, 데이터베이스 캐싱파일, 웹서버 이미지 파일 등이 위치하는 디렉터리
/sys 시스템 - 디바이스를 관리하기 위한 가상 파일 시스템 디렉터리
/run - Run-time variable data를 관리한다. 부팅한 후의 시스템 정보를 관리하는 디렉터리
/tmp 템프 - 임시 파일을 저장하기 위한 디렉터리(재부팅 시에 삭제되며, 정기적으로 10일 정도 간격으로 삭제)
/lost+found 로스트 - 휴지통과 유사한 개념
출처: 탑스팟 정보보안기사 실기 이론편(정일영, 강재순, 조현준 공저),  https://inpa.tistory.com/entry/LINUX-%F0%9F%93%9A-%EB%A6%AC%EB%88%85%EC%8A%A4-%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC-%EA%B5%AC%EC%A1%B0

 

Comments