차기 커널 VM 논쟁 종결?

geekforum의 이미지

http://www.eweek.com 의 기사를 http://www.linux.co.kr 에서 번역했군요. 오리지널 기사는 아래 관련 링크를 참조하시기 바랍니다.

개발자 커뮤니티를 양분시켰던 리눅스 커널에 대한 논쟁이 마침내 종지부를 찍은 것으로 보인다 - 적어도 지금은.

지난 주 리눅스 창시자인 Linus Torvalds와 리눅스 개발자 Alan Cox는 eWEEK와의 회견에서 그들은 새로운 Virtual Memory manager를 수용하고 다음버전에서 도입할 것이라고 밝혔다. Cox는 지금까지 그가 유지해오던 기존 2.4커널 버전의 VM을 사용해 왔다.

이러한 통합은 리눅스 커뮤니티에 있어서 좋은 소식이고, 리눅스가 엔터프라이즈, 미션크리티컬한 OS로 발전하는 데에도 도움이 되는 일이다.

....[중략]....

이번 논쟁은 Torvalds가 지난달 리눅스커널 2.4.10버전 이후부터 새로운 VM을 도입하기로 결정한데서 시작되었다. 그 코드는 SuSE에서 근무하고 있는 Andrea Arcangeli에 의해 만들어졌다.

Cox는 새로운 VM을 그가 관리하는 다른 2.4커널 트리인 ac tree에 도입하는것을 거부했다. 대신에 그는 Conectiva S.A.에서 근무하는 Rik van Riel에 의해 만들어진 오리지날 VM을 선택하였다. 그 코드는 2.4 커널 최종버전에 도입되었다.

하지만 Torvalds와 Cox는 VM문제는 합의를 보았다고 e-mail로 eWeek측에 밝혔다. Torvalds가 밝히길 자신은 향후 2.5개발 트리에서 새로운 VM을 도입하기로 결정했고, Cox가 양보하기로 했다. 그리고 Cox는 2.4커널에 새로운 VM을 도입할 예정이다.

새로운 VM의 작성자인 Arcangeli는 e-mail로 밝히길 이전 VM은 이제 쓰기 어렵다고 밝혔다. 특히 작동시간도 매우 느리고, swap storms를 일으키는등 많은 문제가 있다고 밝혔다.

Cox와 Torvalds는 어떤 분란도 없다고 강조했다. "우리 사이에는 서로간에 의견대립을 비롯한 어떠한 균열도 없다."라고 Cox는 밝혔다. "Linus와 나는 2.4와 2.5개발 트리의 방향에 대해서 합의를 보았다. 사실 우리는 VM과 같은 일보다는 2.5에서의 dynamic device의 명칭에 대해서 불일치를....
----
관리자 커멘트: http://advogato.org/article/370.html 를 보시면 아시겠지만, 그동안 다양한 방면에서 리눅스 커널 개발에 커다란 공헌을 해온 Alan Cox씨가 2.4 커널부터는 다른 사람에게 메인테이너의 자리를 내어주겠다고 하였군요. Cox씨의 이런 결정이 Linus씨와의 의견 불일치로 인한 불협화음이 아니기를 바랍니다.

익명 사용자의 이미지

아래의 가상 메모리를 조금더 보충하자면...
다 아실줄도 모르지만^^;;;
그 가상메모리라는게 하드디스크를 까먹죠^^;;;
그래서 윈도우즈XP 프로페셔널이나 등등의 윈도우즈를
설치하면 아래와 같은 파일들이 생기죠
hiberfil.sys
PAGEFILE.SYS
(참고로 위의 두 파일은 윈도우즈XP 프로페셔널 설치할때 생김 지워도 상관 없지만 또 만들어짐!!!)

그래서 메모리가 작은 컴퓨터에서 프로그램을 실행시키면
느려지져!!!
왜냐고요?
당근 하드디스크가 메모리보다 훨 느리기 때문이죵^^;;;
케~

익명 사용자의 이미지

:) 심심하면 리눅스나 BSD의 swap파티션을 윈도우 swap과 같이 쓸수 있습니다 :-) 하드 디스크가 모자란 저로선 그렇게 쓰고 있죠 =3=3=3

익명 사용자의 이미지

앨런 콕스는 몇살이죠?
한편 리누스 토발즈는 몇살이죠?

익명 사용자의 이미지

VM은 가상메모리입니다.

프로그램이 실행되면 프로세스가 생성되고, 이때 프로세스에게 32비트 머신에서는 4GB가 할당이 됩니다.
물론 4GB라는 메모리는 머신상에 없죠.

