[칼럼]리눅스 커널, 왜 이렇게 복잡해졌지?

전문가 칼럼입력 :2012/01/30 08:32

권희웅
권희웅

리눅스 커널이 너무 커지고 복잡해지고 있다. 처음 공개되었을 때 1만 라인이던 코드는 1.0.0 버전에서는 17만6천250라인으로, 그리고 2.4 버전에서는 240만 라인으로 늘어났다. 이처럼 늘어나는 코드 속에 리눅스는 견고해지고 더 나아지는 모습을 보여 왔다. 그리고 시장에서는 오픈 소스에 대한 전 세계 개발자들의 자발적인 참여의 힘에 놀라워했다.

하지만 어느 순간부터 리눅스 커뮤니티는 늘어나는 라인 증가를 부담스러워하기 시작했다. 향후 3.3 버전이 나올 때 예상되는 라인 수는 1천500만 라인에 달한다. 이런 추이와 관련해 최근 리누스 토발즈는 독일의 한 신문사와의 인터뷰를 통해 커널이 너무 복잡해 지는 것에 대해 우려를 표했다고 한다. 그는 거대한 커널 앞에 개발자들은 더 이상 자신이 무엇을 해야 할지 방향을 잡기 어려워하고 있다고 말했다고 한다. 개인 컨트리뷰터 입장에서 이제 리눅스 커널은 참신한 아이디어가 있어도 이를 막상 끼워넣기 어려운 그런 대상이 되었음에 진심어린 걱정을 한 것이다.

그렇다면 언제부터 커널의 복잡성 이슈가 제기됐을까? 리눅스가 시장의 주류로 등장하면서 자발적인 개인 개발자들의 참여를 넘어 기업들의 기여가 가시화 되면서부터라 할 수 있다. 실제로 어느 순간부터인가 리눅스 커널의 코드들은 전임 개발자(Paid developer) 즉, 특정 회사에 몸담고 있으면서 업무로 오픈 소스 관련 개발을 하는 이들이 짠 코드들이 더해지기 시작했다.

그리고 개인 참여자와 회사 간의 균형점은 2000년대 후반들어 회사들의 기여 쪽으로 급격히 기울게 되었다. LWN.net의 설립자이자 커널 컨트리뷰터인 조나단 코벳이 2008년 12월부터 2010년 1월까지 올라온 코드를 대상으로 분석한 바에 따르면 75% 가량이 전임 개발자들의 손에서 나온 것으로 타나났다. 이런 수치는 코드 기여도에 대한 회사 별 랭킹에서도 고스란히 나타난다. 레드햇, IBM, 구글, 삼성전자, 소니 등의 회사들이 톱 랭크에 이름을 올린지 꽤 되고 있다는 것은 이미 알만한 사람은 다 아는 사실이다.

오픈 소스는 태생적으로 커뮤니티에 뿌리를 둔다. 이 커뮤니티 멤버로 이윤 추구를 목표로 하는 회사들의 참여와 기여를 어떻게 바라봐야 할까? 이를 고민하다 보니 지인이 예전에 했던 말이 불쑥 떠올랐다. 국내 모 대기업이 소프트웨어 멤버십을 만들었을 때 처음에는 정말 개발을 즐기고 좋아하는 이들이 몰렸다고 한다. 그러던 것이 어느 순간부터 해당 기업에 취직하기 위한 코스로 멤버십 가입을 하려는 이들이 늘었다고 한다. 즉 ‘목적이 있는 참여’로 변질된 것이다.

리눅스 커널 역시 이제는 개개인의 기여와 참여 보다는 조직적인 접근을 하지 않으면 안되게 됐다. 코드 몇 줄 추가로 인해 파생되는 다양한 부작용까지 감안했을 때, 조직적으로 개발하고 테스팅을 할 수 있는 기반이 없다면 커널에 새로운 아이디어를 더한다는 것은 쉽지 않게 되었다. 이런 변화가 갖는 위험이 바로 ‘목적이 있는 참여’가 정당화될 수 있도록 한다. 즉 보다 많은 시간과 인력을 투자한 기업의 입김이 작용한다 해도 이를 놓고 뭐라 할 말도 막을 명분도 마땅치 않다는 것이다.

관련기사

오픈 소스 개발 모델의 변화 속에서 개인 개발자들은 어떤 미래 비전을 찾아야 할까? 개인적으로 직접적인 기여보다는 새로운 비즈니스 모델을 만들어 내는 과정이자 도구로 오픈 소스 모델을 활용하는 것이 어떨까 생각해 봤다.

사실 오픈 소스 프로젝트가 일종의 벤처 인큐베이팅 모델이 되어 기업화 되는 경우를 우리는 많이 보아왔다. 상용 버전의 오픈 소스 데이터베이스, 미들웨어 등 그 예는 무수히 많다. 오픈 소스 프로젝트를 시작해 사용자와 기여자가 늘어나는 등 긍정적 피드백이 오면 이를 가지고 비즈니스화 하는 것! 개발자들에게 오픈 소스의 기회는 아직 무궁무진하지 않을까? 직접적인 기여가 힘들어 지더라도 개발자의 미래 비전을 제시하기에 오픈 소스는 충분히 그 매력을 앞으로도 유지하지 않을까…

*본 칼럼 내용은 본지 편집방향과 다를 수 있습니다.

권희웅 IT컬럼니스트

리눅스 커널을 들여다 보고 개발을 해온지 어언 십수년, 현재 네트워크 장비를 개발하고 있습니다. 효율적이고 생산적인 개발을 고민하고 있으며, 리눅스 및 커널 네트워킹과 시스템의 작동 원리 등에 관심이 많습니다.