TODO (how ppl can help)

4 views
Skip to first unread message

James Larkby-Lahet

unread,
Jan 13, 2009, 7:02:56 PM1/13/09
to xomb-ov...@googlegroups.com, xo...@googlegroups.com
In no particular order, but we really should get this online in an
obvious place, and keep it up to date

you can spend our money, write our code, upgrade your grey
matter(brizain), organize or incorporate us, document, port, design,
redesign;
userspace or kernel there is something in XOmB for Soulja Boy's best
friend: YOU!

Documentation)
- at a minimum, put this list online in an obvious place, so newcomers
who want to contribute know what they can do to help
- appoint website maintainer
- clean up xomb.org, wiki.xomb.org, ask appropriate ppl for
content/updates as needed
- document code
- document processes (or establish processes) for common tasks
- In-Our-Own-Words series, sum up what we know about a peice of
hardware (the APIC, geting to 64-bit long mode on an x64 chip) or
software (how to build a cross-compiler)

Reading!!!!!/Research/Writing)
- read about git and figure out a 'workflow' -- then write it up
- Device Driver models -- how do we manage the coming insanity?
- write an OS book
- read an OS book, and tell us what you learned, or how your vision of
XOmB changed
- read modern and classic OS papers in a particular area
- trawl the internets on a topic and present what you learned as a
teaching segment in a xomb meeting
- trawl and compare other ppl's code solving a given problem (e.g.
linux vs smaller OS like syllable, haiku, other systems you find on
osnews.com)
- read about tech businesses and pick an open source business model for XOmB inc

XOmB the .org)
- figure out what we need to incorporate XOmB (I can call in some
lawyers, mebbe for free, for the actual incorporation)
- figure out 'code assignment' so that ppl turn their code over to
XOmB org which administers the license terms
- how to get non-profit status
- do we need to be a non-profit to be part of 'google summer of code'?
- get us into summer of code
- non-profit to apply for grants?
- write grants
- what pgh-local orgs are there for tech startups -- Pittsburgh
Digital Greenhouse, Alphaworks, Northside Community Development,
incubators, etc.

XOmB the .com)
- can nonprofits do alphaworks? 20 week, $25k incubator of pgh tech startups
- can has business model?

Profiling and tradeoff analysis)
- how long does a context switch take? a system call? interrupt
overhead? IPIs versus standard interrupts?
- pick an app you care about and an existing OS, figure out where it
spends most of its time and how the OS is impeding it

D lang)
- gdc is dead, D 2.0 is coming
- port XOmB to D 2.0 and D-style inline x64 asm in prep for switching
to ldc (or any open source, maintained compiler)

Kernel)
- I/O buffer manager (in prep for FS, and maybe network)
- market/bidding mechanisms for RAM and Quantum allocation
- security model
- implement a full ACPI runtime for device detection -- standards
compilance is always a selling point and this would help the device
push
- (multicore) Virtual memory manager -- read about VMMs and figure out
what we need to do
- multicore cache coherence foo -- figure out what x86 'invalidation'
instructions we must execute when updating page tables, use IPIs to
invalidate cache/TLB on other processors

new kernel)
- port XOmB to ARM, Sun's Niagra, Itanium, PowerPC etc.
- port XOmB to EFI bios replacement (unless you have an Apple, you get
to buy an EFI dongle or two to turn 'normal pc' into 'EFI pc' )

Kernel-side? Devices)
- ne2000 network card driver (this is the psuedo-device from Xen)
- SATA/AHCI driver
- USB driver
- pick a GPU for us to buy and then port it to XOmB
- pick a NIC (preferably with built in support of virtualization) for
us to buy and then port it to XOmB

Userspace devices)
- Intel-VT + intel VMQD? virtualization for intel network cards
- can GPUs be virtualized?
- pick an accelerator, GPU, FPGA, Creative's Zii reconfigurable 'stem
cell' computing, or Intel's upcoming Larrabee and write a userspace
library exposing it to Applications
- also, find a task that we care about accelerating :)

Userspace pseudodevice)
- super-ultra userspace memory management -- malloc, garbage
collector, multicore slab allocator, Virtual Memory Managment, etc.

Applications and Demos)
- german ruler demo
- use xomb for distributed computing (P2P, heterogeneous hardware,
high chance of node failure)
- javaVM -- it'll be fast as hell with no 'host OS' and modern
compiler techniques
- start designing a clustered webserver with accomanying server
scripting language (miniD?) and database (initially, I'd just assume
SQL goes to a 3rd party Database, let oracle do oracle)
- use a port of Wine or ReactOS to build a remote-desktop windows
App-farm (this is Citrix' business model, they also do virtualization)
- write optimized/clustered network fileserver (this is netapp's
model, they sell commodity hardware with software profit margins)

Userspace executable foo) -- write OR port
- executable loader with general ELF support (and llvm bytecode, and
java bytecode :)
- when do we zero BSS, how do we find _start, other fun executable philosophy
- 'runtime linker' dynamic library support

Userspace Compat) - we are bring UNIX along with us, so we won't be
condemned to repeat it
- port libc & standard C++ library
- port UNIX languages and tools of your choice
- determine what is necessary for wider POSIX support (e.g. networking)

Userspace D)
- port tango
- appoint port maintainer, as tango is definitely a quick-moving target

Userspace XOmB)
- write RAMFS libos, patch into libc and tango
- do we want D libOSes to be based solely on tango, on a subset, or on
our own homegrown libd?

Userspace Windows)
- port wine or reactOS as a libOS for Windows support
- port Mono / .NET CLR virtual-machine

Kernel-userspace interface)
- method for issuing batches of system calls for maximum win, along
with wrapper code on both sides to manage it

Virtual machines)
- (reiterate: port javaVM or ,NET CLR applcation virtual machines)
- port xen to XOmB
- implement xen paravirtualization API or VMware API to support VMs
natively as 'applications'
- use Intel-VT to fully virtualize a client OS (in this case it is
unaware that it is a VM client)

===a good independent study===
- in a similar vein, implement a "dynamic binary translator" -- more a
'generic framework & custom plugin' approach to allowing apps for
different OSes and even completely different CPUs to run on XOmB
- port Dr. Childer's "Strata" dynamic binary translator to XOmB ,
which can probably then be used for Application virtual machines,
running foreign binaries, AND xen/vmware emulation

Get Famous)
- implement Apple's OpenCL standard for parallelization and
acceleration (you'd be the first :)
- port/implement other popular or up-and-coming specs and if-possible
participate in the working group in charge of the spec

Toolchain)
- get ldc working for x64
- maintain a separate git package of everything one needs to build
xomb, with scripts to automate the process
- appoint a maintainer to keep tools synced with upstream releases
- script testing of new compilers so maintainer knows if new releases
break stuff

Testing & Committers)
- pick some committers
- have things to commit
- kernel unit tests?
- userspace unit test support
- start scripting (or borrow) a harness for regression testing
- consider the addition of 'contracts' to our D programming for
greater testing and fault detection

Reply all
Reply to author
Forward
0 new messages