Menu Close

5.2. Anaconda 아키텍처

Anaconda 는 Python 모듈 및 스크립트 세트입니다. 또한 여러 외부 패키지 및 라이브러리를 사용합니다. 이 툴셋의 주요 구성 요소에는 다음 패키지가 포함됩니다.

  • pykickstart - Kickstart 파일을 구문 분석하고 검증합니다. 또한 설치를 구동하는 값을 저장하는 데이터 구조를 제공합니다.
  • DNF - 패키지를 설치하고 종속성을 확인하는 패키지 관리자
  • Blivet - 스토리지 관리와 관련된 모든 활동을 처리
  • pyanaconda - 키보드 및 시간대 선택, 네트워크 구성 및 사용자 생성과 같은 Anaconda 용 사용자 인터페이스 및 모듈이 포함되어 있습니다. 또한 시스템 지향 기능을 수행하기 위한 다양한 유틸리티 제공
  • Python-meh - 충돌시 추가 시스템 정보를 수집 및 저장하고 이 정보를 ABRT 프로젝트의 일부인 libreport 라이브러리에 전달합니다.
  • dasbus - anaconda와 외부 구성 요소를 사용하여 D-Bus 라이브러리 간 통신 가능
  • Python-simpleline - Anaconda 텍스트 모드에서 사용자 상호 작용을 관리하는 텍스트 UI 프레임워크 라이브러리
  • GTK - GUI를 생성하고 관리하기 위한 Gnome 툴킷 라이브러리

이전에 언급된 패키지로의 분할 외에도 Anaconda 는 내부적으로 사용자 인터페이스와 별도의 프로세스로 실행되고 D-Bus 라이브러리를 사용하여 통신하는 모듈 세트로 나뉩니다. 이러한 모듈은 다음과 같습니다.

  • 리더 - 내부 모듈 검색, 라이프사이클 및 조정을 관리합니다.
  • 지역화 - 로캘 관리
  • 네트워크 - 네트워크 처리
  • 페이로드 - rpm,ostree,tar 및 기타 설치 형식과 같은 다양한 형식의 설치 데이터를 처리합니다. 페이로드는 설치를 위한 데이터 소스를 관리합니다. 소스는 CD-ROM, HDD, NFS, URL 및 기타 소스와 같은 형식으로 다양할 수 있습니다.
  • 보안 - 보안 관련 측면 관리
  • 서비스 - 서비스 처리
  • 스토리지 - blivet를 사용하여 스토리지 관리
  • 서브스크립션 - subscription-manager 도구 및 Insights를 처리합니다.
  • 시간대 - 시간, 날짜, 영역 및 시간 동기화를 처리합니다.
  • users - 사용자 및 그룹을 생성합니다.

각 모듈은 처리하는 Kickstart의 일부를 선언하고 Kickstart의 구성을 설치 환경 및 설치된 시스템에 적용하는 방법이 있습니다.

Anaconda의 Python 코드 부분(pyanaconda)은 사용자 인터페이스를 소유하는 "main" 프로세스로 시작됩니다. 제공하는 Kickstart 데이터는 pykickstart 모듈을 사용하여 구문 분석하고 Boss 모듈이 시작되고 다른 모든 모듈을 검색하고 시작합니다. 그런 다음 기본 프로세스는 선언된 기능에 따라 Kickstart 데이터를 모듈에 보냅니다. 모듈은 데이터를 처리하고 설치 환경에 구성을 적용하고 UI에서 필요한 모든 선택 항목이 수행되었는지 확인합니다. 그렇지 않은 경우 데이터를 대화형 설치 모드로 제공해야 합니다. 필요한 모든 선택 사항이 완료되면 설치를 시작할 수 있습니다. 모듈은 설치된 시스템에 데이터를 작성합니다.