Slashdot Mirror


GTK+ without X!

Rayban writes: "Just noticed on news.gnome.org that the Linux framebuffer support for Gtk+ is now in CVS. This means that you can now write a quick Gnome app that doesn't require X at all! Imagine a Gtk+-based distro installation that can run solely off the framebuffer! No more VESA hack and a significant disk space savings - maybe even a Gtk+-based bootloader? The screenshots are here, here and here." Obviously the screenshots aren't very special, but I'm having no problem thinking of interesting, useful tasks for this.

73 of 191 comments (clear)

  1. Re:the problem with UNIX is the languages by johnnyb · · Score: 2

    1) You can't say that Gtk was written to build market share quickly. Gtk was written as a toolkit for GIMP.

    2) The reason that it is interfaceable with a number of languages, is because of how close it is to assembly language. Since all languages have to be "interfaceable" with assembly anyway, making them interfaceable with C is fairly trivial

    3) I have seen other systems. My experience isn't overwhelming, but I've used Java, Delphi, and Gtk/GNOME. I liked Gtk/GNOME the best.

  2. GTK+ replacing SvgaLib by Felinoid · · Score: 5

    This would be a long overdue replacement to Svga-lib.
    The one (and only) virus for Linux was made posable in part becouse of svga-libs need for super user access... (and users swapping binarys instead of source code)

    The other problem with svga-lib is it's just an interface into existing svga cards... This is useless on platforms that don't use the obsolet video chipset...

    But console graphics are the key to making linux games run faster... X11 uses a lot of memory and runs slow.. it has support for stuff that games don't need.. Window managers have stuff games don't need.. Strip all that away and the computer is many times faster..

    Something like GTK+ would use your PC 2D rendering card directly instead of using it's internal VGA emulation.. It would allow you to run with less memory and give more speed to your games..

    Also GTK+ has the added benifit of being GTK.. It would be pritty easy to port GTK code to GTK plus (and visa versa).. It should work equally well the Mac as it dose on the PC.....

    While svga-lib dosn't have that requirement to give your games superuser access.. it's still long overdue for a replacment...

    --
    I don't actually exist.
    1. Re:GTK+ replacing SvgaLib by HeUnique · · Score: 2

      Yes, but frame buffer gives you less then minimum of what your graphics card have. Stuff like hardware drawing acceleration, hardware cursor, video, 3D, and other features are not supported at all..

      So yes, it's nice for a simple graphics appplication, but nothing more then that...

      --
      Hetz (Heunique)
    2. Re:GTK+ replacing SvgaLib by ChadN · · Score: 2
      Also GTK+ has the added benifit of being GTK.. It would be pritty easy to port GTK code to GTK plus (and visa versa)


      Ummmm, my understanding is that there really isn't a "GTK" (the original Gimp toolkit, which really isn't around any more). "GTK+" refers to the current Gimp toolkit that is in use by Gimp, Gnome, etc. It is based on the C language.


      "GTK--" is the version with C++ bindings, if that is what you meant. When people say "GTK" these days, they most likely mean "GTK+".

      --
      "It's overkill, of course. But you can never have too much overkill." - Anonymous Slashdot Coward
    3. Re:GTK+ replacing SvgaLib by MatanZ · · Score: 2

      Except that you need root privileges in order to use the framebuffer.

  3. Re:GGI, SDL, Qt by TeknoDragon · · Score: 3

    uh, no... SDL has no graphical widget set (at least no good one)

    presumedly GTK+ in combination with GGI or SDL (as the article says "the linux-fb port of GTK+") would just put the GTK widgets on your framebuffer...

    actually, this something I was looking for a while ago (SDL + GTK = a platform independant widget set/window manager)

  4. You don't need root to use the framebuffer by Rozzin · · Score: 2

    You need write permission to /dev/fbsomething.

    There is a PAM module that some Linux distributions ship with and that provides chowning files to a user upon login of that user at the console.

    In the worst case, you could create a `framebuffer' group, give the group r/w permissions on the framebuffer device-files, and put some users into that group.

    --
    -rozzin.
  5. the problem with UNIX is the languages by q000921 · · Score: 3
    Component reuse in UNIX is hard because of the primary programming languages used in UNIX: C and C++. What is missing from those languages is:
    • Full support for reflection: something that lets you take an arbitrary object, inspect its fields, invoke methods on it, etc.
    • Fault isolation: if some library or dynamically loaded module contains a serious error, there is nothing the application program can do to recover or even detect the problem reliably. That means that every extra component you add to your program has the potential for disaster, and people are going to be as conservative as they can be for reuse.
    • Automatic memory management: automatic memory management is important for fault isolation, but it is also important in itself for reuse. Without automatic memory management, the APIs to many libraries become much more complicated, and programmers have to spend a lot more time debugging and testing.

    Of course, you can simulate all that stuff in C or C++: systems like COM try to address some of those issues. The problem is that if it isn't built into the language and runtime, everybody does it differently, the compiler can't help you, and you still don't get fault isolation.

    Miguel could have done a lot for "Making UNIX Not Suck" if he had chosen a better language and runtime. His choice represents merely another pragmatic compromise in a long string of pragmatic compromises made in the industry. Gnome is well done, it works well, it has lots of functionality, but fundamentally, it merely "sucks less" and doesn't avoid the problems that are at the root of the problems with most UNIX and Windows software.

    Of course, if Miguel had chosen differently, Gnome would not have become nearly as successful, since it mostly depends on the willingness of others to volunteer. Some other C/C++-based environment would have caught on. Ultimately, the "sucky" state of UNIX and Windows software is the result of the choices we all make day-to-day. Maybe we can make it a millenial resolution to use other languages and runtimes more: Java, Oberon, OCAML, Modula-3, C#, Eiffel, Python, Scheme, etc. Given that Gtk does bind pretty well to most of those, we can even stick with the Gtk toolkit.

    1. Re:the problem with UNIX is the languages by johnnyb · · Score: 2

      1) Everything is a pragmatic compromise. Really. The whole point of computers is pragmatism. Would you rather them be not pragmatic?

      2) The great thing about C is that it is interfaceable with a number of languages. I think that other languages are _great_ for application programming, but library programming is best done in C. Maybe the panel should be written in another language. The windowmanager already is (scheme-like if you use SawFish). With C, the application programmer gets to pick his choice of languages. With others, it is much harder.

      3) It would be cool for someone to make a language that used the glib object model implicitly. That would be uber-cool.

      glib/gtk is about the best-designed piece of software I've ever seen. It's wonderful, easy-to-use, and fun to program with.

    2. Re:the problem with UNIX is the languages by q000921 · · Score: 2
      Would you rather them be not pragmatic?

      MacDonald's and Microsoft are also pragmatic compromises--they manage to get the biggest market share quickly. That's roughly what Gtk/Gnome did. That compromise is only desirable if your goal is lots of market share quickly, not if your goal is to develop good technology.

      The great thing about C is that it is interfaceable with a number of languages.

      It's only "interfaceable" with a number of languages because it is the de-facto standard and everybody bothers generating the glue to interface with it. Otherwise, it's actually quite horrible for the purpose.

      glib/gtk is about the best-designed piece of software I've ever seen.

      It is capably written and one of the better designed pieces of C software. But try to take a look at other systems sometimes.

  6. Linux: not going anywhere fast. by Inoshiro · · Score: 2

    (Consider this circa 1993 in terms of how 'old Unix' businesses and users felt)

    You know, I used to follow Linux. I was hopeful that it might provide the replacement for UNIX within my professional lifetime. I have since given up hope.

    Linux development is moving at a snail's place. They don't have just a whole lot of people working on it, and I'm not sure they have *anyone* working on it full time. While the attempt is certainly noble, I don't think it's going anywhere.

    More importantly, even if they manage to finish the project and come out with a reasonable, clean replacement for commercial UNIX, how are they going to persuade the industry to use it? There is a ridiculous amount of binary code written for SunOS, AIX, Ultrix, etc. To make any inroads they are going to have to have backwards compatibility with them, in which case they've moved to a new house, but carried the old baggage with them.

    I certainly do not believe the commercial Unix vendors are going to embrace such a new development. Would the Linux supporters be confident enough to break compatibility and go their own way? I don't see the balance of power between open / commercial shifting that quickly. And so far I have seen zero support of Linux from any commercial entities (even big companies like IBM).

    If Linux is used, I expect it will be in "fringe" applications first, not mainline workstations. Particularly, embedded applications might pick it up. They have a much smaller pool of software to tote around, and would probably be happy to have a kernel system smaller, and more open, than commercial UNIX.

    To bring this to a close, as "cool" as Linux may sound, the software is far from complete, is advancing slowly, and will face serious obstacles once it *is* complete. I, personally, have given up hope on Linux. I do not think it will replace UNIX. My hopes lie instead with Solaris. There is much that can be done in the way of gradually extending Solaris, and deprecating old features. Over time, they can drift Solaris towards a cleaner system, relegating cruft to libraries which get loaded less and less often. This is less inspiring, but probably more feasible.

    Three reorganizations are worth one revolution.

    The lesson is: have patience, and contribute -- the rest will follow in time.
    --

    --
    --
    Internet Explorer (n): Another bug -- that is, a feature that can't be turned off -- in Windows.
  7. this is great, but won't replace X11 by q000921 · · Score: 2
    I think this is great. It will be quite useful in a number of "specialty" applications, like boot loaders, some embedded systems, etc.

    OTOH, I think it won't replace X11. I think the additional functionality it provides (remote display, integration of different toolkits, separate window management, asynchronous graphics) greatly outweigh any perceived or actual overhead or limitations of the X11 system.

  8. Re:Berlin: not going anywhere fast. by Coward,+Anonymous · · Score: 2

    To make any inroads they are going to have to have backwards compatibility with X

    Berlin itself doesn't need backwards compatibility with X, it just needs someone to write an X server for Berlin. I display X applications on my MS Windows machines because I have an X server for Windows, this doesn't mean Windows has any kind of "backwards compatibility" with X. Windows has no knowledge of X. Berlin doesn't need any knowledge of X, just an X server that does.

  9. Re:GGI, SDL, Qt by TeknoDragon · · Score: 2

    wow, what a flamefest...

    cduffy is right... and the only reason that widget sets CAN'T and AREN'T used it that THERE HAVE BEEN NO GOOD FRAMEBUFFER WIDGET SETS UNTIL NOW!!!

    a framebuffer widget set __**IS**__ portable that's what my whole argument was!

  10. Re:Will GTK become Yet Another X? by zensonic · · Score: 2

    As long as there are still 'legacy' X apps, you'll need to run X anyway

    I don't really understand why people complain about X. X is nice, extensible, flexible and reasonably fast (both 2D and 3D wise with the event of Xfree 4.x)
    Don't get me wrong, I'd love to see the architectural disaster that is X go

    What architectural disaster? Able to run remote apps, use more than one monitor, infrastructure for 3D and 2D, works on nearly a zillon platforms (last time I looked windows was x86 only, so was BeOS, Others comes to mind easily)

    It's not trivial to design an implement an system as large as X, but I for one think that the developers are doing just fine.

    Hmm, getting offtopic here.

    Gtk+ for framebuffer devices has it's place, but only in lowmemory situations and/or before the
    system is really up'n'running (where I think another infrastructure should take over, X for example)

    --
    Thomas S. Iversen
  11. Re:GGI, SDL, Qt by be-fan · · Score: 2

    uh, no... SDL has no graphical widget set (at least no good one
    >>>>>>>>>>>>>
    Uh, games don't use graphical widgets!

    --
    A deep unwavering belief is a sure sign you're missing something...
  12. Re:Not very interesting for non-pda employment by be-fan · · Score: 2

    Its not an fb driver performance issue, it is the fact that fb is just that, the frame buffer. There are some drivers that implement hardware acceleration for the frame buffer, but others just give you memory area to write to.

    X doesn't use the fb, (well, some versions do, but not normally) but uses user-mode drivers that use hardware acceleration.

    Grub IS in the same position as Lilo. When the PC boots, it first loads the MBR. (In this case, part of GRUB.) Then, GRUB loads the rest of itself and displays the boot menu. Finally, it does stuff like switch into protected mode, etc, and allows you to load a kernel. The fb device isn't actually available until the kernel is loaded, and by then, GRUB is already gone. The only way to do GTK in GRUB would be to compile glib, GTK+, and the kernel fb code into the bootloader. (A scary proposition, since GRUB itself, at 37K is horrendously bloated for a boot-loader.)

    --
    A deep unwavering belief is a sure sign you're missing something...
  13. Re:Will GTK become Yet Another X? by Jeffrey+Baker · · Score: 2

    You understated it. X runs perfectly well on my pentium 60, as well as my Multia, the ass-slowest Alpha machine you can buy. X is even acceptable on my AT&T Safari laptop (386sx-20), after the swapping is over. I don't know why people complain about X being bloated/slow/whatever. It certainly runs on hadrware I wouldn't dare to load Windows 2000 on.

  14. Very nice. by Snowfox · · Score: 2

    This is ripe for PDA development, of course. And if AbiWord, Gnumeric and all could be run on a palm-sized unit, that'd be nothing to sneeze at. :)

    1. Re:Very nice. by Dr.+Evil · · Score: 2

      muLinux was able to cram X on a floppy.

      X Window System VGA-16 server, with fvwm95, Afterstep , wm2 Window Managers, + xfm File and Applications Manager and Chimera WWW Browser for X (1722k)

      http://mulinux.nevalabs.org/

  15. Re:Why? by johnnyb · · Score: 2

    You're still missing the point. Distros are what the users use. And no, distros should not be giving people that much choice. However, as the previous poster said, there is no such thing as too much choice. The user should never have to pick a window manager, that should be done by the distro. The should never decide that they want to use GTK on the framebuffer, the distro should not give them that option. However, saying that there is too much choice is like saying there are too many engines for cars these days. Well, you don't buy an engine, you buy a whole car, all put together. When you get in to engine shopping, you go to a mechanic, who _does_ know the details. Drivers should never pretend to be mechanics, either in driving or in software. However, the mechanics and manufacturers should have as much choice as possible.

  16. playing games when booting? by jaavaaguru · · Score: 2

    Someone suggested that this could be used for playing games when booting. Good idea, but my Mandrake box takes about 30 seconds to boot. It would be more useful to be able to do something like playing GTK Tetris while your new distro is installing. Imagine the screen split in half, with blocks falling down one side and package info scrolling up the other side. Installing takes 30 mins - booting takes 30 seconds. Go think what one you'd rather play a game while waiting on.

    1. Re:playing games when booting? by psergiu · · Score: 2

      Caldera (at least 2.3 used to) lets you play tetris while is installing the files.

      --

      --
      1% APY, No fees, Online Bank https://captl1.co/2uIErYq Don't let your $$$ sit in a no-interest acct.
  17. Re:I'd be impressed... by Anonymous Coward · · Score: 4

    Did you really look at the screenshots before posting this? Take a look at the anti-aliasing of the fonts, rendering of Hebrew and Arabic characters, bi-directional text and other features. I honestly do not think that some other toolkit has been doing this for ages... (anti-aliasing yes, BiDi no)

    Another minor point: Qt/Embedded is released under the GPL (or Qt Professional Edition license), while GtkFB is released under the LGPL. This makes a big difference if you want to develop a commercial application. This difference can be better or worse, depending on your point of view.

  18. Another bites the dust... uhh, by HIghoS · · Score: 2

    joins the Embedded World... *stops playing Queen on his iPAQ and gets back to /.*

    Like someone has allready mentioned GTK != Gnome, and if my memory serves me right, Gnome still requires X in one way or another, here and there.

    But this doesn't surprise me, i've been waiting for this, with the hole, Qt Embedded, QPE, Konqueror Embedded on the iPAQ (and similar handhelds) allready released it was just a matter of time for GTK to finally (i may add) to get the code into CVS, this was allready posted on /. a couple of months ago (GTK Embedded, when the Trolls were talking about Qt Embedded) (PS, it was actually sad, i couldn't find anything on it afterwards besides the plain and simple page that was up, even a search on google turned nothing up)

    But..i doubt i'll be going for the GTK solution (yet again) as the Qt solution is alot nicer for what i plan on doing for the ALFS (Automated LinuxFromScratch) Front-end graphical installer, but that's not a bad thing, at least now i have an even bigger choice when it comes to hacking for small resources/embedded devices! Qt Embedded, GTK Embedded, Microwindows are the three that are standing out so far (well that i have seen :)

    I hope this continues, i'm going to love the next couple of months with the Trolls hiting back with something better then GTK doing the same *winks* (and vise-versa of course)

  19. Re:Will GTK become Yet Another X? by Flavio · · Score: 4

    I'd love to see the architectural disaster that is X go

    Why do people keep saying that X is an architectural disaster?

    I think this is one more example of false ideas that somewhat became mainstream and keep being repeated in a drone fashion.

    Of course X isn't the most optimized application around, but I seriously don't see how it's an "architectural disaster". Most people don't remember that the whole point of X is to run applications in a network environment, even if they're used locally.

    It's fine with me if you don't use even half the functions X has to offer you, but don't call it a disaster because of that.

    Flavio

  20. Re:Jeez.... by johnnyb · · Score: 2

    The GNOME team is working on exactly that - just check out Nautilus and Helix GNOME and Evolution.

    The community shouldn't have a sense of direction. We are all individuals here. Direction should only be maintained (1) with the project maintainers (not the individual developers) and (2) with the dists. They are responsible for cohesion and direction on what they work on. Why should you tell me what I should work on?

    Of course things in Linux look like copies of other things. Most innovation is incremental, not revolutionary. Revolutionary innovation is only practically realizable in incremental changes from the current place. The free software movement has only been really active for a short time, so we are coding to catch up, and then do incremental innovation from there. In the places where we didn't have 20 years worth to catch up, we are far in the lead (webserving, internet services, etc).

    If you want current innovation on the UI front, look at Eazel.

    The GNOME team has done a great job, I use GNOME/DIA/AbiWord as part of my job, and they work wonderfully. And, I'm running them all on a leftover PMac 7300. And I have the free software movement to thank for that.

  21. This _would_ make a damn cool bootloader by StandardDeviant · · Score: 2

    ...esp. what with fb support getting pretty good in the newest kernel. Not that you really need anything more than LILO-ish text, but there's something cool about "select OS, click "boot" to boot" (image button with a boot on it? ;^) ). I am aware that some projects to this effect exist already, but since this is essentially straight GTK+, it makes dev all the easier.

    Actually, this would make writing a highly internationalizable boot loader a possibility, wouldn't it? Well, easier than reinventing your own multillingual wheel anyway.

    And lets not forget that now a bootloader could have tetris in it, just for kicks. :-) Just think, why bother booting the whole OS when you just need to get your Tetris fix?


    --
    1. Re:This _would_ make a damn cool bootloader by 1010011010 · · Score: 2

      I'm not sure how you'd be making a bootloader with GTK+ -- which uses the linux framebuffer, or X.

      - - - - -

      --
      Napster-to-go says "Fill and refill your compatible MP3 player", which is a lie. It's not MP3. It's WMA with DRM.
    2. Re:This _would_ make a damn cool bootloader by 1010011010 · · Score: 2

      And then you boot the first kernel with...?

      - - - - -

      --
      Napster-to-go says "Fill and refill your compatible MP3 player", which is a lie. It's not MP3. It's WMA with DRM.
  22. This is not as suprising as you might think by ajs · · Score: 5

    Gtk+ is a very well designed piece of software. Moving it to xyz platform is actually quite easy compared to most windowing toolkits.

    This is because of a thing called gdk. gdk is the abstraction layer that gtk+ uses to talk to a windowing system. It feels a lot like Xlib, but isn't. The most important differences are: it uses glib's more advanced data structures; it provides more robust error handling and it also permutes the XEvent system into glib/gtk's thread-safe "signal" system (not to be confused with POSIX signals).

    There are limitations, however. gdk must get its fonts from somewhere, so I suspect that this code still requires an X font server. That's not so bad, as xfs is pretty light-weight compared to the X server.

    Personally, I just wish more of the code out there would start using glib and Gnome for things like error handling, internationalization and configuration preservation. Even non-graphical programs can benefit from complying with the Gnome application standards.

  23. X11 and top Re:No overhead savings by StandardDeviant · · Score: 2

    One thing to keep in mind is that, IIRC, X11's memory usage displayed by top includes the portion of the video card's ram it's using (maybe all of it? Somebody mentioned this to me a while back and I never really dug into it.). So while this is memory the process is using, it isn't coming out of your system RAM.


    --
  24. Hmm. by MartinG · · Score: 3

    I am by no means an expert, but it seems there are some bad ideas floating around here.

    Firstly, this is not gtk+ becoming bloated. If it's been done in line with how gtk+ was originally written, the framebuffer support is not actually in libgtk+ but in libgdk. libgdk is a later below the widget set itself, and until now has been a fairly simple wrapper around x primitives. No doubt, gtk+ has also changed because of this but don't expect to see X specific or framebuffer specific or anything else specific code in libgtk+ itself.

    Secondly, I think the article is not correct to say you can now write a gnome app. I might be wrong, but i believe gnome requires X right now which i believe is a design mistake due to lack of orthogonality. (Note: I havent looked at gnome for a long time, so I may be wrong - apologies to gnome developers if so)

    --
    -- MartinG To mail me: echo kewyjlcxyzvjfxbqwh | tr bcefhjklqvwxyz .@adgimnoprstu
  25. Thinking Too Small by gomerbud · · Score: 4

    Ah, but framebuffer GTK+ will never be as cool as Berlin. If you're bragging about its ability to do anti-aliasing and other fun stuff like that, Berlin does cool alpha channel stuff, does IPC using CORBA, and it does Unicode. Its kind of like X, but it really isn't, but it's better.

    Go ahead and flame away. I'm ready for it...

    --
    Kan jeg få en pils, vær så snill?
    1. Re:Thinking Too Small by Gorgonzola · · Score: 4

      Actually, as soon as someone writes a Berlin version of GDK, you will get a Berlin GTK+. GTK+ is not a competitor to Berlin, but it could complement it. Berlin would benefit big time from the capabality to run all those GTK+ applications. If you really think Berlin is so cool, write a GDK implementation for it and the masses will follow.

      --
      -- Spelling and grammar errors tend to be a sign of erroneous thinking.
    2. Re:Thinking Too Small by be-fan · · Score: 2

      Why? GDK IS that plugin system!

      --
      A deep unwavering belief is a sure sign you're missing something...
  26. Re:Will GTK become Yet Another X? by cduffy · · Score: 2
    1. That would make things much more complicated than they already are. Each lib would have proprietary commands for each set of widgets.
    Any reason why a generic IPC-type mechanism couldn't do the trick?

    Only real problem I see is that you'd have to have your widget set installed on the machine with the X server; however, that could be worked around by falling back to a lower-level protocol (ie X as it exists currently).
  27. Re:floating point by cduffy · · Score: 2

    I work for an embedded systems company currently funding some work on gtk+ (Michael Taht's "squashed-gtk", meant for display on tiny screens). I'd be unsurprised if we (or another such company) take the initiative in getting an integer patch done (any reason that such a patch couldn't be merged into the main tree? oh, compatibilty. ugh).

    Frankly, it doesn't strike me as something which would likely be too close to insurmountable (and I've poked at gtk before, though not so recently).

  28. Uhmm by xer.xes · · Score: 2

    I think you're missing the point. GTK+ isn't providing a framebuffer, GTK+ needs a framebuffer now, like SVGA-lib. Looks like GTK+ is going to blow back some life into SVGA-lib. If you want to run non-suid-root binaries that display graphics, I suggest you check out the efforts of the GGI project.

    --
    xer.xes -- 4181
    1. Re:Uhmm by AndroSyn · · Score: 2

      GTK+ isn't going to blow any life back into SVGAlib. The Linux framebuffer is not the same thing as SVGAlib. SVGAlib is a userspace library, that requires root access to do nasty things to your video card(like poking at its IO ports and memory directly). The Linux framebuffer on the other hand is an in kernel device, treated as a character device(I believe a mmap()able character device). So the kernel provides a nice clean interface to the video card, along with security policies of not letting the users do dumb stuff to it, or accessing memory it isn't supposed to. A lot of other UNIX OS's have a framebuffer, Solaris in particular comes to mind.

      The nice thing about this is of course, not needing suid on binaries just to get access to a graphics mode on the video card. There are X servers that utilized the Linux FB right now(XF86_FBDev in XFree86 3.3.x). Of course the drivers that are currently in kernel are not the fastest things on the face of the planet(yet).

      And BTW, the GGI project is basically dead, as their work was pretty much supersceded by the Linux FB.

      PS: Please make sure you understand what your talking about before you go on about people missing the point...

  29. LILO does not have a framebuffer by jfunk · · Score: 3

    Until LILO has a framebuffer (my guess: never), you cannot use this in a boot loader.

    Corel made a graphical LILO replacement, which simply used video memory to draw the graphics. There is no room in the bootsector to load GTK, Qt, or GGI.

    Wow, I'm surprised. Even for Slashdot, there is a lot of misleading and incorrect information here...

    1. Re:LILO does not have a framebuffer by nitehorse · · Score: 2

      Actually, Corel's bootloader was a modified version of GRUB. Check it out sometime, it's pretty cool - although I've never been able to install it properly on any of my systems.

  30. Re:GGI? by 11223 · · Score: 2

    Better yet, why not target to SDL, which supports.... X, the framebuffer, ascii art, Windows GGI, DirectX, BeOS, (OS/2, IIRC), and GGI? Plus, SDL has built-in OpenGL support, which would make writing OpenGL GTK+ widgets/wrappers much, much, easier.

  31. Re:Component reuse and glib in non-graphical progr by shani · · Score: 2

    But glib isn't really that good. I mean, does anybody but me actually read the source?

    For instance, if the system runs out of memory, an error is invoked. Now, the error handler exits with a message by default. I suppose there's some way to change this, but you had better exit, because at least some of the data structures do not check for success/failure.

    In my mind, this means it CAN NOT be used for critical server applications, and probably SHOULD NOT be used for end-user applications.

    Sure, it's nice for some things because of handy hashes, lists and so on, but it's not as well reviewed or specified as the things that Miguel de Icaza is comparing it to, like the standard C library or the POSIX API. (And to be sure, just use Perl or some other scripting language for anything that isn't a critical server application or an end-user application.)

  32. Re:GGI, SDL, Qt by cduffy · · Score: 2

    What games do *you* play?

    'Cuz when I'm playing FreeCIV or gnethack, I sure as heck see widgets. For that matter, when I watch my friend playing Everquest, I see widgets there too. (They're pixmap'd and thus don't look the same, but they're widgets nonetheless).

    I suppose you could have a game without any widgets, but these are much more rare than one might think -- and it's a waste for game developers to write their own widget sets (as I've known more than a few to do, eg for XShipWars).

  33. Re:Will GTK become Yet Another X? by Flavio · · Score: 2

    The X architecture is great in theory for remote administration, but you can't, for example, display a skinned gtk window from an app that's running remotely over a 10baseT network with acceptable performance. It should be the server that does all the drawing of widgets, the client should just run the main functionality of the app and send commands to the server to draw a widget, instead of creating a bitmap of a widget and sending it over the network.

    Notice you're talking 10baseT. That's 1.2 MB/s. I haven't run skinned GTK apps, but I occasionally run adobe acrobat and netscape navigator without any issues (it's a 100baseT, but network usage never goes as high as 1MB/s).

    And in any case, you can use compression on the link (either with SSH or with LBX (lbx is included with practically all distros out there)).

    I partially agree with you that the client should draw the stuff or at least leave that as an option.

    The problems are that:

    1. That would make things much more complicated than they already are. Each lib would have proprietary commands for each set of widgets.

    2. That forces the client to have the widget drawing library of the exact same version. That may strike you as simple, but it'd be a headache to sysadmins out there. Just imagine not being able to run some program because you don't have its library. Or worse, the library's proprietary AND commercial.

    3. The client would use more CPU and RAM than without normal bitmap drawing. This isn't much of an issue today, but at the time X was designed this was absolutely crucial.

    Flavio

  34. Component reuse and glib in non-graphical programs by marnanel · · Score: 3
    Personally, I just wish more of the code out there would start using glib and Gnome for things like error handling, internationalization and configuration preservation. Even non-graphical programs can benefit from complying with the Gnome application standards.

    Well said. Miguel de Icaza made a similar point in his paper, Let's Make Unix Not Suck : in general, component reuse in Linux just isn't happening beyond libc and xlib, whereas this is something that IE actually does right-- it's built of a collection of reusable COM components. Much kudos should be accorded to gtk and friends for having a policy of software reuse that goes beyond the merely graphical.

    It'd probably be offtopic here to consider whether applications which don't share components with others (MdI lists Samba, Apache, NFSD, innd, sendmail, in.named, ftpd, ssh, Netscape, GhostView, XDVI, Acrobat, Mathematica, Maple, Purify, FrameMaker, and Star Office) could or should be redesigned or patched to make use of glib as well; but it's ontopic to agree with you about the benefits of glib's reusability, and indeed to add that the use of glib is IMO something that should be considered carefully if anyone's starting a new project in C.

    --
    GROGGS: alive and well and living in
  35. Good for embedded systems by IGnatius+T+Foobar · · Score: 2

    This would be great for embedded systems where you need to trim the memory footprint down a little bit. For a general-purpose desktop computer, X11 is the way to go, because it's capable of running multiple toolkits, network transparency, direct rendering, and a bunch of other stuff - all at the same time.

    But what if you're building the next Tivo? An embedded Linux system, on which you control the application software which will be delivered, doesn't need that stuff. GTK+ directly to the framebuffer removes some of the guesswork (indeed, with VESA it removes nearly all of it) and would bring about a lower memory footprint and faster time-to-market, while still allowing the developers to prototype the app software on regular GTK+ running on X11.

    Kudos to the innovative GTK developers.
    --

    --
    Tired of FB/Google censorship? Visit UNCENSORED!
  36. Good for X console apps by mav[LAG] · · Score: 2
    This is not only good news for the menus-in-your-boot-login crowd but also for people who don't want the hassle of writing their own widget sets under the console using ncurses or some other toolkit. Single source tree - works under X using Gtk+ or under the framebuffer for those who don't want (or need) X to run. Nice.

    One question though - what about the GDK functions? Will those be transparently wrapped?

    --
    --- Hot Shot City is particularly good.
  37. Berlin: not going anywhere fast. by slothbait · · Score: 5

    You know, I used to follow Berlin. I was hopeful that it might provide the replacement for X within my professional lifetime. I have since given up hope.

    Berlin development is moving at a snail's place. They don't have just a whole lot of people working on it, and I'm not sure they have *anyone* working on it full time. While the attempt is certainly noble, I don't think it's going anywhere.

    More importantly, even if they manage to finish the project and come out with a reasonable, clean replacement for X, how are they going to persuade the industry to use it? There is a ridiculous amount of code written for X. To make any inroads they are going to have to have backwards compatibility with X, in which case they've moved to a new house, but carried the old baggage with them.

    I certainly do not believe the commercial Unix vendors are going to embrace such a new development. Would the free Unix distros be confident enough to break compatibility and go their own way? I don't see the balance of power between open / commercial shifting that quickly. And so far I have seen zero support of Berlin from any commercial entities (even companies like Red Hat).

    If Berlin is used, I expect it will be in "fringe" applications first, not mainline workstations. Particularly, embedded applications might pick it up. They have a much smaller pool of software to tote around, and would probably be happy to have a graphics system nicer, and hopefully smaller, than X.

    To bring this to a close, as "cool" as Berlin's feature sheet may sound, the software is far from complete, is advancing slowly, and will face serious obstacles once it *is* complete. I, personally, have given up hope on Berlin. I do not think it will replace X. My hopes lie instead with XFree86. There is much that can be done in the way of gradually extending X, and deprecating old features. Over time, they can drift X towards a cleaner system, relegating cruft to libraries which get loaded less and less often. This is less inspiring, but probably more feasible.

    Three reorganizations are worth one revolution.

    --Lenny

  38. Not very interesting for non-pda employment by thorsen · · Score: 5

    There's one very common misunderstanding about the framebuffer: Speed. People seems to think that fb is fast because it talks directly to the hardware. It is not. In fact it is so painfully slow that anything resembling normal X resolutions and colordepths will be a horrible experience. Just try running an actual graphical application on fb, it will feel like java on a P166.

    Where it could get interesting is if this would change for the better. There's no reason that the kernel drivers for fb couldn't be faster than they are right now. One problem would of course be that good drivers will have to be written for both X and the kernel where presently the kernel drivers are extremely basic. But when you start wanting 3D drivers, network transparency etc. you'll end up with something just as big as X anyway. (And having X or something of it's size in the kernel seems like a very bad idea.) The reasons for replacing X has nothing to do with speed or memory use.

    When Qt embedded was GPL'ed and later when Konqueror embedded was released, there was a LOT of people talking about running KDE on fb. The speed problem alone makes this unusable for now, but even if this could be solved, KDE classes use quite a lot of X calls to perform as fast as possible. While it might or might not be as big a problem with Gnome, you will still have the situation where you now have two different underlying implementations which is much more awkward than just using X natively.

    One place this will definately NOT benefit is LILO. The framebuffer is implemented by the kernel and LILO is used to load the kernel. This means that there is no way LILO can ever use the kernel's fb implementation. At least not unless someone finishes the kernel-in-bios hack but that's someway off in the future yet.

    1. Re:Not very interesting for non-pda employment by Ian+Bicking · · Score: 3
      But when you start wanting 3D drivers, network transparency etc. you'll end up with something just as big as X anyway.
      I think there's a flaw in this conception. First, network transparency is not the great, unique feature it once was. VNC has a lot of advantages over X, and even if it has flaws (probably performance in certain cases), it is easier to fix than X. Even so, X could coexist with other systems if it was implemented ontop of something like the framebuffer. So you could have your cake and eat it too.

      While 3D drivers would have to be in the kernel, I don't think that's so bad. That doesn't mean OpenGL has to be in the kernel, just the necessary interface to the hardware. Interfacing hardware is exactly what the kernel is supposed to do. Linus just wimped out because graphic hardware is more volatile than most other hardware, and there was a crappy (X) solution already.

      But the reality is that X doesn't have the quality and security that the kernel has. Linux is not stable for me, because it's not uncommon that X blows up for some reason, leaving the kernel happily chugging along while the monitor and keyboard are completely frozen. If you don't run X -- like on a server -- it's easy to have great uptimes. Otherwise...

      Proper abstraction is what is necessary. All of X doesn't need to be in the kernel. Only the part that interfaces the hardware. The rest can be done (safely!) in userspace, as opposed to doing everything (very unsafely!) in userspace as X does.

      The framebuffer doesn't seem to be a good solution. I really think that KGI and GGI provide a solid technical solution. But Linus has been very negative about those projects, unfortunately, and they seem to be moving slowly :-(

  39. floating point by jpc · · Score: 2

    It is nice that gdk has been ported to fb, it will help get all the X depndencies out of it (which made the Windows port so hard). But gtk+ is not really ready for embedded systems as all the widgets are based on floating point. Arm systems (for example) have to emulate this in software so it is going to be really slow unless we write a whole new set of integeer based widgets...

  40. No overhead savings by kentheman · · Score: 3
    Most of the memory overhead in X is due to pixmaps (allocated by applications, not by X self), and memory maps ... So X isn't as bloated as you think, when looking at top(1).

    X runs even on the Compaq iPAQ, so that proves that X isn't bloated...

    --
    ... sometimes I fly with the white swan to my Liffey home.
    1. Re:No overhead savings by be-fan · · Score: 2

      To me, the fact that proves X is bloated is the 20MB of binaries I need to download to run it. I'm sorry, but when BeOS and QNX are doing full scale GUIs (toolkits and all) in a couple of MB, 20, or even 10MB is seriously bloated.

      --
      A deep unwavering belief is a sure sign you're missing something...
  41. GTK+ != GNOME by Black+Parrot · · Score: 2

    \subject... just FYI.

    --

    --
    Sheesh, evil *and* a jerk. -- Jade
  42. Re:GGI, SDL, Qt by be-fan · · Score: 2

    They're not standard GUI widgets. They are custom made in game widgets. They don't use the system GUI code (like GTK+ widgets) but draw their own directly onto the screen. CivCTP has widgets, for example, and it uses SDL. Thus, it must be drawing its own, non? Same thing for Everquest. The widgets aren't just pixmap'd (something that Win32 doesn't allow you to do) but are widgets that use the in-game event handling and drawing code.

    --
    A deep unwavering belief is a sure sign you're missing something...
  43. Re:GGI, SDL, Qt by cduffy · · Score: 2

    That's right, and it's a waste.

    I'd much rather see game designers using standardized widget sets where possible. (Incidentally, some game-targeted pixmap-capable widget sets are available for SDL, the windows port inclusive).

    I never said games used /standard/ widget sets, just that they use widget sets. That they don't frequently use standard ones is unfortunate, as it's Yet Another Task that game programmers have to do. (And there /are/ still games like {Free,}Civ where standard widget sets are used... your blanket "games don't use widget sets" is wrong even if reinterpreted to refer only to standard widget sets).

  44. GGI, SDL, Qt by jfunk · · Score: 4

    GGI, SDL, and Qt have been doing this for quite a while. Actually, when the framebuffer was added to the kernel (a long time ago) documents popped up about how to treat it like DOS int 13.

    SuSE and Caldera's installers use Qt under the framebuffer.

    Personally, I think SDL is a better fit than GTK for games. I downloaded the CivCTP 1.2 patch and the release notes mentioned that you can run it from the console now without X. It's experimental, though.

    1. Re:GGI, SDL, Qt by be-fan · · Score: 2

      I never said games used /standard/ widget sets, just that they use widget sets.
      >>>>>>>>>>>
      Sorry, "widget set" is a *NIX term, and when someone says it, the first thing I think of is GTK+, Qt, or somesuch thing. I think for games the appropriate term is "UI chrome" ;)

      That they don't frequently use standard ones is unfortunate, as it's Yet Another Task that game
      programmers have to do
      >>>>>>>>>>>>>>>
      Maybe, widget sets often CAN'T be used. For example, any windows game that uses DirectDraw or Direct3D cannot use the system widget set since everything except low level primatives don't work on DD surfaces. Also, using system widgets sets makes the game much less portable.

      And there /are/ still games like {Free,}Civ where standard widget sets are used... your blanket "games don't use widget sets" is wrong even if
      reinterpreted to refer only to standard widget sets
      >>>>>>>>>>>>
      Who cares about FreeCiv? If only .001% of a group does soemthing, it really isn't worth using the qualifier "most." EX. The statements "People don't castrate themselves on purpose" and "Most people don't castrate themselves on purpose" are functionally equivilant. Sure, it's a blanket statement, and some people DO castrate themselves on purpose, but the number is so small, it's not worth mentioning.

      BTW: Unreal also uses the system widgets, but only in some screens.

      --
      A deep unwavering belief is a sure sign you're missing something...
    2. Re:GGI, SDL, Qt by be-fan · · Score: 2

      What exactly is your arguement? Sure game's use widget sets, but most use their own, custom ones, or derive one from something like SDL. My point is that most games don't use *standard* widget sets (the initial post was about GTK+, remember?) and most major commercial ones don't even use pre-made ones, but make their own in order to suit the mood of the game. Also, a widget set for a game isn't exactly the most challenging task, since they are simplistic and totally overshadowed by engine design.

      --
      A deep unwavering belief is a sure sign you're missing something...
  45. Another screenshot by jrb · · Score: 3

    Alex just posted another screenshot to gtk-devel-list. This one is of dia, and is a little more interesting then the ones above.

    http://www.lysator.liu.se/~alla/files/diafb.png

  46. Wrong. by Sabalon · · Score: 2

    The framebuffer console is the replacement to SVGAlib. Instead of using SVGAlib as a means of doing graphics on the console outside of X, you can now just draw on the framebuffer console.

    GTK+ sits on top of the framebuffer console...if there were no fb, GTK+ would then have to sit on top of SVGAlib. GTK does not use your video card directly as you said above. The framebuffer does.

  47. Re:Obviously the screenshots aren't very special.. by Chanc_Gorkon · · Score: 2
    You wrote: Every font is anti-aliased, as are many of the lines, etc.

    How can you guys tell that this stuff is anti-aliased?? I personally, from the screenshot, can't tell. Remember, screenshots can be doctored because they are just another image file. On the other hand, it wouldn't surprise me one bit if I saw anti-aliasing in both this and X in all of the new 2.4 distros bound to be coming RSN since 2.4 is out!

    --

    Gorkman

  48. the gimp, GTK apps on OS X? by option8 · · Score: 3

    GTK rendering without relying on X.. is that a step towards something like porting GTK to aqua, as is necessary to run the Gimp and other GTK apps natively in OS X?

    there's a short but informed discussion of such efforts at macgimp.com and i wonder if anyone here might be able to shed some light on whether this is helpful in that effort...

  49. Will GTK become Yet Another X? by mdb31 · · Score: 3
    While I see why this development is cool and might solve performance problems for some individual applications right now, I''m not too sure about the long-term gains for all users here. Consider the following:

    1. As long as there are still 'legacy' X apps, you'll need to run X anyway;

    2. If GTK+ gets 'enhanced' to do some handy things X does right now (like, oh, IPC/RPC-based stuff), won't it just become another X, minus the compatibility with zillions of existing apps?

    Don't get me wrong, I'd love to see the architectural disaster that is X go, but I'm not too sure that GTK+ is the right way to achieve this...

    1. Re:Will GTK become Yet Another X? by Ian+Bicking · · Score: 2
      Most people don't remember that the whole point of X is to run applications in a network environment, even if they're used locally.
      Network transparency is just not a difficult enough thing to achieve to suffer the complexity of X. I mean, do you want to make your X server open to the entire Internet? No, of course not -- that's an incredible security hole. So what's the point? What network environment are you talking about? Your local LAN? That makes X worth it? Access from trusted computers is the same as a "network environment"?

      X does many things, and it does them all poorly. VNC is simpler and more robust for working over the network. 3D is patched on. Can you do 3D reasonably over the network? It's not very stable -- a rogue app can effectively kill the server (even if it's not supposed to). It doesn't do fonts well, so people are making systems that entirely ignore the X font system. The clipboard is lame...

      What does X do well?

    2. Re:Will GTK become Yet Another X? by jfunk · · Score: 2
      Can you do 3D reasonably over the network?


      Yep. That's what GLX is for.

      From http://dri.sourceforge.net/glossary.html:

      X11 is a networked windowing system. Your client and your server might be on different machines. GLX packages up OpenGL commands into network packets, spits them across the X11 network pipe, then unpacks them at the other end. This lets you run accelerated 3D remotely: the client could be a simulation on a mainframe, the display could be your desktop machine in your office. GLX does a number of other X11 related things that couldn't be packaged into OpenGL.
  50. Obviously the screenshots aren't very special... by Jeremiah+Cornelius · · Score: 5
    If the screenshots don't seem special, you haven't looked closley enough!


    Every font is anti-aliased, as are many of the lines, etc.<p>
    I also see that the test is not only multi-lingual, but there is advanced <b>BiDi</b> and unicode support with dynamic keyboard re-binding. This evidenced by the Hebrew and Arabic in menus, forms and text fields.<p>
    I think that this means that Pixbuf and Pango are along farther than I thought, and that a simple lib swap gets about any Gtk+ app/library running on the fb.<p>

    --
    "Flyin' in just a sweet place,
    Never been known to fail..."
  51. What about window management??? by SpinyNorman · · Score: 2

    No X = No X Window management.

    Is this just meant for (a single) full screen app?

  52. Re:I waited for that a long time by Guy+Harris · · Score: 2
    But this is pretty cool for platform with no X, or for ports (say BeOS, or Mac OS X).

    For ports, "this", in the sense of GTK+-fb, isn't relevant; what's relevant is that ports can be done, to a large extent, by changing the GDK layer, rather than by changing stuff all over GTK+.

    I think the Win32 port, which antedates the frame buffer port, was also done largely at the GDK layer.

    There are people working on a BeOS version of GTK+ - there's a GTK+ for BeOS page on the GTK+ Web site, and somebody's been sending patches to the gtk-devel mailing list.

  53. Re:Good news by Sesse · · Score: 2

    Good thing there's no such thing as "X Windows" then... Go read your man pages, call it either "X", "X Window System", or basically just about anything else. There's nothing called "X Windows". :-P

    /* Sesse */

    --
    (This comment is of course GPLed.)
  54. Re:GUI by puetzk · · Score: 2

    most of that memory is pixmaps that the server is holding on behalf of the other apps on your system.

    so, the earlier poster is correct when he talked about 'memory wrapped up in the X process'

    --
    The Matrix is going down for reboot now! Stopping reality: OK. The system is halted.