linux에 대해서

김규연·2023년 2월 9일
0

linux

목록 보기
1/11

🧐 linux란?

리눅스(linux)는 리누스 토르발스가 커뮤니티 주체로 개발한 컴퓨터 운영체제이다.혹은 커널을 뜻하기도 한다. 리눅스는 자유 소프트웨어와 오픈 소스 개발의 가장 유명한 표본으로 들 수 있다. 리눅스는 다중 사용자, 다중작업(멀티태스킹), 다중 스레드를 지원하는 네트워크 운영체제(NOS)이다.

여기서 운영체제는 윈도우즈와 같은 것이다. 컴퓨터를 켜면 윈도우즈가 반겨주는데 우리한테 프로그램도 설치하게 해주고, 마우스로 클릭도 하게 해주고, 키보드로 글씨도 입력하게 해주는 운영체제라고 생각하면 된다.
소프트웨어라는 말은 사용자가 소프트웨어를 자유롭게 이용(열람, 수정, 배포 등)할 수 있는 권리와 라이센스를 의미하기도 한다. 오픈소스는 소스(Source)가 오픈(Open)되어 있다라는 이야기로 누구라도 소스를 확인할 수 있음을 이야기한다.

이러한 운영체제들은 벽돌인 컴퓨터 기계 장치에 생명을 불어넣는 역할을 한다. 우리도 윈도우즈가 제공하는 사용성 안에서 엑셀도 사용하고, 포토샵도 사용한다. 리눅스는 웹서버, 데이터베이스 프로그램 등을 사용한다. 홈페이지를 응답해주고, 데이터를 저장해주는 프로그램들을 사용한다.

📌 리눅스의 장점

  1. 다중 사용자 및 다중 처리 시스템

    • 멀티유저 (Multi-User) : 하나의 시스템에 다수의 사용자들이 동시에 접속하여 사용할 수 있다.
    • 멀티태스킹 (Multitasking) : 각 접속자들은 다수의 작업을 중앙 처리 장치(CPU)와 같은 공용자원을 나누어 다수의 응용 프로그램을 실행할 수 있다.
  2. 완전히 공개된 시스템
    운영체제의 핵심인 커널(Kernel) 뿐만 아니라, 운영체제 프로그램에 내장되어 배포되는 대부분의 모든 응용 프로그램들의 소스가 공개된 오픈소스 프로그램이다.

  3. 뛰어난 네트워크 환경
    가장 널리 쓰이는 이더넷(Ethernet)을 포험하여 SLIP, PPP, ATM 등의 다양한 네트워크 환경을 지원하여 TCP/IP, NetBEUI, IPX, AppleTalk 등 대부분의 네트워크 프로그램을 지원한다.

  4. 다양한 파일 시스템 지원

  5. 뛰어난 이식성
    리눅스는 약간의 어셈블리어와 대부분의 C언어로 작성되어 있다. C를 컴파일할 수 있으며, 어셈블리어 부분만 새롭게 만들고 C부분을 다시 컴파일 함으로써 쉽게 다른 시스템이나 환경 등에 이식하여 사용할 수 있다.

  6. 유연성과 확장성
    리눅스는 상업용 유닉스(UNIX)의 모든 특성을 가지며 유닉스의 표준인 포직스(POSIX)를 준수하고 있으며 커널, 장치 드라이버, 라이브러리, 응용 프로그램, 개발도구 등 리눅스의 소스코드를 쉽게 접할 수 있다.

  7. 강령하고 뛰어난 안정성과 보안성
    리눅스는 커널 소스가 공개되어 있어 Windows 운영체제와 같은 폐쇄형 운영체제에 비해 보안상의 보안 취약점이 쉽게 노출될 가능성이 있으나, 공개용 소프트웨어를 지지하는 수많은 전문 프로그래머들이 상용 운영체제보다 빠르게 오류 수정과 보안 관련된 패치에 대응하여 안정성을 확보한 버전을 발표하고 있다.

  8. 우수한 가격대 성능비
    기업환경에서 서버로 사용되는 유닉스를 x86 시스템에 최적화시켜 효율적읜 방식으로 설계하였기 때문에 PC급 서버에서도 엔터프라이즈(Enterprise) 서버와 유사한 성능을 발휘할 수 있다.

  9. 다양한 응용 프로그램 제공
    쉘(Shell)과 기본 명령어, X Window 시스템, 편집기, 서버 및 클라이언트 프로그램, 개발도구, 보안도구, 게임 등을 포함하여 베포하고 있다.

  10. 다양한 베포한의 존재
    리눅스는 서버, 개발용, PC용 등 다양한 목적으로 사용 가능하고 이에 따른 다양한 배포판이 존재한다.

