Ben's Page
Hello everyone, this is my personal wiki page.
Email: <ben AT SPAMFREE minix3 DOT org>
Some currently-unlinked-from-elsewhere pages I'm working on, currently unlinked as they're still too preliminary:
BuildBotsDashboard - brainstorming about a near-realtime Continuous Integration system for Minix
DeviceDemo - brainstorming about an embedded-style device with a real-world application running Minix, ideally showcasing features that are unique to Minix but a basic demo of Minix running well on an embedded device is the 1st step.
MinixMissingVsBSD - items missing from Minix that you'd expect in a modern BSD
Things that are on my plate (too) to do for Minix in some form or another. This is a mixture of urgent/luxury, private/group responsibility, and started/unstarted items.
- makewhatis error on 1st boot
- useradd, does not know where the chown chmod and pax are
infrastructure items: see BuildBotsDashboard
embedded demo: see DeviceDemo
preening pkgsrc packages; replace current crop of packages with new ones (with new libc, elf format, many new packages. etc.). Latest bulk build report is at http://www.minix3.org/pbulk-logs.current/pbulk-logs/meta/report.html, latest package crop is at http://www.minix3.org/packages.current/packages/3.2.0/i386/All/
- kernel threads
- FS management stuff:
- clean ports of fsck, mount, umount using generic driver program and fstab reading routines
- ext2 in base system - newfs, fsck programs, neatly called by the above
- mtab in procfs, not maintained by mount/umount
- serial i/o feature (make serial output available for both input and output for both kernel debugging and a normal console, so machines can be rescued more often remotely)
- faster install feature (compressed tarfile on contiguous cd area as well as regular minix filesystem)
- get rid of segments (make memory layout less i386 specific)
- minix optimisation: specifically optimise for clang and git as they're quite slow under some conditions and i use them a lot
- boot monitor autodoc: boot monitor options are searched for scattered throughout the whole codebase and automatically documenting them in a single place e.g. through annotations in the code where the searching is done would be a nice feature
- acpi read off button event
- plans for vm:
- make allocating/freeing memory not depend on data structures that have to be allocated/freed
- and further remove call cycles if necessary
vm(8): panic: Assertion "GETBIT(f, i)(BITEL(f, i) & BITPAT( i))" - a rare but specific panic that might be caused by the above situation, and if not, will be easier to debug with a debugging facility that it will enable
- pt_writemap preemptive RW optimisation - was disabled for smp-safety
- decouple address space from page table, both for exec cache feature (see below) and threads
- exec cache feature (cache executable state immediately after exec() in vm so that the inefficient copying from FS into memory of the new process doesn't happen every time)
- the whole system hangs (loops forever) if an exec() fails because it's out of memory
- weird errors with fpu executables? (executables doing a lot of fpu usage.)
- nfs code - make a package out of the contributed nfsd
- home pc debugging - minix has a weird failure on my home pc
- intelligent assertions - incrementally evaluate assertions when dependent data changes
gcc/clang diverse double compilation - demonstrate there are no back doors in those compilers (http://www.dwheeler.com/trusting-trust/)
- shared libraries
- clang profiling support
- using klee and clang's static analyzer
- device drivers in rump kernel: The paper linked from www.netbsd.org/docs/rump (the AsiaBSDCon '10 one).
Recently completed items are
- gdb and core dumping support merging (work by Adriana Szekeres for her GSOC project)
- fixes for new libc: switch to netbsd passwd format, constructors
- conversion to mainstream fstab format to allow flexible mounted FS list of any type
- let drivers etc. be pkgsrc packages by facilities in base system