The FENIX Project



The Development Team

Aura Vulpes (xe/xyr/xem)

Aura Vulpes is not an OS developer. Well, xe is. Xe is developing an operating system. But that's not what xe does for a living. In fact, xe isn't anywhere near the tech sector. Xe's a nurse. Well, a nursing student, at any rate. But, xe's still in love with technology and set off on a goal to do this, as quixotic as it may have been. Xe may also have a bit of a hatred of a certain free software operating system project named after an African antelope species.

When xe's not banging xyr head against a wall trying to make FENIX work or sitting in classes related to nursing, xe likes to draw, work on other coding projects, or work on xyr kickboxing.

The Development Environment

Aura develops FENIX on xyr Dell Precision M4800 (begrudgingly) running Arch Linux. Xe does all xyr coding in Visual Studio Code, with Emacs keybindings (ironically), the indent-rainbow and Rainbow Brackets extensions, and the One Monokai theme with Philipp Kief's Material Icon theme on top.

The OS itself is currently compiled through a GCC cross-compiler and test-executed in QEMU. The utilities are compiled through GCC and tested from zsh. The make system is a combination of makefiles and some separate shell scripts.

(Not-so-)Frequently Asked Questions

Can I run it on my computer?

Probably. Right now, it's very basic. If you've got an x86-compatible system, it'll probably work. As development continues, though, it'll probably start working less and less outside of a narrow set of supported systems, since we only have resources to handle a narrow set of hardware.

How can I help out?

Check out the Git repos!. There are a number of issues that need to be addressed, and you're more than welcome to work on any that aren't already assigned to Aura. Even if it is assigned to Aura, feel free to get in touch if you'd like to help out! You can also help by writing code to help advance FENIX! Whether that be new C library headers or functions, new utilities, or working on kernel code, you're more than welcome to contribute! Just remember that our two main goals are simplicity of code (AKA the ability, to the extent possible, for someone with a decent understanding of C but little understanding of OS dev to understand the code) and conformance to the POSIX spec/Single UNIX Spec.

Not as code inclined? That's okay! There are still a number of roles you can play, especially as we get further along. Right now, we could use a logo, so if that sounds like something you'd like to try your hand at, feel free to send any ideas our way. Later, we'd also appreciate help in making sure the system is still reasonably easy to use, so later on, when we have an actual system, feel free to give it a try and tell us where you ran into difficulties. Or, when we have documentation up, feel free to help with that, whether it be suggesting stuff to add/include or in just proofreading.

We'd also like to make sure it's reasonable accessible. Since we're a small project, we can't make any promises on accessiblity, but we will do everything in our power to at least try to make it accessible to as many people as possible. Additionally, feel free to suggest accessibility improvements we can make to the website!

Finally, you can also simply share the project! Having new people try FENIX and help improve it is useful, but folks can't help if they don't know about it!

When will it be released?

When I get a userland working, probably. I have no plans on releasing a proper ISO until then. Honestly, don't hold your breath.

What all's planned to be supported in the final release?

At the very least, it will have every single utility and C library header/function demanded by the Single UNIX Specification. Additionally, X/Open Curses will be supported. This means that it will support every single option group, as well. Additionally, I hope to have a few other utilities, including a few from old UNIXes, such as news or dump, some stuff the spec designers omitted, like an assembler, a debugger, or tar, and a few things I wanna write in anyways, like a BASIC interpretter and a COBOL compiler. Finally, I'd like to have a graphical interface. I'm not saying I'm gonna write my own X11 implementation, but I might write my own X11 implementation with a desktop environment on top. So, window manager, panels, some graphical applications (or at least a terminal), all that kinda stuff. But, we'll see how far I (or we) get.

Will I be able to run <whatever> on it?

Maybe? If it only uses standard C (including POSIX standard stuff), then yes (hopefully). If it uses GNU extensions, then no. I'm not implementing GNU extensions, nor will I allow GNU extensions to be added. If it's a graphical app, then probably not. I mean, to be fair, if the first one holds true, you should be able to run whatever you want. You'll just need to compile GCC and friends from scratch using FENIX's C compiler, use those to compile the dependencies for whatever you want, then compile whatever it is you want.

I'd like to contribute code. Where can I find the necessary specs?

The big relevant specification is the POSIX specification. You can find the relevant version here. Additionally, you can find a link to download an archive of the web version from the Download link at the bottom of that page. Unfortunately, you can't access a PDF version without being a proper member of the Open Group. Personally, though, I (Aura) find the web version to be nicer when it comes to navigation anyways. The other specification you might want is the C99 specification which I unfortunately don't have a link to, and won't be uploading here myself, but I will provide a PDF upon request. Additionally, though we're not currently working on it, we do plan to implement Curses, so if you want to help with that, you'll want a copy of the X/Open Curses specification, which is available for free from the Open Group, though I do be believe you need to create an account to download it. Finally, though the UNIX Filesystem Hierarchy standard was used to develop FENIX's FS hierarchy, it is not strictly needed to development.

Why the name FENIX?

Well, when I started the project, my fursona was Fenris HelmsĂșlfr, a robotic wolf. It's supposed to be a UNIX(-like). Hence, Fenris' UNIX(-like). If I started it now, I'd honestly probably go for AURIX instead, or maybe try to come up with something more clever. If I had started it sooner, it might have been RYVIX or even IVIX. But, I like the name FENIX, so I'll keep it (unless I have to change it for some reason).

Why?

Because I can. ;)


best viewed with any browser Lynx friendy NeoCities.org: The web is yours Valid HTML 4.01! Valid CSS Level 2!
This site best viewed at at least 800x600 using any HTML 4.01 compatible browser.