The Ottawa Kernel Summit

권순선의 이미지

우리나라에선 지금 월드컵이 한창이지만 캐나다의 오타와에서는 지금 리눅스 심포지움이 한창입니다. 심포지움 직전에 커널 해커들이 모여 2.5 버전의 개발 이슈들을 논의하는 자리인 Kernel Summit이 열렸다는데 제가 가장 좋아하는 사이트중 하나인 LWN(http://lwn.net)의 Jonathan Corbet씨가 대단히 상세한 리포트를 LWN에 올렸군요.

첫째날: http://lwn.net/Articles/3327/
둘째날: http://lwn.net/Articles/3467/
MP3, ogg 포맷: http://linuxkernel.foundries.sourceforge.net/article.pl?sid=02/06/26/0116225

그리고 시간이 되시는 분들은 26일부터 열리게 될 리눅스 심포지움의 발표 자료들을 한번 읽어 보시는 것도 좋을것 같네요. :-)

http://old.lwn.net/2002/features/ols2002_proceedings.pdf.gz

익명 사용자의 이미지

커널에 NGPT가 들어간다고 해도 바이너리 파일의 경우는 다시 컴파일을 해 줘야 하는것 아닌가요?

만약 그렇다면 안정버전 커널에 NGPT가 포함되어도 제대로 사용하려면 배포판 업체에서 thread쓰는 프로그램들을 모두 다시 컴파일해서 패키징해줘야 하겠네요. 호환성의 문제는 없는지요? 예를 들어 기존 thread 환경에서 컴파일된 바이너리가 NGPT 커널에서 문제없이 작동하는가요?

익명 사용자의 이미지

그 부분이 문제가 되겠지요. NGPT를 사용하려면 pthread를 사용하는 애플리케이션을 다시 컴파일해주어야 합니다. 예를 들어 MySQL이라면 다시 컴파일하는 과정이 필요합니다.

그러나 일반 유저가 아닌, SA나 개발자분들은 자신이 사용하거나 개발하는 제품에 대해서 NGPT를 지금 적용하는 것도 문제될 것은 없다고 봅니다.

2.0 버젼에서는 기존 LinuxThread 라이브러리와 호환성도 높였다고 하니까요.

더 자세한건 직접 자신이 사용하는 애플리케이션과 개발 제품을 NGPT하에서 테스트해보시는 것이 가장 좋겠죠.

분명한건 이미 커널에도 포함되는 분위기이므로 조만간 NGPT가 대세가 될거라는겁니다. 당장 제품에 사용하지 않더라도 충분히 검토해볼 가치는 있습니다.

김성진의 이미지

괜한 글 올렸다가 감정 상하겠군요.
NGPT가 Unstable한 이유는 직접 설치해 보시면 압니다.
최신 커널 2.5.x를 설치하고 NGPT최신버젼을 설치하고
테스트 프로그램을 돌려보시면 core가 수두룩 발생합니다.

물론 환경에 따른 차이는 있겠지만, 최소한 저는
대학원 시절부터 약 5년간 리눅스를 데스크 탑으로
사용해 왔던 사람입니다.

NGPT가 unstable하다고 한게 뭐가 문제인지 모르겠군요. 님께서 한번 테스트해 보시는 게 더 좋을 것 같군요.
특히나 저는 실무에 적용할 수 있을 것인지를 가장 최선으로 여기면서 테스트를 합니다. 한치의 오차라도 발생하면 절대로 사용할 수 없는 위치에 있구요.

제가 NGPT의 stable 버젼을 기다리는 이유이기도 합니다.

괜한 딴지에 조금 불쾌하군요.

그럼 이만.

고도의 추상화, 극도의 구체화, 에디슨을 그리워하다.

익명 사용자의 이미지

익명 사용자의 이미지

우리의 토발쯔 선생도 NGPT 2.0 stable 버젼 릴리스에 대해서 한마디 하셨군요.

요지는 pthread는 끔찍하다. pthread와 리눅스와는 매우 다른 모델이기 때문에 둘 사이에 어떤 상관관계가 없었다. 이제 NGPT 그 역할을 해낼것이다. 뭐 이런 요지군요. 더 정보를 원하면 커널 메일링 리스트라도 뒤져보면 좋은 정보가 많을듯합니다.

