천재태지의 세상 돌려보기

seoz.egloos.com

- About Me... - Enlightenment, EFL - 타이젠 Tizen



[EFL] EFL GUI 툴킷 및 Enlightenment 윈도우 매니저 소개 ├ Enlightenment, EFL

[ EFL 게시물 목차 : http://seoz.egloos.com/3458699 ]


안녕하세요? 천재태지 서주영입니다.
EFL GUI 툴킷 및 Enlightenment 윈도우 매니저를 소개합니다. 제 블로그에 이미 EFL 및 Enlightenment와 관련된 많은 글이 올라왔지만 정식으로 설명한 적은 없는것 같네요.
이 내용은 저와 박춘언님이 마이크로소프트웨어 잡지 2012년 7월호에 기고[1][2]한 내용을 약간 수정하여 작성하였습니다.
그래서 잡지에 기고했던 것 처럼 반말투를 그대로 사용합니다.

EFL? Enlightenment?

EFL(Enlightenment Foundation Libraries)은 GUI 툴킷 라이브러리로 GUI 애플리케이션 개발에 필요한 기본 기능을 제공한다. EFL은 원래 리눅스 기반 X 윈도우 매니저인 Enlightenment로부터 비롯됐다. 그래서 EFL은 X 윈도우 시스템 기반의 Enlightenment 윈도우 매니저뿐만 아니라 GUI 애플리케이션 제작에 필요한 유용한 기능을 제공하는 패키지들을 다수 포함하고 있다. EFL은 오픈소스 라이브러리이므로 누구나 무료로 이용할 수 있으며, 타 GUI 툴킷 라이브러리 대비 가벼우면서도 높은 성능을 보장한다는 이점을 지닌다.

<그림 1> Enlightenment 윈도우 매니저

<그림 1>은 Enlightenment 윈도우 매니저이다. 윈도우 매니저는 데스크톱 윈도우 상에 존재하는 모든 윈도우들을 관장하는 필수 애플리케이션이다. 윈도우가 나타나거나 사라질 때 또는 활성 윈도우 간의 전이가 존재할 때 애니메이션 효과를 부여하며, 스크린 공간상 각각의 윈도우에 적절한 위치를 지정해 윈도우가 화면 범위를 완전히 벗어나는 경우를 방지해주는 역할을 수행한다. 뿐만 아니라 작업표시줄, 데스크톱 아이콘, 바탕화면 등의 기능도 제공한다.

멀티 플랫폼 지원

리눅스 기반 프로젝트로 시작한 EFL은 리눅스뿐 아니라 다양한 플랫폼을 지원한다. 여러 종류의 리눅스 배포판은 물론이며 FreeBSD, MS 윈도우를 위한 포팅 레이어도 제공해 다양한 환경에서 EFL 이용이 가능하다. EFL이 이와 같은 확장성을 지닐 수 있었던 것은 모듈화가 잘 되어있기 때문이다. 이 외에도 하나의 렌더링 엔진으로서 각 플랫폼에 따라 고성능 효과를 발휘하기 위해 OpenGL, OpenGL ES 등의 백엔드(back-end) 렌더링 엔진을 지원하며, 기본적으로 소프트웨어 렌더링 또한 지원하고 있다.
<그림 2> EFL이 지원하는 OS

다음은 EFL 패키지를 비공식적으로 제공하는 리눅스 배포판 및 Enlightenment가 기본으로 탑재된 리눅스 배포판 목록이다.

<표 1> EFL 패키지를 비공식적으로 제공하는 리눅스 배포판

- 데비안(Debian)
- 우분투(Ubuntu)
- 아치리눅스(ArchLinux)
- 젠투(Gentoo)
- 슬렉웨어(Slackware)
- OpenSUSE, SLE
- 페도라(Fedora)
- CentOS
- 맨드리바(Mandriva)
- FreeBSD

<표 2> Enlightenment가 기본으로 탑재된 리눅스 배포판

- Bodhi
- Elive
- HUMANity
- Macpup
- MoonOS
- OpenGEU
- Pentoo
- PCLinuxOS
- Sabayon
- Unite17
- Yellow Dog


역사
<그림 3> Enlightenment 및 EFL 개발년도

● Enlightenment 윈도우 매니저 역사
Enlightenment는 1996년 칼슨 하이츨러(Carsten Haitzler)[3]가 개발을 시작했다. 1997년 첫 번째 Enlightenment 배포 이후 현재까지 지속적으로 개발이 이루어지고 있다. 2000년 E16(DR16 혹은 0.16) 버전 배포 이후 현재까지 E16의 버그 수정 버전까지 나와 있다. 2004년부터는 E17(DR17 혹은 0.17) 버전도 개발 중이다.

한 가지 재미있는 것은 E17을 개발할 때 E16에 사용된 코드를 단 한 줄도 사용하지 않았다는 점이다. 단지 E16 개발을 통해 얻었던 지식은 더 나은 구조의 E17을 작성하는 경험적 바탕이 됐다. 실제로 E17은 개발 버전치고는 상당히 안정적이라 E17 개발자도 윈도우 매니저로 E17을 사용하고 있으며 Bodhi 리눅스 등 다양한 리눅스 배포판에서도 E17이 사용되고 있다.

● EFL 역사
EFL은 E17 개발을 위해 만든 라이브러리 모음이다. 2001년 Evas라는 캔버스 라이브러리가 처음 개발된 이후로 Ecore, Edje, Eina, Emotion, Elementary 등 수많은 라이브러리가 등장했다. 여기서 흥미로운 점은 EFL 라이브러리 등장 이후 E17 개발자들은 E17 개발보다 EFL 개발에 더 주력했다는 사실이다. E17을 위해 존재하는 소스 코드의 74%는 EFL 라이브러리 소스 코드이고 나머지 26% 정도만이 E17 소스 코드다.

EFL 개발에 주력한 결과 2011년 1월에 Eina, Eet, Evas, Ecore, Embryo, Edje, E_Dbus, Efreet, Eeze를 포함한 EFL 1.0(일부 라이브러리는 1.4)이 배포된다. 이후 1.1 및 1.2가 연속적으로 배포됐다. 개발자들은 EFL 1.2 배포 이후로는 E17 개발에 주력하고 있어 머지않아 E17 정식버전도 배포될 것으로 보인다.

- 2011년 1월 : EFL 1.0 배포. eina, eet, evas, ecore, embryo, edje, e_dbus, efreet, eeze(일부 라이브러리는 1.4).
- 2011년 12월 : EFL 1.1 배포. expedite, evas generic loaders가 추가됨(일부 라이브러리는 1.5).
- 2012년 4월 : EFL 1.2 배포. eio, ethumb, emotion, elementary가 추가됨(일부 라이브러리는 1.2 및 1.6).
- 2012년 8월 : EFL 1.7 배포, evil이 추가됨. 모든 라이브러리가 1.7 버전으로 통일.

[1] http://seoz.egloos.com/3859813
[2] http://www.imaso.co.kr/?doc=bbs/gnuboard.php&bo_table=article&wr_id=40467
[3] http://en.wikipedia.org/wiki/Carsten_Haitzler

[ EFL 게시물 목차 : http://seoz.egloos.com/3458699 ]



핑백

  • EFL 한국 사용자 모임 : EFL 한국 사용자 모임 2012-12-05 03:45:50 #

    ... 설치하기 EFL 라이브러리 소개 및 특징윈도우에서 EFL 빌드하기Enlightenment 윈도우 매니저 (E17) 설치 및 사용하기EFL GUI 툴킷 및 Enlightenment 윈도우 매니저 소개 [Enlightenment, E17 윈도우 매니저] 리눅스 데스크탑에서 Enlightenment (E17) 사용하기E17 ... more

  • 천재태지의 세상 돌려보기 : [무료] 오픈소스 Enlightenment/EFL 공개 세미나 2013 2013-05-01 01:37:24 #

    ... EFL GUI 툴킷 및 Enlightenment 윈도우 매니저 소개 링크 [7]</a> EFL(Enlightenment Foundation Libraries)은 Enlightenment개발에 필요한 라이브러리의 모음이며, 애플리케이션을 개발하는 유용한 라이브러리가 다수 포함되어 있습니다. 참고 링크 1 : https://phab.enlightenment.org/w/efl_concept_overview/ [8] Terminolog ... more

  • 천재태지의 세상 돌려보기 : [EFL] Elementary 기본 테마 Dark로 변경 (2013.10.17) 2013-10-18 01:38:55 #

    ... EFL[1]</a> 라이브러리의 위젯에 해당하는 Elementary[2] 라이브러리의 기본 테마가 오늘(2013.10.17) Black&amp;White에서 Dark로 변경되었습니다. (관련 커밋 [3]) Black&amp;White는 Elementary 초창기부터 사용하던 테마로 오랫동안 Elementary의 기본 테마로 사용되었습니다. Dark 테마는 올해 2월에 개발을 시작해 10월에서야 드디어 완성이 되었는데요, 틈나는 대로 개발했기 때문 ... more

  • 천재태지의 세상 돌려보기 : [EFL] gstreamer-1.0이 없다는 빌드 에러 수정 방법 2013-12-27 02:16:40 #

    ... EFL[1]</a>[2]이 기존에는 gstreamer 0.10을 필요로 했었는데, 며칠전에 gstreamer 1.0을 필요로 하도록 변경되었습니다. [3] 예전 같았으면 두 버전을 모두 지원해주었겠지만, 작년 하반기에 efl 트리를 하나로 통합하면서 관리상의 이유로 선택적인 옵션을 대부분 제거했습니다. 그래서 이제는 gstreamer 0.10이 설치되어 있어도 gstreamer 1.0이 설치되어 있지 않으면 EFL을 빌드할 때아래와 같이 빌드 에 ... more

  • 천재태지의 세상 돌려보기 : [리눅스] 우분투에 gstreamer 1.0 설치하기 2014-01-06 01:27:45 #

    ... EFL[6]</a>이 최근에 gstreamer 0.10 뿐만 아니라 1.0도 지원하기 시작했기 때문입니다. 물론 1.0을 무시하고 0.10을 사용하도록 설정[7]할 수도 있지만, gstreamer 진영에서는 이미 지난 2013년 3월에 더이상 0.10 버전을 관리하지 않는다고 공지[8]를 했기 때문에 gstreamer 1.0 이상 버전을 사용하는게 좋겠습니다. 1. Launchpad Gstreamer PPA 추가 다음과 같은 명령어로 L ... more

  • 천재태지의 세상 돌려보기 : [EFL] 10/26(일) 오픈소스 Enlightenment/EFL 공개 세미나 2014 2014-10-14 01:58:03 #

    ... Enlightenment[2]</a>[3][4]는 윈도우 매니저입니다. 기존의 윈도우 매니저와 다른 새로운 사용자 환경을 제공합니다. 많은 분들이 데스크탑 윈도우 매니저로 사용하고 있으며 다양한 임베디드 기기에서도 사용되고 있습니다. 타이젠의 윈도우 매니저로도 사용되고 있습니다. 19년의 역사를 가진 오픈소스입니다. - <a href="http://seoz.egloos.com/3908258">EFL[2]</a>[3]은 애플리케이션을 개발하는데 사 ... more

  • 천재태지의 세상 돌려보기 : [우분투] 14.04 에서 가상 워크스페이스(virtual workspaces) 사용하기 2015-03-25 01:09:56 #

    ... Enlightenment 윈도 매니저[1]</a>[2]를 사용해도 이와 동일한 Virtual Desktops라는 기능이 기본적으로 활성화 되어 있기도 하다. 정확히는 모르겠지만 예전엔 우분투에서 이 기능이 자동으로 활성화 되어 있었는데, 최근에 사용하고 있는 14.04버전에서는 이 기능이 비활성화되어 있다. 이는 쉽게 활성화할 수 있다. 1. 우선 System Settings 창을 띄우고 Appearance 메뉴로 간다. 2. Beh ... more

덧글

  • 패스파인더 2012/12/12 22:09 # 삭제 답글

    안녕하세요?
    블로그를 보고 enlightenment 를 잠깐 써봤는데 혹시 로그아웃 전에 띄워놓은 프로그램을 로그인 하면 다시 띄워주는 세션저장(?) 기능은 없을까요? KDE 를 쓰다보니 그게 제일 불편하네요 ㅎㅎ
    그리고 가끔 창을 전환하다보면 가끔 창이 사라진다거나 창이 숨겨지지 않는다던가 하는데 혹시 그런적은 없으셨나요?
    가볍고 빠르긴 한데 그런점이 좀 불편하네요
    참 그리고 본문에 Archlinux 를 아크리눅스로 쓰셨던데 아치리눅스로 고쳐주세요~
  • 천재태지서주영 2012/12/13 01:03 #

    안녕하세요? 서주영입니다.
    피드백을 주셔서 정말 감사합니다 ^^

    - 세션 저장 기능
    아쉽게도 세션 저장 기능은 없습니다. 저도 이 기능이 굉장히 필요한데요, E17 배포를 바로 앞에 두고 있어서 현 시점에는 새로운 기능이 들어가지 않을 예정입니다. E18에 들어가도록 하면 좋겠네요 ^^
    저는 컴퓨터를 끌 때 그냥 suspend 기능을 사용하긴 합니다. 그러면 컴퓨터를 다시 켰을 때 전에 작업하던 상태가 그대로 유지됩니다만 이 답을 원하시는건 아닌것 같네요 ^^;;

    - 창이 사라지거나 숨겨지지 않는 현상
    음... 저는 그런 현상을 겪어보지 못했는데요, 혹시 E17 어느 버전을 사용하시나요? 메인 메뉴(바탕화면 좌클릭) -> Enlightenment -> About에 현재 버전이 표시됩니다. 어떤 상황에서 그런 문제가 발생하는지 알려주시면 개발에 도움이 될 것 같아요.
    그런데 만약 윈도우가 없어지는 경우에는 메인 메뉴 -> Windows -> Lost Windows를 클릭하면 윈도우가 화면에 다시 들어옵니다. 이 메뉴는 Lost Windows가 있는 경우에만 활성화되는 것으로 알고 있어요.

    - 아치리눅스
    아.. 왜 아크리눅스라고 되어 있지 ㅡㅜ 이 부분은 검토할 때 발견하지 못했군요;; 바로 수정했습니다. 지적 감사합니다.

    앞으로도 좋은 피드백 부탁드립니다.
    감사합니다.
  • 패스파인더 2012/12/13 21:09 # 삭제

    답변 감사합니다~
    세션저장은 안되는군요 아쉽네요

    창이 숨겨지지 않았던 것은 어쩌다 한번 그랬던 거라..
    창이 사라지는 것은 예를 들면

    터미널 실행(터미널에 포커스) -> Alt + F4( 종료키 인줄 알고 눌렀는데 데스크탑 전환이라 당황했었네요 ㅋㅋ) -> Taskbar 에서 터미널 클릭 -> 화면에 안보임

    어떻게 이것저것 눌러보고 화면전환 해보고 하면 나오긴 하는데 무슨 현상인지 모르겠네요
    lost windows 에는 아무것도 없습니다 그리고 Enlightenment 버전은 0.16.999.76686 입니다

댓글 입력 영역