리눅스에서 gui환경이란 서버-클라이언트 식의 xwindow 밖에 없

avelose의 이미지

꽤 오래 접했다고 생각하는 리눅스지만 아직도 리눅스 대부분의 분야에서 초급 이하의 실력이라고 생각이 드는 유저의 입장에서 좀 묻고 싶은 것이 생겼습니다.

제가 아는 한도 내에서 현재 리눅스의 gui환경은 다중 사용자를 위한 Xwindow밖에 없는 것으로 알고 있습니다. 처음부터 C/S환경을 대상으로 나온 환경이라서 데스크탑 사용자용 성능은 무척이나 떨어질 수 밖에 없는데도 리눅스쪽에서는 데탑용 gui환경에 대해서는 개발이 없는 것 같습니다.

[혹 리눅스로 데탑에 맞는 개별사용자용 gui환경은 없는 겁니까?]

리눅스 자체가 커널의 막강함 때문에 장치에 최적화된 운영체제를 만질 수 있다는 장점에 비해서 이런 단점을 해결하려는 노력이 분명이 있었을 것 같은데 왜 이렇다할 알려진 것이 없을까요?

혹시 리눅스 커널 자체의 설계형태 때문에 어쩔 수 없이 X서버를 쓸 수 밖에 없는 것인가요?

혹 관련 프로젝트를 알고 계신 분이 계시다면 프로젝트 명과 주소 좀 적어 주실 수 없을까요?

송효진의 이미지

avelose의 이미지

크흠. 다이렉트프레임버퍼를 이용해서 x서버의 성능을 높이는 방식을 얘기해 주시는 건가요?(흑. 질문에 대한 답만 해주셔서. 왜 다이렉트fb일까를 한참 고민했습니다. 커헉.)
그런데 다이렉트fb는 일단 x내에서 하드웨어 직접접근을 위한 라이브러리 정도 밖에 되지 않나요? gui환경이라고 부를 수는 없는 것 같은데.
아마도 x+directFB 방식으로 생각하라는 의미에서 적어 주신 것 같기는 한데.. 이렇게 하면 최대한 프로그램 호환성(X와)을 갖으면서 성능을 높여주는 방법이기는 한데. 기본적으로 서버식의 X의 코드들 때문에 데탑용 gui환경이라고 까지 말할 수는 없을 것 같은데요.
하긴 윈도우도 서버클라이언트 방식을 지원하긴 하니..(근데 이건 독립서비스로 움직이는데.. x처럼 베이스 시스템이 아니라...)
아. 정녕 리눅스에는 X밖에 없단 말인가..

추가사항--
아 directfb를 이용한 관련 프로젝트가 있었군요. XDirectFB 쩝. 이게 내가 생각한 거랑 맞기는 한걸까나?? 쩝.

'현실은 수학으로 표현할 수 없다.'
'수학은 거짓의 학문이다.'
'난 수학이 정말 싫다.'

익명 사용자의 이미지

리눅스도 배포판이 있고

우리 나라에서는 쓰이지 않는 리눅스 배포판이 있는 것으로 압니다.

특히 어떤 배포판은 gui를 서버-클라이언트 방식이 아닌 것도 있는 것으로 알고 있었는데....

어떤 건지는 자세히 모르겠습니다.

작년 말에 린스파이어를 비롯해서 다양한 배포판을 소개한 사이트가 있었던 것 같은데 기억이 안나네요.

....플럭박스 쓰면 상당히 빠릅니다;;;

avelose의 이미지

열심히 알아 본 바. ) 제가 directFB를 너무 우습게 봤다는 것을 알게 되었습니다. 단순히 윈도우의 direct-X정도의 라이브러리라고 생각했는데 그런 종류가 아니더군요. X를 뛰우지 않고도 충분히 X처럼 쓸 수 있는 이상 야릇한 환경일 줄이야.(단지 일반어플에서 directFB를 지원해야 한다는 단점이 존재하기는 하지만 말이죠. twisted )
나노X가 Xfree종류의 GUI환경이라고 생각하고 있었는데 그것도 아니더군요. 실제로 모든 동작은 directFB에서 하고 나노X는 GTk나 Qt같은 라이브러리더군요.

