A new Mega Tokyo Community OS

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
DennisCGc

Re:A new Mega Tokyo Community OS

Post by DennisCGc »

Hello,
Brendan wrote:
I'm skeptically optimistic, in that I've done it before with a small team without many problems - me and 2 others, where I did most of the programming and made design descisions, and they provided support, suggestions, testing, bug checking and a little code.
The main problem is that, comparing your situation with this:
1. this community is bigger,
2. if I might guess, you know the team, you used to work with, personal, and yeah, if a developer gets interested in an OS, it is most likely he likes the design.
And 3. The people here are totally different with their OS design. Some people are creating complex and totally weird (being positive here) choices.. like Pype does with his Clicker OS and OTOH you have people who wants to get things as fast as possible done and end up creating a DOS clone (with multitasking, if needed). Both are still having fun though.
4. You were designing the OS, the other 2 were just testing. The desiging part is what I was aiming for in my previous post. Sorry if I was unclear in my prev. post.
To me the largest pitfall is true democracy - a good discussion followed by a final descision can help to avoid problems, while a lengthy debate with no clear majority can stall a project indefinately.
And unfortunately the latter will happen in this case, with a huge community. Like I said before, if a developer gets interested, he likes the design. I don't like some designs here, and some people don't like my design.

In overall; I like my one-man project. Of course, people are allowed to make suggestions, or may ask questions about why I chose to do 'foo' instead of doing 'bar'. But, I'm allowed to silently ignore the suggestions ;-)

DennisCGc.
dh

Re:A new Mega Tokyo Community OS

Post by dh »

I am going to pick apart parts of the ideas. Feel free to skip this post :D, but you will be missing opinion.

@brenden: Ummmm. How exactly do you plan on mixing licenses as proposed in your ... proposel? The GNU GPL has this annoying thing where code linked to a GPL'd product must be GPL (please correct me if i am in error :D). Also, being partly Opensource; how do you plan on maintaining control? I'm not questioning nor flaming (gawd help me after the GRUB thread), but I'm trying to get a realistic/legal point of view of your plan (becaus when I read it, it seems a bit "off"). If you care to read further, I think you are setting yourself up for some trouble:
Q) For security reasons and intellectual property protection, source code for key system components will use a commercial (or closed source) style of licence. Where possible all remaining components will be open source (either public domain, BSD licence or LGPL). All binaries will initially be distributed for free, however there is nothing to prevent the OS from becoming a commercial product in the future.

R) Because I've already done most of the boot code and most of the design work, I will take on the role of "project leader". I will create specifications for project members to follow, proof read code and intergrate the code into the main source code repository. Due to the huge amount of effort on my part, I will assume full control over what is and what isn't integrated into the project (to ensure that each component is of high enough quality and that there are no incompatibilities between components).

S) Because of items P, Q and R, I will also take on the responsibility of developing all key components. Key components will include the boot manager, the "CPU detection" boot module, the scheduler, the IPC code and the virtual file system (but this list may be expanded at a later date if deemed necessary).
Firstly, (Q) makes little sense to me. Windows is closed source, and is also (afaik) the most unsafe. Linux is one of the most secure, yet is 100% free! I think[/hope] Solar will agree with me on this, but security by obsecurity is not very secure. Having "commerical" components is like saying (in my mind) "let's give the community some basics, and the already rich mongers everything else". The reason for this is because if you license the commerical stuff from a company: They make money. You license to a company: the phrase "buy low, sell high" comes to mind. Your best off leaving everything open completely or closed completely.
One more little thing: I'm no lawyer, but you may have a wee bit of trouble stopping infrigement on your stuff if the boundary between open and closed is not well defined (ie. explicit markings).

Now for (R) and (S). You are setting yourself up for a _LOT_ of work. Don't bite off more than you can chew. I recommend you space work out a bit more where possible. Also, the way you phrase it makes me feel like you one of thoes "you do the work, i take the result people" (ie. some ROM Hacker wanna'bes :P). I don't doubt you are not one of these people, but be carefull how you word things like that :D.

Cheers, hope my two cents is not absent minded but helpfull, DH.
Warrior

Re:A new Mega Tokyo Community OS

Post by Warrior »

Dragon_Hilord wrote: The GNU GPL has this annoying thing where code linked to a GPL'd product must be GPL (please correct me if i am in error :D)
I'd only open source the updated versions of the GPL code itself, it's the way I'd interpret "derivative rights" in the license.
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re:A new Mega Tokyo Community OS

Post by Solar »

Wrong.

If you ship a binary that is created partially from GPL code, all sources to the binary fall under GPL.

