맨위로가기

인라이튼먼트 파운데이션 라이브러리

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

인라이튼먼트 파운데이션 라이브러리(EFL)는 리눅스 기반 시스템에서 사용되는 라이브러리 모음이다. 핵심 요소로는 캔버스 라이브러리인 Evas, 사용자 인터페이스를 애플리케이션으로부터 분리하는 Edje, 이벤트 추상화 라이브러리 Ecore, 스크립트 언어 Embryo, 데이터 저장 라이브러리 EET, 데이터 유형 기본 라이브러리 Eina가 있다. 보조 요소로는 썸네일 생성 라이브러리 Ethumb, 비디오 재생 라이브러리 Emotion, 위젯 세트 Elementary, 비동기 파일 시스템 작업 라이브러리 EIO가 있다. 일부 요소는 더 이상 사용되지 않거나 다른 라이브러리로 대체되었다.

더 읽어볼만한 페이지

  • 데스크톱 환경 - 자바 데스크톱 시스템
  • 데스크톱 환경 - 유니티 (사용자 인터페이스)
    유니티는 캐노니컬에서 개발한 데스크톱 환경 셸로, 우분투에서 기본 사용자 인터페이스로 사용되었으며, 런처, 퀵리스트, 대시 등의 구성 요소로 사용자가 애플리케이션과 시스템 기능에 접근하도록 설계되었으나 개발 중단 후 커뮤니티에 의해 Lomiri로 개발되고 우분투 유니티 배포판으로 사용된다.
  • 자유 그래픽 스포트웨어 - 김프
    김프(GIMP)는 GNU 프로젝트에서 개발된 크로스 플랫폼 기반의 무료 오픈소스 래스터 그래픽 편집기로, 다양한 운영체제를 지원하며 풍부한 기능을 제공하지만 사용자 인터페이스에 대한 비판과 일부 기능의 부족함에 대한 평가도 존재한다.
  • 자유 그래픽 스포트웨어 - 잉크스케이프
    잉크스케이프는 완전한 SVG 표준 구현을 목표로 개발된 자유-오픈 소스 벡터 그래픽 편집기로, 다양한 객체 조작 및 패스 연산 기능을 제공하며 여러 플랫폼을 지원하는 특징을 갖는다.
  • X 윈도 시스템 - 데스크톱 환경
    데스크톱 환경은 아이콘, 창, 메뉴 등으로 컴퓨터 화면을 책상처럼 보이게 하는 시각적 인터페이스로, 창 관리자, 파일 관리자 등으로 구성되어 파일 관리 및 프로그램 실행을 지원하며, 다양한 종류가 존재하여 사용자가 선택할 수 있다.
  • X 윈도 시스템 - 오픈 그룹
    오픈 그룹은 다양한 기술 공급업체, 구매자, 정부 기관을 포함하는 국제 컨소시엄으로, 표준 개발, 인증 프로그램 운영, TOGAF와 같은 IT 아키텍처 프레임워크 제공 및 UNIX 상표 권리 보유를 통해 개방형 IT 표준 개발 및 보급에 기여한다.
인라이튼먼트 파운데이션 라이브러리 - [IT 관련 정보]에 관한 문서
기본 정보
Enlightenment 로고
Enlightenment 로고
종류그래픽 라이브러리
개발자Enlightenment 개발팀
웹사이트Enlightenment 공식 웹사이트
상세 정보
최신 안정화 버전1.26.1
최신 안정화 버전 출시일2022년 1월 3일
프로그래밍 언어C
운영체제유닉스 계열
라이선스LGPL; 일부 이진 분리 공유 라이브러리는 BSD 허가서 및 GPL과 같은 다양한 라이선스로 사용 허가됨

2. 핵심 요소

리눅스 기반 시스템에서의 사용 예시 - 디스플레이 서버, 컴포지터, UI 툴킷, 데스크톱 셸 및 데스크톱 위젯과 같은 리눅스 데스크톱 스택의 소프트웨어 구성 요소


