본문 바로가기

카테고리 없음

[리눅스 마스터 2급] 리눅스 일반 - 리눅스 이해

최근 일하는 곳에서 수정 파일을 상용 서버에 적용하는 방법을 배우면서 리눅스를 더 공부하고 싶다고 생각했다. 일단 여기에서는 파일 버전 관리를 그냥 버전에 따라 파일을 생성하고 심링크만 바꾸는 형식으로 작업을 진행한다. 간단한 명령어 사용이라 메뉴얼대로 해도 되긴하지만 저번 학기 OS를 수강하면서 배운 명령어들이 사용된다는게 너무 신기했고 지금 작업하고 있는 환경을 이해하기 위해 더 공부하고자한다 ㅎㅎ.. 

 

우선 리눅스 마스터 2급은 1차, 2차 모두 필기로 진행되는데 1차는 온라인 시험, 2차는 오프라인 시험으로 진행된다. 찾아보니 대부분 족보+gpt로 1차 시험을 본다고 하는데 어차피 2차 시험때 공부해야하기도 하고 여러번 보면 더 기억에 잘 남을 것 같아 여러 자료들을 찾아보았다. 좋은 자료들이 많았지만 단원별로 설명해주는 강의를 듣는게 좋을 것 같아 세종사이버대학교 강의를 수강했다(제일 카테고리별로 정리가 잘되어있는 느낌이었다!!)

 

https://www.youtube.com/watch?v=4yJN5Blolt8

 

리눅스의 이해

리눅스 개요

  • 1991년 리누스 토르발스가 출시한 운영체제
  • 리눅스 커널에 기반을 둔 오픈소스 유닉스 계열 운영체제
    소스코드와 관련 자료 공개
  • 멀티유저(다중사용자), 멀티테스킹(다중작업) 운영체제 → 가상 터미널을 이용한 다중 작업 ➡️ 컴퓨터 자원(메모리, CPU 등)을 효율적으로 사용해서 시스템 효율 최대로
    멀티테스킹: 여러 작업을 동시에 실행(한 작업이 CPU를 점유하지 않을 때 다른 작업 수행)
    멀티 유저: 여러 사용자가 동시에 동일한 시스템 접근 가능
  • 다중 스레드를 지원하는 네트워크 운영체제 → 동시에 여러개의 네트워크 작업, 인터넷 서비스
    프로그램: 특정 언어로 작성된 개발 코드 (실행 전 정적 상태)
    프로세스: 실행중인 프로그램, 프로그램이 CPU를 할당받아 특정 업무를 처리 중인 동적인 상태
    일반적으로 하나의 프로세스는 하나의 스레드를 처리하지만 다중 스레드는 하나의 프로세스에서 두 개 이상의 스레드를 처리
    스레드: 프로세스 내에 실행되는 하나의 작업
  • 여러 종류의 파일 시스템을 지원하는 운영체제: 리눅스, 윈도우, 네트워크 파일 시스템

장단점

➕ POSIX(portable Operating System Interface) 표준 기반, 유닉스와 완벽하게 호환 가능

➕ PC용 운영체제보다 안정적 가용성(시스템이 다운되지 않고 얼마나 오랫동안 해당 시스템을 사용할 수 있는지) 좋음

➕ 하드웨어 기능을 효과적으로 사용

다른 운영체제보다 적은 양의 메모리를 사용, ram이 부족할 경우 swap 방식을 통해 메모리 효율성을 높임

⇒ 많은 사용자가 동시에 접속하는 서비스 운영에 유리

➖ 공개 운영체제이기 때문에 문제점 발생 시 기술 지원을 받는 데 한계, 보안상 취약점 노출 가능성

➖ 한글 지원이 미흡(별도 설치 필요)

⇒ 최근에는 많이 보완됨

 

리눅스 배포판

: 리눅스 커널, GNU 소프트웨어, 응용 프로그램 등을 함께 묶어서 구성한 리눅스 운영체제 → 목적에 따라 다양한 배포판 존재

슬랙웨어 리눅스(slackware linux) 배포판 가운데 가장 먼저 대중화된 배보판으로 1992년 패드릭 볼커딩에 의해 출시

데비안(Debian) 데비안 프로젝트에서 만들어 배포하는 공개 운영체제로 GNU의 공식적인 후원을 받고 있는 유일한
배포판, apt 패키지 매니저를 이용한 소프트웨어 관리  
우분투 데비안 GNU/리눅스에 기초한 운영체제, 유니티(데스크톱 환경), 사용자 편의성에 초점, apt 패키지 매니저 사용
RHEL 레드햇이 개발하여 판매하고 있는 상용 리눅스 배포판
페도라 리눅스 커널에 기반한 운영체제와 레드햇의 후원과 개발 공동체의 지원 아래 개발된 배포판
6개월 마다 새로운 버전, 13개월의 지원 기간  
CentOS 업스트림 소스인 레드햇 엔터프라이즈 리눅스(RHEL)와 완벽하게 호환되는 무료 기업용 컴퓨팅 운영체제
수세(SuSe) 독일에서 출시된 배포판

 

 

리눅스 역사

  • 켄 톰슨(UNIX)
    • 데니스 리치: UNIX를 C언어로 재개발
    • 리처드 스톨먼(GNU 프로젝트, FSF, GPL)
    • 앤드루 타넨바움(MINIX)
    • 리누스 토발즈(MINIX 커널 수정, GNU 시스템 커널, 리눅스 커널)

 

리눅스의 철학 및 라이선스

오픈소스 라이선스

GNU, FSF, 오픈소스 소프트웨어, 오픈소스 라이선스

GNU(GNU’s Not UNIX)  리처드 스톨만의 자유 소프트웨어 재단 프로젝트, 완전한 유닉스 호환 시스템이 목적
FSF(Free Software Foundation) 리처드 스톨만이 설립, 실행/복제/배포/학습/개작/개선의 자유, 유료/무료 배포
오픈소스 소프트웨어(OSS) 자유 소프트웨어(Free Software)대신 사용하게 된 용어, 자유와 무료의 용어 혼돈을 고려
오픈소스 라이선스 OSI(Open Source Initiative)가 주도, OSS 개발자와 이용자 간 사용 방법, 조건,

 

오픈소스 라이선스의 종류와 특징

GNU GPL(General Public License) FSF가 만든 Free 소프트웨어 라이선스, GPL 코드 사용시 해당 프로그램이 GPL (내 소스코드도 공개해야해)
GNU LGPL(Lesser/Library GPL) LGPL 코드/라이브러리의 단순한 이용 시 해당 프로그램은 소스코드 공개 의무 없음
BSD(Berkeley Software Distribution) 버클리 캘리포니아 대학, 소스코드 공개 의무 없음, 상업 소프트웨어 사용 가능, OpenCV(이미지 처리) 등
아파치(Apache) 라이선스 아파치 소프트웨어 재단, 파생된 프로그램 제작, 저작권 양도, 전송 가능, 상업적 사용 가능
MIT 라이선스 BSD 라이선스 계열, Node.js, X 윈도우 시스템(X11) 등
MPL 모질라 재단, 소스코드와 실행파일의 저작권 분리(실행 파일은 독점 라이선스 가능, MPL 소스코드를 수정한 2차 소스코드는 MPL로 공개 및 원저작자에게 수정 부분 통지)

 

 

리눅스 주요 디렉토리의 특징