SeaKernel - pre-release testing request.

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:

SeaKernel - pre-release testing request.

Post by piranha »

So. After realizing that my kernel had become kind of bloated and had some bugs that had work arounds with bugs that some applications relied on, I decided to do a major clean up. It's not a full re-write, because I'm kept a lot of the old code, but the VFS is defiantly rewritten.

The VFS
I made major changes, including a basic skeleton tree kept in memory so it would be immediately changed on update, and is also much more stable. The inodes have pointers and basic fields that may be implemented how ever each FS wants to (to a point). The inodes have inode ops, which call FS functions. I think that the new system is much better. Paths work like in unix (/path/to/file).

DevFS (resides in /dev)
I added a devfs, or device manager system. This is heavily linux0.01-based (uses major, minor addressing, calls function tables, etc). Has basic nodes, such as:
/dev/hda: Hard Disk 0. (hdb is hard disk 1).
/dev/ttyx: Virtual Terminals 1, 2, etc. Default is 1.
There are several others, but they aren't implemented yet.

Icmd
Internal command line. For now, provides many basic features of a shell, but is inside the kernel. The kernel does have syscalls and can load binary files, but I want to wait until I get ELF loading and finish porting newlib before I add a userland shell.
The 'help' command displays features.
cat: Typing the filename after the command dumps the file on screen. But....if you type 'cat /dev/tty1', you can type something and it'll display is back. Woot, working VFS and DevFS!
exit: Reboots computer.

RamFS
The root filesystem keeps inodes in memory, as well as files until I get a working FS driver for a hard disk.

This isn't an official release, but I would like to get some testing results back, hopefully from a real computer.

Here is the google code page: http://code.google.com/p/microsea/
Here is a floppy image: http://microsea.googlecode.com/files/flo.img

Yes, I took away the old shell for this simpler one. Easier to test. No logging in ;)

-JL
SeaOS: Adding VT-x, networking, and ARM support
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
Martijn
Posts: 22
Joined: Tue Feb 26, 2008 3:43 am
Location: The Netherlands

Re: SeaKernel - pre-release testing request.

Post by Martijn »

Doesn't work in Virtual PC. :(
(see screenshot)
Attachments
sea.gif
User avatar
piranha
Member
Member
Posts: 1391
Joined: Thu Dec 21, 2006 7:42 pm
Location: Unknown. Momentum is pretty certain, however.
Contact:

Re: SeaKernel - pre-release testing request.

Post by piranha »

Damn. Hmm...I''ll try to see what might be the problem.
btw, yes the kernel swears when it panics. It's talking to itself though...

edit: What are the specs? It does need at least 8M of memory to run...
edit2: Actually, thats probably not the problem. Does it work on bochs or a real machine?
I use Qemu to test it.

-JL
SeaOS: Adding VT-x, networking, and ARM support
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
User avatar
piranha
Member
Member
Posts: 1391
Joined: Thu Dec 21, 2006 7:42 pm
Location: Unknown. Momentum is pretty certain, however.
Contact:

Re: SeaKernel - pre-release testing request.

Post by piranha »

One one person? Oh well. By the way, I setup virtual consoles finally. 1: Main console. 2: Kernel debug console. 3: I don't know.

-JL
SeaOS: Adding VT-x, networking, and ARM support
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
User avatar
kmtdk
Member
Member
Posts: 263
Joined: Sat May 17, 2008 4:05 am
Location: Cyperspace, Denmark
Contact:

Re: SeaKernel - pre-release testing request.

Post by kmtdk »

well
first
im testing on bochs
i found one error :
using single processor under bochs, "test" fails (restarts) when i do this execute order:
task
test
but it works reverse
exit does not seems to work 100 % ( it kills the tasks, but it dies afterwords)

KMT dk
well, what to say, to much to do in too little space.
when it goes up hill, increase work, when it goes straight, test yourself but when going down, slow down.
User avatar
piranha
Member
Member
Posts: 1391
Joined: Thu Dec 21, 2006 7:42 pm
Location: Unknown. Momentum is pretty certain, however.
Contact:

Re: SeaKernel - pre-release testing request.

Post by piranha »

Well, exit is designed to exit from init, rebooting the computer.

As to why the task then test thing is broken...I have no idea.
SeaOS: Adding VT-x, networking, and ARM support
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
Martijn
Posts: 22
Joined: Tue Feb 26, 2008 3:43 am
Location: The Netherlands

Re: SeaKernel - pre-release testing request.

Post by Martijn »

piranha wrote:Damn. Hmm...I''ll try to see what might be the problem.
btw, yes the kernel swears when it panics. It's talking to itself though...

edit: What are the specs? It does need at least 8M of memory to run...
edit2: Actually, thats probably not the problem. Does it work on bochs or a real machine?
I use Qemu to test it.