If you ship a binary that is created partially from LGPL code, and provide unlinked versions of "your" code so anyone could modify the LGPL code and relink the binary, only then you get away with a proprietary license to "your" code.

It doesn't matter how you interpret it, the FSF has got it pretty much covered.
Every good solution is obvious once you've found it.
Warrior

Re:A new Mega Tokyo Community OS

Post by Warrior »

Solar wrote: If you ship a binary that is created partially from LGPL code, and provide unlinked versions of "your" code so anyone could modify the LGPL code and relink the binary, only then you get away with a proprietary license to "your" code.
Wait, so you use LGPL code in an application and you only need to provide enough code to make the application compile? Ergh I thought you only provided your updated/edited versions to the public upon request. That seems sort of silly.
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re:A new Mega Tokyo Community OS

Post by Solar »

I'm not sure I got you there.

You have a main.c (your code), a library.h and a library.c (LGPL code).

If you compile that to myprog.exe and ship that, your main.c falls under LGPL (meaning you're obliged to provide main.c in source).

In order to avoid that, you have to provide - additionally or instead of myprog.exe - a main.o, which allows people to modify the library.c and relink myprog.exe with the modified version.

In the case of a "pure" GPL library.h / library.c, the whole point is mood - main.c falls under the GPL, period.
Every good solution is obvious once you've found it.
User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

Re:A new Mega Tokyo Community OS

Post by Brendan »

Hi,
Dragon_Hilord wrote:@brenden: Ummmm. How exactly do you plan on mixing licenses as proposed in your ... proposel? The GNU GPL has this annoying thing where code linked to a GPL'd product must be GPL (please correct me if i am in error :D).
The proposal states "either public domain, BSD licence or LGPL". AFAIK none of these licence are as restrictive as GPL. These examples were chosen deliberately, so that anyone could use it for any purpose, which is more useful for Mega-Tokyo members because not everyone uses the GPL licence for their own OSs.

To be honest, I'd prefer most things to be "public domain" (a "do anything you like, but no warranty" licence), but this is something that should be discussed. Of course if someone wants to write an entire binary module, then they could choose any licence they like for their module (just like if you write an executable for Windows or Linux you can use any licence you like).
Dragon_Hilord wrote:Firstly, (Q) makes little sense to me. Windows is closed source, and is also (afaik) the most unsafe. Linux is one of the most secure, yet is 100% free! I think[/hope] Solar will agree with me on this, but security by obsecurity is not very secure. Having "commerical" components is like saying (in my mind) "let's give the community some basics, and the already rich mongers everything else". The reason for this is because if you license the commerical stuff from a company: They make money. You license to a company: the phrase "buy low, sell high" comes to mind. Your best off leaving everything open completely or closed completely.
Some of the closed source components would be closed source to protect my own intellectual property (and, um, security I guess). Some of the techniques I've developed shouldn't be given to someone like Microsoft so that they can get richer, patent it and sue me for using it. Not protecting my intellectual property would be like saying "let's give the community some basics, and the already rich mongers everything else". The closed source components would still cost people nothing to use, and almost all of the "closed" source code will be online as HTML pages.

Other reason for closed source components to exist include things like trusted computing and non-disclosure agreements. I don't like these things, but for the OS to be successful in the long term they need to be considered.

Fortunately, anyone will be able to write their own version of any (or all) of the closed source modules, I'm willing to write open source versions for educational purposes, and the interfaces between components will be always be open. That is the best part about the modular design - anyone can replace anything at any time with anything they like.
Dragon_Hilord wrote:Now for (R) and (S). You are setting yourself up for a _LOT_ of work. Don't bite off more than you can chew. I recommend you space work out a bit more where possible. Also, the way you phrase it makes me feel like you one of thoes "you do the work, i take the result people" (ie. some ROM Hacker wanna'bes :P). I don't doubt you are not one of these people, but be carefull how you word things like that :D.
For (R), the intent is quality control. I don't want something that is full of bugs and keeps crashing, and I don't want people to spend their time working on modules only to find out that none of the modules work together and that the time spent was wasted. For (S), this is directly related to the closed source modules discussed above.

Also I'd like to point out that I am a "you do the work, I take the result" type of person. Fortunately I'm also a "I do the work, you take the result" type of person. This may seem contradictory, but it makes sense to me... :)


Cheers,

Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
dh

Re:A new Mega Tokyo Community OS

Post by dh »

. The closed source components would still cost people nothing to use, and almost all of the "closed" source code will be online as HTML pages.
Now THERE's a paradox ???. rofl.

I see where you are going, but you should read the GPL FAQ on the matters of their license(s). It clearly states that using their license (which I am not :P) protects your rights. So Public Domain may not be a wise choice for your reasons, but Open Source is possible without M$ being able to steal your stuff. Heck, they'd just disassmble it if they wanted it that bad :P. Like I said, im no Lawyer.

