MINIX 3 Wish list
This page has two purposes:
- To allow users to list things they would like to see
- To allow people who want to help to find out what is desired
However, before starting a project, first check the MinixRoadmap to see if someone is working on it, and if not, post a query to the Google newsgroup to see if anyone wants to work with you.
1. This Wiki
- An improved FAQ (by going through the newsgroup archives to find common questions)
- An article on How to Write a Driver
- More documentation for developers
2. Application programs
Many applications are available through our package manager, pkgsrc; some may need small adjustments to run under MINIX though. You are welcome to contribute your changes.
- ACK assembler taken from ack and built properly
Celestia - http://www.shatters.net/celestia/
DTrace - http://hub.opensolaris.org/bin/view/Community+Group+dtrace/
Enlightenment - http://www.enlightenment.org/
FreeBSD Stress Test Suite - http://www.holm.cc/stress/
Mozilla Firefox - http://www.mozilla.org/en-US/firefox/fx/
- A firewall (pf? other?) - also see SummerOfCode2010/Firewall
- Fuzz
GIMP - http://www.gimp.org/
GNOME - http://www.gnome.org/
- Gpm
KDE - http://www.kde.org/
- Iotest
- Lsof
- Ltrace
Lighttpd - http://www.lighttpd.net/
- Linux test project
- Lmbench
- Mercurial VCS
- Mpg123
- Mutt
MySQL - http://www.mysql.com/
Nasm (2.05 has been done, see below) - http://www.nasm.us/
- Netsurf (Ansi-C Webbrowser with CSS support)
- Network utilities (netcat, nslookup, better ping, traceroute, etc.)
OpenGL (Mesa3D) - http://mesa3d.org/
OpenJDK - http://openjdk.java.net/
Open Office - http://www.openoffice.org/
- Open VM Tools
PHP - http://www.php.net/
- Procps
- Psmisc
Ruby - http://www.ruby-lang.org/
- Security tools (Nmap, etc.)
- Sox
- Strace
- SWIG
- Synergy
- UNIXbench
- Valgrind
- VNC Client
Xfce - http://www.xfce.org/
2.1. Ported Application Programs
Application |
Port-er |
Package |
Post |
dosunix |
Roman Ignatov |
package (broken link) |
|
lc |
Roman Ignatov |
package (broken link) |
|
libiconv |
Stanislav Kozina |
package (broken link) |
|
nasm 2.05.01 |
micklongen |
nasm-2.05.01.tar.bz2 (broken link) |
|
nedit |
Erik van der Kouwe |
package (broken link) |
|
netcat |
Evgeniy Ivanov |
package (broken link) |
|
SWIG |
Evgeniy Ivanov |
package (broken link) |
|
tftp |
Jonathan Clairembault |
package (broken link) |
|
videogen |
Roman Ignatov |
package (broken link) |
3. Libraries
- FLTK
- GLib 2
- GTK+
- QT
4. Drivers
- Just about anything
- ACPI support for device detection (and possibly more)
- Full AHCI driver integration
- Autodetection of network cards, so the network can be used with the live CD
- support for Dell's integrated ethernet
- Driver framework to use drivers from LINUX or BSD operating systems - note DDEKit has been ported from Linux 2.6 to MINIX
- Gigabit Ethernet network drivers (more of them)
- (Renewed) IOMMU drivers for AMD and Intel platforms
- NDIS wrapper to support wireless network drivers
- A pseudodriver so remote debuggers can query embedded systems
- USB controller driver(s) plus driver for USB storage devices - also see DDEkit above
5. Ports to other Architectures
Motorola ColdFire
- SPARC
- x86_64 (as 64bit native, not backwards compatibility using 32 bit)
- IA-64
6. Documentation and Broken packages
Please see DocumentationAndPackages for man-pages that are needed and for packages that need fixing.
7. Networking
Replace inet with an existing userspace TCP/IP stack (lwip, rump, ...)
- Support for IPv6.
- Support for flags like MSG_PEEK, MSG_DONTROUTE, MSG_OBB (needed by wget, glib2, and others).
- Support more options for setsockopt().
- Loopback device support.
- More comments in the inet server source code.
- Optimize network functions.
- Add an ioctl() to probe the socket type (TCP, UDP, Unix). Currently, the socket type is determined via guess and check. There is an ioctl() call to see if the socket is TCP, if not there is another ioctl() call to see if the socket is UDP, if not there is another ioctl() call to see if the socket is a Unix Domain Socket. This causes 2 useless messages to be sent through VFS to INET and one useless message to be sent through VFS to PFS during every Unix Domain Socket operation.
8. Other Improvements
- acct(2) - process accounting
- Collecting benchmarks from other systems and automating their running
Core dumps (that are as GREAT as http://www.illumos.org/ or Solaris; i.e. per user, per Directory, Master, etc.)
- ELF executable format, increased support
Enhancing portability, removing lint, and changing Makefiles to support both ACK & gcc
Ext3 support - work is in progress about journaling FS
Files > 2GB
- FIONREAD ioctl also working for UDP sockets
- getrusage(2)
- Hammer file system from dragonfly bsd it support features include infinite snapshots, multi-master operation, configurable history retention and self-healing.
- Indirect block support for directories in the mkfs proto filesystem creation code.
- Intel VT-D/AMD IOMMU support
KernelOops like Debian. Background email of the fault (after asking permission) and then just hit 'Enter' key and all is OK (as long as you do not do the same thing again).
- Memory mapped files
Increase NAME_MAX beyond 255
"Official TZ Tools" http://www.twinsun.com/tz/tz-link.htm to be more up to date than NetBSD, to avoid these questions "How to set the Timezone" http://groups.google.com/group/minix3/browse_thread/thread/69f07a9ce85a5a25 .
- PAE support (including NX bit)
- Performance tuning, including porting the BSD Pmc tools
setpgid, getpgid, setpgrp, getpgrp [4BSD, not the SysV/Posix] - job control
- setregid(2)
- setrlimit(2)
- adjtime(2)
- lchown(2)
- utimes(2)
- signals from BSD: SIGXCPU, SIGXFSZ, ...
64-bit argument support in printf with ACK cc (can be passed as u64_t)
- Sockets listening on localhost, in particular if no network interface is available
- Stress testing the system under heavy and difficult workloads
- Threads
- truncfs tool that takes a filesystem image, rewrites the no. of blocks in the header so that it's minimal size wrt. used data blocks, and cuts the rest (unused) off.
- Better upgrade method, not requiring (CD-based) reinstall or making world (cf. NetBSD)
- Compile gcc by ./configure with:
--enable-multiarch --enable-nls --with-tls --enable-static --enable-shared --enable-linker-build-id --with-system-zlib --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-stage1-checking=release --enable-checking=release --enable-libssp --enable-libmudflap --enable-libgomp --enable-decimal-float --enable-languages=c,ada,c++,fortran,java,objc,obj-c++ (cross-compile for Ada if you must so we have all Languages (except perhaps 'go')).
Capsicum capability and sandboxing framework
TrustedBSD security features
- Ok, this one is freaky, but Tanenbaum also complains about the MULTICS-style filesystem, so maybe Plan9ish namespaces? Possibly a way better than fuse.
9. Other General Items
- Links to university courses using MINIX 3
- Links to research projects using MINIX 3
- Security testing software or people to try to break the security
- Debian/Minix and/or Gentoo/Minix
10. Possibly Binary-Incompatible (ABI) changes we'd like to make
- To make netbsd libc diffs smaller, and help application portability:
- support d_namlen
- make gid_t an int