📌 리눅스의 단점

  1. 기술 지원의 부족
    리눅스에서 사용되는 대부분의 응용 프로그램은 비상업적인 제품인데 전 세계에 흩어져 있는 개발자들이 일일이 기술지원을 하는 것이 불가능하다.

  2. 특정 하드웨어에 대한 지원이 부족
    리눅스가 다른 운영체제에 비해 이식성, 확장성 등이 뛰어나지만 여전히 특정한 하드웨어에 대한 설치가 어렵고 모든 플랫폼에서 작동하는 만능 운영체제는 아니다.

  3. 사용자의 숙련된 기술 요구
    현재 리눅스에서는 X-Window 기반 환경이 보편화되면서 초기 텍스트 기반의 명령어를 입력하는 환경에 비해 쉬워졌지만, 아직도 중요한 설정은 명령어를 입력하거나 관련 환경설정 파일을 편집기를 사용해서 수정이 필요하여 지식이 없는 일반 사용자들은 사용에 어려움이 있다.

📌 리눅스와 윈도우즈의 차이

LinuxWindows
비용무료비쌈
오픈 소스OX
맞춤 설정 가능OX
보안더욱 안전함바이러스 및 맬웨어 공격에 취약
부팅기본 또는 논리 파티션주 파티션만
디렉토리 분리백 슬래시슬래시
파일 이름대소 문자 구분대소 문자를 구분하지 않음
파일 시스템EXT2, EXT3, EXT4, 라이저 FS, XFS 및 JFSFAT, FAT32, NTFS 및 ReFS
사용된 커널 유형단일체 커널마이크로 커널
능률효과적인 주행 효율리눅스보다 낮음
  • 리눅스는 자유롭고 오픈 소스 운영체제이지만 Windows는 소스 코드에 접근할 수 없는 사용 운영 체제이다.
  • 리눅스는 사용자 정의를 할 수 있고 Windows는 사용자 정의를 할 수 없으며 사용자가 코드를 수정하고 모양과 느낌을 변경할 수 있다.
  • 리눅스는 리눅스가 오픈 소스이므로 Windows보다 높은 보안을 제공한다.
  • Windows는 주 파티션에서 부팅해야한다. 반대로 리눅스에서는 기본 또는 논리 파티션에서 부팅할 수 있어 제약이 없다.
  • 디렉토리 분리는 Windows에서 백 슬래시를 사용하여 수행하고 리눅스에서는 슬래시를 사용하여 구분한다.
  • 리눅스에서 파일이름이 대소 문자를 구분하지만 Windows 파일 이름은 대소 문자를 구분하지 않는다.
  • 리눅스는 더 많은 공간을 차지하는 모 놀리 식 커널을 사용하고Windows는 공간을 덜 차지하는 마이크로 커널을 사용하지만 시스템 효율은 리눅스 보다 낮다.

📌 종류

리눅스라는 단어는 깊게는 리눅스 커널을 의미한다. 커널은 응용 프로그램의 요청처리, 자원(메모리,네트워크 등) 관리를 해주는 운영체제의 핵심 소프트웨어이다. 우리가 일상에서 만나는 다양한 이름의 리눅스들은 리눅스 베포판이다. 리눅스 커널에 여러가지 프로그램들을 붙여서 배포하기 위해 구성된 운영체제이다. 최근 듣는 리눅스 배포판으로는 우분투(Ubuntu), 페도라(Fedora), 리눅스 민트(Linux Mint), 센트OS(Cent OS) 등이 있다. 우리에게 친숙한 스마트용 운영체제인 안드로이드도 리눅스흫 기반으로 만들어졌다.

🧷우분투 리눅스 (Ubuntu Linux)

