[리눅스마스터] 01일반_리눅스 개요

EunJi·2024년 1월 24일
0

리눅스마스터2급

목록 보기
1/2

특징

  • 오픈소스
  • 멀티유저, 멀티 태스킹
    • 가상 터미널 환경 → 하나의 모리터에 여러 개의 가상 화면을 두어 화면 마다 다른 작업 수행.
  • 다중 스레드를 지원하는 네트워크 운영체제
    • 하나의 프로세스 내에서 여러 개의 네트워크 작업 동시 처리 가능.
    • 네트워크 서버로 사용 가능
    • 모든 인터넷 서비스를 갖추고 있음.
  • 여러 종류의 파일 시스템 지원
    • 리눅스: ext2, ext3, ext4
    • DOS: FAT16
    • Windows: FAT32, NTFS
    • 네트워크: SMB, CIFS, NFS

장단점

  • 유닉스와 호환 가능
    • 리눅스는 POSIX(Portable Operating. System Inteface) 규격을 따름.
    • POSIX는 유닉스 운영체제에 기반을 두고 있는 표준 운영체제 인터페이스 임.
    • 리눅스는 POSIX 표준화를 기반으로 하기 때문에, 유닉스 소스코드를 전혀 사용하지 않고 개발됨.
    • POSIX 규격을 따르므로, 유닉스용 프로그램은 별도의 수정 없이 리눅스에서 사용 가능.
  • PC용 운영체제보다 안정적임.
    • 리눅스는 네트워크 사용을 전제로 설계됨. → 특별한 사항을 제외하고 항상 켜놓아도 안정적으로 운영됨.
    • 네트워크 사용 전제 → 멀티유저, 멀티태스킹 → 많은 이용자 동시 사용해도 안정적.
  • 하드웨어 기능을 효과적으로 사용
    • 다른 운영체제보다 적은 메모리 사용.
    • SWAP 방식 사용: RAM이 부족할 때, Swap 영역을 늘려 메모리 효율성 높임.
  • 오픈소스 운영체제
    • 많은 인재 확보: 우수한 소프트웨어 개발 가능
    • 다양한 배포판 존재: 사용자에게 많은 선택권 + 여러 유틸리티 프로그램과 응용 프로그램을 사용자의 편의에 맞춰 무료 사용 가능.
  • 공개 운영체제 → 문제점 발생시 기술 지원 받는데 한계 발생.
    • 몇몇 엔터프라이즈용 리눅스들은 기술 지원이 유료로 제공됨.
    • 하지만, 개발자들의 기술 지원을 직접적으로 받는 것은 불가능.
  • 한글 지원 미흡.
    • 배포판 마다 별도의 한글 지원 패키지를 설치한 후 사용해야함.
  • 보안상의 취약점이 쉽게 노출된 가능성 존재.
    • 공개 운영체제 → 보안 취약성의 선입관 존재. BUT, 꾸준한 개발로 비교적 높은 보안성 제공.
    • 많은 개발자가 리눅스 연구 중 → 보안 문제 발생시, 신속한 해결 가능.

