userspace driver란 무엇인가?

cho's의 이미지

mplayer를 까는데 video쪽에서 vidix를 쓰겠다고 나오더군요.
이게 최신에 나온건데 도데체 먼가요? 리눅스에서 비디오쪽에 관심이 많아서요 ....
살펴보면
VIDIX - Video Interface fo *nix라고 나오는데 이게 먼가요?
README에 보면 this library was designed and introduced as interface to userspace drivers to provide DGA everywhere where it's possible(unline X11).
-It's portable successor of mga_vid technology which is located in user-space.
-Unlikely v4l it provides interface for video playback
I hope that these drivers will be portable same as X11(not only on *nix)

먼저 질문을 좀 구체적으로 정리하면
1. userspace driver란 무엇인가? (그럼 kernelspace driver랑 어떻게 틀린가?)

2. DGA란 무엇인가?

3. 그럼 이놈의 정체를 이미 아시는 분은 설명좀 해주세요. 어케서 이눔은 userspace driver인지 머하는 놈인지? 저는 kernel에서 driver를 개발은 해봤는데 userspace driver라는 말은 첨 들어봅니다.

부탁드립니다.
그럼 좋은 하루 되세요.

cho's의 이미지

DGA is short for Direct Graphics Access and is a means ofr a program to bypass the X-Server and directly modifying the framebufffer memory.

There are two versions of DGA: DGA1 is used by XFree 3.x.x and DGA2 was introduced with XFree4.0.1

DGA1 provides only direct framebuffer access as described above. For switching the resolution of the video signal you have to rely on the XVidMode extension.

DGA2 incorporates the features of XVidMode extension and also allows switching the depth of the display. So you may, although basically running a 32bit depth Xserver, switch to a depth of 15 bits and vice versa.

However DGA has some drawbacks. It seems it is somewhat dependent on the graphics chip you use and on the implementation of the Xserver's video driver that controls this chip.

Necromancer의 이미지

커널 속에서 아니면 User 프로그램처럼 도느냐

대표적인 Userspace Driver은 XFree86이죠. (DRI제외)

Written By the Black Knight of Destruction

mach의 이미지

떵개 cho wrote:

먼저 질문을 좀 구체적으로 정리하면
1. userspace driver란 무엇인가? (그럼 kernelspace driver랑 어떻게 틀린가?)

..........
userspace driver인지 머하는 놈인지? 저는 kernel에서 driver를 개발은 해봤는데 userspace driver라는 말은 첨 들어봅니다.

부탁드립니다.
그럼 좋은 하루 되세요.

* User level device driver vs. Kernel level device driver
(U : user level, K : kernel level , C : comment)
1. 기존의 많은(엄청나게..) C 라이브러리를 사용할 수 있는가?
- U : Ok
- K : No
*커널에서는 /proc/ksyms에 명시된 즉, export된 루틴에 대해서만 사용가능
2. conventional debugger를 제공하는가?
- U : Ok
- K : NO
* 디바이스 드라이버를 일반적인 debugging tool만으로 debug하는 것은 적당하지 않음.

3. 디바이스 드라이버가 fail할때 영향은?
- U : 보통은 해당 프로세스에만 영향을 미침
- K : System Fail로 이어짐

4. User memory swappable? 즉, 드라이버가 대량의 메모리를 사용할 수 있는가?
- U : 대량의 메모리 사용가능, 일반 프로그램과 거의 동등함
- K : kmalloc()의 한계 및 소량의 제한된 메모리
* 커널에서 유저메모리 영역을 할당받는 테크닉을 사용할 수 있음
5. 인터럽트를 제어할 수 있는가?
- U : 불가능
- K : 가능
6. priviledged mode?
- U : 요구됨
- K : 기본사항(default)
* direct memory access, I/O port 를 제어시 필요
7. response time
- U : 커널드라이버에 비해 느림
- K : 빠름
* User level 드라이버는 context switch가 이뤄져야 드라이버가 동작
8. swap ?
- U : ok
- K : no
* device driver가 swap되면, response time이 아주 길어지므로, swap되지 않게 작성해야 함.
9. 중요장치 제어에 사용되는가?
- U : 아니요
- K : 예, 특히 network, block device등은 필수적인 경우가 많음
10. 예를 들어 보면?
- U : X server, libsvga, gpm mouse driver등
- K : 대부분의 디바이스 드라이버

------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.