영국 기업 캐노니컬이 개발, 배포하는 컴퓨터 운영체데이다. 데비안 리눅스를 기반으로 개발되며, 데비안에 비해 사용 편의성에 초첨을 맞춘 리눅스 배포판이다.
일반적으로 6개원마다 새로운 버전이 공개되며, 장기지원판(LTS)은 2년에 한번씩 출시되는데 4월과 10월에 한번씩 메이저 업데이트가 이루어지고 있다. 그리고 또 5년의 지원기간을 가진 LTS(Long Term Service) 버전을 짝수해 상반기에 내놓는다. LTS버전이 아닌 것의 지원기간은 9개월이며 9개월이 지나면 업그레이드를 하거나 새 버전으로 설치를 하는 것을 권장하고 있다.

우분투 리눅스 장점

  1. 리눅스를 처음 접하는 사용자가 설치하더라도 어려움 없이 설치할 수 있도록 간단한 배포를 한다.
  2. Unity라는 환경을 지원하여 리눅스 개발환경이 익숙하지 않은 초심자들에게 전용 CUI를 지원한다.
  3. 데스크톱, 서버 버전 모두 무료로 다운로드하여 이용할 수 있으며, 상업적인 서비스를 위한 활용에도 문제가 없다.
  4. 다소 전문성을 요하는 iptables가 아닌 쉬운 방화벽 ufw를 사용하여 방화벽 설정을 간편하게 만들었다. 따라서 보안 지식이 없거나 추가 보안설정을 하지 않은 경우라도 기본적인 보안 레벨을 유지할 수 있다.
  5. 대부분의 리눅스 배포판들이 서버용으로 사용되고 이쓴 것에 반하여, 우분투는 개인 사용자와 데스크톱 환경에 최적화되도록 사용자 편의를 중점으로 개벌되어 개인용, 데스크톱 환경에 최적화되어 있다.

우분투 리눅스 단점

  1. LTS버전을 사용하지 않는 한 6개월마다 대대적인 업그레이드를 필요로 한다.
  2. Unity환경의 GUI 경우 호불호 갈리는 데시크톱 환경이다.
  3. LTS버전이어도 최신 버전과는 차별이 존재한다.

🧷 페도라 리눅스 (Fedora Linux)

페도라 프로젝트가 개발한 컴퓨터 운영체제이다. 레드햇의 후원과 개발 공동체의 지원 개발된 일반적인 목적을 가진 RPM기반의 소프트웨어가 결합된 운영채재이기도 하다. 유료로 판매되는 레드햇에 들어갈 기능을 테스트하는 성격이 강하다. 따라서 간혹 업데이트 후에 엄청난 에러를 동반하는 경우가 존재하곤 한다, 물론 이런 업데이트는 유저의 선택에 의해 업데이트를 할 수도 있도 안할 수도 있다. 보는 관점에 따라서 전문가를 위한 리눅스라고 보기도 한다.
페도라 프로젝트의 주요 목표는 자유, 오픈 라이선스 아래 개발된 소프트웨어를 아우르는 것과 컴퓨터 기술의 첨단을 선도해 나가는 것이다.

페도라 리눅스 장점

  1. 리눅스 커널의 개발자 리눅스 투르발스가 사용하는 운영체제이다.
  2. 레드헷에서 개발되는 기술이 가장 먼저 탑재되어 최신의 기술을 가장 먼저 사용할 수 있다.
  3. 개발을 위한 도구들이 기본적으로 제공이 된다.

페도라 리눅스 단점

  1. 선택적인 업데이트에 따라서 에러가 발생하기도 하며 기본적인 에러가 많다.

🧷 리눅스 민트(Linux Mint)

리눅스 민트는 Clement Lefebvre, Jamie Boo Birse, Kendall Weaver가 개발한 컴퓨터 운영체제이다. 우분투와 달리 독점 소프트웨어인 자바와 플래시 뤱 프로그인 등을 기본적으로 포함하여 설치하고 바로 사용하기에 편리하다. 우분투와 같은 소프트웨어 저장소를 쓰고 심어져 있는 소프트웨어도 우분투와 거의 같다. 심지어 우분투에 적용되는 팁의 대부분이 리눅스 민트에도 적용된다.

리눅스 민트 장점

  1. 우분투에서는 제공하지 않는 소프트웨어를 포험한다.
  2. 우분투에 비해 GUI의 외형적 아름다움에 집중하여 GUI가 뛰어나다.

리눅스 민트 단점

  1. 우분에 비해 세계 다국어 지원이 미흡히디.
  2. 데비안 불안정 버전을 기반으로 한다.
  3. 한글 글꼴을 기본 지원하지 않는다.

