개발자 관계

오픈소스 옛이야기: Linux는 왜 성공했을까?

2018-10-03
개발자 관계
ko

Linux, 1991년 Linus Torvalds가 개발한 유닉스 유사 운영체제 커널은 이미 오픈소스 세계의 중심이 되었습니다. 사람들은 Linux는 왜 성공했고, GNU HURD와 BSD를 포함한 그렇게 많은 유사 프로젝트는 왜 실패했는지 묻고 있습니다.

자유 소프트웨어와 오픈소스 세계 발전사에서 가장 이해하기 어려운 문제 중 하나는 왜 Linux가 그토록 화려한 성공을 거두었는데, 같은 자유 오픈소스 유닉스 유사 운영체제 커널을 만들려고 시도한 다른 프로젝트는 그렇게 성공하지 못했는지입니다. 이 질문에 대답하기 어렵지만, 저는 몇 가지 이유를 정리하여 아래에서 여러분과 공유합니다.

하지만 먼저 명확히 해야 할 것이 있습니다: 제가 Linux가 큰 성공이라고 말할 때 제가 표현하는 의미입니다. 저는 이것을 다른 유닉스 유사 운영체제 커널에 비해 말하는 것이며, 후자 중 일부는 오픈소스이고 일부는 아니며, 그들이 번성했던 시기는 Linux가 탄생한 시기였습니다. GNU의 HURD, 1991년 5월에 시작된 Free(자유) 커널이 그 중 하나입니다. 그 외에도 현재 대부분의 사람들이 들어보지 못한 유닉스가 있는데, 예를 들어 캘리포니아 대학교 버클리 캠퍼스에서 개발된 BSD의 다양한 유닉스 파생판, 마이크로소프트가 주도한 유닉스 시스템 Xenix, Minix를 포함한 학술 버전 유닉스, 그리고 AT&T 후원 하에 개발된 최초의 유닉스가 있습니다. 더 이른 수십 년 동안 학계와 비즈니스 계산 발전에 매우 중요했지만, 19세기 90년대에는 거의 사람들의 시야에서 사라졌습니다.

관련 읽기

또한, 명확히 해야 할 것은 제가 여기서 말하는 것은 커널이지 완전한 운영체제가 아니라는 것입니다. 상당 부분 Linux 커널의 성공은 GNU 전체 프로젝트 덕분입니다. GNU 프로젝트는 컴파일러, 디버거, BASH 쉘 구현을 포함한 중요한 도구 세트를 만들어냈으며, 이는 유닉스 유사 운영체제를 구축하는 데 필요합니다. 하지만 GNU 개발자들은 HURD 커널의 실행 가능한 버전을 개발하지 못했습니다(비록 그들이 끊임없이 노력하고 있지만). 반면, Linux는 GNU의 각 부분을 긴밀하게 연결하는 커널로 나타났으며, 이것은 GNU의 원래 의도를 넘어섭니다.

따라서 Linux, 1991년에 Linus Torvalds라는 핀란드의 무명 프로그래머가 시작한 커널(HURD와 같은 해)이 시련을 겪고 성장할 수 있었는지 물어볼 가치가 있습니다. 당시 환경에서 강력한 상업적 지원을 가지고 당시 가장 인기 있던 해커가 이끄는 많은 유닉스 유사 커널이 발전하지 못했습니다. 이 문제를 설명하기 위해 저는 이 문제와 관련된 몇 가지 설명을 찾았습니다. 이를 위해 저는 자유 소프트웨어와 오픈소스 세계의 발전사와 다양한 설명의 장단점을 연구했습니다.

Linux는 탈중앙화 개발 방식을 채택했다

이 관점은 Eric S. Raymond의 글 “대성당과 시장“과 관련 자료에서 나왔습니다. 이 자료들은 많은 기여자가 탈중앙화된 조직 구조로 지속적으로 협력할 때 소프트웨어 개발 효율이 최상이라는 상황을 검증합니다. Linux 개발은 이것을 증명하며, 반대로 예를 들어 GNU HURD는 코드 개발 관리에 상대적으로 더 중앙화된 방법을 채택했습니다. 그 결과 Raymond가 말한 대로 10년 동안 완전한 운영체제를 구축하지 못했습니다.

