따라서 성능 및 성능면에서 어셈블리에 간단한 서버를 작성합니다. 내가 아는 유일한 방법은 시스템 호출이다. (int 0x80을 통해) 분명히 어셈블 할 때 또는로드 할 때 할당 된 것보다 많은 메모리를 필요로 할 것이므로 읽어 보았고 주로 mmap()을 이해할 수 없기 때문에 sbrk()를 사용하기로 결정했습니다.syscall()을 어셈블리의 시스템 콜으로 사용
아무튼 Linux는 sbrk()에 대한 인터럽트를 제공하지 않으며 brk() 만 인터럽트를 제공합니다.
그래서 ... brk()을 사용하여 현재 프로그램 휴식을 찾으려면 어떻게해야합니까? getrlimit() 사용에 대해 생각했지만 getrlimit()에 전달할 리소스 (프로세스 ID)를 얻는 방법을 모르겠습니다. 아니면 sbrk()를 구현하는 다른 방법을 찾아야합니까?
스택 오버플로에 오신 것을 환영합니다! "내가 아는 유일한 방법은 시스템 호출입니다.". 'sbrk'와 같은 라이브러리 호출도 있습니다. 아니면 "libc없이 어셈블리에서"의미합니까? –
라이브러리 호출 방법을 잘 모르겠습니다. (그리고 아직도 방법을 모른다) 라이브러리 호출이 시스템 호출보다 빠르다고 생각하십니까? –
'mmap'은 간단합니다. 작은 할당에도 좋지 않습니다. – doug65536