리눅스의 간략한 역사

소개

일반적으로 “Linux”라는 용어는 주로 Linux 커널을 중심으로 구축된 운영 체제 배포판 그룹을 가리킵니다. 엄밀히 말하자면 Linux는 커널 자체의 존재를 가리킵니다. 완전한 운영 체제를 구축하기 위해 Linux 배포판은 종종 GNU 프로젝트 및 기타 소스에서의 도구 및 라이브러리를 포함합니다. 최근에는 더 많은 개발자들이 Linux를 사용하여 모바일 애플리케이션을 개발하고 실행하고 있으며, 이는 Chromebook과 같은 저렴한 장치의 개발에도 중요한 역할을 하고 있습니다. 클라우드 컴퓨팅 및 일반적인 서버 환경에서 Linux는 몇 가지 실용적인 이유로 인기 있는 선택지입니다:

  • 이 배포판들은 다른 개발자들의 커뮤니티에 의해 지속적으로 유지 및 지원됩니다.
  • 다양한 하드웨어에서 실행되며 기존 시스템 옆에 설치될 수 있습니다(로컬 개발 환경에서 유용한 특성입니다).
  • 기존 저장소에서 중앙 집중식 소프트웨어 설치를 지원합니다.
  • 자원 요구 사항이 낮습니다.
  • 개발자들이 서버용 응용 프로그램 생태계 및 도구를 개발할 때 종종 주요 선택지가 되어 서로 높은 호환성을 제공합니다.
  • 운영 체제 동작에 필요한 수정을 지속적으로 수행합니다.

또한 Linux는 무료 및 오픈 소스 소프트웨어 운동의 기원으로 거슬러 올라가며, 결과적으로 일부 개발자들은 윤리적 및 실용적인 이유로 Linux를 선택합니다.

  • 일부 개발자들에게는 Linux를 사용하는 것은 접근성과 표현의 자유에 대한 헌신을 의미합니다.
  • Linux 커뮤니티는 또한 일부 개발자들에게 매력적입니다: 질문이 있을 때 이 커뮤니티가 생성한 자료를 참고하거나 활발한 유지보수자 중 한 명에게 직접 문의할 수 있습니다.

개발자 커뮤니티를 비롯한 Linux의 역할을 이해하기 위해 이 글에서는 Unix를 통한 Linux의 간략한 역사를 개요와 함께 소개하고 인기있는 Linux 배포판에 대해 논의할 것입니다.

Unix의 기원

Linux는 Unix와 Multics라는 두 프로젝트에서 발전한 것입니다. 이 두 프로젝트는 견고한 다중 사용자 운영 체제를 개발하는 것을 목표로 공유했습니다.

Unix의 시작

Unix는 벨 연구소의 컴퓨터 과학 연구 센터에서 Multics 프로젝트의 반복 과정에서 발전되었습니다. 벨 연구소와 다른 곳에서 Multics에 참여한 개발자들은 단일 수준 저장소, 동적 링킹(실행 중인 프로세스가 다른 세그먼트가 주소 공간에 추가되도록 요청할 수 있는 기능) 및 계층적 파일 시스템을 갖춘 다중 사용자 운영 체제를 구축하는 것에 관심을 가지고 있었습니다.

1969년에 벨 연구소는 Multics 프로젝트에 대한 자금 지원을 중단했지만, 켄 톰슨과 데니스 리치 등의 연구원 그룹은 프로젝트의 핵심 원칙에 대해 계속 연구를 진행했습니다. 1972-3년에 그들은 C로 시스템을 다시 작성하기로 결정했는데, 이로써 Unix는 독특하게 이식 가능해졌습니다. 다른 동시대 운영 체제와 달리 Unix는 하드웨어로부터 이동하고 그 이상도 가능했습니다.

