[gold-devel] New ideas for Gold

Justin Hibbits jrh29 at alumni.cwru.edu
Thu Apr 2 09:09:31 EDT 2009


On Wed, Apr 01, 2009 at 11:13:20PM -0400, ADAM David Alan Martin wrote:
> 
> On 2009.04.01, at 15:45, Justin Hibbits wrote:
> 
> > It's that time again, folks -- time to redesign Gold yet again.   
> > This time, I'm
> > trying to solidify goals for it, and let the design fit the goals,  
> > instead of
> > the goals fitting the design.  First, my ideas for the new design --
> >
> > 	- Take FreeBSD -CURRENT, and make it the base for Gold.  This  
> > would give us
> > 	a platform to work with that's both high performant and  
> > standardized, so
> > 	stable.
> 
> 	No disagreement here.  LSD is relegated to my fun project.  Maybe  
> it's v2, maybe it drops in for v1, maybe nothing at all.  FreeBSD- 
> Current lets us make it use *NIX tools too.
> 

Precisely.  I'm not giving up on the ideals of LSD, or the intents of Gold as
they've matured these last several years.  I'm only giving up on it being the
up-front solution to world hunger, AIDS, and communism.

> > 	- Move libSystem to be a library on top of FreeBSD's system core  
> > (libc,
> > 	  		libthr, libm, etc).
> 
> 	Agreed.  We have focused so much on reinventing the wheel, instead  
> of building the rocket that the truck will take to the launching pad.
> 

It's time to build that rocket.  First we need to build the flatbed trailer for
the truck, but that's a lot easier than trying to build a diesel engine from
scrap metal shavings.

> > 	- Include Apple's AutoZone, the automatic garbage collector  
> > library, Apache
> > 	licensed, which makes it awesomely usable.
> > 	- Basically, make Gold a "better Darwin" -- a complete system from  
> > the core
> > 	all the way up, focusing on high performance, usability, and  
> > flexibility.
> 
> 	These are good ideas.
> 
> > Now, the goals:
> >
> > 	- High performance -- Saying it's a "better Darwin" means I want  
> > it to not
> > 	hit the same pitfalls -- fork() cannot take half a lifetime.
> 
> 	We get this for free with FreeBSD, I think, right?

Yes we do.  I was taking a cheap shot at Darwin/OS X.  FreeBSD gives us a solid
foundation from which to work, and is relatively easy to extend as well.

> 
> > 	- Usability -- OS X made a lot of really good changes for  
> > usability, that I
> > 	think should be incorporated, but those should be guidelines, not  
> > hard
> > 	rules.
> > 	- Saying that, Flexibility is final -- OS X is usable, but it's  
> > not at all
> > 	flexible.  KDE is flexible and usable, GNOME is usable and  
> > inflexible,
> > 	Windowmaker is flexible but not too usable for the populus.
> 
> 	These are good.  Starting on UNIX with X11, and building what we  
> want over this, then filling in holes underneath, will be good.   
> Build the visible parts first.  Then fill in the guts.

That's exactly what I want to achieve now.  I've spent the better part of 5
years working on libSystem, and have only a Cocoa wannabe to show for it.  It's
time I redo the necessary parts, and make it more flexible on FreeBSD.

> 
> > 	- Use the right tool for the job.  I like Objective-C, but it's  
> > not the
> > 	perfect solution to everything.  Python makes sense a lot of the  
> > time, even
> > 	C++ is necessary sometimes.  I've gotten so caught up with the  
> > Objective-C
> > 	bandwagon, that I've been blind to the features of C++ that are  
> > quite nice.
> 
> 	Yeah.  It's easy to get caught up in a pet tool of  
> $MY_FAVORITE_LANGUAGE.  Look at how I abused Cpreproc, to make OOPC.   
> C++ gives you a lot of these things at a good enough point.  You and  
> I like to reinvent wheels.  Our Gold project has become a big  
> collection of half-completed, reinvented wheels.
> 
> > Questions, comments, snide remarks?
> 
> 	Always.  How do you feel about eventually replacing X11 with another  
> gui layer?  And replacing other stuff too?  Let's not close the door  
> on the projects to reinvent wheels.  Reinventing wheels is fun.  But  
> I suggest that we focus on the goals we want, and rip-and-replace,  
> when reinventing wheels.  Our Gold idea has grown in scope creep from  
> write a better Linux and a replacement compiler to reinvent OSX from  
> the ground up right.  We've learned a lot, and shouldn't abandon  
> these plans, just accept that we did bite off too much.  We also have  
> had trouble getting traction in the department of new developers.  We  
> had a few people working on HUGE swaths of systems in spare time.  We  
> can't get critical mass that way.  Also the current state of the open- 
> source movement is "not-windows" and not "do it right", so we have  
> trouble there too.  The "excitement" is in doing what M$ hasn't yet  
> done, or just did, for free.

"Not Windows" -- that's how you spell Linux and Free Software.  The way I see
it, there exist precisely three camps in the Open Source world -- Those who want
to make things "like <something else>, but not", those who want to clone
something else (ReactOS, Haiku), and those who think UNIX is the end-all of
operating system design.  All three have flaws when it comes to experimentation,
but from what I can see, FreeBSD is the most receptive of all systems for new
ideas at the core level, as you can see with their attempt with KSE.  The Free
Software desktops have a lot to be desired in this regard.  GNOME will only
import stuff if someone else (Apple) has done it already.  KDE will only import
stuff if it has Das Blinkenlights.  And the others are barely worth mentioning.
Face it, X sucks, X desktops suck, and to quote a presidential candidate's
phrase:  Lipstick on a pig won't solve our problems.  X will be our jumping
point, with Cairo at the helm for interfacing with it.  However, I intend to
design the Gold UI platform such to be agnostic to the backend as much as
possible.


> 
> Now rip my remarks apart.
> --
> ADAM David Alan Martin

Now, saying everything I've said, I do not intend for Gold to be portable by raw
design, just by happenstance.  I'm not going to go out of my way to make it run
on the x86, because I run only powerpc as my development workstation.  If it
runs on x86, then fine, but I want it to be solid, stable, and fast on powerpc.
The Intel ISA may be here to stay for 20 years, but PowerPC has not lost its
edge.  New boards can still be purchased for under 600USD, so those will be in
my scope, as well as the G4, G5, and PowerStation.  If I'm so inclined, perhaps
also the POWER6 workstations, but I have no money to buy those.

- Justin


More information about the gold-devel mailing list