UNIX 기반 운영 체제에 다양한 응용 프로그램을 설치할 때 충돌할 수 있는 시스템 전체 구성 설정 집합은 무엇입니까?

UNIX 기반 운영 체제에 다양한 응용 프로그램을 설치할 때 충돌할 수 있는 시스템 전체 구성 설정 집합은 무엇입니까?

이 기사를 읽어보세요컨테이너화 보고서저자는 다음과 같이 언급했습니다.

Unix의 공유 전역 파일 시스템으로 인해 발생하는 한 가지 문제는 구성 격리가 부족하다는 것입니다. 여러 응용 프로그램이 시스템 전체 구성 설정에 대해 충돌하는 요구 사항을 가질 수 있습니다.

개발을 위해 서로 다른 애플리케이션을 설치하려면 동일한 라이브러리의 서로 다른 버전이 필요하거나 모호하게도 서로 다른 시스템 전체 구성 값이 필요한 경우가 많다는 것을 알고 있습니다. UNIX 기반 운영 체제에서 이 컬렉션이 무엇인지 잘 모르겠습니다.

일반적으로 이 문제를 일으키는 구성 값은 무엇입니까?

순진하게 말하면, 최종 사용자가 애플리케이션을 배포하거나 설치하면 이것이 문제가 덜 되지 않을까요? 유사한 애플리케이션의 개발 버전을 쉽게 병렬로 실행할 수 없는데 패키지 관리자를 사용하여 다운로드하면 문제 없이 실행할 수 있는 이유는 무엇입니까?

답변1

예, 환경 변수를 사용하여 일부 항목을 개별적으로 구성할 수 있습니다. 프로그램이 파일 위치를 하드코딩하면 충돌이 발생할 수 있습니다.

해결책은 네임스페이스입니다. 네임스페이스에는 파일 시스템, 프로세스, 사용자, 네트워크 등 다양한 유형이 있습니다.

언급한 파일 시스템의 경우, 네임스페이스는 서로 다른 네임스페이스의 프로세스에 대해 완전히 다른 파일 시스템 보기를 제공할 수 있습니다. 일반적으로 호스트 내의 하위 디렉터리는 새 네임스페이스의 루트가 됩니다.

이는 네임스페이스, cgroup 등을 관리하는 데 도움이 되며 컨테이너화 도구를 사용할 수 있습니다. 그들은 우리를 위해 이러한 커널 서비스를 관리하지만 일을 더 쉽게 만듭니다.

컨테이너에서 실행되는 모든 프로세스는 (보통) 소수의 프로세스만 실행되는 시스템으로 간주됩니다. 파일 시스템의 하위 집합이 표시됩니다. 자체 네트워크 구성이 표시됩니다. 시스템 리소스(CPU, 메모리 등)의 하위 집합이 표시됩니다.

관련 정보