인라이튼먼트 파운데이션 라이브러리(EFL)는 여러 핵심 라이브러리로 구성되어 있으며, 각 라이브러리는 특정 기능을 담당하여 모듈성과 효율성을 높인다. 주요 구성 요소로는 캔버스 라이브러리인 Evas, 사용자 인터페이스 분리를 위한 Edje, 이벤트 처리 및 시스템 통합을 위한 Ecore, 스크립팅 언어인 Embryo, 데이터 직렬화 라이브러리인 EET, 그리고 기본 데이터 타입을 제공하는 Eina 등이 있다. 이러한 요소들은 함께 작동하여 풍부하고 효율적인 그래픽 사용자 인터페이스와 애플리케이션 개발 환경을 제공한다. 각 요소에 대한 자세한 설명은 아래 해당 섹션에서 다룬다.

2. 1. Evas

Evas는 EFL의 캔버스 라이브러리로, 애플리케이션이 그림을 그릴 수 있는 창이나 공간을 만드는 역할을 한다. 특히 X 윈도 시스템 환경에서 애플리케이션이 Evas를 통해 그림을 그릴 수 있게 해준다.

EFL은 가능한 경우 하드웨어 가속을 이용하여 성능을 높이지만, 저사양 하드웨어에서도 작동하도록 설계되었다. 필요한 경우에는 그래픽의 색상이나 품질을 낮추어 호환성을 확보한다.

Evas는 대부분의 캔버스 라이브러리와는 다르게 주로 이미지 기반(벡터 기반이 아님)이며, 완전한 상태 인식(stateful) 방식을 채택하고 있다. 이는 상태 비저장(stateless) 방식의 다른 캔버스들과 달리 프로그래머가 직접 상태를 추적할 필요가 없다는 장점을 가진다.

2. 2. Edje

Edje는 애플리케이션의 사용자 인터페이스(UI)를 핵심 로직과 분리하기 위한 라이브러리이다. 이를 통해 개발자는 애플리케이션 코드를 직접 변경하지 않고도 GUI의 디자인이나 레이아웃을 쉽게 바꿀 수 있다. 즉, 애플리케이션에 다양한 '스킨'을 적용하는 것이 가능해진다. Edje 기반 애플리케이션은 사용할 GUI 레이아웃에 대한 정보를 담고 있는 별도의 파일을 활용하며, Edje 테마는 EET 생성 파일을 통해 포함된다.

2. 3. Ecore

Ecore는 이벤트를 추상화하고 모듈화하여 편리하게 사용할 수 있도록 만든 라이브러리이다. 다양한 일반적인 작업을 간단하게 만드는 것을 목표로 한다. 모듈식으로 구성되어 애플리케이션은 필요한 최소한의 라이브러리만 선택적으로 사용할 수 있다. Ecore는 X, Evas, 네트워크 통신 및 스레드와 같은 여러 작업을 단순화한다.

2. 4. Embryo

Embryo는 EFL의 다른 부분, 예를 들어 Edje 등에서 사용되는 스크립트 언어이다. 이 언어는 C와 유사한 문법을 가지고 있으며, Pawn 언어를 기반으로 한다. Pawn은 오래된 Small-C 컴파일러를 기반으로 만들어진 C와 유사한 스크립트 언어이다.

2. 5. EET

EET는 모든 타입의 데이터를 저장하고 불러올 수 있는 라이브러리로, 로컬 환경 혹은 네트워크 스트림을 통해서 사용할 수 있다. 가볍고 효율적이며 빠른 속도를 목표로 설계되었다. EET는 EFL의 테마 파일의 기반을 형성한다. 즉, Enlightenment 또는 기타 테마를 적용할 수 있는 EFL 앱의 테마를 설치하려면, 테마 그래픽과 구성을 모두 포함하는 EET 형식 파일을 설치하게 되며, 이 파일을 사용하기 위해 파일 시스템에 추출할 필요가 없다.

또한 모든 IPC 통신 및 모든 구성의 기반이기도 하다. 바이너리 파일 형식임에도 불구하고, 사람이 보기 편하도록 실시간으로 덤프/언덤프하여 내용을 확인할 수 있다.

2. 6. Eina

`Eina`는 EFL에서 사용되는 모든 데이터 타입에 대한 기본적인 라이브러리이다.[1] 메모리 사용량을 최소화하면서 CPU 사용량을 줄이도록 설계되었다.[1] 목록 (및 인라인 목록), 해시, 적흑 트리, 공유 문자열, 사각형, 배열, 반복자 및 접근자, 메모리 풀, 모듈, 고정소수점 및 매직 검사 도우미 등의 기능을 제공한다.[1]

