Mattise 3.0 Released!

This forums is for OS project announcements including project openings, new releases, update notices, test requests, and job openings (both paying and volunteer).
User avatar
Troy Martin
Member
Member
Posts: 1686
Joined: Fri Apr 18, 2008 4:40 pm
Location: Langley, Vancouver, BC, Canada
Contact:

Re: Mattise 3.0 Released!

Post by Troy Martin »

Did what froggey did, broke it as well!

Backspace still broken, attached .gif.

Thanks for the meminfo :P Does it actually do anything other than print out 100 MB in GB, KB, and bytes? :)
Attachments
I Got The... Broken Backspace Blues
I Got The... Broken Backspace Blues
mattise0.gif (7.76 KiB) Viewed 4349 times
Image
Image
Solar wrote:It keeps stunning me how friendly we - as a community - are towards people who start programming "their first OS" who don't even have a solid understanding of pointers, their compiler, or how a OS is structured.
I wish I could add more tex
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: Mattise 3.0 Released!

Post by pcmattman »

One thing you might want to try in bochs is to smack the keyboard a few times during boot to fill the buffer and see if the driver can empty that.
This morning I have around an hour of spare time in which I plan to implement a proper keyboard driver (instead of implementing it within the TTY driver) that'll initialise the keyboard correctly - including emptying the buffer, doing a reset, etc...
I broke it!
Seems to be quite simple, hehe :P. I'll look into that bug as well, it looks like it's faulting within the shell - probably time for a rewrite.
Backspace still broken, attached .gif.
Thanks - backspace definitely works here. As I said before, I'm planning on moving the keyboard driver out of the TTY driver and at around the same time I hope to implement VT100 compatibility into the TTY driver. Then when I get around to rewriting the shell I can use the VT100 protocol instead of hacking my way through.

And, finally...
Thanks for the meminfo :P Does it actually do anything other than print out 100 MB in GB, KB, and bytes? :)
Depending on the amount of RAM you gave the system, there will always be a certain amount at startup (that's just a given). One of the main things I use meminfo for is to find leaks after loading, running, and unloading an executable. Because there's no support in the shell for background execution (which is of course possible) you shouldn't see it changing more than one or two pages.
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: Mattise 3.0 Released!

Post by pcmattman »

Hi everyone, just an update.

I'm going to release 3.0.2 after some minor changes including a rewrite of the shell. I'm also working on the memory usage problem and I plan to fix this by rewriting my malloc/free/realloc to be able to dynamically expand. This way I can start off with (even less than, potentially) a page for each heap implementation and have it grow as more memory is needed. The effect will hopefully be a faster startup time and better RAM usage - meaning my OS is less of a resource hog.

Combuster, would I be able to get you to test a floppy image if needed so I can figure out this keyboard/not init bug on your systems? I think I may have fixed the keyboard problem (I now do a full reset and initialise the keyboard in my KB driver) but the slow load time is worrying me.

Thanks :D
User avatar
Troy Martin
Member
Member
Posts: 1686
Joined: Fri Apr 18, 2008 4:40 pm
Location: Langley, Vancouver, BC, Canada
Contact:

Re: Mattise 3.0 Released!

Post by Troy Martin »

Hey Matt,

Looking forward to testing 3.0.2 for you!

Maybe if you could test my OS (TBOS, one post below yours on the forum screen :)) as well that would be great too!

--Troy
Image
Image
Solar wrote:It keeps stunning me how friendly we - as a community - are towards people who start programming "their first OS" who don't even have a solid understanding of pointers, their compiler, or how a OS is structured.
I wish I could add more tex
User avatar
Combuster
Member
Member
Posts: 9301
Joined: Wed Oct 18, 2006 3:45 am
Libera.chat IRC: [com]buster
Location: On the balcony, where I can actually keep 1½m distance
Contact:

Re: Mattise 3.0 Released!

Post by Combuster »

pcmattman wrote:Combuster, would I be able to get you to test a floppy image if needed so I can figure out this keyboard/not init bug on your systems? I think I may have fixed the keyboard problem (I now do a full reset and initialise the keyboard in my KB driver) but the slow load time is worrying me.
Sure. Just one tiny problem: I don't have access to my test cluster during the weeks, so if you can wait for that... :wink:
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
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: Mattise 3.0 Released!

Post by pcmattman »

Combuster: no problem, it'll take me until the weekend to get a working image ready for you (dynamically expanding heap is working, but now I have my ramfs being corrupted between load and usage - good fun to fix these sorts of bugs).

