|
From: Iain S. <iai...@ya...> - 2001-08-29 22:10:48
|
Hello all, In the interest of expediting things I'll put out the "World according to Iain" as a strawman proposal. Just my take on the situation, layout a possible action plan, and give us something to poke at. (Note 1: I'm only going to send this via email as my net connection is a bit limited right now. If someone wants to plaster this into the Wiki somewhere that would be great too. Note 2: "expedite" as I feel time is of the essence. The school year is about to begin (I've been out of school for a mere year so my body still feels the "back to school" pull... and I've been out shopping and saw all the back to school sales.) In addition, despite our very limited numbers, we have managed to lose two more members, Jack D. Unrue and Phillip Gonia in the past week and had several others that have come in and then faded just during this current discussion (Warner for example). (as for my original "vote" question, the question boils down to, should we follow this plan or another one?) OK. Here's my take: *************** Re-organize JOS -------------------------------- We should re-organize. I've never been that fond of the JOS name or the JOS organizational structure so my proposal is: Action Items 1) Cede control of JOS.org and related resources (mailing lists, website, sourceforge project, etc) to Gilbert who will continue the JOS.org effort as a Java Operating System research and collaboration project. The new jos effort can join JOS.org as a "sister project" but will be run independently similarly to Jext (www.jext.org). individuals are welcome to participate in either or both projects. 2) Form a new project focused very clearly on creating a Java- based/focused os. New name, new focus, new resources, same basic people. This is a "fresh start" that gives us the freedom to quickly recast the project as we see fit. *************** New jos Organization (NJO) -------------------------------- I'm a pragmatic Open Source advocate. I don't see source code access as fundamental right like the freedom of speech. I believe there are situations where open source benefits everyone (and also situations where this is not true). I believe in openness in research and academic pursuits. I believe in open collaboration. I believe people should get paid for their work and that you have the right to charge for software. I believe that code contributors should share in profits produced using their work. For this new organization I propose: License ----------- Binaries produced by NJO are available at no-cost for download and minimal fee for CD's. Core source is covered under a modified SCSL (see www.sun.com). Modifications are made simply to reassign the license to NJO rather than Sun. Research/academic use is free. Internal commercial usage requires passing compatibility tests. Commercial products or redistribution requires compatibility testing and a commercial license (if you make money, NJO gets some of it). Non-strategic source is released under a BSD license... essentially public domain with a disclaimer. This would particularly cover useful tools and utilities. I realize this is going to be highly controversial and unpalatable to GPL fanatics. My primary reasoning is: 1) Allows us to negotiate licenses with other organizations. In particular, I propose using SCSL code (the kvm and libraries) to bootstrap our development. In the future we may be able to create our own version of both the vm and libraries. But the first "ugly and quick" versions will be much faster to produce if we use the Sun code. Also opens the possibility of using a commercial kernel... QNX being a strong contender in my mind. 2) fits with my philosophy as a "pragmatic open source advocate" 3) provides possibility of hiring developers to work on NJO full time Organization ------------------ NJO needs to form a company to manage the commercial license. I would be willing to do this. In this case, it would be a CA, USA company. Technical decisions are made using an Apache model. Business decisions are made as they do in coops (consensus voting amongst "members" who are either investors or "sweat equity" owners). A "business manager" CEO makes day to day business decisions and voting is monthly on "significant issues" along with full disclosure of operations (financials, etc). Eventually we transition to a Sun/Java Community Process model. Product/Focus ----------------- NJO needs an extremely clear and easy to execute product focus to succeed. To maximize the chance of success, exploit the current "hot topic" in Java development, and create a very interesting design, I think NJO os v. 1.0 should be: J2ME CLDC MIDP compliant runs on x86 (386+) VGA (640x480) 16 color micro-gui ne2000 ethernet networking keyboard and mouse support. If we have time I'd also like to add PPP modem support. Essentially it will work like a PalmOS written in Java for a PC. The system would be built with: Microkernel - picoBSD (stripped down FreeBSD www.freebsd.org) or QNX (www.qnx.com). Essentially boot up and provides the C libraries to run the kvm... also nice to have a kernel tcpip stack so we can avoid writing the tcpip stack for the kvm. BSD is nice because the license is extremely flexible, their code is clean, and their stuff is FAST. QNX is a nice commercial RTOS that developers can download and use for free. QNX will really accelerate our development but when we decide to distribute it, it is going to cost us (at least one developer seat at ~$5000 and a distribution license... less than $1/unit at high volume). It may be easiest to bootstrap and only internally release for "research purposes" a 1.0 using QNX then a 2.0 public release using a custom microkernel (picobsd or our own custom kernel... I'm really attracted to the 32 kernel described in the book, Build your own 32-bit OS by burgess). kvm - J2ME CLDC KVM. We use the Sun SCSL'd kvm and libraries and port them to our microkernel. The port is trivial as the KVM is relatively simple and requires very little from the microkernel (threading is done in the kvm not the os). CLDC MIDP libraries - We use the Sun SCSL'd libraries. NJO GUI libraries - Custom libraries that implement the MIDP graphics libraries for our particular platform (vga). For BSD this is going to have be some native graphics library (Xwindows seems way too much overkill for this). For QNX we use their excellent neutrino GUI. NJO drivers - Hard coded drivers for standard ibm vga video, ne2000 ethernet, keyboard, mouse. Whatever the underlying microkernel offers here is what we'll use. NJO desktop - a pure Java desktop app to handle MIDP midlet installations, manage applications, provide the user operating environment, etc. Action items Obviously discuss and decide on each of the major issues (organization, licensing, product focus). Unless someone has a real strong opinion on any particular issue we can tackle them in this order: 1) Decide to split off separate NJO (I don't think this proposal is appropriate under JOS) 2) Decide on NJO organization (license + biz org) 3) Decide on product focus (overall platform) 4) Decide on 1.0 implementation details (picoBSD vs QNX vs etc) 5) Form organization, start development. *************** Obviously this is a pretty radical departure from the current JOS status quo. I expect people to have some strong reactions and hopefully good feedback. Blast away. :) -iain _________________________________________________________ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com |