Cheers, DH.

PS. I didn't see the "L" in LGPL. my bad
Warrior

Re:A new Mega Tokyo Community OS

Post by Warrior »

Solar wrote: I'm not sure I got you there.

You have a main.c (your code), a library.h and a library.c (LGPL code).

If you compile that to myprog.exe and ship that, your main.c falls under LGPL (meaning you're obliged to provide main.c in source).

In order to avoid that, you have to provide - additionally or instead of myprog.exe - a main.o, which allows people to modify the library.c and relink myprog.exe with the modified version.

In the case of a "pure" GPL library.h / library.c, the whole point is mood - main.c falls under the GPL, period.
Ah misread, that makes more sense.
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re:A new Mega Tokyo Community OS

Post by Solar »

Ahem... this is going to be lengthy, but I think I finally got the right words together to explain what I feel about GPL vs. PD.


Any kind of publication "protects your rights" in the patenting sense. By publishing it, it becomes "previous art", i.e. it is not possible for someone else to patent the underlying technology. All you have to prove is that you published the stuff before the patent was filed - you would have to prove that anyway, no matter the license.

Placing code in the Public Domain waives your copyright, i.e. you no longer have a say over restrictions on its use or redistribution. (Same as with GPL.)

The point the GPL is trying to make is, "protect my code from the evil moneymaking big corps". The problem with that approach is that you also "protect" your code from the struggling small corporations.

I am a strong supporter of PD. The reasoning is simple:

Take me. Personally. I am but one person, I can't split into departments so I have to split the time I'm spending on things.

The FSF (and its evangelists) tell me I could release my code as GPL, yet still make money off it - by selling manuals, or services.

You might note that I prefer to release my code including sufficient manuals. Everything else is crippleware, which I find highly annoying. I also prefer to make my code so simple that it doesn't require some illuminati to service it.

And, time I spend on providing services is time I don't spend on improving my code.

Some are lucky that they are able to provide services on the very product they wrote and released as GPL. For the others (the majority), "providing services" translates to "day job", which they spend on some other people's code or making bread or welding cars or driving a taxi. Whatever.

So, if I want to spend my full time on working on my code, I could join a company that cross-finances my work - and in turn tells me what code to work on, which means I'm back at square one.

Or I find some way to get financed without having to take on a job apart from coding. Two possibilities here - being stinking rich and not requiring any income anymore, or generating income directly through my coding work.

The latter is only possible if I can sell my coding work. The GPL makes this de facto impossible - any of my customers is by definition free to redistribute my product for free, and there are enough evangelists out there who would do that just to spite me for trying to sell GPL'ed code.

(Note that e.g. Linux distributors don't sell you the code, they sell you the service of putting it together, which would be a real pain otherwise since the whole thing is designed to break at every nook and cranny.)

So, if you want to help me building the next great OS - if you provide your help under the GPL, you basically doom me to split my efforts between the OS and making money for a living. If you provide your help under Public Domain, I could make a Public Domain (or GPL) OS (if I'm stinking rich or otherwise generous), but you also enable me to charge a fee for working on the OS all day, making me into the struggling small corporation I mentioned above.

That fee might be enough to pay for the free download servers. It might be enough for some additional advertising in magazines, boosting market share. It might be enough to pay for a few pieces of patented technology that make computing so much more comfortable.

It might be enough to make me stinking rich, but for that, my OS would have to be truly exceptionally successful, i.e. good, since the times of forcing a shitty OS down people's throats is over, and anyway everybody else could have used the same PD code base I did, couldn't they?

Placing code under the GPL makes it "free" only for those who can accept working under GPL terms. That means, those working on the code at odd hours only, and the big moneymaking corporations who can afford to cross-finance their coding departments.

Funny enough, I think.

And in the end, there is the point that the "big corps" the GPL is intended to block out already have everything they need. Do you really think it puts a dent in Microsoft revenues that they have to develop and use their own C library, their own webserver, their own SQL server? They already have a solid code base, thousands of code monkeys knowing the product, and they did spend billions on PR for it.

Again, the GPL was intended to block out the big corps (like IBM, Microsoft). All it does is blocking out the small corps - the next Apple, Amiga, or Be Inc. that might actually bring the fresh breeze to the OS market that we all hope for.
Every good solution is obvious once you've found it.
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re:A new Mega Tokyo Community OS

Post by Solar »

That being said:
Brendan wrote: The proposal states "either public domain, BSD licence or LGPL". AFAIK none of these licence are as restrictive as GPL. These examples were chosen deliberately, so that anyone could use it for any purpose, which is more useful for Mega-Tokyo members because not everyone uses the GPL licence for their own OSs.
PD and BSD qualify. LGPL does only to a much lesser extend, as it keeps you from copy & pasting the LGPL code into other, non-LGPL'ed sections of your source, no matter how much you would like to because of design considerations. LGPL'ed code is tainted, both for PD and for proprietary license.
Some of the techniques I've developed shouldn't be given to someone like Microsoft so that they can get richer, patent it and sue me for using it.
See above - they can't, not even for PD code.
Every good solution is obvious once you've found it.
User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

Re:A new Mega Tokyo Community OS

Post by Brendan »

Hi,
Dragon_Hilord wrote:
The closed source components would still cost people nothing to use, and almost all of the "closed" source code will be online as HTML pages.
Now THERE's a paradox ???. rofl.
The closed source modules will be closed source, in that the general public can't download the source and compile it themselves. They'd be able to download the binaries and use them in their own boot image (in conjunction with any cobination of other modules).

Even though the source code can't be downloaded and compiled, most of it can still be viewed online in HTML form. The reason for this is my "System Build Utility" which allows small parts of some source files to be kept private while everything else is made public.

For example, here is a publicly available source file, here is my own private version of it, and here is the raw ASCII source file.

Of course this is a silly example as these definitions shouldn't be restricted - after writing the System Build Utility I wanted to try it out, but there is nothing that should be restricted yet. :)

Basically, it's as open as possible while still protecting small parts of some source files...
Dragon_Hilord wrote:I see where you are going, but you should read the GPL FAQ on the matters of their license(s). It clearly states that using their license (which I am not :P) protects your rights.
Yeah - it is something that needs to be researched. As long as I don't get sued if some twit uses the code in a life support machine and discovers a bug, I'm not too worried about my own code - if (for e.g.) Microsoft take something I wrote and make millions out of it without giving me any credit, then I don't care (except for a few "closed source" parts - they're entirely different).

I'm more concerned with other people's work - if they take the time to write something then they should have a say in what licence it uses.
Dragon_Hilord wrote:So Public Domain may not be a wise choice for your reasons, but Open Source is possible without M$ being able to steal your stuff. Heck, they'd just disassmble it if they wanted it that bad :P. Like I said, im no Lawyer.
As long as I can establish "prior art" I think I'm safe (although I'm not too sure what this requires - I'm hoping a publicly available proto-type in binary form would do). A better idea might be to apply for patents and then make those patents public domain, but I'm no lawyer and it'd be expensive...


Cheers,

Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re:A new Mega Tokyo Community OS

Post by Solar »

Brendan wrote:
As long as I don't get sued if some twit uses the code in a life support machine and discovers a bug, I'm not too worried about my own code - if (for e.g.) Microsoft take something I wrote and make millions out of it without giving me any credit, then I don't care (except for a few "closed source" parts - they're entirely different).

I'm more concerned with other people's work - if they take the time to write something then they should have a say in what licence it uses.

[...]

As long as I can establish "prior art" I think I'm safe (although I'm not too sure what this requires - I'm hoping a publicly available proto-type in binary form would do). A better idea might be to apply for patents and then make those patents public domain, but I'm no lawyer and it'd be expensive...
Sounds like BSD sounds like your license of choice, as it makes the "no warranty" part explicit - whereas it is implicit in PD. It's not really your code anymore, so how could you be sued for it? ;)

BSD is fine for just about everybody, too (including the "small corp" from my lengthy text above), except perhaps for a PD purist like me (you can't remove the copyright notice, making source from several sources a mess rather quickly). ;)

As for patents, as I said, all you have to prove to be save from patent lawyers is that the source was publically available before they filed the patent. Releasing it to PD and having the fact noted (by a Notary) should be enough.

Beware, I'm not a lawyer, so the above might be completely wrong. If you're starting a big project, it might be worth to consult a lawyer who knows about copyright and patent stuff. Still cheaper than filing patents yourself, especially as those patents are only valid in the country you filed them.
Every good solution is obvious once you've found it.
octavio

Re:A new Mega Tokyo Community OS

Post by octavio »

Instead of making a new OS that will dislike most of us,what about design a kind of standard like posix to make easily to
porting drivers and aplications betwen all OS and when one of us writes one driver ,others just have to port the code to their OS.
JAAman

Re:A new Mega Tokyo Community OS

Post by JAAman »

Windows is closed source
this is just wrong:
windows is open source

remember, open source does not mean free, it simply means the source code is availible to someone willing to pay what the owner charges (not sure what MS charges for the windows source)

just like linux is free, and open source, but not GPL, windows is open source, but not free
Post Reply