어느 정도 이 설명은 타당하지만, 여전히 몇 가지 명백한 단점이 있습니다. 예를 들어 Torvalds는 Linux 코드 개발 과정에서 논란의 여지 없이 더 권위 있는 역할을 수행했으며, 그는 코드를 수락하거나 거부할 수 있었고, 이것은 Raymond와 다른 사람들이 생각한 것과 다릅니다. 둘째, 이 관점은 실행 가능한 시스템 커널을 개발하지 못한 것 외에도 GNU가 여전히 그렇게 많은 훌륭한 소프트웨어를 성공적으로 생산했다는 것을 설명하지 못합니다. 탈중앙화된 개발 방식만이 오픈소스 소프트웨어 세계의 프로젝트를 잘 지도할 수 있다면, GNU의 모든 프로그래밍 작업은 헛된 것이어야 하지만, 사실은 그렇지 않습니다.

Linux는 실용형이고, GNU는 공상형이다

개인적으로 이 말이 가장 설득력 있다고 생각합니다. Linux가 그토록 빠르게 발전한 것은 그 창시자가 실용주의자였기 때문이며, 그는 처음에 집 컴퓨터에서 잘린 유닉스 운영체제를 실행할 수 있는 커널을 작성하고 싶었을 뿐, 세상을 바꾸는 것을 목표로 하는 자유 소프트웨어의 일부가 되고자 한 것이 아니라, 후자가 바로 GNU 프로젝트의 일관된 목표였습니다.

그러나 이 설명은 여전히 완전히 납득시키지 못하는 부분이 있습니다. 특히 Torvalds 본인이 실용주의 원칙을 믿지만, 과거에도 현재에도 그의 프로젝트에 참여하는 모든 구성원이 그와 같이 이 원칙을 믿는 것은 아닙니다. 그럼에도 불구하고 Linux는 여전히 성공했습니다.

그리고 실용주의가 Linux 지속 발전의 핵심이라면, 다시 물어야 합니다: 왜 GNU는 커널을 개발하지 못한 것 외에도 여전히 그렇게 많은 유용한 도구를 성공적으로 개발했을까요? 소프트웨어에 대한 어떤 확고한 정치적 신념을 가지는 것이 성공을 추구하는 프로젝트의 걸림돌이라면, GNU는 처음부터 끝까지 완전한 실패자여야 했으며, 오늘날에도 IT 세계에 견고한 기반을 제공하는那么多优秀软件包의 개척자가 되지 못했을 것입니다.

마지막으로(가장 중요하지는 않지만), 19세기 80년대 말과 90년대 초에 탄생한 많은 유닉스 변형, 특히 일부 BSD 분기는 모두 실용주의의 산물이었습니다. 그들의 개발자들은 높은 상업 라이선스 제한을 받지 않고 자유롭게 공유할 수 있는 유닉스 변형을 개발하는 데 전녝했지만, 프로그래밍이나 공유 코드에 완전히 이념에 국한되지 않았습니다. Torvalds도 마찬가지이므로, Linux의 성공과 다른 유닉스 프로젝트의 실패가 이념 때문이라고 말하기 어렵습니다.

운영체제 설계

Linux의 성공을 논할 때 Linux와 다른 유닉스 변형 사이의 많은 기술적 차이를 무시할 수 없습니다. Richard Stallman, GNU 프로젝트의 창시자는 저에게 보낸 이메일에서 HURD 개발 진도가 자주 지연되는 이유를 설명했습니다: “GNU Hurd는 확실히 실용적인 성공이 아닙니다. 부분적으로 그 기본 설계가 연구 프로젝트와 같기 때문입니다.(제가 이 설계를 선택한 것은 사용 가능한 커널을 빠르게 구현하는 지름길이라고 생각했기 때문입니다.)”

