Linux

[Linux] Linux(리눅스) 소개

simonpark817 2024. 7. 3. 18:27

[Linux 소개]

  • 이번 포스팅에서는 리눅스에 정의에 관련하여 몇 가지 소개하고자 한다.

 

[Linux란?]

  • Linux(리눅스)는 리누즈 토발즈에 의해 만들어진 컴퓨터 운영체제로 자유 소프트웨어와 오픈 소스 개발의 가장 유명한 표본이다.
  • 컴퓨터 역사상 가장 많은 참여자가 관여하고 있는 오픈 소스로 누구나 개발에 참여하고 코드를 볼 수 있는 프로젝트이다.
  • 리눅스는 GNU 프로젝트의 일환으로써 GNU 프로젝트란 GNU is not Unix의 줄임말로, 리처드 스톨먼의 주도하에 시작된 공개 소프트웨어 프로젝트이다.
  • 우리가 보편적으로 많이 사용하는 Windows도 OS 중에 하나이며, Linux는 서버 관리 용도로 많이 사용한다.

 

[리눅스 구조]

  • 리눅스의 구조는 응용프로그램, Shell, Kernel, 하드웨어 4가지로 분류할 수 있다.
  • Office 등의 문서편집기 혹은 웹 브라우저와 같은 응용프로그램에서 사용자가 명령을 내리면 Shell은 이 명령을 해석해준다고 생각하면 된다.
  • 그렇기 때문에 Shell을 명령어 해석기라고도 부르며, 해석된 사용자 입력 명령어를 Kernel에게 전달한다.
  • Kernel은 하드웨어를 제어하는 코드를 통해 소프트웨어와 커뮤니케이션을 하며, 시스템의 모든 자원을 통제/관리하는 역할을 수행한다.

 

[리눅스의 특징]

  • 리눅스는 유닉스(Unix)라는 운영체제를 기반으로 하고 있으며, 뛰어난 안정성과 보안성, 높은 신뢰성과 성능이 특징이다.
  • 시스템의 자원을 효율적으로 관리 및 사용할 수 있으며, 멀티 유저와 멀티 태스킹을 지원한다.
  • 여기서 멀티 유저(Multi-User)는 여러 사용자가 동시에 하나의 시스템에 접근할 수 있다는 의미이고, 멀티 태스킹(Multi-Tasking)은 여러 개의 작업을 동시에 실행하고, 교대로 컴퓨터의 자원을 사용할 수 있는 기능을 의미한다.
  • 대부분의 리눅스는 CLI(명령어창)와 GUI(그래픽)를 모두 지원하고 있으며, 다양하고 강력한 네트워킹 기능 때문에 서버 전용 운영체제로 적합하다.
  • PC 서버에서도 엔터프라이즈 급의 성능을 제공하고, 성능이 낮은 PC에서도 작동한다.
  • 리눅스는 오픈 소스 프로젝트이기 떄문에 Kernel 소스 코드 및 모든 관련 자료가 공개되어 빠른 발전을 지원하고있다.

 

[리눅스의 종류]

  • 리눅스의 종류는 Ubuntu, CentOs, Fedora, RedHat 등이 있습니다.
  • Ubuntu(우분투)는 데비안 리눅스를 기반으로 개발되며 데비안에 비해 사용 편의성에 초점을 맞춘 리눅스 배포판이다.
  • 우분투의 장점은 리눅스를 처음 접하는 사용자가 설치하더라도 어려움 없이 설치할 수 있도록 간단하게 배포를 하며 Unity라는 환경을 지원하여 전용 GUI를 지원한다.
  • 우분투는 ufw라는 방화벽을 사용하여 방화벽 설정도 간편하고 추가 보안설정을 하지 않더라도 기본적인 보안 레벨을 유지할 수 있다.
  • RedHat(레드햇)은 미국에 본부를 둔 래드햇 기업이 개발한 리눅스 배포판으로 현재는 유료로 기술지원을 하는 기업용 래드햇 엔터프라이즈 리눅스와 페도라로 나눠져있다.
  • 레드햇은 서버의 안전성이 높고 설치가 쉬우며, 폭넓은 하드웨어를 지원한다. 또한 대규모 데이터베이스 환경에서도 안정적으로 동작하고 편의를 위한 시스템 설정 도구를 지원한다.
  • CentOs(센트OS)는 CentOs 프로젝트에서 레드햇 제휴로 개발한 운영체제이다.
  • CentOs의 장점은 무료로 사용이 가능하며 가볍고 안정적인 운영이 가능하기 때문에 보통 기업용 서버로 많이 사용한다.
  • Fedora(페도라)는 래드햇의 후원과 개발 공동체의 지원 아래 개발된 일반적인 목적을 가진 RPM기반의 소프트웨어가 결합된 운영체제이다.
  • 페도라는 래드햇에서 개발되는 기술이 가장 먼저 탑재되어 최신 기술을 가장 먼저 사용할 수 있으며, 개발을 위한 도구들이 기본적으로 제공된다.

 

[리눅스 파일 시스템]

  • 파일 시스템이란 저장 장치 내에서 데이터를 읽고 쓰기 위해 미리 정한 약속으로 하드디스크와 SSD는 데이터가 저장된 위치가 이 약속에 따라 달라진다.
  • 그렇기 때문에 파일 저장 및 검색을 할 수 있도록 관리하는 방법도 파일시스템이라 한다.
  • 대부분의 파일 시스템은 디렉토리와 파일로 구성되어 있으며, 리눅스의 파일 시스템은 root 파일 아래에 계층적으로 구성되어있다.
  • 파일 시스템의 종류는 FAT, NTFS, EXT로 구분되어 있다.
  • FAT는 File Allocate Table의 약어로 파일 할당 테이블이라고도 하며, 디지털 카메라 등에 장착되는 대부분의 메모리 카드와 수많은 컴퓨터 시스템에 널리 쓰이는 파일 시스템의 종류이다.
  • FAT는 단순한 자료구조 탓에 작은 파일이 여러개 있을 경우 공간 활용을 제대로 하지 못하는 단점이 있지만, 용량이 계속 커지고 있으며 높은 호환성을 가진다.
  • NTFS는 New Technology File System의 약어로 Windows NT 계열의 새로운 파일 시스템으로 기존의 FAT 구조를 대체하기 위해 만들어졌다.
  • FTFS는 시스템 고장 및 손상 시, 디스크 볼륨을 재구성하여 일관성있는 상태로 복구가 가능하여 안정성이 높고, 보안성도 FAT보다 향상되었다.
  • EXT는 EXTended file system의 약어로 리눅스의 기본 파일 시스템이다.
  • EXT는 성능을 향상시키면서 시리즈로 출시되는데, 기본으로 사용되던 2차 확장 파일 시스템 EXT2를 완벽하게 호환하는 EXT3와 EXT4가 있다. EXT3부터 큰 규모의 디렉토리를 접근하기 위해 해쉬를 통해 접근하는 H-tree를 사용하여 데이터 검색이 보다 용이해졌고, EXT4는 지금까지 중 가장 큰 초대형 파일 시스템이다.

 

 

반응형