GTK+ without X! 191
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.
Re:the problem with UNIX is the languages (Score:2)
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.
Re:To X or not to X? (Score:1)
Perhaps, but that's not the point.
Things like GTK and QT help lever programs away from the X server. Change just those and all the layers above will not notice the difference.
Not all X applications use GTK or QT, or even toolkit libraries at all! Any "X-killer" will have to accept connections from X clients. So it will have to know the X Protocol [x.org], in addition to any new "gee-whiz" features the "X-killer" has.
GTK+ replacing SvgaLib (Score:5)
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...
Re:GUI (Score:1)
other *nix users ? (Score:1)
Re:GGI, SDL, Qt (Score:3)
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)
Berlin (Score:1)
First, one should realize that it overlaps with more than just the X server.
Berlin is different in that, unlike X, it doesn't communicate between client-app and the server by pushing pixels around. It's the responsability of the server to create a decent (looking) ui, based on the calls the app makes. The fact that those calls are made using CORBA, means they're network, and language independent (perl anyone?).
Using corba shouldn't be scary, in fact, Berlin is much lighter on bandwith in the case of remote display.
A Berlin app can choose the level of abstraction it needs... Some apps might choose/need to draw low level primitives, while others would want to be able to position widgets themselves, while even others just don't need/want to occupy themselves with how something might look, and just tell the server a specific "task", and let it handle it. If you want to get even higher than that, you should take a look here:
http://www.bucksch.com/1/projects/berlin/OOUI/
Why all these levels? Well, the higher level you go, the more freedom you give the server to implement a certain function in a particular way. For instance, a color picker might be almost unnecessary on a palm, and I can't think of better use of a 3d environment than mapping a 2D ui on a texture and displaying it in 3D. As i said it's up to the server (or one of its plugins)
Portability to totally different platforms doesn't always make sense; for instance, it wouldn't make sense to try to force 3d apps/models/vertices and the like in a palm; So if an app wants to use 3d models, it has to create them using a lower level 3d "kit" (which is just another server plugin). That way, the app writer can choose the trade-off.
Other things that I find important are: the resolution-independence (why are >1600x1200 or 640x480 displays almost unusable without heavy adjustments?); the fact that the policy is defined on the server (am i the only one that thinks "meta-theming" - making theme "packages" for different toolkits that go together - is a kludge)
Where does Gtk+ come in? Right now, Berlin sits on top of lower level graphic libraries (libart+ggi, opengl, others are possible). recently it's been possible to use GGI inside Berlin too... so that makes it: GGI on Berlin, on GGI on FB/X/glide/whatever (btw libGGI 2.0 will be out soon). Knowing this there would be 2 different ways of porting GTK+:
1) port GTK+ to GGI - additional benefits are that you get a whole lot of GGI "targets" gtk+ would work on. From what i hear GDK is pretty easy to port.
2) intercept the gtk widget creation calls and map them to the Berlin widgetkit. Advantage: gtk apps would blend in pretty well with real berlin apps, and have all berlin's advantages of being higher level and pixel independent. Disadvantage: i would think it would be _alot_ harder to do.
I guess the difference between the two is a bit (tiny bit) similar to the difference between Wine (api reimplementation) and running plex86 to run windows itself.
Now if Berlin's so great, why hasn't it taken off yet. Unfortunately, the best doesn't always win. DPS for X isn't there yet (dps.sourceforge.net), despite the fact that it's "proven to be good" by for instance MacOSX. (okay it's not entirely thesame but you get my drift)
A major problem with Berlin is that to explain the advantages, you have to write as much as i did just now. Once you know the advantages, it seems obvious that this is the way to go, but as i said, even the people who are interested don't always understand the advantages about it immediately. That means that few developers actually get into it, meaning slow progress and no critical mass yet.
Otoh, the fact that it has gone on for all these years, even when new good-looking ui tech came out, and that the developers still aren't giving up on it at all, proves that a) they're fools or b) they're onto something.
I definately don't think these people are fools. I believe it's one of the few OSS projects that is actually really innovating.
Re:Berlin (Score:1)
For instance, a color picker might be almost unnecessary on a palm, and I can't think of better use of a 3d environment than mapping a 2D ui on a texture and displaying it in 3D. As i said it's up to the server (or one of its plugins)
should be "...
for instance, a color picker might be almost unnecessary on a palm, and should be replaced on the server by something simpler, and I CAN think of better use of a 3d environment than mapping a 2D ui on a texture and displaying it in 3D.
You don't need root to use the framebuffer (Score:2)
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.
Re:playing games when booting? (Score:1)
Re:Will GTK become Yet Another X? (Score:1)
Thank you! I'm typing this running X over my wireless network, I love X's remote capabilities. Furthermore, Xfree is certainly going in the right direction and isn't as bloated as is made out, anyone that hasn't really investigated xfree's efforts and is stating such anti X feelings certainly hasn't seen the progress thats been made.
For sure, X could be better in the speed department but what couldn't? It will always have to do things that a games console for example doesn't have to do (e.g. remote displays) but it's certainly NOT painful to use.
Re:Will GTK become Yet Another X? (Score:1)
--
the problem with UNIX is the languages (Score:3)
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.
Re:Will GTK become Yet Another X? (Score:1)
--
Linux: not going anywhere fast. (Score:2)
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.
--
this is great, but won't replace X11 (Score:2)
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.
Re:GTK+ replacing SvgaLib (Score:2)
So yes, it's nice for a simple graphics appplication, but nothing more then that...
Re:Berlin: not going anywhere fast. (Score:2)
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.
Re:Linux design in general (Score:1)
Actually, "GTK+" is the correct name for what you're calling "GTK". GTK+ lays atop GDK. The "+" is documented in the GTK+ FAQ:
GGI? (Score:1)
GGI [ggi-project.org] - the general graphics interface is a graphics API that supports multiple targets, including X, the framebuffer, ascii art rendering, and recently, an experimental MS windows DirectX target. Using a wrapper library would seem like a better idea because of the portability. There is an old GGI demo disk lying around somewhere showing that you can fit Linux+GGI in 1.4 megs).
Re:GGI, SDL, Qt (Score:2)
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!
Re:Linux design in general (Score:1)
EyeCandy is the effort of the application...
I waited for that a long time (Score:1)
In any case, reducing dependancies is nice.
(Extra bonus. As a X hater, this is good news [I don't really hate X per-see, but I hate the window manager concept, mostly because there are so much to choose from, and none correctly working out of the box, IMHO])
Cheers,
--fred
Re:That is pretty nice!! (Score:1)
If anything else is f*cked up in some way, the text console is my friend!
Also, what if the grafixlibs suddently are corrupt on boot, then what? The console is supported by the lowest lowlevel grafixmode, thus it is almost failsafe.
The console as president!
Re:Will GTK become Yet Another X? (Score:2)
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)
Re:GUI (Score:1)
Yes, but X doesn't take that much space actually. It's GTK and GNOME that take up all your RAM (and HD).
Re:GGI, SDL, Qt (Score:2)
>>>>>>>>>>>>>
Uh, games don't use graphical widgets!
Re:Uhmm (Score:1)
Re:Not very interesting for non-pda employment (Score:2)
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.)
Re:Framebuffer not faster on most cards (Score:1)
Re:Will GTK become Yet Another X? (Score:2)
Re:You don't need root to use the framebuffer (Score:1)
I *like* to have different framebuffer-based apps on different consoles.
Re:No X, no X security holes (Score:1)
Re:Berlin: not going anywhere fast. (Score:1)
I think this has already been done. If Berlin is still planning to use the GGI library, one could just run XGGI.
Boot the first kernel with... (Score:1)
Tetris on drugs, NES music, and GNOME vs. KDE Bingo [pineight.com].
GUI (Score:1)
Re:Linux design in general (Score:1)
However, this does not mean that graphic design is irrelevant. It is very satisfying to look at good design. Making conscious choices with regards to design can be very challenging and is as much as a task / artform as programming itself. This is why an entire design industry exists.
This is terribly off topic, but the lack of what I consider good design is one of the things that turned me off of linux after using it ~2 years. Then again, on the converse side of the monetary unit, BeOS has what I consider good design, but not all the functionality in a web browser that I desire..
Very nice. (Score:2)
Re:GTK (Score:1)
Gtk+ on VNC (Score:1)
So could I surf on my Windows desktop at work looking at vncviewer running on my Linux desktop at home running on top of Gtk+/VNC displayed on my TV while sitting on my couch? (In the house that jack built)
Re:Linux design in general (Score:1)
Worry not, the new default GTK+ theme will look better, and be more customizable (IE up/down arrows on both sides of a scrollbar w/out using a hack).
He who knows not, and knows he knows not is a wise man
Re:playing games when booting? (Score:1)
--
Re:the problem with UNIX is the languages (Score:2)
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.
Re:Why? (Score:2)
playing games when booting? (Score:2)
Re:I'd be impressed... (Score:4)
Did you really look at the screenshots [lysator.liu.se] 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.
Another bites the dust... uhh, (Score:2)
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
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)
Re:Will GTK become Yet Another X? (Score:4)
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
Re:Jeez.... (Score:2)
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.
This _would_ make a damn cool bootloader (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?
--
This is not as suprising as you might think (Score:5)
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.
X11 and top Re:No overhead savings (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.
--
Hmm. (Score:3)
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)
Thinking Too Small (Score:4)
Go ahead and flame away. I'm ready for it...
Re:Will GTK become Yet Another X? (Score:2)
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).
Re:floating point (Score:2)
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).
Re:This _would_ make a damn cool bootloader (Score:2)
- - - - -
Uhmm (Score:2)
LILO does not have a framebuffer (Score:3)
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...
Re:GGI? (Score:2)
Re:Component reuse and glib in non-graphical progr (Score:2)
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.)
Re:GGI, SDL, Qt (Score:2)
'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).
Re:LILO does not have a framebuffer (Score:2)
Re:Will GTK become Yet Another X? (Score:2)
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
Component reuse and glib in non-graphical programs (Score:3)
Well said. Miguel de Icaza made a similar point in his paper, Let's Make Unix Not Suck [helixcode.com] : 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.
Good for embedded systems (Score:2)
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.
--
Good for X console apps (Score:2)
One question though - what about the GDK functions? Will those be transparently wrapped?
Re:Very nice. (Score:2)
muLinux was able to cram X on a floppy.
http://mulinux.nevalabs.org/ [nevalabs.org]
Berlin: not going anywhere fast. (Score:5)
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
Re:Thinking Too Small (Score:4)
Re:playing games when booting? (Score:2)
--
Not very interesting for non-pda employment (Score:5)
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.
floating point (Score:2)
No overhead savings (Score:3)
X runs even on the Compaq iPAQ, so that proves that X isn't bloated...
Re:GTK+ replacing SvgaLib (Score:2)
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+".
GTK+ != GNOME (Score:2)
--
Re:GGI, SDL, Qt (Score:2)
Re:Thinking Too Small (Score:2)
Re:No overhead savings (Score:2)
Re:GGI, SDL, Qt (Score:2)
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
Re:Not very interesting for non-pda employment (Score:3)
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 [ggi-project.org] provide a solid technical solution. But Linus has been very negative about those projects, unfortunately, and they seem to be moving slowly :-(
GGI, SDL, Qt (Score:4)
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.
Another screenshot (Score:3)
http://www.lysator.liu.se/~alla/files/diafb.png [lysator.liu.se]
Re:Uhmm (Score:2)
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...
Wrong. (Score:2)
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.
Re:Obviously the screenshots aren't very special.. (Score:2)
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!
the gimp, GTK apps on OS X? (Score:3)
there's a short but informed discussion of such efforts at macgimp.com [macgimp.com] and i wonder if anyone here might be able to shed some light on whether this is helpful in that effort...
Will GTK become Yet Another X? (Score:3)
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...
Obviously the screenshots aren't very special... (Score:5)
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>
Re:GGI, SDL, Qt (Score:2)
>>>>>>>>>>>
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
reinterpreted to refer only to standard widget sets
>>>>>>>>>>>>
Who cares about FreeCiv? If only
BTW: Unreal also uses the system widgets, but only in some screens.
What about window management??? (Score:2)
Is this just meant for (a single) full screen app?
Re:Will GTK become Yet Another X? (Score:2)
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?
Re:I waited for that a long time (Score:2)
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 [user.sgic.fi], 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 [gtk.org] on the GTK+ Web site [gtk.org], and somebody's been sending patches to the gtk-devel mailing list [gnome.org].
Re:Good news (Score:2)
/* Sesse */
Re:Will GTK become Yet Another X? (Score:2)
Yep. That's what GLX is for.
From http://dri.sourceforge.net/glossary.html [sourceforge.net]:
Re:This _would_ make a damn cool bootloader (Score:2)
- - - - -
Re:GTK+ replacing SvgaLib (Score:2)
Re:GGI, SDL, Qt (Score:2)
Re:the problem with UNIX is the languages (Score:2)
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.
Re:GUI (Score:2)
so, the earlier poster is correct when he talked about 'memory wrapped up in the X process'