Linus Torvalds: Look at Next Generation POSIX Threads (NGPT) for the future of threads, he advised. "pthreads are horrible, and Linux has a very different model, and there was no glue between the two." NGPT could be that glue.

익명 사용자의 이미지

2.5.x 안정 버젼아닙니다. 2.4.19-rc1이나 pre버젼을 설치하시고 테스트해보세요. 안정적입니다.

5년 동안 쓰셨다는 분이 개발 커널 가지고 안정성을 문제 삼는게 이상하군요.
개발 커널 버젼이라는게 원래 안정적이지 못합니다.

기분 나쁘게 하려는게 아니라 사실이 그렇습니다. NGPT홈페이지 가보시면 커널 2.4.19부터라고 되어 있는데 왜 2.5.x 깔고 쓰시는지 이해가 가지 않네요.

이 글 올리는 사이에 NGPT 2.0 stable 버젼 나와버렸습니다. 커널 2.4.19만 이제 final 버젼 나오면 됩니다.

기분 나쁘셨다면 사죄드립니다. 제가 어투가 좀 딱딱해서리 -_-; 뭐 서로 정보를 통해서 발전되면 좋은거 아니겠습니까?

익명 사용자의 이미지

정확하게 말하면....
2.5.X 커널이 불안정한 것이지 NGPT가 불한정한 것이 아니라... 는 것이신가요..??
(말이 좀 이상한가..?? -_-)

익명 사용자의 이미지

찾아보니 커널 2.4.18 용 패치도 있네요... 2.4.19 기다릴 필요도 없어졌습니다.

익명 사용자의 이미지

음냐... 번역 감사합니다. 읽어봤는데...

무슨 소린지 하나도 모르겠다는... 아직도 너무나 부족한거 같습니다. T.T

그럼 고운 하루되시길...

ps. 언젠가는 많은 부분을 이해할 수 있는 날이 오겠죠...

쿨링팬의 이미지

오타와 커널 개발자 회의 첫 째날에 대한 문서의 번역을 하였습니다.

http://home.pusan.ac.kr/~isyoon/html/ottawa1.html

내용이 긴 영문으로 되어 좋은 내용인데도
놓치시는 분들이 혹시나 있으실까봐 한 번 해 보았는데
재주가 미천해 많이 부족하네요.
많은 질책 부탁드립니다.
--
love for my life

쿨링팬의 이미지

http://parallel.sarang.net/publications/ottawa1.pdf 로 링크를 수정합니다.
--
love for my life

SHeeP_의 이미지

될수 있으면 이틀째 것도 부탁드립니다....

쿨링팬의 이미지

둘째날 것도 만들었습니다.

http://parallel.sarang.net/publications/ottawa2.pdf
--
love for my life

김성진의 이미지

제가 첫번째 글이군요...
리눅스 커널은 인기가 없는가요? ^^

잠깐 살펴보니, 다양한 주제에 대해 이야기가 있군요.
제가 관심이 있었던 Thread에 관한 이야기는 없군요.

최근에 IBM에서 NGPT라는 프로젝트로 거의 마무리가
되어가고 있긴 하지만, 그래도 커널 입장에서
쓰레드를 앞으로 어떻게 지원할 것인지에 대한
이야기는 없네요.

물론, 2.5.x 대에서 새로운 쓰레드에 대한 패치가
정식으로 채택이 되었다고는 하지만,
아직도 NGPT는 매우 불안정한 상태이고(개발측에서는
stable이라고 합니다만), 시간도 아직
많이 필요할 것이라고 생각되는군요.

리누스가 원래 M:N구조의 쓰레드 모델을
싫어했다고 이야기를 듣기는 했습니다만...

그냥 생각나는 대로 적었습니다.

사족을 달자면, 현재 리눅스의 쓰레드시스템은
걸음마 단계이고, 상용으로 쓰기에는 너무나 열악하다는
표현이 적절하겠군요.

고도의 추상화, 극도의 구체화, 에디슨을 그리워하다.