Torvalds가 Linux의 모든 코드를 혼자 작성했다는 점에서 Linux도 다른 유닉스 변형과 다릅니다. 그가 1991년 8월에 처음 Linux를 발표했을 때 그의 원래 의도 중 하나는 다른 사람의 코드를 사용하지 않고 자신만의 유닉스를 갖는 것이었습니다. 이 특성은 Linux를 같은 시기의 대부분 유닉스 변형과 구별하며, 후자는 일반적으로 AT&T 유닉스나 버클리의 BSD에서 기본 코드를 파생시켰습니다.

저는 컴퓨터 과학자가 아니므로 Linux 코드가 다른 유닉스 코드보다 우수한지 평가할 자격이 없습니다. 이것으로 Linux의 성공을 설명할 수는 없지만, 이 관점은 저에게 설득력 있게 다가옵니다. 왜냐하면 Linux의 성공을 이해하는 데 있어 운영체제 설계가 코드보다 더 중요해 보이기 때문입니다.

Linux 뒤의 커뮤니티가 강력한 지원을 제공했다

Stallman은 Linux 성공의 “주요 원인”이 “Torvalds가 Linux를 자유 소프트웨어로 만들었기 때문에 Hurd보다 커뮤니티의 더 많은 지원이 Linux 발전에 쏟아졌다”고 썼습니다. 하지만 이것은 Linux의 성장 궤적에 완벽한 설명은 아닙니다. 왜냐하면 자유 소프트웨어 개발자들이 왜 Torvalds를 따랐는지 HURD나 다른 유닉스가 아닌지 설명하지 못하지만, 여전히 이 변화가 Linux 성행의 큰 부분이라는 점을 지적합니다.

자유 소프트웨어 커뮤니티가 Linux를 지원하기로 결정한 것에 대해 개발자들이 왜 그렇게 했는지 설명하는 더 포괄적인 이유가 있습니다. 처음에 Linux는 그저 조용한 작은 프로젝트였으며, 어떤 기준으로 보더라도 같은 시기에 더 자유로운 유닉스를 만들려고 시도한 다른 것들, 예를 들어 NET BSD와 386/BSD보다 미미해 보였습니다. 마찬가지로 처음에는 Linux와 자유 소프트웨어 운동의 목표가 일치하는지 명확하지 않았습니다. 창설伊始, Torvalds는 Linux가 상업적으로 사용되지 않도록 하는 라이선스 하에 Linux를 발표했습니다. 나중에 그가 소스 코드의 개방성을 보호하기 위해 GNU의 일반 공개 라이선스로 전환한 것은 후일담입니다.

그래서 이것들이 제가 찾은 Linux가 오픈소스 운영체제로서 성공한 이유에 대한 설명입니다. Linux의 성취가 어떤 면에서는(하지만 예를 들어 데스크톱 버전 Linux는 그 지지자들이 되고 싶어 하는 모습이 된 적이 없습니다) 이미 측정 가능한 성공이라고 확신할 수 있습니다. 결론적으로 Linux는 다른 어떤 유닉스 유사 운영체제와 다른 방식으로 컴퓨터 세계의 초석이 되었습니다. 아마도 BSD에서 파생된 애플의 OS X와 iOS 시스템도 이에 가깝지만, 그들은 다른 면에서 Linux가 인터넷에 영향을 미친 것처럼 그토록 중요한 중심 역할을 하지 못했습니다.

Linux가 왜 지금의 모습이 되었는지, 또는 왜 유닉스 세계의 경쟁자들이 거의 모두 조용해졌는지에 대한 다른 생각이 있으신가요? 있다면, 여러분의 생각을 듣고 싶습니다.(물론 BSD 변형은 여전히 추종자가 있으며, 일부 상업용 유닉스는 Red Hat(RHT)이 그들의 사용자에게 지원을 제공하기 위해 여전히 중요합니다. 하지만 이 유닉스 중 어느 것도 Linux처럼 웹 서버에서 스마트폰까지 거의 모든 분야를 정복하지 못했습니다.)

转载请注明:开发者关系 »


Similar Posts

Content icon
Content