Page 1 of 1

SeaKernel - pre-release testing request.

Posted: Wed Nov 26, 2008 4:20 pm
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

Re: SeaKernel - pre-release testing request.

Posted: Wed Nov 26, 2008 5:24 pm
by Martijn
Doesn't work in Virtual PC. :(
(see screenshot)

Re: SeaKernel - pre-release testing request.

Posted: Wed Nov 26, 2008 6:06 pm
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

Re: SeaKernel - pre-release testing request.

Posted: Fri Nov 28, 2008 3:06 pm
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

Re: SeaKernel - pre-release testing request.

Posted: Fri Nov 28, 2008 4:37 pm
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

Re: SeaKernel - pre-release testing request.

Posted: Fri Nov 28, 2008 4:48 pm
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.

Re: SeaKernel - pre-release testing request.

Posted: Sat Nov 29, 2008 4:58 am
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.

Re: SeaKernel - pre-release testing request.

Posted: Sat Nov 29, 2008 6:54 am
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

Re: SeaKernel - pre-release testing request.

Posted: Sat Nov 29, 2008 11:21 am
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

Re: SeaKernel - pre-release testing request.

Posted: Sat Nov 29, 2008 11:35 am
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

Re: SeaKernel - pre-release testing request.

Posted: Sat Nov 29, 2008 11:43 am
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

Re: SeaKernel - pre-release testing request.

Posted: Sat Nov 29, 2008 11:52 am
by inflater
The testbed:

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

The second picture and the text on the right (parametre testbedu).