익명 사용자의 이미지

성능상의 문제로 그런 말씀을 하신 것은 아닐 것이고... 솔라리스 보다는 느릴
지 몰라도(비교 못해 봤습니다) 윈도 보다는 훨씬 빠릅니다.(쓰레드 수가
적을 때는 엄청나게 빠릅니다. 많아도 상당히 빠르고요, IBM DeveloperWorks
에 가시면 결과가 있습니다. 제가 하면 더 차이가 크지만 이건 제가 원도를
잘 못 써서 이겠지요). 스케일러빌리티의 문제라면 동의 합니다. 이것도
솔라리스에 대해서 말이지요. 1만개 안쪽이면 스케쥴링 패치등을 이용해서
어떻게 해 볼 수는 있는데(Volano Mark를 통해서 검증했습니다.) 수 만개의
단위에서는 문제가 있더군요... 속도의 문제는 크지 않지만 CPU의 효율의
문제에서 말이지요.(아시죠?) 그리고 제가 쓰기에는 NGPT도 상당히 좋았
습니다, 개발 버전도 서비스에 쓰지만(고객사에 고객 모르게 해 줬습니다 :-)
아직 문제는 없습니다. 안 한 놈(MySQL)은 퍼질 때 이건 가볍게 잘 돌더군요.

어떤 점에서 열악한 것인지 님의 경험을 듣고 싶네요.

김성진의 이미지

예..성능측정은 제가 해 보지 않았지만, 님께서 하신 말씀대로 일 것 같네요.
제가 열악하다고 한 점은 성능 측면이 아니라 Posix Standard 기반위에서의
동작을 말한 겁니다.

뭐, 근거없이 말한것은 아니구요, 제가 MMDBMS제품의 통신과 쓰레드 모듈을
맡아서 개발하고 있는데, 포팅을 고려하지 않을 수가 없거든요.

그런데, 리눅스는 하나의 프로세스에 다수의 쓰레드가 아니고, 각 쓰레드마다
프로세스가 fork되는 형태(적절한 표현인지 모르겠습니다.)이고,
특히 시그널 처리에서는 표준과 전혀 동떨어지게 동작을 하는 바람에
무척이나 고생했습니다.

특히, kill -9를 받은 임의의 프로세스가 만드는 복잡함이란....
예를 들면 서버가 core를 만들고 죽는 경우에도 다른 쓰레드(프로세스)
들은 아무일 없듯이 동작하는 경우도 있고....

뭐, 그렇습니다.

리눅스의 초기 쓰레드 모듈 저자였던 France의 v...이름이 기억이
안납니다만, 그분이 문서에 지적해 놓은 limitation들이 있습니다.

제 바램은 표준화된 스펙을 잘 준수하는 패키지가 나왔으면 하는 겁니다.

사족을 붙이면, 통신 라이브러리 자체도 다른 OS와 비교해서
많은 버그들이 있고, 현재 해결하지 못한 것들도 많습니다.

원인이 쓰레드 인지 다른건지 분석조차 불가능하다는...

이만 줄입니다.

김성진 드림

고도의 추상화, 극도의 구체화, 에디슨을 그리워하다.

익명 사용자의 이미지

그 posix pthread 표준을 좀 더 잘 준수해서 만든게 NGPT입니다.
이미 커널 2.4.19에는 pthread관련해서 많이 수정된거 같더군요.

김성진의 이미지

예..이미 알고 있습니다.
제 말의 요지는 NGPT가 개발이 되었어도, 아직 unstable하고,
리눅스 공동체에서도 주요한 위치를 잡기에는 시간이
필요하다...(몇개월에서 최소한 1-2년)는
말입니다.

NGPT가 제대로 자리 잡는 걸 가장 기다리는 사람이 아마 저 일겁니다. ^^

좋은 하루 되세요.

고도의 추상화, 극도의 구체화, 에디슨을 그리워하다.

익명 사용자의 이미지

저도 기다리고 있습니다. ^_^