Troy: Tested and replied :)
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: Mattise 3.0 Released!

Post by pcmattman »

This version is still buggy (and worse backspace support than before, sorry :D) - for instance the "adjk!" thing still crashes.

But I'm pretty sure that it'll work on anything with more than 16 MB of RAM (maybe even less, but I'm not willing to take a chance - it ran on 8 MB before I turned on refcount-based GC again). The keyboard problem should be a thing of the past now as well.

I'm not releasing this on the SF project site, because I still have debugging and testing to do.

Download it here.
User avatar
Combuster
Member
Member
Posts: 9301
Joined: Wed Oct 18, 2006 3:45 am
Libera.chat IRC: [com]buster
Location: On the balcony, where I can actually keep 1½m distance
Contact:

Re: Mattise 3.0 Released!

Post by Combuster »

Different test box (Amalthea), different results:

Code: Select all

Welcome blabla

== PAGE FAULT ==
EIP=0x108812, CS=0x8, PID=-1
CR3=0x451000, CR2=0x17
It just hates my Pentium II boxes :cry: :wink:
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
User avatar
Combuster
Member
Member
Posts: 9301
Joined: Wed Oct 18, 2006 3:45 am
Libera.chat IRC: [com]buster
Location: On the balcony, where I can actually keep 1½m distance
Contact:

Re: Mattise 3.0 Released!

Post by Combuster »

Tested that last version on Io again, this time it wouldn't even get past the blank screen.

If you have any specific testing code, you'll have to be quick unless you want to skip another week
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
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: Mattise 3.0 Released!

Post by pcmattman »

Ok, it looks like there's some serious issues that emulators don't show (the curse of emulators). As a side note, if there's a serial port I do write all my debugging information to the serial line, which would help me a lot as I'd be able to figure out exactly where it dies. You'd probably need a null modem cable and all that though to make it work (not to mention serial ports on the test box and the read box). For example, with that page fault on Amalthea, I get a call stack over the serial line which makes debugging a hundred times easier. But I'll leave it up to you ;).

This week is block exams until Thursday afternoon so I doubt I'll be doing much coding. If I do get any spare time I'll either be playing TF2 or configuring my new linux partition, rather than coding.

Thanks for testing and pointing out that there are still problems. I think this shows an excellent example of what happens when you only test on emulators :P
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: Mattise 3.0 Released!

Post by pcmattman »

I've spent some time tearing apart my old code and fixing it up and have since also been able to reproduce the "Real computer" bugs mentioned here.

Changes include fixing the ATA driver to be more compatible with the new spec (and not depending on "Retired" IDENTIFY DEVICE data), fixing up cleanup functions, fixing kill() bugs, and trying to reduce load time. Hopefully this version works better than the ones before!

I've uploaded another image to http://www.wikiforall.net/mattise.tar.gz.
User avatar
inflater
Member
Member
Posts: 1309
Joined: Thu Sep 28, 2006 10:32 am
Location: Slovakia
Contact:

Re: Mattise 3.0 Released!

Post by inflater »

Tested on the same hardware...

Booting from GRUB to the OS shell took suprising 30 seconds - it's somewhat slow. After booting, I realized that your OS didn't support uppercase characters - bug in SHIFT key. After writing "|_" what the shift key does and pressing ENTER, there was a page fault. The whole kernel as you can see crashed within 5 seconds of booting with mine "assistance".
After rebooting, typing something and "backspacing it" moves the cursor back, but doesnt erase what has been written. I can "backspace" even the user prompt. When I backspace everything and hit ENTER, it will write "command not found" but when I type e.g. "helpp" or make these weird characters with the shift key, page fault immediately after pressing ENTER. The thing is, if i write "asôkdkjf" it wont page fault, but if I would write "helpp, meminfoa" it does.

Ah, the stability of microkernels... monolithic ftw: next_ver_of_a_microkernel_OS = new_bugs + 580! 8) A typical Linux infrastructure: one bugged kernel with infinite number of bugged drivers with X numbers of patches and add-on programs, which make the system stable. A great loophole :P [joking]

Back to the topic, ECHO works, but writing "echo loophole maniac" will write just "loophole".
MEMINFO command doesnt work (everything is zero)
Executing NASM will write "no input file" and PAGE FAULT again. *switches off the machine*