리눅스 디렉터리 종류와 특징

  • 디렉토리 == 파일 저장소.

  • 계층적 트리 구조

    • 최상위 디렉터리(/)를 기준으로 하위 디렉터리 존제
    • 디렉터리 간 부모와 자식의 관계 가짐.
  • / : 파일 시스템이 있는 최상위 디렉터리

    • 모든 디렉터리의 출발점 + 다른 시스템과의 연결점이 되는 디렉터리
  • /boot: 부팅 시 커널 이미지와 부팅 정보 파일 저장

  • /proc: 시스템 정보 디렉터리

    • 커널 기능을 제어하는 역할
    • 현재 실행되는 프로세스와 실제로 사용되는 장치, 하드웨어 정보 저장
    • 가상 파일 시스템.
    • 시스템에서 운영되고 있는 다양한 프로세스들에 관한 내용과 프로그램에 대한 정보를 포함.
    • 디렉터리에서 볼 수 있는 것은 실제 드라이브가 아니라 메몰 ㅣ상에 저장되어 있음.
    • 사용자가 /proc이나 하위 파일에 접근할 때마다 커널에서 파일 내용을 동적으로 만들어냄.
    • 각 프로세스는 고유의 식별자를 가지고 있으며, 이 식별자를 가진 디렉터리 밑에 정보를 저장.
  • /lib: 공유 라이브러리 디렉터리

    • 커널 모듈 파일들과 프로그램 실행을 지원해 주는 라이브러리 저장
    • 동적 공유 라이브러리 저장.
    • 공유 라이브러리에는 많은 프로그램에서 공통으로 사용하는 함수가 있음.
      • 디스크의 공간을 절약 가능.
      • 프로그램마다 코딩을 할 필요 없음.
    • 라이브러리 공유 방법에는 정적 라이브러리와 동적 라이브러리가 있음.
      • 정적 라이브러리: 컴파일 과정에서 공유 라이브러리르이 루틴을 사용하지 않고 프로그램 내에 라이브러리 루틴의 복사본을 갖도록 컴파일 함.
      • 동적 라이브러리: 실행 파일 내부에 라이브러리를 넣어두지 않고, 프로그램을 실행할 때 가져와 사용. → 메몰 효율 높음.
  • /bin: 기본적인 명렁어가 저장된 디렉터리

    • root 사용자와 일반 사용자가 함께 사용할 수 있는 명렁어 디렉터리
  • /dev: 시스템 디바이스 파일 저장 디렉터리

    • 하드디스크 장치 파일, CD-ROM 장치파일 같은 파일 저장
    • 하드디스크, 프린터, 입출력장치 등과 같은 장치들을 파일화하여 관리.
    • 특정 장치를 실행하기 위해서는 해당 장치 파일을 실행해야 함.
    • 장치 드라이버: 장치 파일(dev file) 또는 특수 파일(special file)
    • 블록 장치 파일(block device) - 저장 장치: 하드디스크, CD/DVD, 플로피 디스크
    • 문자 장치 파일(character device) - 입출력 장치: 키보드, 마우스, 테이프, 모니터, 프린터
    • 리눅스 표준 입력/출력 장치: 키보드 / 모니터
  • /etc: 시스템 환경 설정 파일 저장 디렉터리

    • 시스템 환경 설정 파일과 부팅 관련 스크립트 파일들이 저장 되어 있음.
    • 사용자 정보 및 암호 정보 팡리, 보안 파일 등을 저장.
    • /etc/group: 그룹의 정보가 담겨 있는 파일
    • /etc/password: 자원을 사용할 수 있는 사용자 목록 저장.
    • /etc/shadow: /etc/password의 두 번쨰 필드인 패스워드 부분을 암호화 관리
      • 패스워드 만기일, 계정 만기일 등 설정.
  • /root: 시스템 관리자용 홈 디렉터리

  • /sbin: 관리자용 시스템 표준 명령 및 시스템 관리와 관련된 실행 명령어 저장

  • /usr: 사용자 디렉터리

    • 사용자 데이터나 어플리케이션 저장
    • 시스템이 아닌 일반 사용자들이 사용하는 디렉터리.
    • 공유 가능한 프로그램들이 설치되며 네트워크를 이용해서 여러 개의 시스템을 연결할 경우 이 디렉터리를 공유해서 서맃된 프로그램을 활용.
    • 읽기 전용으로 마운트 되어야 하며, 가변 자료들은 /var 디렉터리로 심볼릭 링크로 사용.
  • /home: 사용자 디렉터리

    • 계정들의 home 디렉터리가 위치
    • 일반 사용자들이 로그인 시 처음으로 위치하게 되는 디렉터리
  • /var: 가변 자료 저장 디렉터리

    • 로그 파일이나 메일 데이터 저장.
    • 시스템에서 사용되는 가변적인 파일들을 저장.
    • 로그파일, 스풀링(spooling), 캐시(caching)
  • /tmp: 각종 프로그램이나 프로세스 작업을 할 때 임시로 생성되는 파일 저장

    • 모든 사용자에 대해 읽기 쓰기 하용
    • 스티키 비트(sticky bit) 설정으로 파일의 소유자만이 자신의 소유 파일 삭제 가능.
  • /mnt: 파일 시스템을 일시적으로 마운드할 때 사용

  • /lost+found: 결함이 있는 파일에 대한 정보가 저장되어 있는 디렉터리

    • 파일 시스템의 이상 유무를 진단하고 복구하는 fsck에 의해 사용되는 디렉터리.
    • 손상된 파일이나 디렉터리를 /lost+found 디렉터리로 연결한 뒤에 오류를 수정.
    • 평소에는 null 파일 링크에 의해 비어 있는 상태로 존재.
    • 리툭스 파일 시스템 ext2에 의한 fsck, ext2 프로그램도 이 디렉터리를 사용.

리눅스 배포판