사실 NGPT자체가 불안정하다기 보다는 아직 NGPT를 사용할 환경이 성숙되지
못했다는게 문제겠죠. 기본 배포판에 NGPT가 들어올 날도 멀지 않았다고 봅니다.
리눅스 개발 속도를 고려했을 때 1년 안에 해결될 것 같네요.
NGPT도 이미 2.0 버젼이 곧 출시 예정이니까요. 아시겠지만 2.0이라는 버젼은
아무렇게나 붙이는게 아니죠.

IBM에서 NGPT나 JFS를 기증한것만해도 공로에 감사하고 싶을 따름입니다.

Async I/O도 기다리는 기능중에 하나입니다.
하는일이 주로 DB업무이기 때문에 리눅스에서 대형 DBMS엔진을 씽씽 돌리고 싶네요.

익명 사용자의 이미지

SGI에서 하고 있지 않나요? 본 것 같은데...

김성진의 이미지

GNU 라이브러리에 포함이 된 형태로 major linux vendor에 의해
정식판이 배포되기 시작하면 가능성이 보이는 것이겠지요.
물론, 커널 버젼은 NGPT patch 혹은 2.5.x 이상의
형태라야겠구요. 그날이 빨리 오길...

고도의 추상화, 극도의 구체화, 에디슨을 그리워하다.

익명 사용자의 이미지

Kernel 2.4.19-rc1,
ngpt 1.9.90 rc1

둘 다 stable release가 멀지 않았습니다. 즉, NGPT는 지금 실전에 투입하여도 됩니다. 버젼 2.0붙였다는건 웬만한 과정은 거칠만큼 거쳤다는겁니다.
왜 unstable하다고 하는지 모르겠군요.
커널 2.5.x 즉 홀수 버젼은 개발버젼입니다. 나오더라도 2.6.x가 나오겠죠.

리눅스 쓰레드에 대해서 불평하는 시간에 NGPT를 조금이라도 테스트해보는것이
생산적이라 생각합니다.

익명 사용자의 이미지

버전 번호와 실제 사용자가 느끼는 stability는 별다른 관련이 없습니다. 원래 글을 쓰신 분은 본인의 경험에 따라 느낀점을 사실적으로 근거있게 이야기한 것인데 왜 "unstable"이라는 말에 발끈하시는지 모르겠군요.

본인 생각에는 충분히 stable하다고 보시는것 같은데 버전번호 외에 구체적인 근거가 있나요? 남이 한 테스트 말고 본인 스스로 수행한 테스트 말입니다. 테스트는 본인보다는 원래 글쓰신 분이 훨씬 더 많이 한것 같은데....

다른사람 이야기에 딴지걸기 전에 본인의 태도부터 한번 잘 되돌아 보시죠.

익명 사용자의 이미지

글쓴분이 2.5.x 커널을 썼기 때문에 불안정하다고 말하고 싶었습니다.
계속 2.4.19를 언급함에도 2.5.x와 NGPT를 썼더니 불안정하다는 말씀을 하시길래 좀 글이 그렇게 되어버렸네요. 미안해요. :-)

하지만 2.4.19에다가 테스트해보세요. 분명히 안정적입니다.

2.5.x 커널 자체가 개발버젼인데 여기서 안정성을 기대한다는것 자체가 난센스죠.

익명 사용자의 이미지

같은 말도 어떻게 하느냐에 따라 어감이 틀리죠? 서로 감정상하지 않게 좋은 정보교환의 장이 되었으면 좋겠네요. :-)

수고하세요~~

김성진의 이미지

대단히 이상하신 분이군요.
NGPT RELEASE화일을 제대로 읽어 보셨나요?

Known Problems
==============
/// 삭제

4. NGPT has only been tested with 2.5.17 or higher of the experimental kernels. <===================

// 삭제.

이런 글이 있는데 2.4.x로 테스트 해 보실 생각이 드십니까?

고도의 추상화, 극도의 구체화, 에디슨을 그리워하다.

권순선의 이미지

NGPT의 2.0 릴리즈는 스스로 어느정도 안정성을 갖추고 있다고 개발자들이 판단하고 있는것 같습니다. 2.4.x 대의 커널에 대한 패치도 제공하고 있는것 같고, 안정 버전인 2.4.x 대의 커널에 포함되려 하는 것 같은데 자세한 건 아직 잘 모르겠네요.