라이브러리 자체는 크기가 작아서 다른 EFL 라이브러리 없이도 쉽게 사용할 수 있다.[1]

3. 보조 요소

EFL은 핵심 라이브러리 외에도 특정 기능을 전문적으로 처리하는 여러 보조 요소를 제공한다. 이러한 보조 요소들은 EFL의 기능을 확장하고 개발 편의성을 높이는 데 기여한다. 주요 보조 요소는 다음과 같다.


  • Ethumb: 다양한 이미지 형식의 썸네일을 생성하는 라이브러리이다.
  • Emotion: '스마트 객체'를 통해 비디오 재생 기능을 구현하는 라이브러리이다.
  • Elementary: EFL을 기반으로 하는 위젯 세트 라이브러리로, 다양한 장치에서 사용할 수 있는 사용자 인터페이스 구축을 돕는다.
  • EIO: 파일 시스템 작업을 비동기적으로 처리하여 프로그램 응답성을 향상시키는 라이브러리이다.

3. 1. Ethumb

Ethumb는 다양한 유형의 이미지 썸네일을 생성하기 위한 라이브러리이다. freedesktop.org의 썸네일 관리 표준을 준수하도록 설계되었다. Evas가 지원하는 모든 파일 형식, 예를 들어 PNG, JPEG, TIFF, GIF 등을 지원한다.

3. 2. Emotion

Emotion은 '스마트 객체'를 이용해 비디오 재생 기능을 제공하는 라이브러리다. Emotion은 여러 비디오 백엔드를 지원한다. 가장 잘 지원되는 것은 비디오 재생 라이브러리인 libxine이지만, gstreamervlc 백엔드도 제공된다. 따라서 Emotion은 백엔드로 사용하는 비디오 라이브러리가 지원하는 모든 비디오 형식(Ogg Theora, DivX, MPEG2 등)을 지원한다.

3. 3. Elementary

Elementary는 EFL을 기반으로 하는 위젯 세트이다. Evas와 Edje를 광범위하게 사용하여 일상적인 데스크톱 컴퓨터부터 소형 PDA 및 셋톱 박스에 이르기까지 모든 장치에서 사용할 수 있는 빠르고 안정적이며 확장 가능한 라이브러리를 제공한다. EFL의 기능을 완전히 노출하도록 설계되었다.

3. 4. EIO

EIO는 파일 시스템 작업을 비동기적으로 처리하는 라이브러리이다. 주요 기능으로는 디렉토리 내용 나열, 디렉토리 및 파일의 복사와 이동 등이 있다. EIO는 Ecore의 스레드 기능을 활용하여 이러한 작업을 백그라운드에서 수행한다. 이를 통해 로컬 파일 내용을 탐색하는 동안 UI가 멈추는 현상을 방지하여 프로그램의 응답성을 높일 수 있다.

4. 더 이상 사용되지 않는 요소

요소상태 및 사유
EWD기능이 Ecore에 추가됨.
Estyle기능이 Etox에 흡수됨.
Etox더 이상 사용되지 않음 (구식).
EbitsEdje로 대체됨.
Evoak개발 중단됨.
Imlib2E17에서 Evas로 대체되었으며,[3] 새로운 기능 추가 예정 없음.[4]
EDBEET로 대체됨.
EXML더 이상 사용되지 않음.
EPEGEvas로 인해 기능이 더 이상 사용되지 않음 (구식화됨).
EpsylonEthumb로 대체됨.
Engrave기능이 Edje에 흡수됨.
Esmart유지보수가 중단되었으며, Elementary가 더 나은 기능을 제공함.


참조

[1] 웹사이트 Enlightenment as Standalone Wayland Compositor https://fosdem.org/2[...] 2014-02-16
[2] 웹사이트 Enlightenment Sponsors http://enlightenment[...] Enlightenment.org 2012-06-14
[3] 웹사이트 The road to Enlightenment https://lwn.net/Arti[...] 2011-08-03
[4] 웹사이트 Mailing list post by Carsten Haitzler http://thread.gmane.[...] 2011-11-19
[5] 웹인용 release - 1.26.1 https://git.enlighte[...] 2021-03-09



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com