특징

  • 리눅스 전체 시스템을 구성하는 소프트웨어 패키지 형태.
  • 리눅스 커널, GNU 소프트웨어 및 여러 자유 소프트웨어로 구성된 운영체제.
    • 운영체제는 리눅스 커널과 GNU 프로젝트에서 가져온 라이브러리와 유틸맅, X윈도우 시스템의 그래픽으로 구성.
    • 워드프로세서, 스프레드시트, 미디어플레이어, 데이터베이스 등 여러 소프트웨어 어플리케이션도 포함.
  • 전 세계에 300여 가지의 배포한이 존재. 배포판을 구성하는 소프트웨어도 자유롭게 구성되어 있음.
    • 용량을 맞춰 X 윈도우를 빼거나 용량이 작은 GNU 유틸리티를 선택하기도 함.
  • 대표적인 배포판: 레드햇, 슬랙웨어, 데비안
    • 레드햇(Red Hat) - Fedora
    • 노벨(Novell) - openSUSE
    • 캐노니컬 - Ubuntu
    • 커뮤니티 기반 - Debian, Gentoo

종류

  • 슬랙웨어 리눅스 (Slackware Linux)

    • 배포판 가운데 가장 먼저 대중화된 배포팜.
    • 최근 패키지 관리의 문제점으로 인하여 인기가 떨어진 상태.
    • 구조가 간결하고 파악하기 쉬워 유닉스학습에 리눅스를 사용하고 싶어 하는 사용자들에게 적합.
  • 데비안 (Debian)

    • 비영리 조직으로 데비안 프로젝트를 설립
    • 데비안 프로젝트에서 만들어 배포하는 공개 운영체제
      • GNU의 공식적인 후원을 받고 있는 유일한 배포판.
    • 데비안 GNU/리눅스 - 리눅스 커널 탑재
    • GNU/허드 - GNU Hurd 커널 탑재
    • GNU/KFreeBSD - FreeBSD 커널 탑재
    • GNU/NetBSD - NetBSD 커널 ㅌ납재
    • 정식으로 존재하는 것은 데비안 GNU/리눅스 뿐.
    • 패키지 설치 및 업그레이드의 과정이 단순.
      • install 후, 매니저인 apt등을 이용하면 소프트웨어의 설치나 업데이트에서 다른 패키지와의 의존성 확인, 보안 관련 업데이트 등을 자동으로 해줌.
  • 우분투 (Ubuntu)

    • 데비안 GNU/리눅스에 기초한 운영체제
    • 고유한 데스크탑 환경인 유니티를 사용하는 리눅스 배포판.
    • 6개월 마다 새 버전이 하나씩 배포.
    • 사용자 편의성에 초점을 둠.
  • 레드햇

    • 페도라와 레드헷로 나뉨
      • 페도라: 페도라 프로젝트 개발, 레드헷: 유료로 기술지원.
    • 기업용 유료 리눅스 배포판인 RHEL 개발 지원.
  • RHEL (Red Hat Enterprise Linux)

    • 레드헷이 개발하여 판매하는 상용 리눅스 배포판.
    • 라이선스는 별도로 판매 X
    • 서브 스크립션의 형태로 욕므을 지불하는 방식으로 계약
    • 기술 지원은 버전마다 출시 시점으로부터 7년 동안 제공.
    • 계약기간 중에는 추가 비용 없이 업그레이드 및 다운그레이드를 자유롭게 실시 가능.
    • 상업용 패키지는 구입해야하지만, 소스코드는 레드햇의 FTP 사이트를 통해 공개함.
  • 페도라

    • 리눅스 커널에 기반한 운여체제와 레드햇의 후원과 개발 공동체의 지원 아래 개발된 배포판.
    • 일반적인 목적을 가진 RPM 기반의 소프트웨어가 결합된 운영체제
    • 소프트웨어 개발이 안정적으로 이루어지기 위해서는 새 버전으로 계속 교체되어야 하는 문제점 있음.
  • CentOS

    • Upstream 소스인 RHEL와 완벽하게 호환되는 무료 기업용 컴퓨팅 운영체제.
    • 플랫폼을 제공할 목적으로 만들어진 리눅스계 운영체제.
    • 자체 커뮤니티에 의해 관리됨.
    • 기본적으로 포함되는 SW와 업데이트되는 SW를 아울러 이전 파일에 대한 상위판과 100%에 최대한 가까운 호환성을 유지하는 것을 원칙으로 함.
    • 레드햇의 지원을 받지 않음.
  • SUSE

    • 독일에서 출시된 배포판으로, 유럽에서 인기를 누림.
    • 풍부한 기능과 안정성, 보안 기능을 포함함.
    • 롤링 릴리즈(Rollinig Release) - 새로운 버전이 출시되면 언제든지 업데이트 가능.
    • 오픈 수세, 수세 엔터프라이즈 리눅스로 나뉨.
profile
말하는 감자

0개의 댓글