As an STABLE RELEASE, this release is suitable for use in a production environment, however, it should be noted that although we have done fairly extensive testing and you should find this release relatively free of problems, there may be some problems.

NGPT 2.0 릴리즈를 2.4.x 대의 커널에 적용하여 기존에 수행하셨던 테스트 결과를 다시한번 올려 주실수 있을까요? 결과가 상당히 궁금하네요.
--
WTFM :-)

익명 사용자의 이미지

제가 위에 MySQL을 고객 사이트에 깔아서 테스트 한 사람입니다. (그 고객은
테스트 당했다는 것을 알면 기분 나쁘겠지요?) MySQL같은 경우는 상당한,
보기에 따라서는 엄청난 향상이 있었습니다. 원래 놈은 가끔 로드가
엄청 걸릴 때 이유 없이(로그도 없더군요) 죽을 때가 있었습니다. 그런데
NGPT를 적용한 놈은(적용을 안정적으로 하려면 거의 새로 컴파일을 해야
합니다, 저는 혹시 몰라서 GLibC와 Thread관련된 프로그램 모두를 다시
만들었습니다.) 같은 상황에서도 로드도 적을뿐만 아니라 죽질 않았습니다!
(저한테는 이게 중요했습니다, 그래야 다른데도 쓸 테니까). 프로그래밍을
할때는 저는 시그널이나 이벤트는 따로 처리하는 쓰레드를 만들어서 하지
직접 쓰레드에 시그널을 처리하도록 하지는 않아서 그에 대한 호환성은
잘 모르겠습니다. 일단 최소한의 결과를 보면 MySQL은 잘 되고, 제가 만든
(In House Code입니다.) 프로그램도 잘 돌았다 입니다.

김성진의 이미지

어쨌든 이 글이 진행되던 중에 2.0이 나오다니 반갑군요.
이번에는 2.4.x대를 기준으로 테스트 해 보아야 겠군요.
배포문서 기준으로 괜히 2.5.x를 사용했다가 낭패를...-_-;;

아직까지 크게 기대는 안합니다만. ^^

사족 : 저는 아직도 KDE를 신뢰하지 않아서 사용하지 않습니다(요즘에야 매우 안정화되었지만요)
(대신 qvwm을 사용하죠)
예전에 1.0대의 아픈기억들이 많이 남아서.. 인간의 선입견은 매우 무섭다는걸
느낍니다.

고도의 추상화, 극도의 구체화, 에디슨을 그리워하다.

익명 사용자의 이미지

12 July 1998 - KDE 1.0 Announcement
"An integrated Desktop Environment for the Unix Operating System. We are pleased to announce the availability of release 1.0 of the KDesktop Environment"

오래되었군요... 윈도우98이 막 나올 시점인가요?

twm을 써보세요. 정말 안정적입니다. :-)

김성진의 이미지

맞습니다...연구실에서 컴파일 해서 썼던 기억이 나는군요.
바탕화면에서 Shortcut이 되는걸 보고 기뻐했던 기억이... T_T;;

고도의 추상화, 극도의 구체화, 에디슨을 그리워하다.

익명 사용자의 이미지

2.4.19 버젼에 이미 포함되어 있습니다. 커널 2.4.19-rc1이나 pre버젼 설치하고
ngpt 라이브러리만 glibc에 포함된 pthread라이브러리를 대체해서 넣기만 하면 됩니다. 간단하죠.

김성진의 이미지

pdf 자료를 읽어보니 논문형태로 쓰레드에 관한 이야기가 나와있군요...
-_-;;

어쨌든 리눅스 공동체에서 이런 일들이 있다는 게 너무 자랑스럽군요.

이만.

고도의 추상화, 극도의 구체화, 에디슨을 그리워하다.

권순선의 이미지

제가 링크해 드렸던 심포지움 발표 자료에 있을 텐데요...목차를 다시한번 살펴 보세요. 시간이 되시면 내용 요약이라도 간단히 해 주시면 더 좋겠네요. :-)

http://old.lwn.net/2002/features/ols2002_proceedings.pdf.gz
--
WTFM :-)