VM이란 바로 이것을 말합니다. 바로 가짜의 주소를 만드는 것이지요.
OS의 입장에서는 32비트의 주소를 사용하므로 프로세스가 최대로 4GB까지 커질 수 있고, 실제 머신에서 동작시에는 이 가상 주소가 paging이라는 기법을 사용하여 실제의 물리적인 주소로 변환이 되죠.

자우랑님께서 하신 말씀은 swapping에 가깝습니다. swapping은 VM안에서 구현되는 메모리 매니지먼트 기법중의 하나입니다.

익명 사용자의 이미지

vm은 버추얼 메모리 입니다.

보통 시스템에서 128m가 달려있다고 치면

이래저래 프로세스들이 뜨다 보면 128m가 넘게 됩니다.

그렇기 때문에 가상 메모리라는걸 할당하게 합니다.

즉 프로그램이 먹고 있는 메모리를 다른 보조 기억장치로 넘기는거죠

옛날에는 값비싼 메모리때문에 개발 된게 목적이지만 싸진 요즘은 프로그래머들이 메모리의 물리적 용량을 오버 하기 위한 수단이죠 :)

이 vm이 필요한 이유는 메모리의 용량과는 관꼐없이 프로그램을 사실상 동작 시킬수 있다는 겁니다

:) 즉 메모리가 16메가인 컴에서 30메가 메모리를 먹는 프로그램을 돌릴수 있다는 겁니다 :)

어느 os 커널이든 vm은 필수적이죠 ;)

음 ac패치는 알랙콕스가 안정 커널에 이것저것 추가를 하거나 수정한 버전입니다.

음 가벼운 예로 안정 버전에는 없는 ext3 파일 시스템이 들어가 있거나 하는거죠

이게 왜 논란이 된거냐면

리누즈 토발즈가 2.4.10부터 새로운 vm을 추가를 했고 ac패치에는 새로운 vm을 쓰지 않았습니다.

물론 현재 vm이 문제가 존재해서 리누즈는 2.4.10을 추가 햇지만 ac는 아직 오랫동안 검증되지 않은 vm을 추가 시키기 꺼린 모양이였나 봅니다 ' 0 ';;

그래서 2.4.10과 2.4.10-ac 버전은 서로 다른 디스크 캐쉬 시스템과 쿼터 코드로 인해 불필요한 분할을 낳기 때문에 이런 문제가 야기 된거죠

-_-;; 일례로 Unix가 잔인하게 분할된걸 생각 하세요... 음 극단적인 예 이겟지만요 ; )

글 후반에는 조만간 리누즈 토발즈가 2.4의 안정 커널 개발은 알랜 콕스에게 넘기고 자신은 2.5 개발버전의 작업에 몰두 한다고 하더군요

불필요한 이중작업은 코드의 분할만 낳을뿐이니 쓸데 없는 에너지를 낭비하지 말자는 측면에서 이번 합의가 중요한 것입니다 !_!

그나저나 알랜 콕스씨의 커널 개발에서 차지하는 위치가 엄청 늘어 난거 같네요 -_-;; 리누즈가 옜날 인터뷰에서 자신이 커널을 맡길만한 인재가 있다면 언제든지 커널 개발을 양도 하겟다고 했는데 -_-~

이젠 알랜 콕스씨가 유력한 후보가 된거 같습니다 ; )

ihavnoid의 이미지

근데여... 지금 kernel tree가 공식 코드와 -ac patch로 갈려있는데여... 저는 -ac를 사용해 보지 않아서 잘 모르겠어서 그런데요... 뭐가 어느 정도로 다른지 좀 설명해 주실 분..??

Consider the ravens: for they neither sow nor reap; which neither have storehouse nor barn; and God feedeth them: how much more are ye better than the fowls?
Luke 12:24

익명 사용자의 이미지

허접한 실력으로 맞는지도 모르지만
VM이라는게 메모리 관리자인 것 같네염.
스와핑(이상한거?-_-)만 얘기하는건지,
아님 리눅스 같은 커널에서 사용자 프로세스가 메모리에 접근할때 가상 페이지 테이블인가 거쳐서 가서 메모리 관리자를 총칭하는건지는 잘멀겠네염.

익명 사용자의 이미지

그런데 vm이 뭐죠...
이게 그리 중요한건가...
아시는분 답변좀.....

익명 사용자의 이미지

그런데.. VM이 뭐죠?

Virtual Memory management 라고 써 있던데..

VM에 대해서 아시는분 자세히 설명 부탁 드립니다.

그리고 왜 이게 논란이 되는지도..^^

글면 부탁 드립니다~

iron의 이미지

http://www.byte.com/documents/s=1436/byt20011024s0002/1029_moshe.html

얼마전 byte 지의 기사인데.. 이해에 도움이 될듯..
.