-JL
I haven't tested it on a real machine, will try Qemu when i get home.
From my own experience i have found that if it works in Qemu but not in VirtualPC, it won't work on real hardware.
User avatar
inflater
Member
Member
Posts: 1309
Joined: Thu Sep 28, 2006 10:32 am
Location: Slovakia
Contact:

Re: SeaKernel - pre-release testing request.

Post by inflater »

Tested. The shell is pretty stable, overflowing the command buffer has protection and all. Altough on real hardware it throws "floppy_calibrate: status = error" after boot up, the shell works and afterall, my floppy driver in Derrick has similar problems. The courtesy of Microsoft's way on how to access the floppy disk through I/O ports and the reaction of HW manufacturers, I guess... :-s On Bochs, all works fine.

Stability issues:
- Typing "cat" displays Invalid command, but typing "cat test.txt" works. I suppose "cat: invalid parameter" is the answer to the question? :)
The same for "fshelp asldhjfhak" which displays "fshelp: invalid command", but "fshelp" isn't a invalid command though ;)
- Is "ls" hardcoded or it works only for the ramdisk? If the disk contents are not hardcoded, can it work on a physical floppy or hdd?
- CHDIR'ing (sorry... I like DOS 8)) to DEV and typing "cat hdb" freezes the system. I don't know what's "hdb". Is it a device driver?
- Bochs: Typing "test" does a page fault.
- MS Virtual PC, 4 MB RAM: "Kernel Panic: First frame non-existant. System halted. Thanks for halting me, *******. I really hate being cut off in the mid senten--" - yay, somebody with sense of humor ;) (Type EXIT in Derrick while running in a emulator and select triplefault..)
- MS Virtual PC, 84 MB RAM: "Page Fault [present] @ 0x3F6BB00, Kernel Panic: Page fault"

Regards
inflater
My web site: http://inflater.wz.cz (Slovak)
Derrick operating system: http://derrick.xf.cz (Slovak and English :P)
User avatar
piranha
Member
Member
Posts: 1391
Joined: Thu Dec 21, 2006 7:42 pm
Location: Unknown. Momentum is pretty certain, however.
Contact:

Re: SeaKernel - pre-release testing request.

Post by piranha »

Thanks for testing inflater.
Is "ls" hardcoded or it works only for the ramdisk? If the disk contents are not hardcoded, can it work on a physical floppy or hdd?
ls should work for all filesystems. It just scans the filesystem tree and maybe calls a function in the FS driver.
- CHDIR'ing (sorry... I like DOS 8)) to DEV and typing "cat hdb" freezes the system. I don't know what's "hdb". Is it a device driver?
hdb is the second harddrive...which isn't there (hda is the first). I fixed it though, those nodes will only appear if there are harddrives.

Yeah, it needs at least 8M ram to run.
Altough on real hardware it throws "floppy_calibrate: status = error" after boot up
You tested it on real HW? Did it work there?

btw: I added a spawn command that allows you to spawn new programs on specific virtual terminals 8)

-JL
SeaOS: Adding VT-x, networking, and ARM support
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
User avatar
inflater
Member
Member
Posts: 1309
Joined: Thu Sep 28, 2006 10:32 am
Location: Slovakia
Contact:

Re: SeaKernel - pre-release testing request.

Post by inflater »

piranha wrote:ls should work for all filesystems. It just scans the filesystem tree and maybe calls a function in the FS driver.
I know, but I've saw no disk activity when performing "ls". I thought the floppy would spin up and "refresh" the directory list.
piranha wrote:You tested it on real HW? Did it work there?
As mentioned, yup. The "test" command worked there, unlike in Bochs.

Regards
inflater
My web site: http://inflater.wz.cz (Slovak)
Derrick operating system: http://derrick.xf.cz (Slovak and English :P)
User avatar
piranha
Member
Member
Posts: 1391
Joined: Thu Dec 21, 2006 7:42 pm
Location: Unknown. Momentum is pretty certain, however.
Contact:

Re: SeaKernel - pre-release testing request.

Post by piranha »

What was the machine that you tested it on? Specs?
I know, but I've saw no disk activity when performing "ls". I thought the floppy would spin up and "refresh" the directory list.
Well, right now it's using the RamFS as it's primary FS, so it's all in ram. But ls should work for other FS's that implement the functions that it needs. (Note: RamFS gets it's files from the initrd).

-JL
SeaOS: Adding VT-x, networking, and ARM support
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
User avatar
inflater
Member
Member
Posts: 1309
Joined: Thu Sep 28, 2006 10:32 am
Location: Slovakia
Contact:

Re: SeaKernel - pre-release testing request.

Post by inflater »

The testbed:

http://inflater.wz.cz/site/pc/zelezo.htm

The second picture and the text on the right (parametre testbedu).
My web site: http://inflater.wz.cz (Slovak)
Derrick operating system: http://derrick.xf.cz (Slovak and English :P)
Post Reply