벨 연구소(나중에 AT&T로)에서는 Unix System Laboratories와 Sun Microsystems와의 협력을 통해 Unix의 버전을 개발하여 상업용 Unix 판매업체들에게 널리 채택되었습니다. 한편, 학계에서는 연구가 계속되었는데, 특히 캘리포니아 대학 버클리 캠퍼스의 컴퓨터 시스템 연구 그룹이 주목받았습니다. 이 그룹은 Berkeley Software Distribution(BSD)을 개발하였는데, 이는 여러 운영 체제들에 영감을 주었으며, 현재까지도 많이 사용되고 있습니다. NeXT가 개척한 운영 체제인 NeXTStep과 macOS 등의 기반이 된 운영 체제, 그리고 리눅스를 개발하면서 비교 기준이 된 교육용 운영 체제인 MINIX가 이에 해당합니다.

Unix의 주요 기능

Unix는 명확성, 이식성 및 동시성 원칙을 중심으로 개발되었습니다.

  • 명료성: Unix의 모듈식 설계는 기능이 제한적이고 정의된 방식으로 실행되도록 합니다. 그 파일 시스템은 통합되어 계층적이며, 데이터 조작을 단순화합니다. 일부 선배들과 달리 Unix는 목표가 명확하고 명료한 수백 개의 시스템 호출을 구현합니다.
  • 이식성: C로 Unix를 작성함으로써, 벨 연구소의 그룹은 Unix를 대규모로 사용하고 채택할 수 있게 했습니다. C는 메모리에 저수준 액세스, 최소한의 실행 시간 지원 및 언어와 기계 명령 사이의 효율적인 관계를 갖도록 설계되었습니다. C를 기반으로 하는 것은 Unix가 다양한 하드웨어에서 적응 가능하고 쉽게 실행될 수 있음을 의미합니다.
  • 동시성: Unix 커널은 다중 사용자 및 워크플로우를 유지하는 것을 목표로 조정되었습니다. Unix에서 커널 공간은 사용자 공간과 구분되어 있어 여러 응용 프로그램이 동시에 실행될 수 있습니다.

리눅스의 진화

Unix는 개발자들에게 중요한 질문을 던졌지만, 초기 버전에서는 소유적인 채로 남아 있었습니다. 그것의 역사의 다음 장은 개발자들이 그것 내에서 작업하고 대안을 만들기 위해 노력한 이야기입니다. 무료 및 오픈 소스 대안을 만드는 것입니다.

오픈 소스 실험

리처드 스톨먼은 유닉스에 대안을 창조하고자 영감을 받은 개발자들 중요한 인물 중 하나였습니다. MIT 인공지능 연구소에서 일하면서, 그는 GNU 프로젝트(재귀적으로 “GNU’s not Unix!”의 약자)의 작업을 시작했으며, 결국 1984년에는 GNU 구성 요소를 자유 소프트웨어로 배포할 수 있도록 MIT 연구소를 떠났습니다. GNU 커널인 GNU HURD는 1985년에 설립된 현재 리처드 스톨먼이 이끄는 자유 소프트웨어 재단(FSF)의 관심사가 되었습니다.

한편, 다른 개발자가 유닉스에 대한 무료 대안을 만들고 있었습니다: 핀란드 대학생 리누스 토르발스. MINIX의 라이선스에 좌절한 후, 토르발스는 1991년 8월 25일 MINIX 사용자 그룹에 자신만의 운영 체제를 개발 중이라고 발표했으며, 이 운영 체제는 MINIX와 닮았습니다. 초기에는 GNU C 컴파일러를 사용하여 MINIX에서 개발되었지만, Linux 커널은 곧 토르발스와 함께 1994년에 버전 1.0을 출시한 핵심 개발자들의 고유한 프로젝트가 되었습니다.

Torvalds는 그의 커널에 GNU 코드, GNU C 컴파일러를 포함하여 사용해 왔으며, 여전히 많은 Linux 배포판이 GNU 구성 요소를 사용하고 있습니다. Stallman은 “Linux”라는 용어를 “GNU/Linux”로 확장하려고 노력해 왔으며, 이는 GNU 프로젝트가 Linux의 개발에 대한 역할과 GNU 프로젝트와 Linux 커널을 육성한 기본적인 이상을 모두 포함한다고 주장합니다. 오늘날 “Linux”는 종종 Linux 커널과 GNU 요소의 함께 존재를 나타내는 용어로 사용됩니다. 동시에, 많은 휴대기기와 스마트폰의 임베디드 시스템은 Linux 커널을 사용하며 GNU 구성 요소가 거의 없는 경우가 많습니다.