That's my two cent. Unfortunately you have a good truckload of bugs to fix....
My web site: http://inflater.wz.cz (Slovak)
Derrick operating system: http://derrick.xf.cz (Slovak and English :P)
User avatar
Troy Martin
Member
Member
Posts: 1686
Joined: Fri Apr 18, 2008 4:40 pm
Location: Langley, Vancouver, BC, Canada
Contact:

Re: Mattise 3.0 Released!

Post by Troy Martin »

Matt, looks like you have a keyboard driver to rewrite. I think it doesn't like non-alphanumeric symbols like ,$#@-].= and ô :P
Image
Image
Solar wrote:It keeps stunning me how friendly we - as a community - are towards people who start programming "their first OS" who don't even have a solid understanding of pointers, their compiler, or how a OS is structured.
I wish I could add more tex
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: Mattise 3.0 Released!

Post by pcmattman »

As for the keyboard driver not supporting SHIFT (and thus any SHIFTed characters) - during the rewrite I was mainly working at getting to a working keyboard driver (and I rarely use shift, so it was OK for testing). I'm pretty sure right SHIFT works, just not left (don't worry, I do know how ;)). That's definitely one of the things on my TODO list, just so you don't think I overlooked it :P
Tested on the same hardware...
Always helpful :D
Booting from GRUB to the OS shell took suprising 30 seconds - it's somewhat slow.
It should not be taking that long. The problem is that all my testing is done on emulators which run at > 2 GHz, so while for me my code is blazing fast for you on a real computer which might be slower it can be painfully slow. If there's no text on the screen at all then it's taking a long time in the basic kernel initialization (which it shouldn't be).

I might take a look at the IPS Bochs config line and see if I can tune the speed a bit.
After booting, I realized that your OS didn't support uppercase characters - bug in SHIFT key. After writing "|_" what the shift key does and pressing ENTER, there was a page fault.
See above about the SHIFT key. As for the non-alpha characters - I believe that's a bug in either my FAT driver or in my ramfs driver (either way, it's in a filesystem driver :P). I'm pointing at the FAT driver because that's the buggiest thing I've ever written.

On the other hand, I've noticed with correct emulations of the IDE interface my FAT driver loves dying (CR2=0, EIP=101c5a [memcpy]). If you stick to the ramfs you should be fine.
The whole kernel as you can see crashed within 5 seconds of booting with mine "assistance".
Maybe I should make it a headless server OS :P
After rebooting, typing something and "backspacing it" moves the cursor back, but doesnt erase what has been written. I can "backspace" even the user prompt.
Yes, that's known behavior. I haven't yet implemented proper support into my virtual terminals for things like backspace and other VT100 protocol elements. This is also a TODO.
When I backspace everything and hit ENTER, it will write "command not found" but when I type e.g. "helpp" or make these weird characters with the shift key, page fault immediately after pressing ENTER. The thing is, if i write "asôkdkjf" it wont page fault, but if I would write "helpp, meminfoa" it does.
Again, most likely page fault thanks to a faulty FAT driver.
Ah, the stability of microkernels... monolithic ftw: next_ver_of_a_microkernel_OS = new_bugs + 580! A typical Linux infrastructure: one bugged kernel with infinite number of bugged drivers with X numbers of patches and add-on programs, which make the system stable. A great loophole [joking]
You should've seen Mattise 2.0 - never released! I took on a microkernel interface which was somewhat stable but was awfully slow and it liked crashing a lot.
Back to the topic, ECHO works, but writing "echo loophole maniac" will write just "loophole".
ECHO only prints the first argument for now.
MEMINFO command doesnt work (everything is zero)
I just noticed that myself. Slightly odd, but there's only one or two locations that it's referenced.
Executing NASM will write "no input file" and PAGE FAULT again.
I've tried it myself and it faulted, so now I have a call stack and can trace the bug.
That's my two cent. Unfortunately you have a good truckload of bugs to fix....
I imagined I would have a lot of bugs, but thanks once again for taking the time to try things out. The only way this OS will get better is by having people try it out. I'd rather be fixing bugs that people keep finding than going off and implementing new features that cause even more bugs! :D
User avatar
quanganht
Member
Member
Posts: 301
Joined: Fri May 16, 2008 7:13 pm
Location: Hanoi, Vietnam

Re: Mattise 3.0 Released!

Post by quanganht »

Seems like I can't compile it. I'm using cygwin i586-elf cross-compiler.
Oh and, there is no way VMware can boot it.

Image
"Programmers are tools for converting caffeine into code."
Post Reply