Page 1 of 1

ScorchOS 0.0.7 Released

Posted: Sat Mar 07, 2009 8:50 am
by ScorchOS
The latest version of ScorchOS is now available for download at http://www.scorchos.com/

For those of you who liked ApolloOS, notable improvements are:
- New Name & License (Apache License v2 rather than GNU GPLv3)
- Interactive Shell/Virtual Terminal Interface
- Numerous Bugfixes

The aim for the next release is a floppy controller and possibly a FAT file system driver for full support. It is noticable that this is based on bkerndev, but as the project extends and improves this project should become more distinctive and achieve it's goal of providing a minimal GUI-driven operating environment which others can develop.

Re: ScorchOS 0.0.7 Released

Posted: Sat Mar 07, 2009 12:29 pm
by xyzzy
No offence meant here, but could I ask what you were thinking when you posted something thats pretty much bkerndev with a ridiculously buggy shell on top of it on OSNews?

Re: ScorchOS 0.0.7 Released

Posted: Sat Mar 07, 2009 12:38 pm
by froggey
What? Why did you release at this state?
This is just bkerndev with one extra twiddly bit badly jammed on! How could you possibly think that making a release at this point would be a good idea? It's completely useless!
Not only that, but you posted it on OSNews as well?

This is what's wrong with OS tutorials. It enables copy+paste "Look ma! I made an OS!" :(

Re: ScorchOS 0.0.7 Released

Posted: Sat Mar 07, 2009 1:53 pm
by Troy Martin
Yeah, I'm really starting to regret plopping my own calls and shell and system call interfaces on top of a modified MikeOS 1.3 + 2.0 + 3.0 kernel.

Re: ScorchOS 0.0.7 Released

Posted: Sun Mar 08, 2009 3:47 pm
by ScorchOS
I fully accept your criticism on this one. I've known from the outset that just building on top of bkerndev was hardly ground-breaking stuff, and I agree with you that the shell is very buggy. To be honest I've spent the past 5 months not implementing the major changes I wanted to (i.e. a newlib port, floppy disk controller, etc.) to show how bkerndev can be improved and extended. These features will however start to be included as of the next release, but as you guys can probably tell I just wanted to release something :-)

I think the main thing that ScorchOS 0.0.7 contributes is a way of making life a little easier for noob kernel developers (Linux users just run './linbuild.sh' and './lintest.sh' to compile and run for instance), a quick and easy way of testing (especially for Windows users, who have a self-contained version of portable qemu running a ScorchOS image to download) and a wiki that tries to explain in the simplest possible terms how to create a kernel build environment.

In technical terms ScorchOS needs a lot of work before it can consider itself a unique project (hence the '0.0.7' release number ;) ) but this project is not primarily for others to use (despite my previous point). It's primarily here because I personally want to learn how operating kernels work and in the satisfaction of coding one. The reason I publicize it so much (i.e. on osnews) is in case there are others who would like to do the same - this is also the reason I link to as many other kernel projects as I can which I have found useful on http://www.scorchos.com. I code a kernel as a hobby, but nothing pleases me more than when I hear from other people tinkering with my work and having fun coding it - or even encouraging people to have a go with bkerndev.

I hope ScorchOS has not offended you too much from it's presence, but I hope you understand that though I accept your criticism I will carry on coding and posting my code. If there comes a time when I want ScorchOS to compete with your (excellent) kernels on technical merit, then I will do a complete recode from scratch.

Re: ScorchOS 0.0.7 Released

Posted: Sun Mar 08, 2009 5:07 pm
by gzaloprgm
Hey ScorchOS, I have found a horrible bug in your shell.c:

Code: Select all

//ScorchOS shell.c
int atoi(unsigned char convChar)        //this function is not used in the same way as newlib, but achieves the same end - it grabs integers from a string
                                        //It does however rely on you having parsed the string first for spaces, and sending each character individually here
{
        //We could use casting here, but I suck! Therefore we'll use some if statements to convert.
        if(convChar = '0')
        {
                return 0;
        }
        else if(convChar = '1')
        {
                return 1;
        }
        else if(convChar = '2')
        {
                return 2;
        }
        else if(convChar = '3')
        {
                return 3;
        }
        else if(convChar = '4')
        {
                return 4;
        }
        else if(convChar = '5')
        {
                return 5;
        }
        else if(convChar = '6')
        {
                return 6;
        }
        else if(convChar = '7')
        {
                return 7;
        }
        else if(convChar = '8')
        {
                return 8;
        }
        else if(convChar='9')
        {
                return 9;
        }
        else
        {
                return 0;       //If all else fails...
        }
}
WTF? comparing with one equal :shock: :roll:

Code: Select all

if(n>='0' && n<='9'){
return n-'0';
}else{
return 0;
}
Cheers,
Gonzalo

Re: ScorchOS 0.0.7 Released

Posted: Mon Mar 09, 2009 1:19 am
by Steve the Pirate
gzaloprgm wrote:Hey ScorchOS, I have found a horrible bug in your shell.c:
...
WTF? comparing with one equal :shock: :roll:
Not to mention the general dodgyness of that atoi command... Here's mine - I found it on the internet, and I'm fairly sure it was public domain.

Code: Select all

u32int atoi(const char * ch, u32int base = 10);

// Atoi - Convert a number in a string into an
// integer
u32int atoi(const char * ch, u32int base)
{
	u32int num = 0;
	u32int s = 0;
		
	if(ch == NULL)
	{
		return 0;
	}
		
	while(*ch != '\0')
	{			
		if(*ch >= '0' && *ch <= '9')
		{
			s = *ch - '0';	
			num = (num * base) + s;
		}
			
		*ch++;
	}
	
	return num;
}

Re: ScorchOS 0.0.7 Released

Posted: Mon Mar 09, 2009 3:11 am
by ScorchOS
Thanks for the help with the atoi() - I'll be honest in that I ran into a dead-end with it (hence the reason the underlying code for it is so naff and I've hard-coded the addMe and subtractMe functions). Those improvements will be included, as well as support for larger integers - for the opposite function (integer to string) using modulus by 10 should give me each integer, then output the individual characters in the correct order.

The only real bug after that is that the shell doesn't handle backspace particularly well - you can remove excess characters but changing them produces unexpected results.

After the pointing out of this school-boy error I will face facts that putting a buggy shell onto a patched tutorial kernel isn't exactly going to command the respect of the kernel hardcore. I'll try and create a new kernel for 0.0.8 - but I still consider this a worthwhile experience as I'll still include the same shell code (only far less buggy). As I said I code for fun, but the better ScorchOS is as a kernel, the more helpful others will find it. :)

(I will upload some code to the ScorchOS SVN repo sometime this evening GMT)

Re: ScorchOS 0.0.7 Released

Posted: Mon Mar 16, 2009 5:42 pm
by ScorchOS
JUST POSTED A PATCHED VERSION OF SCORCHOS 0.0.7

In recognition of the fact I released a bit early, I've released a patched version of ScorchOS 0.0.7. Several bugs have been rectified with the shell (and where there are bugs, they are handled much more gracefully). Your ideas for an atoi() function have been included.

The focus is now on next release (ScorchOS 0.0.8 ) which will have a dedicated OS Toolchain so we will start to move away from non-standard C and then possibly a floppy driver, which will mean this kernel becomes a very different beast to the tutorial kernel it's based on. As I said, it's pre-alpha stuff so most of the code base will likely be changed and/or replaced. I will not publicise it on osnews again until it offers much more than it does now ;)

Thanks for your help everyone :D