'현실은 수학으로 표현할 수 없다.'
'수학은 거짓의 학문이다.'
'난 수학이 정말 싫다.'

Fe.head의 이미지

어?

x window 없이 direct fb만으로 그놈이나 메니저를 띄울수 있는가 보군요.

삽질 문서가 어디에 있을려나?^^

고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"

eungkyu의 이미지

xwindow가 윈도우에 비해 그렇게 느린가요? 혹 느리다면 그게 서버클라이언트 구조때문일까요?

전 그렇게 느리다고 느끼지 않아서 공감이 잘 가지 않네요.
gnome이나 kde가 느리다고 하는건 좀 이해가 가지만요.

hys545의 이미지

avelose wrote:
열심히 알아 본 바. :) 제가 directFB를 너무 우습게 봤다는 것을 알게 되었습니다. 단순히 윈도우의 direct-X정도의 라이브러리라고 생각했는데 그런 종류가 아니더군요. X를 뛰우지 않고도 충분히 X처럼 쓸 수 있는 이상 야릇한 환경일 줄이야.(단지 일반어플에서 directFB를 지원해야 한다는 단점이 존재하기는 하지만 말이죠. :twisted: )
나노X가 Xfree종류의 GUI환경이라고 생각하고 있었는데 그것도 아니더군요. 실제로 모든 동작은 directFB에서 하고 나노X는 GTk나 Qt같은 라이브러리더군요.

반드시 directfb지원해야 하는건 아닌데여.
gtk-directfb같은건 gtk를 고친건데
이거만 기존의 gtk하고 바껴치우면
gtk풀그림은 재 컴파일 업이도 사용가능합니다.

즐린

avelose의 이미지

eungkyu wrote:
xwindow가 윈도우에 비해 그렇게 느린가요? 혹 느리다면 그게 서버클라이언트 구조때문일까요?

전 그렇게 느리다고 느끼지 않아서 공감이 잘 가지 않네요.
gnome이나 kde가 느리다고 하는건 좀 이해가 가지만요.


글쎄요 구조적으론 충분히 느리다고 생각하는데요. 윈도우에서 구현한 것과 비슷하게 구현한 상태에서 비교를 했을 경우에 당연히 리눅스가 느리죠. :?
플럭스박스나 기타 단순한 윈도우메니져를 쓰면서 윈도우같은 속도를 낸다고 속도가 괜찮다고 보는 것은 좀 서글프지 않나요?

임베디드 리눅스와 윈도우 ce등을 비교해봐도 동일 기종에서 gui환경만 보고서는 확실히 느끼실 수 있을텐데요. 구조에서 오는 한계는 어쩔 수가 없는 것이 아닐까요?
(하긴 서버용 운영체제에서 데탑용 환경을 바라는 것은 어불성설이긴 하지만....)

'현실은 수학으로 표현할 수 없다.'
'수학은 거짓의 학문이다.'
'난 수학이 정말 싫다.'

avelose의 이미지

hys545님 아~ 그렇군요. 또 새로운 사실은. 그런데요. 궁금한 것은 리눅스에는 윈도우의 메세지 기능이 없는 건가요? 어플간의 통신의 경우 나비 등등을 봐서는 메세지 기능은 존재하긴 하는 것 같은데.
만약 그렇다면 다이렉트 fb를 이용해서 직접 디스플레이 되는 어플들과 일반 어플들과의 메세지 전송을 되긴 되는 건가요?
아. 갑자기 머리가 아파지네...

'현실은 수학으로 표현할 수 없다.'
'수학은 거짓의 학문이다.'
'난 수학이 정말 싫다.'

eungkyu의 이미지

avelose wrote:
eungkyu wrote:
xwindow가 윈도우에 비해 그렇게 느린가요? 혹 느리다면 그게 서버클라이언트 구조때문일까요?

전 그렇게 느리다고 느끼지 않아서 공감이 잘 가지 않네요.
gnome이나 kde가 느리다고 하는건 좀 이해가 가지만요.


