본문 바로가기
CS(Computer Science)

[CS] 리눅스 배경지식 이해

by 개발지망생 2023. 3. 3.

📖 리눅스의 시작

대학에 있는 UNIX 컴퓨터를 집에서 쓰고 싶다는 생각으로 리누스 토발즈(Linus Torvalds)가 개발했다고 한다.

리눅스는 다중 사용자, 다중 작업(시분할 시스템, 멀티 태스킹)을 지원하는 유닉스(UNIX)와 유사한 운영체제를 가지고 있다.

 

✅ GNU 프로젝트

GNU = Gnu is Not Unix.

  • 유닉스 운영체제를 여러 회사에서 각자 개발, 소스를 공유하지 않는 문화에 반발
  • 리차드 스톨만 : 초기 컴퓨터 개발 공동체의 상호협력적인 문화로 돌아갈 것을 주장하며, 1985년도에 GNU 선언문을 발표
  • GNU 프로젝트를 지원하기 위해 자유 소프트웨어 재단(FSF) 설립과, GNU 공개 라이선스(GPL)라는 규약을 제공


✅ GPL 라이선스와 GNU프로젝트

GPL라이선스는 쉽게 얘기하면 저작권 법을 뜻한다.
GPL 프로그램은 어떤 목적으로, 어떤 형태로든 사용할 수 있지만, 사용하거나 변경된 프로그램을 다시 배포하는 경우, 동일한 GPL 라이선스로 공개를 해야 한다. 
소스 오픈을 장려하기 위한 목적을 가졌으며, 그로 인해 소스까지 오픈된 유명한 프로그램이 많이 있다. (예 : apache)

 

 

✅ GNU 프로젝트와 GNU Hurd

UNIX를 대체하기 위해 GNU Hurd 운영체제 커널 개발 시도했다. 운영체제에 필요한 라이브러리, 컴파일러, 에디터, 쉘 개발을 했으나 커널 개발로 인해 지연되고 있던 찰나 리누스 토발즈가 리눅스 커널 소스를 오픈하게 되었고, GNU 프로젝트 산출물과 리눅스 커널이 통합 개발하게 되었다.

 

 

✅ GNU/리눅스 world

리차드 스톨만(GNU 프로젝트 창시자)은 GNU 프로젝트 기여가 크므로, GNU/Linux라고 부르기를 희망했으나 안타깝게도 많은 사람들이 리눅스라고 부른다.
그래도 리눅스세계에서 프로그램 설정, 다운로드 등등 여러 과정들에서 가끔 GNU, GPL 등 용어를 볼 수 있다.

 

📌 이 결과로 인해 생긴 개발자 문화

수많은 개발자가 수시로 각 프로그램 개발에 기여하고, 만들어진 프로그램을 활용함

  • 수시로 명령이 바뀌거나, 버그가 있을 수도 있고, 가이드가 부실할 수도 있음 
  • 이런 환경에서, 바뀐 명령을 구글링으로 찾고, 사용법을 스스로 알아내고, 버그도 스스로 해결하는 방법을 찾음
  • 모든 것을 스스로 할 수 있는 좋은 개발자만 깊게 활용 가능

댓글