Valix - Experiment in Design

This forums is for OS project announcements including project openings, new releases, update notices, test requests, and job openings (both paying and volunteer).
Post Reply
User avatar
xvedejas
Member
Member
Posts: 168
Joined: Thu Jun 04, 2009 5:01 pm

Valix - Experiment in Design

Post by xvedejas »

Image

This will be the official thread for my OS project, Valix. I am pleased to announce that, due to recent progress, I plan to release a pre-alpha version by July 1st. The first part of this post will be written in an FAQ format, and anything after that edited to add more information as things progress.

What is the goal of Valix?

The goals of Valix are, by my observation, quite different from the goals of most other hobby OS projects. A quick look through some other projects, you see things like "POSIX compatibility", "super stable and super fast", "cross platform", or specific uses like "webserver". The philosophy behind Valix, though, can really be summed up by one phrase: Experimentation in Design. So far that means we've made some very counter-intuitive but interesting design choices.

What's the biggest difference between Valix and your usual OS?

Right now, the biggest obvious difference is the way applications will be ran. There is a compiler and interpreter, written in C inside of the Valix kernel. The compiler makes bytecode that the interpreter then interprets. The language is a dynamic, object-oriented language similar to python, ruby, or smalltalk, but of my own invention. It doubles as both the system language and the system shell. It's the language that applications should be written in, as well as configuration files, and it's the language that a user might use in a system command line. The kernel doesn't need to handle any binaries at all, and in fact things like task state segments or protection rings can be ignored completely.

Other differences?

Smaller differences aren't so obvious to an end-user or application programmer. Valix doesn't use any paging or other memory protection schemes, as the kernel is the only binary running directly on the CPU. The system call interface is also simplified, since the interpreter is itself part of the kernel. Currently we are debating whether device drivers should all be written in C (for speed) or in the interpreted language (for debugging, design, and simplicity).

This is barely the beginning though. Some other design experiments are planned or in planning, including a completely tag-based file system. We hope to be creative with the graphical user interfaces as well. There are a lot of interesting, perhaps untested ideas out there that need implementing.

What stage is Valix at?


Currently, Valix has a multi-threading system, memory manager, and working compiler/interpreter. The compiler and interpreter are not complete, but they do work, and most of the hard work is done. Currently basic statements such as "a = 2. b = 3. Console print: a * b." work as expected. Due to the setup with GRUB2, Valix boots directly into 800x600 VESA mode, and stays there. There are some video routines but they're nothing interesting, and currently in disuse. All output is currently read from the serial port, so testing is done either on Virtualbox or Qemu.

What do I care?/How can I help?

Okay, so maybe this project isn't exciting enough for you do contribute to. On the off-chance it is, feel free to contact me on xmpp at [email protected] or send me email to the same address. Otherwise, you can do any of several simple things right now. You could suggest a new idea to implement. You can come back in July when we plan to distribute a pre-alpha CD image for testing. You can check out the code, which is temporarily at http://gitorious.org/valixos/. Or you can just discuss Valix here. Thanks for reading my post :)
tekk
Posts: 1
Joined: Tue May 24, 2011 10:23 pm

Re: Valix - Experiment in Design

Post by tekk »

I really have two basic questions:


1) Can you post an example of the language? python/ruby/smalltalk is a pretty broad spectrum of syntaxes..
2) will it be gui only or will you have the option of using terminal only if something goes wrong or you think it'd be more efficient?
User avatar
DavidCooper
Member
Member
Posts: 1150
Joined: Wed Oct 27, 2010 4:53 pm
Location: Scotland

Re: Valix - Experiment in Design

Post by DavidCooper »

Don't be disappointed by the general lack of replies - this looks like a very interesting project and I look forward to seeing where it goes.
Help the people of Laos by liking - https://www.facebook.com/TheSBInitiative/?ref=py_c

MSB-OS: http://www.magicschoolbook.com/computing/os-project - direct machine code programming
User avatar
Chandra
Member
Member
Posts: 487
Joined: Sat Jul 17, 2010 12:45 am

Re: Valix - Experiment in Design

Post by Chandra »

The "VALIX" logo is cool. I didn't get to see the original project though; so, no comments.
But truely, something interesting info about your project would've carried out a lots of interest. Much of the obvious differences you mentioned doesn't look that convincing. But again, I've not seen your project, so that might be only my point of view.
Cheers.
Programming is not about using a language to solve a problem, it's about using logic to find a solution !
User avatar
gravaera
Member
Member
Posts: 737
Joined: Tue Jun 02, 2009 4:35 pm
Location: Supporting the cause: Use \tabs to indent code. NOT \x20 spaces.

Re: Valix - Experiment in Design

Post by gravaera »

Wow, cool logo, yo :shock:
17:56 < sortie> Paging is called paging because you need to draw it on pages in your notebook to succeed at it.
User avatar
xvedejas
Member
Member
Posts: 168
Joined: Thu Jun 04, 2009 5:01 pm

Re: Valix - Experiment in Design

Post by xvedejas »

tekk wrote:I really have two basic questions:


1) Can you post an example of the language? python/ruby/smalltalk is a pretty broad spectrum of syntaxes..
2) will it be gui only or will you have the option of using terminal only if something goes wrong or you think it'd be more efficient?
The language is very similar to smalltalk in syntax, here's a working example:

Image

The OS will be GUI-centric but is like an interpreter at the moment for convenience in testing. The eventual plan is to have inputs (not unlike terminal emulators) that work as interpreters. But text-mode will be completely avoided.
DavidCooper wrote:Don't be disappointed by the general lack of replies - this looks like a very interesting project and I look forward to seeing where it goes.
Thanks! I feel like I'm making a lot of progress currently, language-side. My main issue is that I'm more a mid-level coder than a low-level coder, so I don't have all the patience to write too many drivers for Valix. Note to anyone out there working on their OS, if you want to collaborate to implement some common driver interface, that would be really cool with me.

Chandra wrote:But truely, something interesting info about your project would've carried out a lots of interest. Much of the obvious differences you mentioned doesn't look that convincing.
Do you really think so? I'm sorry you feel that way. I certainly plan to be different in even more ways in the future; the point is to experiment, and *I* at least find that quite interesting.
Chandra wrote:I didn't get to see the original project though; so, no comments.
The code is freely available at http://gitorious.org/valixos. I'm not sure what you mean by "original project" though, there was no previous original project.
gravaera wrote:Wow, cool logo, yo
Chandra wrote:The "VALIX" logo is cool.
Thanks; I made it myself using inkscape.
User avatar
Chandra
Member
Member
Posts: 487
Joined: Sat Jul 17, 2010 12:45 am

Re: Valix - Experiment in Design

Post by Chandra »

xvedejas wrote:
Chandra wrote:I didn't get to see the original project though; so, no comments.
The code is freely available at http://gitorious.org/valixos. I'm not sure what you mean by "original project" though, there was no previous original project.
By "original project", I meant "actual project". I was not referring to the source code. I was expecting some sort of demo release or some such. It definately is hard to leave compliments without actually looking at the project.
xvedejas wrote:
Chandra wrote:But truely, something interesting info about your project would've carried out a lots of interest. Much of the obvious differences you mentioned doesn't look that convincing.
Do you really think so? I'm sorry you feel that way. I certainly plan to be different in even more ways in the future; the point is to experiment, and *I* at least find that quite interesting.
I didn't mean to discourage you but being different doesn't always necessarily mean being better.
xvedejas wrote:The kernel doesn't need to handle any binaries at all, and in fact things like task state segments or protection rings can be ignored completely.
So there's no things like 'Ring 0' or 'Ring 3' ? Then how the whole protection mechanism works? Is it the fact that programs are dynamically linked creating a misconception in you that they can't break your kernel?

You shouldn't feel offended because this thread is about 'Valix'. And I really feel that whole protection mechanism is weak. So maybe we could discuss some aspects of 'Valix' so that we could make 'Valix' a better OS.
You really have a lot of self-motivation and commitment going on with you. Good Luck!
Programming is not about using a language to solve a problem, it's about using logic to find a solution !
User avatar
diodesign
Posts: 14
Joined: Sat Sep 11, 2010 10:14 am
Location: England
Contact:

Re: Valix - Experiment in Design

Post by diodesign »

xvedejas wrote:I certainly plan to be different in even more ways in the future; the point is to experiment, and *I* at least find that quite interesting.
And so you should: if Microsoft is prepared to do drastic stuff to its desktop UI in Windows 8 ( http://bit.ly/jYqLsQ ) then that should give osdev hobbyists encouragement to try new things.
User avatar
xvedejas
Member
Member
Posts: 168
Joined: Thu Jun 04, 2009 5:01 pm

Re: Valix - Experiment in Design

Post by xvedejas »

Chandra wrote:I didn't mean to discourage you but being different doesn't always necessarily mean being better.
The question wasn't about "better", it was about "interesting", and I do think that different (in this case) means "interesting".
Chandra wrote:So there's no things like 'Ring 0' or 'Ring 3' ? Then how the whole protection mechanism works? Is it the fact that programs are dynamically linked creating a misconception in you that they can't break your kernel?
Oh no, I see what your misunderstanding is. The code isn't dynamically linked, it's not linked at all. It's interpreted, much akin to python or ruby. The protection is software-implemented instead of hardware-implemented. Everything a program does has to go through the VM first, so the security is much, much greater than you'd expect.
Chandra wrote:And I really feel that whole protection mechanism is weak.
You've misunderstood, if you need clarification that's acceptable.
And so you should: if Microsoft is prepared to do drastic stuff to its desktop UI in Windows 8 ( http://bit.ly/jYqLsQ ) then that should give osdev hobbyists encouragement to try new things.
As far as I see it, the only real advantage hobby OS developers have is that we are free to break all compatibility and experiment. We're light on our feet, so we can do things that microsoft or apple never would (if they care about their bottom line). Really anything should give hobbyists reason to try new things, and hopefully radically new things.
Post Reply