글쎄요 구조적으론 충분히 느리다고 생각하는데요. 윈도우에서 구현한 것과 비슷하게 구현한 상태에서 비교를 했을 경우에 당연히 리눅스가 느리죠. :?
플럭스박스나 기타 단순한 윈도우메니져를 쓰면서 윈도우같은 속도를 낸다고 속도가 괜찮다고 보는 것은 좀 서글프지 않나요?

임베디드 리눅스와 윈도우 ce등을 비교해봐도 동일 기종에서 gui환경만 보고서는 확실히 느끼실 수 있을텐데요. 구조에서 오는 한계는 어쩔 수가 없는 것이 아닐까요?
(하긴 서버용 운영체제에서 데탑용 환경을 바라는 것은 어불성설이긴 하지만....)

절 무슨 새빨간 거짓말하는 사람으로 취급하는거 같아서 좀 더 공신력 있는 자료를 찾다가 답변이 늦었습니다.
제가 아무리 뭐라해도 들을거 같지 않으셔서... 예전에는 관련된 논의가 메일링 리스트에도 많이 보이고 해서
금방 나올거 같았는데 생각보다는 많이 없더군요.

http://en.wikipedia.org/wiki/X_Window_System#Common_criticisms_of_X
의 첫번째 문단을 읽어보시기 바랍니다.

인용하자면,

Quote:
The device independence and separation of client and server does incur an overhead. X's network transparency requires the clients and server to operate separately. In the early days, this gave a significant performance penalty on a standalone system compared to Microsoft Windows or Mac OS (versions 1 to 9), where windowing was deeply embedded in the operating system. 4 to 8MB of RAM was recommended for reasonable performance; until the mid-1990s, this was regarded as bloated compared to Mac OS or Windows. In the present day, Windows and Mac OS X Quartz have internal subsystem separation similar to the client/server divide in X and comparable performance and resource usage to X with KDE or GNOME.

원도의 원격 데스크탑이 저절로 구현된게 아니죠.

X에서 network이라는 단점은 unix domain socket을 사용함으로서 충분히 커버가 됩니다. 직접 하드웨어 가속을 이용하는 extension도 많기 때문에 X 자체는 님이 생각하시는 것처럼 performance bottleneck이 되지 않습니다.

제 생각에 directfb는 서버 클라이언트 코드 자체가 부담스럽고 그러한 transparency가 전혀 필요없는 임베디드 시스템에 어울린다고 생각합니다. 리눅스 데스크탑에서의 원격 데스크탑의 꿈을 스스로 접어 버릴 필욘 없겠습니다.

오히려 요즘의 이슈는 GNOME과 같은 데에 있습니다. 네, 물론 블랙박스보다 기능도 많고 덩치도 크니 그보단 느릴 수밖에 없죠. 이걸 모르는게 아닙니다. 하지만 이게 생각보다 더 느리고 생각보다 메모리를 더 차지한다는 데에 있습니다.

GNOME의 패널에서 시계를 보기 위해 메모리가 10M가 필요하다고 생각한다면 참 거시기하죠. 대부분의 패널 애플릿이 8-10M정도의 메모리를 차지합니다. 물론 VM이 아니고 RSS로요. 각종 서버가 사용하는 메모리 양과 비교해볼 때 너무나 많은 양을 차지하고 있습니다.

게다가 mozilla*, openoffice*, gnome* 등이 제각각 라이브러리와 데이터를 로드하니 여기에서도 각종 메모리와 시간 낭비가 있구요.

관련 링크를 많이 찾지는 못했지만 다음 것들이 있습니다.

http://live.gnome.org/MemoryReduction
http://blogs.sun.com/roller/page/bnitz?entry=thanks_for_the_memories
http://mail.gnome.org/archives/desktop-devel-list/2005-May/msg00050.html
http://lwn.net/Articles/146131/
http://www.gnome.org/bounties/Optimization.html

물론 X가 좀 더 최적화되어서 더 빨라지면 좋겠지만 지금은 거기보다 이런 점을 생각해 보는 것이 훨씬 효율적인 접근일 것입니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.