Linux의 주요 기능

Linux 커널은 Unix로부터 많은 목표와 특성을 물려받았지만, 다음과 같은 점에서 이전 시스템과 다릅니다:

  • 핵심 구성 요소는 커널로서, 다른 운영 체제 구성 요소와 독립적으로 개발됩니다. 이는 Linux가 전체 운영 체제를 구성하기 위해 다양한 소스(예: GNU)에서 요소를 차용한다는 것을 의미합니다.
  • Linux는 무료이며 오픈 소스입니다. 개발자 커뮤니티에 의해 유지되는 커널은 GNU General Public License(GNU 프로젝트에 대한 FSF의 작업에서 파생된)에 따라 라이선스가 부여되어 있으며, 다운로드 및 수정이 가능합니다. GPL은 파생 작업이 원래 소프트웨어의 라이선스 조건을 유지해야 함을 규정합니다.
  • 그것은 유닉스와 유사한 단일형 커널을 가지고 있지만, 필요에 따라 커널 코드를 동적으로 로드하고 언로드할 수 있습니다.
  • 전통적인 유닉스 구현과는 달리 대칭형 다중처리기(SMP) 지원을 가지고 있습니다. 이는 단일 운영 체제가 여러 프로세서에 액세스할 수 있으며, 주 메모리 및 모든 I/O 장치를 공유할 수 있음을 의미합니다.
  • 커널은 유닉스와 다르게 선점형입니다. 이는 스케줄러가 실행 중인 드라이버나 다른 커널 부분에서 강제로 컨텍스트 스위치를 할 수 있다는 것을 의미합니다.
  • 커널은 스레드와 일반 프로세스를 구분하지 않습니다.
  • 이는 명령 줄 인터페이스(CLI)를 포함하며, 그래픽 사용자 인터페이스(GUI)도 포함될 수 있습니다.

개발자들은 오늘날 많은 인기있는 리눅스 배포판을 유지하고 있습니다. 가장 오래된 것 중 하나는 데비안입니다. 이는 50,000개의 소프트웨어 패키지를 가진 무료 오픈 소스 배포판입니다. 데비안은 다른 인기있는 배포판 우분투를 영감을 받아 개발되었습니다. 우분투는 데비안의 deb 패키지 형식과 패키지 관리 도구를 사용하며, 우분투의 개발자들은 변경 사항을 상류로 돌려 보냅니다.

A similar relationship exists between Red Hat, Fedora, and CentOS. Red Hat created a Linux distribution in 1993, and ten years later split its efforts into Red Hat Enterprise Linux and Fedora, a community-based operating system that utilizes the Linux kernel and elements from the GNU Project. Red Hat also has a relationship with the CentOS Project, another popular Linux distribution for web servers. This relationship does not include paid maintenance, however. Like Debian, CentOS is maintained by a community of developers.

결론

이 기사에서는 Linux의 Unix 뿌리와 그 정의 기능에 대해 다뤘습니다. Linux와 Unix 변형(프리비)의 역사에 대해 더 알고 싶다면, FreeBSD에 관한 저희 FreeBSD 시리즈를 참고하는 것도 좋은 방법일 것입니다. 또 다른 옵션으로는 Linux 시작하기 시리즈인 시리즈를 고려해 보는 것입니다. 또한 Linux 파일시스템 레이아웃 소개인 이것, Linux VPS에서 파일 검색을 위한 findlocate 사용에 관한 토론, 또는 명령 줄에서 정규 표현식 소개인 이것도 확인할 수 있습니다.

Source:
https://www.digitalocean.com/community/tutorials/brief-history-of-linux