그동안 커널 개발자들 사이에서 잊을만 하면 논란거리가 되어 왔던 BitKeeper의 free(as in beer) 버전이 더이상 나오지 않게 됨에 따라서 Linus가 BitKeeper를 대체할 다른 SCM 툴을 찾고 있다고 합니다.
당장 떠오르는 것은 Subversion이나 CVS 등일텐데 Subversion은 이미 이 부분에 대해서 BitKeeper가 지원하던 만큼의 기능(특히 분산 Repository)을 제공하지 않고 있고 애초의 설계 철학도 BitKeeper와는 다른 만큼 Linux를 위해서 구조를 바꾸거나 할 계획은 없다는 것을 천명하였고 다른 SCM 개발팀에서는 아직 이에 대해서 특별한 반응은 없었던 것으로 압니다.
BitKeeper가 더이상 Linux 개발에 사용되지 못하는 이유는, 내부적으로 16비트의 자료형을 가지고 데이터를 처리하던 것이 있었는데 이 자료형이 담을 수 있는 범위 이상의 데이터가 폭주함에 따라서 이부분을 다시 설계하게 되었는데 BitKeeper의 개발자인 Larry McVoy가 더이상 이부분을 지원하지 않겠다고 선언함에 따라서 자연스럽게 BitKeeper의 대안을 찾게 된 것입니다. BitKeeper가 커널 개발자들에게 비판을 받는 단 한가지 이유는 그것이 free(as in freedom)하지 않다는 점입니다. 즉, BitKeeper는 오픈소스가 아닙니다. 그래서 Linux 개발에 오픈소스가 아닌 툴을 사용하는 것이 과연 옳은 것이냐 하는 것에 대해서 많은 논란이 있었고 Linus는 실용적인 관점에서 BitKeeper의 기능과 성능에 만족하고 있다는 의견을 견지해 왔는데 이제 더이상 BitKeeper를 사용하지 못하게 됨에 따라서 차기 SCM 툴이 무엇이 될지 많은 관심을 끌고 있습니다.
오픈소스가 아니라는 점만 제외하면 개발자인 Larry 입장에서는 자기네 제품의 홍보를 Linux라는 아주 잘 알려진 레퍼런스를 통해 할 수 있었고 Linux 개발자들은 Larry의 지원을 통해서 좀더 효율적으로 개발 작업을 진행할 수 있었기 때문에 실용적인 관점에서는 서로 Win-Win할 수 있었던 좋은 deal이라고 생각합니다. 과연 Linus는 어떤 SCM 툴을 선택하게 될까요?
BK가 더이상 사용되지 못한 이유가 기술적인 데 있었던 것이 아니라 OSDL에 소속되어 있는 또다른 유명한 해커인 Andrew Tridgell이 BK를 리버스 엔지니어링한 것 때문에 Larry가 이를 보다못해 더이상 BK를 사용하지 못하게 한 것이었네요. 제가 잘못 알고 있었습니다.
Quote:
Back on February 23 I learned from Linus that Tridge was reverse-engineering BK so that he could pull stuff out of BK trees without agreeing to the BK license. As you might expect, we were less than thrilled and began having talks with Linus, Tridge, and Stuart Cohen, the CEO of OSDL. These talks didn't go anywhere. Tridge believes strongly enough in free software that he thinks anyone using non-free software is living in sin.
Linus worked very hard to get Tridge to stop. He and I spent a significant amount of time on this issue and Linus understands my position very well
이번엔 Bruce Perens가 입을 열었군요. "때때로 Linus가 바보가 될 때가 있는데 이번이 그때다"라면서 Linus의 리버스 엔지니어링에 대한 의견에 강하게 반박하고 있습니다. 문제가 단순히 BitKeeper를 대체할 SCM 선택에 있는 것이 아니라 리버스 엔지니어링쪽으로 옮겨가는 것 같군요.
논란이 된 Andrew Tridgel은 Samba 개발자로, IBM에서 일하다가 최근에 Linus에 이어 두번째로 OSDL Fellow로 선정되어 OSDL에 들어왔는데, 리누스가 Tridgel을 강도 높게 비판한 논리에 따르면 Samba 개발 자체가 부정될 수밖에 없습니다. Bitmover 프로토콜을 리버싱하는 것이 나쁘다면, 마이크로소프트 프로토콜을 리버싱하는 것 역시 나쁘다는 것이죠. 커널 개발자들 역시 리버스 엔지니어링 툴을 사용할 수밖에 없는 경우도 있다며, GPL 라이센스 하에 독점 소프트웨어와 호환되는 소프트웨어를 개발할 때의 문제들에 대해 언급하고 있습니다. 그리고 무엇보다 BitKeeper를 채택할 때, Linus와 Larry McVoy 사이에 다른 수백명의 커널 개발자들은 알지 못한 상태로 비밀스럽게 이루어진 사적 계약의 문제도 언급하고 있습니다.
재미있는 것은 BitKeeper 개발자인 Larry McVoy와 Bruce는 일곱살 때부터 알고 지낸 사이라는데, "우아하게 떠날 수 있었는데... 그가 만일 지각 있는 사람이라면 입을 닥칠 것이다"라며 비난하고 있다는 점입니다. ;)
Linus가 Tridge를 맹비난했다길래 무슨 일인가 싶어 여러 웹문서들을 주욱 따라가 보았는데, 다들 피상적인 이야기들뿐이고 정작 궁금한 사항들은 잘 나와있질 않더군요. 그런데 위에 링크한 Linus가 직접 올린 글이 그나마 Linus의 생각을 잘 표현해주는 것 같습니다.
결론은 만약 Tridge가 Samba의 경우처럼 BitKeeper를 "완전히" 대체할 수 있는 SCM 툴을 만들었다면 환영할 만한 일이나, 이도 저도 아니게 단순히 BitKeeper의 소스 트리로부터 라이센스를 어겨가며 metadata를 얻어갈 수 있게 하는 툴을 만드는 것은 납득할 수 없다라는 생각인 듯 싶습니다.
즉 단순히 리버스 엔지리어링을 했다는 사실 때문에 Tridge를 비난하는 것이 아니라 (충분히 그럴만한 능력이 있음에도 불구하고) "constructive"한 행위를 하지 않았다라는 것에 초점이 맞추어져 있는 것 같네요. 그리고 더이상 BitKeeper를 못쓰게 된 것에 대한 책임 추궁(?)이랄까 하는 뉘앙스도 좀 풍겨지고... :D
그나저나 BitKeeper가 얼마나 대단한 물건이길래 이렇게 Linus가 맹목적(?)으로 지지하면서 열을 올릴까요? Truly distributed 속성이 BitKeeper의 가장 큰 강점이라고 하는데... (networked 속성과 혼동하지 말 것도 잊지 않더군요.) 그런데 이 속성에 대해서 잘 이해를 못하는 사람들을 모조리 싸잡아서 무시하는 듯한 글이 그리 좋게 보이진 않더군요. 흠.
Git은 파일시스템을 기반으로 해서 패치를 효율적으로 관리하기 위한 수단이지 SCM은 아니라고 리누스는 주장하고 있습니다.
리누스 말로는 CVS는 분산적 개발에는 적합하지 않고, Subversion도 기본적으로는 CVS와 유사한 중앙집권 모델을 택하고 있기에 적합하지 않다고 합니다. Subversion 측에서도 "Subversion으로 리누스 괴롭히지 마세요"라면서 분산 모델의 Subversion 익스텐션이 있지만 아직 무리라고 하는 것 같았습니다.
Andrew "Tridge" Tridgell이 자기가 무슨 일을 한 것인지를 밝혔다고 합니다. telnet 접속과 shell redirection 외에는 별로 한 일이 없는데 침소봉대당했다는 취지인 것 같습니다.
커널 개발자들마다 각각의 소스코드 트리를 가지고서는, 트리 간에 서로 패치를 주고 받고 할 수 있게 해주는 프로그램과 서버인 것으로 막연히 이해하고 있습니다.
리누스는 이 개발모델을 채택함으로 일의 효율을 십몇배는 증가시킬 수 있었다고 합니다만, 라이센스 문제로 다른 사람들과 계속(?) 마찰이 있어왔습니다.
BitKeeper의 라이센스에 따라 BitKeeper를 사용중이면 다른 버젼 관리 프로그램을 개발하면 안됩니다. BitKeeper를 사용 중단하더라도 1년간 다른 버젼 관리 프로그램을 개발하면 안된다고 라이센스에서 못박고 있다고 들었는데 실제로 라이센스를 못봐서 잘 모르겠습니다.
Linus, BitKeeper를 대체할 SCM툴을 찾는 중
그동안 커널 개발자들 사이에서 잊을만 하면 논란거리가 되어 왔던 BitKeeper의 free(as in beer) 버전이 더이상 나오지 않게 됨에 따라서 Linus가 BitKeeper를 대체할 다른 SCM 툴을 찾고 있다고 합니다.
당장 떠오르는 것은 Subversion이나 CVS 등일텐데 Subversion은 이미 이 부분에 대해서 BitKeeper가 지원하던 만큼의 기능(특히 분산 Repository)을 제공하지 않고 있고 애초의 설계 철학도 BitKeeper와는 다른 만큼 Linux를 위해서 구조를 바꾸거나 할 계획은 없다는 것을 천명하였고 다른 SCM 개발팀에서는 아직 이에 대해서 특별한 반응은 없었던 것으로 압니다.
BitKeeper가 더이상 Linux 개발에 사용되지 못하는 이유는, 내부적으로 16비트의 자료형을 가지고 데이터를 처리하던 것이 있었는데 이 자료형이 담을 수 있는 범위 이상의 데이터가 폭주함에 따라서 이부분을 다시 설계하게 되었는데 BitKeeper의 개발자인 Larry McVoy가 더이상 이부분을 지원하지 않겠다고 선언함에 따라서 자연스럽게 BitKeeper의 대안을 찾게 된 것입니다. BitKeeper가 커널 개발자들에게 비판을 받는 단 한가지 이유는 그것이 free(as in freedom)하지 않다는 점입니다. 즉, BitKeeper는 오픈소스가 아닙니다. 그래서 Linux 개발에 오픈소스가 아닌 툴을 사용하는 것이 과연 옳은 것이냐 하는 것에 대해서 많은 논란이 있었고 Linus는 실용적인 관점에서 BitKeeper의 기능과 성능에 만족하고 있다는 의견을 견지해 왔는데 이제 더이상 BitKeeper를 사용하지 못하게 됨에 따라서 차기 SCM 툴이 무엇이 될지 많은 관심을 끌고 있습니다.
오픈소스가 아니라는 점만 제외하면 개발자인 Larry 입장에서는 자기네 제품의 홍보를 Linux라는 아주 잘 알려진 레퍼런스를 통해 할 수 있었고 Linux 개발자들은 Larry의 지원을 통해서 좀더 효율적으로 개발 작업을 진행할 수 있었기 때문에 실용적인 관점에서는 서로 Win-Win할 수 있었던 좋은 deal이라고 생각합니다. 과연 Linus는 어떤 SCM 툴을 선택하게 될까요?
subversion은 이미 쓰지 않겠다고 천명한 것 같고, CVS는 낡았
subversion은 이미 쓰지 않겠다고 천명한 것 같고, CVS는 낡았고,
GNU arch가 되지 않을까요? 분산형이라면 GNU arch가 더 낫다는 것을 어디서 본 것 같고, 그런 이유로 유명한 MoinMoin위키는 CVS에서 GNU arch로 옮겼지요.
http://www.venge.net/monotone/리누스는 이쪽에
http://www.venge.net/monotone/
리누스는 이쪽에 기대를 하고 있는 것 같기도 합니다.
http://kerneltrap.org/node/4968
darcs는 이미 Linux Kernel Repository를 미러링하고
darcs는 이미 Linux Kernel Repository를 미러링하고 있습니다.
http://www.darcs.net/linux.html
BitKeeper를 대체할만큼 기능적으로 완성도가 있는지는 잘 모르겠지만, 최근 개인 프로젝트용으로 많이 사용되고 있는 것 같습니다. haskell로 코어를 만들었다는 것이 좀 특이하고, 체크아웃 후에 패치를 메일로 보낼 수 있게 하는 기능도 아주 인상적입니다.
----
http://nohmad.tumblr.com/
http://www.dwheeler.com/essays/scm.html
http://www.dwheeler.com/essays/scm.html 에 상당히 좋은 비교 자료가 있군요. 시간날때 참고해 보면 좋을 듯 합니다....
Linus가 일단 스스로 뭔가를 만들고 있는 것 같습니다. http://
Linus가 일단 스스로 뭔가를 만들고 있는 것 같습니다. http://www.kernel.org/pub/linux/kernel/people/torvalds/ 를 참고하세요....
BK가 더이상 사용되지 못한 이유가 기술적인 데 있었던 것이 아니라 OS
BK가 더이상 사용되지 못한 이유가 기술적인 데 있었던 것이 아니라 OSDL에 소속되어 있는 또다른 유명한 해커인 Andrew Tridgell이 BK를 리버스 엔지니어링한 것 때문에 Larry가 이를 보다못해 더이상 BK를 사용하지 못하게 한 것이었네요. 제가 잘못 알고 있었습니다.
자세한 내용은 http://os.newsforge.com/os/05/04/11/118211.shtml?tid=2&tid=25&tid=3 를 참고하세요. newsforge에서 Larry, Linus, Tridgell 모두를 인터뷰한 기사입니다.
http://www.theregister.co.uk/2005/04/15/
http://www.theregister.co.uk/2005/04/15/perens_on_torvalds/
이번엔 Bruce Perens가 입을 열었군요. "때때로 Linus가 바보가 될 때가 있는데 이번이 그때다"라면서 Linus의 리버스 엔지니어링에 대한 의견에 강하게 반박하고 있습니다. 문제가 단순히 BitKeeper를 대체할 SCM 선택에 있는 것이 아니라 리버스 엔지니어링쪽으로 옮겨가는 것 같군요.
논란이 된 Andrew Tridgel은 Samba 개발자로, IBM에서 일하다가 최근에 Linus에 이어 두번째로 OSDL Fellow로 선정되어 OSDL에 들어왔는데, 리누스가 Tridgel을 강도 높게 비판한 논리에 따르면 Samba 개발 자체가 부정될 수밖에 없습니다. Bitmover 프로토콜을 리버싱하는 것이 나쁘다면, 마이크로소프트 프로토콜을 리버싱하는 것 역시 나쁘다는 것이죠. 커널 개발자들 역시 리버스 엔지니어링 툴을 사용할 수밖에 없는 경우도 있다며, GPL 라이센스 하에 독점 소프트웨어와 호환되는 소프트웨어를 개발할 때의 문제들에 대해 언급하고 있습니다. 그리고 무엇보다 BitKeeper를 채택할 때, Linus와 Larry McVoy 사이에 다른 수백명의 커널 개발자들은 알지 못한 상태로 비밀스럽게 이루어진 사적 계약의 문제도 언급하고 있습니다.
재미있는 것은 BitKeeper 개발자인 Larry McVoy와 Bruce는 일곱살 때부터 알고 지낸 사이라는데, "우아하게 떠날 수 있었는데... 그가 만일 지각 있는 사람이라면 입을 닥칠 것이다"라며 비난하고 있다는 점입니다. ;)
----
http://nohmad.tumblr.com/
[url]http://www.realworldtech.com/forums
http://www.realworldtech.com/forums/index.cfm?action=detail&PostNum=3322&Thread=19&entryID=49354&roomID=11
Linus가 Tridge를 맹비난했다길래 무슨 일인가 싶어 여러 웹문서들을 주욱 따라가 보았는데, 다들 피상적인 이야기들뿐이고 정작 궁금한 사항들은 잘 나와있질 않더군요. 그런데 위에 링크한 Linus가 직접 올린 글이 그나마 Linus의 생각을 잘 표현해주는 것 같습니다.
결론은 만약 Tridge가 Samba의 경우처럼 BitKeeper를 "완전히" 대체할 수 있는 SCM 툴을 만들었다면 환영할 만한 일이나, 이도 저도 아니게 단순히 BitKeeper의 소스 트리로부터 라이센스를 어겨가며 metadata를 얻어갈 수 있게 하는 툴을 만드는 것은 납득할 수 없다라는 생각인 듯 싶습니다.
즉 단순히 리버스 엔지리어링을 했다는 사실 때문에 Tridge를 비난하는 것이 아니라 (충분히 그럴만한 능력이 있음에도 불구하고) "constructive"한 행위를 하지 않았다라는 것에 초점이 맞추어져 있는 것 같네요. 그리고 더이상 BitKeeper를 못쓰게 된 것에 대한 책임 추궁(?)이랄까 하는 뉘앙스도 좀 풍겨지고... :D
그나저나 BitKeeper가 얼마나 대단한 물건이길래 이렇게 Linus가 맹목적(?)으로 지지하면서 열을 올릴까요? Truly distributed 속성이 BitKeeper의 가장 큰 강점이라고 하는데... (networked 속성과 혼동하지 말 것도 잊지 않더군요.) 그런데 이 속성에 대해서 잘 이해를 못하는 사람들을 모조리 싸잡아서 무시하는 듯한 글이 그리 좋게 보이진 않더군요. 흠.
윽.. 영어가 좀 되시는군요..
부럽습니다.
Git은 파일시스템을 기반으로 해서 패치를 효율적으로 관리하기 위한 수단
Git은 파일시스템을 기반으로 해서 패치를 효율적으로 관리하기 위한 수단이지 SCM은 아니라고 리누스는 주장하고 있습니다.
리누스 말로는 CVS는 분산적 개발에는 적합하지 않고, Subversion도 기본적으로는 CVS와 유사한 중앙집권 모델을 택하고 있기에 적합하지 않다고 합니다. Subversion 측에서도 "Subversion으로 리누스 괴롭히지 마세요"라면서 분산 모델의 Subversion 익스텐션이 있지만 아직 무리라고 하는 것 같았습니다.
Andrew "Tridge" Tridgell이 자기가 무슨 일을 한 것인지를 밝혔다고 합니다. telnet 접속과 shell redirection 외에는 별로 한 일이 없는데 침소봉대당했다는 취지인 것 같습니다.
http://www.groklaw.net/article.php?story=20050421023821174
그런데 이 시점에서 BitKeeper 가 무엇인지 참 궁금해집니다.
그런데 이 시점에서 BitKeeper 가 무엇인지 참 궁금해집니다.
커널 개발자들마다 각각의 소스코드 트리를 가지고서는, 트리 간에 서로 패
커널 개발자들마다 각각의 소스코드 트리를 가지고서는, 트리 간에 서로 패치를 주고 받고 할 수 있게 해주는 프로그램과 서버인 것으로 막연히 이해하고 있습니다.
리누스는 이 개발모델을 채택함으로 일의 효율을 십몇배는 증가시킬 수 있었다고 합니다만, 라이센스 문제로 다른 사람들과 계속(?) 마찰이 있어왔습니다.
BitKeeper의 라이센스에 따라 BitKeeper를 사용중이면 다른 버젼 관리 프로그램을 개발하면 안됩니다. BitKeeper를 사용 중단하더라도 1년간 다른 버젼 관리 프로그램을 개발하면 안된다고 라이센스에서 못박고 있다고 들었는데 실제로 라이센스를 못봐서 잘 모르겠습니다.
덧. http://www.theregister.co.uk/2005/04/21/tridgell_bitkeeper_howto/