flat assembler
Message board for the users of flat assembler.
Index
> OS Construction > Valix - Experiment in Design |
Author |
|
xvedejas 23 May 2011, 19:46
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 :) _________________ Valix is an experiment in an interpreted userspace with object-oriented and functional design patterns. Developers needed! Join #valix on irc.freenode.net Last edited by xvedejas on 24 May 2011, 01:38; edited 1 time in total |
|||
23 May 2011, 19:46 |
|
Dex4u 23 May 2011, 20:43
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 |
|||
23 May 2011, 20:43 |
|
xvedejas 23 May 2011, 21:34
Thanks for the support, Dex, good luck with your project as well.
Enko, yes, it's certainly possible. _________________ Valix is an experiment in an interpreted userspace with object-oriented and functional design patterns. Developers needed! Join #valix on irc.freenode.net Last edited by xvedejas on 24 May 2011, 01:38; edited 1 time in total |
|||
23 May 2011, 21:34 |
|
mindcooler 24 May 2011, 00:02
I'm getting Commodore vibes.
|
|||
24 May 2011, 00:02 |
|
JohnFound 24 May 2011, 07:42
And how one can write FASM application in Valix?
|
|||
24 May 2011, 07:42 |
|
xvedejas 24 May 2011, 15:16
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) _________________ Valix is an experiment in an interpreted userspace with object-oriented and functional design patterns. Developers needed! Join #valix on irc.freenode.net |
|||
24 May 2011, 15:16 |
|
tekk 28 May 2011, 00:54
How close is it to usable at the moment? Can you define classes and methods yet? Just functions? none?
|
|||
28 May 2011, 00:54 |
|
JohnFound 28 May 2011, 04:44
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? |
|||
28 May 2011, 04:44 |
|
xvedejas 28 May 2011, 16:25
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! _________________ Valix is an experiment in an interpreted userspace with object-oriented and functional design patterns. Developers needed! Join #valix on irc.freenode.net |
|||
28 May 2011, 16:25 |
|
JohnFound 29 May 2011, 08:32
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? |
|||
29 May 2011, 08:32 |
|
xleelz 29 May 2011, 13:20
JohnFound wrote:
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. |
|||
29 May 2011, 13:20 |
|
Dex4u 29 May 2011, 17:23
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 |
|||
29 May 2011, 17:23 |
|
xvedejas 30 May 2011, 00:12
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 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;
_________________ Valix is an experiment in an interpreted userspace with object-oriented and functional design patterns. Developers needed! Join #valix on irc.freenode.net |
||||||||||||||||||||||||||||
30 May 2011, 00:12 |
|
xleelz 30 May 2011, 02:22
Looks pretty interesting...
|
|||
30 May 2011, 02:22 |
|
garystampa 05 Jun 2011, 23:40
Looked at the source on your website: very clean.
|
|||
05 Jun 2011, 23:40 |
|
xvedejas 10 Jun 2011, 15:42
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. _________________ Valix is an experiment in an interpreted userspace with object-oriented and functional design patterns. Developers needed! Join #valix on irc.freenode.net |
|||
10 Jun 2011, 15:42 |
|
Eduardo 03 Feb 2015, 03:51
What happened with this project?
|
|||
03 Feb 2015, 03:51 |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.