Linux는 왜 Windows처럼 메모리를 보호하지 않습니까?

Linux는 왜 Windows처럼 메모리를 보호하지 않습니까?

다음과 같이 많은 메모리를 사용하는 코드를 실행할 때:

a = "1"
while True:a+=a

Windows 10에서는 memory error컴퓨터를 안전하게 유지하지만 Linux에서 이 코드를 실행하면 작동이 중지되고 메모리가 부족해집니다. 왜 나한테는 안 와 memory error?

답변1

Linux 커널 OOM 처리 기능은 매우 열악하며 Linux 커널 개발자는 이 문제를 사용자 공간에서 해결해야 함을 분명히 했습니다.https://lkml.org/lkml/2019/8/4/15

사용자 공간은 다음을 자유롭게 사용할 수 있습니다.

이제 Fedora와 같은 배포판에는 earlyoom기본적으로 포함됩니다.

2022년 10월 업데이트됨:

새로운 충분히 배포판을 사용하는 경우 systemd-oomd지금 활성화해야 합니다. 설치하지 않은 경우 earlyoom수동으로 설치할 수 있습니다(대부분의 배포판 저장소 또는 컴파일에서 사용 가능해야 함).

관련 정보