🧷 센트OS (CentOS)

센트OS는 센트OS 프로젝트에서 레드헷 제휴로 개발한 컴퓨터 운영체제이다. 업스트림 소스인 레드헷 엔터프라이즈 리눅스와 완벽하게 호환되는 무료 기업용 컴퓨팅 플랫폼을 제공할 목적으로 만들어진 리눅스계 운영체제 가운데 중 하나이다. 유료 리눅스인 레드햇 엔터프라이즈를 그대로 빌드하여 상표권만 제거한 리눅스 센트OS이다.

센트OS 장점

  1. 전 세계에서 점유율 1위 차지하고 있다.
  2. 무료로 사용 가능하다.
  3. 가볍고 안정적 운영이 가능하다.

센트OS 단점

  1. 서버를 운영하는 도중 문제 발생 시 해결하기 위해 지원을 받을 수 없다.
  2. 시스템 설정이 어렵다.
  3. 지원 가능 프로그앰이 우분투에 비해 적다.

🧷 오픈수세 (OpenSUSE)

오픈수세 프로젝트에서 개발한 컴퓨터 운영체제이다. 후원은 노벨에서 하였고 2004년 1월, 수세 리눅스를 인수한 이후 노밸은 수세 리눅스 프로페셔널 제품을 완전한 오픈 소스 프로젝트로서 배포하기로 결정하고, 개발 과정에 커뮤니티가 참여할 수 있도록 하였다.

오픈수세 장점

  1. 설치 직후 한글화 설정 시 별도의 입력기를 설치하지 않고도 바로 한글 입력이 가능하다.
  2. Windows 운영체제와 이질감이 적은 KDE 데스크톱 환경을 지원하여 사용하기에 편리하다.
  3. YaST라는 경력한 시스템 도구를 제공한다.

오픈수세 단점

  1. 비인기 운영체제이기 때문에 정보 수집 및 도움을 받는 것에 어려움이 존재한다.

리눅스 구조

하드웨어 (Hardware, H/W)

컴퓨터 하드웨어는 케이스, 중앙 처리 장치(CPU), 모니터, 자판(키보드), 컴퓨터 기억 장치(RAM), 그래픽 카드(GPU), 사운드 카드, 메인보드와 같은 컴퓨터의 물리적 부품을 의미한다.

커널 (Kernel)

컴퓨터 운영체제의 핵심이 되는 컴퓨터 프로그램으로, 시스템의 모든 것을 완전히 통제하며, 운영체제의 다른 부분 및 응용 프로그램 수행에 필요한 여러 가지의 서비스를 제공한다.
프로그램의 실행 과정에서 가장 핵심점인 연산이 이루어지는 부분으로 코어, 리눅스라고 부른다. 하드웨어를 직접 제어하고, 프로세스 관리, 파일 시스템 관리 등을 수행하는 운영체제의 핵심으로, 사용자가 실행시키는 응용프로그램(Application)과 하드웨어 사이의 관리자 역할을 수행하며 쉘과 연관되어 쉘에서 명령하는 작업을 수행하고 수행된 결과를 쉘로 보내는 역할을 한다.

쉘 (Shell)

셸은 운영체제 상에서 다양한 운영체제 기능과 서비스를 구현하는 인터페이스를 제공하는데 사용자가 입력하는 명령을 대신 해석해 커널에게 전달하여 실행해주는 프로그램이다. 쉘은 사용자가 입력한 문자열을 해석하고 해당 명령어를 찾아 커널에 작업을 요청하게 된다. 그리고 커널에서 작업을 수행한 결과를 다시 쉘로 보내면 쉘은 그 결과를 유저에게 알려주는 형식이다.
쉘은 사용자와 운영체제의 내부 사이의 인터페이스를 감싸는 층이기 때문에 붙여진 이름이다. 쉘은 일반적으로 명령 줄과 그래픽 형의 두 종류로 분류된다.

응용프로그램 (Application)

응용 소프트웨어 또는 애플리케이션은 운영체제에서 실행되는 모든 소프트웨어를 뜻하는데 리눅스는 각종 프로그래밍 개발도구, 문서 편집 도구, 네트워크 관련 도구 등 매우 다양한 응용프로그램을 제공한다.

profile
오늘도 뚠뚠 개미 개발자

0개의 댓글