안녕하세요?
vmalloc()은 커널 프로그래밍할 때 쓰는 것이고 (즉 일반적인 응용 프로그램에서는 사용할 수 없고) 그냥 malloc()은 응용 프로그램 짤 때 쓰는 것이죠.
그럼, 응용 프로그램에서는 vmalloc()을 사용할 수 없는건가요? 커널프로그래밍할 때 쓰인다라는게 이해가 안되요...
vmalloc()의 정의를 보면 가상으로 인접한 메모리를 할당한다고 하는데; 이것또한 무슨 말..일까요?? ^^
vmalloc()은 device driver 같은 커널 모듈 개발시에 사용할 수 있습니다. library에 vmalloc()이라는 함수가 없고, 응용프로그램에서 사용할 수도 없습니다.
kernel에서 할당받는 메모리는 물리적으로 연속적으로 할당됩니다. 하지만 할당받을 수 있는 사이즈에는 한계가 있지요. 따라서, 연속적이지는 않지만 큰 사이즈 메모리를 할당받기 위해서 vmalloc()을 사용합니다.
감사합니다. 이해가 됬네요!!
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
아주 간단히 말씀드리면..;;
vmalloc()은 커널 프로그래밍할 때 쓰는 것이고
(즉 일반적인 응용 프로그램에서는 사용할 수 없고)
그냥 malloc()은 응용 프로그램 짤 때 쓰는 것이죠.
그럼, 응용
그럼, 응용 프로그램에서는 vmalloc()을 사용할 수 없는건가요?
커널프로그래밍할 때 쓰인다라는게 이해가 안되요...
vmalloc()의 정의를 보면 가상으로 인접한 메모리를 할당한다고 하는데;
이것또한 무슨 말..일까요?? ^^
추가적으로 설명드리면,
vmalloc()은 device driver 같은 커널 모듈 개발시에 사용할 수 있습니다.
library에 vmalloc()이라는 함수가 없고, 응용프로그램에서 사용할 수도 없습니다.
kernel에서 할당받는 메모리는 물리적으로 연속적으로 할당됩니다.
하지만 할당받을 수 있는 사이즈에는 한계가 있지요.
따라서, 연속적이지는 않지만 큰 사이즈 메모리를 할당받기 위해서 vmalloc()을 사용합니다.
감사합니다.
감사합니다. 이해가 됬네요!!
댓글 달기