Unix와 Linux, 그리고 GNU

Violet_Evgadn·2023년 4월 26일
0

Linux

목록 보기
2/34

Unix

Unix는 멀티태스킹이 가능한 Multi-User OS이다. 또한 Shell을 활용하여 사용자가 OS에 명령을 내릴 수 있으며 계층적인 File System을 가진다는 특징을 가지고 있다.

멀티 태스킹은 모두가 알 것이니 넘어가고 Multi-User에 대해 자세히 알아보자.

내가 현재 내 노트북을 활용하고 있다. 이때 친구가 내 컴퓨터를 활용하고 싶다고 가정하자. 이 경우 어떻게 해야 할까?

당연히 내가 자리를 비켜주거나 내 일이 끝날 때까지 친구는 기다려야 할 것이다.

이토록 여러 사용자가 동시에 동일한 OS를 활용할 수 없는 OS를 Single User System이라 하며 대표적으로 Mac OS, Windows가 있다.

Single User System은 다중 사용자의 사용을 고려하지 않아도 되므로 상대적으로 간단한 구조로 되어 있으며 보안이나 비용적 문제도 Multi User System 방식보다는 간단하다.

Multi User System은 Single User System과 완전히 반대되는 용어로 여러 사람이 동시에 사용할 수 있는 OS 구조이다.

Multi User System의 대표적인 예시가 Linux와 Unix이다.

내가 Naver 사이트에 접근했다고 가정하자. 그리고 내 친구도 Naver 사이트에 접근했다.

이때 내 친구는 내가 Naver 사용을 끝낼 때까지 기다려야 할까? 당연히 아니다!

이처럼 여러 사용자가 동시에 동일한 서버에 접근할 수 있는 OS가 Multi User System인 것이다.

Multi User System의 또 다른 장점은 컴퓨터의 제한 없이 다른 컴퓨터에서도 동일한 OS 사용이 가능하다는 것이다.

내 집 컴퓨터를 A, 회사 컴퓨터를 B라고 가정하자. 이때 회사 컴퓨터에서 내 집 컴퓨터를 접근할 수 있을까? 화면 공유를 생각할 수 있겠지만 만약 집에 아무도 없어 화면 공유를 하지 못한다면 결국 다른 컴퓨터에서 내 컴퓨터에 접근할 수는 없다.

하지만 Multi User System은 다르다.

Linux Server에 대한 IP 주소 및 Username & Password만 알고 있다면 어떤 환경에서든 Putty나 Termius 같은 FTP 접속 서비스를 통해 동일한 OS를 활용할 수 있다.

Mutli User System은 다양한 사람이 동시에 사용할 수 있는 OS이므로 보안적으로 취약할 수 있고 Single User System보다 복잡한 구조를 가지고 있다.


Linux

Linux는 리처드 스톨만의 GNU 프로젝트에서 시작되었으며 정확히는 GNU/LINUS라고 부르는 것이 맞다.

그렇다면 GNU란 무엇일까?

GNU란 "GNU's Not Unix"라는 의미로써 Unix에 호환은 되지만 더욱 강력한 OS를 만들겠다는 의미로 프리웨어로만 구성된 완전한 1개의 Unix 유사 시스템을 만드는 것이 목적이었다.

닫혀 있는 UNIX보다는 자유로운 SW를 선호하는 공동체들 또한 GNU 프로젝트에 참여하며 "모두가 공유할 수 있는 SW"를 만드는 것을 목표로 하였다.

GNU 프로젝트들은 리처드 스톨만이 설치한 FSF(자유 소프트웨어 재단)의 GPL(General Public License)를 따르도록 되어 있다. 이 GPL은 5가지의 의무를 저작권의 한 부분으로써 강제한다.

  • 컴퓨터 프로그래밍은 법으로 제한하는 행위 이외 모든 목적으로 사용할 수 있다.
  • 소스 코드를 용도에 따라 변경할 수 있다.
  • 변경된 컴퓨터 프로그램 역시 GPL 라이선스를 적용해야 한다.
  • 변경된 컴퓨터 프로그램 역시 소스코드를 공개 배포해야 한다.
  • GPL 기반으로 만든 컴퓨터 프로그램의 복사본은 소스코드와 함께 판매하거나 소스코드를 무료로 배포해야 한다

Linux는 GPL을 따르는 만큼 무료이자 Open Source 기술이라는 특징을 가진다.

코드가 공개되어 있다 보니 사용자가 사용하기 더욱 자유로우며 많은 사람들이 개발에 참여하여 기술을 발전시킬 수 있다.

Linux는 발전 방향에 따라 많은 배포판(Ubuntu, Redhat, Devain, CentOS 등)이 존재하며, Ubuntu가 이 중 압도적으로 많은 점유율을 가진다.

UNIX에 배경을 둔 만큼 Multi User System이자 Multitasking이 가능하며 약간의 Assembly Langue + C 언어로 작성되어 있어 이식성이 뛰어나고 유연성 및 확장이 좋다.


Unix와 Linux 비교 & Unix를 사용하는 이유

Unix는 독점 OS로써 유료이며 코드가 공개되지 않았다. 따라서 업체 이외에는 사실상 개발 및 수정이 불가하다.

Linux는 무료로 사용 가능하며 Open Source 시스템으로 코드가 공개되어 있다. 따라서 누구든 소스코드를 보고 개발 및 수정이 가능하다.

이 때문에 Unix는 문제가 발생했다 하더라도 업체가 적절한 수정을 해줄 때까지 기다려야 하는 반면에 Linux는 사용자가 빠르게 처리 가능하다.

Linux는 다양한 환경에서 사용되는 반면에 Unix는 일반적으로 크고 강력한 컴퓨터에서 활용된다.

일반적인 시장 점유율을 봤을 때는 다양한 배포판이 존재하는 Linux가 매우 높지만 대기업이나 대학 같은 특수 환경에서는 Unix를 많이 활용한다.

(대표적으로 Apple의 MacOS가 Unix 운영 체제를 기반으로 만들어진 OS이다)

그렇다면 Linux가 Unix에 비해 모든 것이 다 좋은 것 같은데 왜 대기업이나 대학에서는 Unix를 많이 활용할까?

이건 개인적인 생각이지만 보안 때문이라고 생각한다.

Linux는 많은 사람이 개발에 참여하므로 보안상으로 뛰어나다고 말하는 사람도 있다. 실제 많은 사람이 개발에 참여하므로 최신 해커 공격 방지 기법을 빠르게 적용할 수도 있겠지만 Source Code가 공개되어 있다는 것은 역산하여 공격하기 쉽다는 의미를 가진다고도 생각한다.

Unix는 Source Code를 독점 업체만 가지고 있기 때문에 Source가 공유되지 않았으며 해커들은 역산의 방법을 모르는 상태로 공격을 진행해야 한다.

또한 대학이나 대기업 같은 경우 Unix를 사용할 때 외부 업체에서 동일한 서버를 만들기가 어렵다는 점도 이유가 되지 않을까 싶다.

Apple의 폐쇄적인 Mac OS환경이 보안적으로는 더 좋은 것과 유사하다 생각하며 이 점 때문에 보안 및 폐쇄성이 중요한 대학과 대기업에는 Unix를 더 많이 활용하는 것이 아닐까 싶다.

profile
혹시 틀린 내용이 있다면 언제든 말씀해주세요!

0개의 댓글