SeaOS 0.1 Beta 1

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
piranha
Member
Member
Posts: 1391
Joined: Thu Dec 21, 2006 7:42 pm
Location: Unknown. Momentum is pretty certain, however.
Contact:

SeaOS 0.1 Beta 1

Post by piranha »

For those who have seen previous releases, I know, the version numbers are wildly inconsistent. Until now.
This is not a full release - More like a test request on emulators, since it's a hard disk image.

This version is the result of a rewrite with designing starting back in August, and the actual rewrite beginning in December. It incorporates old code and new code.

The main new features are:
  • Fully rewritten memory management
  • Cleaned up task management and the virtual file system then
  • Many of the little features (like pipes, file stuff and etc)
  • A self-diagnostic system (accessed by the 'diag' command)
  • an elf loader, and now programs are all outside of the kernel
  • The ext2 driver is better, the filesystem is more organized...
  • There are more, but I can't think of them
Known Bugs
  • There is a rather large chance of page/triple faults. I haven't finished the VMM yet
  • Running ld cause a triple fault, and some of the programs don't work
  • Sometimes it may lockup (generally right away)...just restart, it should fix it. I haven't fixed up the locking system yet.
I am hoping to get as many bugs as I can fixed before the actual release - hopefully this will help.

...and here is the zip file: http://microsea.googlecode.com/files/seaos-beta1.zip

So yeah. There are a lot of standard commands, cat, ls, echo, etc.
The shell can do parsing; "cat file | grep stuff > /dev/tty2" actually works.
What else...the devices are pretty simple: All in /dev/, and the nodes are named...tty is the task's terminal, ttyX is different virtual terminals, hda is the hard drive, and hda1 is the first partition...com0 is the serial port...

Also, it outputs debugging output to the serial port.

If you have any questions, please ask them. And thanks for testing.

-JL
SeaOS: Adding VT-x, networking, and ARM support
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
pcmattman
Member
Member
Posts: 2566
Joined: Sun Jan 14, 2007 9:15 pm
Libera.chat IRC: miselin
Location: Sydney, Australia (I come from a land down under!)
Contact:

Re: SeaOS 0.1 Beta 1

Post by pcmattman »

A job well done in my opinion - been watching the work you've been doing and it looks good so far.

I tested in VirtualBox with varying configurations just to test the OS out a bit... here's the results!

Test #1
8 MB of memory given to the VM: Page faulted on boot with address 0x8051000, at 0x0 (task 3 - init process ended up exiting).

The serial log is full of "Warning - tried to free page at <address>, ignoring...". The addresses are usually 0x8051000, 0x42424000, 0x4040000, 0x1010000.

Test #2
16 MB of memory given to the VM: Same problem as above, same log, etc...

Test #3
128 MB of memory given to the VM, same problem!

----

Seems like an issue with your OS and VirtualBox, so I retreated to testing in QEMU...

Test #1
8 MB of memory: Ran well until I ran ld without arguments (wanted to see said triple fault):

Code: Select all

Woah! Page Fault at 0x74206e69, faulting address 0x78003c
Present, while in Supervisor mode, Occured in task 21
Running diagnostics on MMU...
	* PMM
Woah! Page Fault at 0x74206e69, faulting address 0x78003c
Present, while in Supervisor mode, Occured in task 21
Running diagnostics on MMU...
	* PMM
Woah! Page Fault at 0x74206e69, faulting address 0x78003c
Present, while in Supervisor mode, Occured in task 21
Running diagnostics on MMU...
	* PMM
Woah! Page Fault at 0x74206e69, faulting address 0x78003c
Present, while in Supervisor mode, Occured in task 21
Running diagnostics on MMU...
	* PMM
There were many of those errors :)

Test #2
128 MB: Worked until I ran ld, again. This time I got a nice GPF, and I should mention now that I love your error messages. Log:

Code: Select all

Mounting root device /dev/hda1...done
Everything under the sun is in tune, but the sun is eclipsed by the moon.
Executing /bin/init
Executing /bin/login
        Executing /bin/sh
      Executing /bin/ld
Kernel Exception #13
No EIP though...

Test #3
1 GB RAM: Blew up in the same way as 8 MB of RAM when running ld, fine otherwise.

----

All up, I'm impressed with your OS. There's a few little problems, but for the most part it works very well.

As for your keyboard problem, I was able to reproduce it by hitting keys while the kernel loaded and before the shell was active. Sounds like the keyboard buffer is filling up, which gives the illusion of a frozen OS when you no longer get any keyboard IRQs. Might not be the problem, but something to consider :).

Keep up the good work!
User avatar
piranha
Member
Member
Posts: 1391
Joined: Thu Dec 21, 2006 7:42 pm
Location: Unknown. Momentum is pretty certain, however.
Contact:

Re: SeaOS 0.1 Beta 1

Post by piranha »

Ah, thanks for noticing that with the keyboard...I'll take a look at that today.

Hmm...I'll try to see why it doesn't like Virtual Box. That page freeing message is actually somewhat common in Qemu too, when the init task exits (I think).

EDIT: The reason ld causes death is because it was never fully ported...

Alright, thanks for testing!

-JL
SeaOS: Adding VT-x, networking, and ARM support
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
Post Reply