flat assembler
Message board for the users of flat assembler.

Index > OS Construction > Valix - Experiment in Design

Author
Thread Post new topic Reply to topic
xvedejas



Joined: 23 May 2011
Posts: 7
xvedejas
Image

This will be the official thread for my OS project, Valix, which is written in C and Flat Assembler. 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 xvedejas@gmail.com 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 :)


Last edited by xvedejas on 24 May 2011, 01:38; edited 1 time in total
Post 23 May 2011, 19:46
View user's profile Send private message Reply with quote
Dex4u



Joined: 08 Feb 2005
Posts: 1601
Location: web
Dex4u
Sounds interesting, you seem to know what the OS is going to be used for.
Most just want to code a OS with no idea for what it will be used for.

One problem is that hobby OS's may come up with a new design idea, but then the big boy just take it and run away with it.
I have been working on a hobby OS for along time and have often ask myself and others, what are hobby OS's better at than more main stream OS.
And the only thing i have come up with, is to try NEW ideas.

Thats also what this PC magazine came up with.
http://www.techradar.com/news/software/operating-systems/10-best-alternative-operating-systems-934484
Post 23 May 2011, 20:43
View user's profile Send private message Reply with quote
Enko



Joined: 03 Apr 2007
Posts: 678
Location: Mar del Plata
Enko
Hy, looks like an interesting project, great work!

I have a little question...

as the programs are interpreted, so I gues its possible to write self modifying aplications?
Post 23 May 2011, 20:56
View user's profile Send private message Reply with quote
xvedejas



Joined: 23 May 2011
Posts: 7
xvedejas
Thanks for the support, Dex, good luck with your project as well.

Enko, yes, it's certainly possible.


Last edited by xvedejas on 24 May 2011, 01:38; edited 1 time in total
Post 23 May 2011, 21:34
View user's profile Send private message Reply with quote
mindcooler



Joined: 01 Dec 2009
Posts: 423
Location: Västerås, Sweden
mindcooler
I'm getting Commodore vibes.
Post 24 May 2011, 00:02
View user's profile Send private message Visit poster's website MSN Messenger ICQ Number Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3502
Location: Bulgaria
JohnFound
And how one can write FASM application in Valix?
Post 24 May 2011, 07:42
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
xvedejas



Joined: 23 May 2011
Posts: 7
xvedejas
mindcooler: I hope not, the Commodore used BASIC, which, to put quite plainly is much more basic than the system I'm working on.

JohnFound: You can't, and shouldn't, but the kernel does use some FASM code (and FASM is the assembler of choice for the parts of the kernel that need assembly)
Post 24 May 2011, 15:16
View user's profile Send private message Reply with quote
tekk



Joined: 28 May 2011
Posts: 1
tekk
How close is it to usable at the moment? Can you define classes and methods yet? Just functions? none?
Post 28 May 2011, 00:54
View user's profile Send private message Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3502
Location: Bulgaria
JohnFound
xvedejas wrote:
JohnFound: You can't, and shouldn't, but the kernel does use some FASM code (and FASM is the assembler of choice for the parts of the kernel that need assembly)


Ah, I shouldn't... And what if I badly want it? Twisted Evil
Post 28 May 2011, 04:44
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
xvedejas



Joined: 23 May 2011
Posts: 7
xvedejas
tekk wrote:
How close is it to usable at the moment? Can you define classes and methods yet? Just functions? none?


It's almost at the point to where the closest thing to functions (first-class lexical closures) are working exactly as expected. Classes cannot be defined in code yet, but it won't be long (hopefully before I release a pre-alpha).

JohnFound wrote:
Ah, I shouldn't... And what if I badly want it?


Well... You could always write an emulator!
Post 28 May 2011, 16:25
View user's profile Send private message Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3502
Location: Bulgaria
JohnFound
xvedejas wrote:
Well... You could always write an emulator!


Write an emulator, using high level language, in order to execute the assembly program. Don't you think it is ridiculous? Laughing
Post 29 May 2011, 08:32
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
xleelz



Joined: 12 Mar 2011
Posts: 86
Location: In Google Code Server... waiting for someone to download me
xleelz
JohnFound wrote:
xvedejas wrote:
Well... You could always write an emulator!


Write an emulator, using high level language, in order to execute the assembly program. Don't you think it is ridiculous? Laughing


I'm guessing this is why it's still an "Experiment in Design".

_________________
The person you don't know is the person that could help you the most... or rape you, whichever they prefer.
Post 29 May 2011, 13:20
View user's profile Send private message Reply with quote
Dex4u



Joined: 08 Feb 2005
Posts: 1601
Location: web
Dex4u
You could use the power of Fasm the other way round, by being ably to run programs made for Valix on other OS, by using Fasm macro
See this basic example.
http://board.flatassembler.net/topic.php?t=7961
Post 29 May 2011, 17:23
View user's profile Send private message Reply with quote
xvedejas



Joined: 23 May 2011
Posts: 7
xvedejas
JohnFound wrote:
Write an emulator, using high level language, in order to execute the assembly program. Don't you think it is ridiculous? :lol:


Yes I do, I wasn't really being serious.

Dex4u wrote:
You could use the power of Fasm the other way round, by being ably to run programs made for Valix on other OS, by using Fasm macro
See this basic example.


Hmm I don't think fasm's macros are expressive enough for the language I'm making. Here are some screenshots of valix in action so far;


Description: Hello World
Filesize: 5.25 KB
Viewed: 6300 Time(s)

Screenshot.png


Description: "if" and "while" style methods, implemented using first-class lexical closures
Filesize: 7.21 KB
Viewed: 6300 Time(s)

Screenshot-ifwhile.png


Description: Lists in action, also the full screen size
Filesize: 11.91 KB
Viewed: 6300 Time(s)

Screenshot-lists.png


Post 30 May 2011, 00:12
View user's profile Send private message Reply with quote
xleelz



Joined: 12 Mar 2011
Posts: 86
Location: In Google Code Server... waiting for someone to download me
xleelz
Looks pretty interesting...
Post 30 May 2011, 02:22
View user's profile Send private message Reply with quote
garystampa



Joined: 25 May 2011
Posts: 52
Location: Central FLorida
garystampa
Looked at the source on your website: very clean.
Post 05 Jun 2011, 23:40
View user's profile Send private message Reply with quote
xvedejas



Joined: 23 May 2011
Posts: 7
xvedejas
xleelz wrote:
Looks pretty interesting...

Thanks, I hope to keep it interesting.
garystampa wrote:
Looked at the source on your website: very clean.

I try my best to keep the code readable. Even though I'm the only one currently working on it, that might not always be the case.
Post 10 Jun 2011, 15:42
View user's profile Send private message Reply with quote
Eduardo



Joined: 18 Jan 2015
Posts: 23
Eduardo
What happened with this project?
Post 03 Feb 2015, 03:51
View user's profile Send private message Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  


< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2020, Tomasz Grysztar. Also on GitHub, YouTube, Twitter.

Website powered by rwasa.