SEAL Forum Index SEAL
The SEAL Forums
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Two issues: 1. License, 2. The Force

 
Post new topic   Reply to topic    SEAL Forum Index -> General
View previous topic :: View next topic  
Author Message
BadSector
Administrator


Joined: 24 Oct 2001
Posts: 328
Location: Greece, Samos

PostPosted: Thu Mar 25, 2004 11:26 am    Post subject: Two issues: 1. License, 2. The Force Reply with quote

1. I've solved the license issue. We'll use GPL for XSeal itself, but the library that the SEAL programs will use, will be licensed under LGPL. SEAL itself will also use this library. The scheme is simple, but it took me a lot of time to think (they say that the best things in life are simple; they're right):

a. A XSeal Loader, which will be nothing more than a dynamic linker and a multitasker. This will be licensed under GPL.
b. The XSeal Kernel will be loaded by the XSeal Loader. It will use the XSeal Library. This will be licensed under GPL.
c. The XSeal Library. This will be licensed under LGPL and will used by many programs.

The good news: The 'glue' library i wrote, won't be used. This is good, because it required a lot of work and just for defining interfaces you required three files (one interface definition file, one for the source code and one for the header). Also i wasn't sure if that was legally (i'm sure for the abone, however - Linux uses that scheme).

The bad news: The Force code is a mess (too). I can use only the window drawing routines, but even they, they use some bad practices. I'll probably need to rewrite a big part of them. The other parts of The Force (f.e. Application handling and Tasks) is based on the fact that The Force uses cooperative multitasking. This is BAD. So they are useless.

Conclusion: XSeal's code will not have many similarities with neither The Force and SEAL 1/2.

An unfortunate thing now. I'm totally used in graphical IDEs and it's very hard for me to go back in textmode-based development. This _will_ slow down my work. Sorry. But from the other hand, it will be a reason to create as fast as possible a graphical IDE for XSeal .

I've made a windowing library. Currently is only for Windows (a Linux port is made, but doesn't work as good as the Windows version so i haven't released it). I used it in a module player i made. I don't know if i use this library with XSeal, or if i try to port a widelly used one like GTK (so we won't need to write our own - this is a very good idea, i'm afraid that it will be a hard work and it will require many things from XSeal's kernel, which i won't be able to put them from the first version). However, if we use GTK we'll have some things 'ready', like some basic sort of HTML support and the ability to port GTK based programs (f.e. some nice IDEs ).

GCC needs to be ported to XSeal too. Is pretty unrealistic to use DJGPP and then an external tool to create the executables. This will need console support, which means that we'll need to do some sort of POSIX stuff. That sucks, since it's an OS kernel work.

I'm planning to write an OS in the near future. I'll design XSeal's kernel to be able to run under the DOS XSeal Launcher and my OS's. That will need a lot of design, but...

Design, design and again design. That's what XSeal needs . Bad design = bad code = less developers = XSeal's death.

Please don't press me (you didn't, but just to be sure) if i won't talk here for some time. I'm trying to do my best, but it's hard for me too. I'm a perfectionist, and i hate working on stuff only to delete them later. I need to make good plans on what i'm going to do before i actually do them. This is a new habbit, but it's proven that it works .

Also don't expect to see Office-like programs from the first releases. To be honest, the first releases will be totally useless for end users. I expect that the first releases will be some windows floating around, or maybe just a desktop with some messages or something like that. But remember that what matters is that what is going UNDERGROUND! SEAL developers (including me at these days) were going for what to show. Personally, as a Bad Seal coder, i never cared much for the underground, so Bad Seal was only an eye candy, but nothing more (well, that also was because i didn't knew the internals of SEAL - but i didn't tried that much).


Now for the second part.

2. The Force needs a maintainer. I'm not going to work on The Force anymore. If you think that you can't wait for XSeal (or that you can do it better , you can work on The Force. I said that in many forums and newsplaces, so there will be a little competition. I want someone who is able to continue The Force. (S)he'll need to be able to design systems, write fast code and know about computer graphics.

For more info at TF's site: http://theforcegui.sf.net/
_________________
main(){printf("Hello, world!n"); return 0;}
Bad Sector - http://www.bsector.cjb.net/
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger MSN Messenger
BadSector
Administrator


Joined: 24 Oct 2001
Posts: 328
Location: Greece, Samos

PostPosted: Thu Mar 25, 2004 11:33 am    Post subject: Reply with quote

ah, btw. The gLookTK (the window library) and the BadMOD (the module player) are both available from my site at http://www.bsector.cjb.net/
_________________
main(){printf("Hello, world!n"); return 0;}
Bad Sector - http://www.bsector.cjb.net/
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger MSN Messenger
BadSector
Administrator


Joined: 24 Oct 2001
Posts: 328
Location: Greece, Samos

PostPosted: Fri Mar 26, 2004 9:49 am    Post subject: Reply with quote

The make process of XSeal will be rewritten. It will use Makefiles and -probably- NerveBreak scripts. NerveBreak is a scripting language/engine that i wrote and i'm currently waiting for sourceforge to approve it. NerveBreak will be available as an external library for XSeal and it has a C like syntax (actually a JavaScript like syntax). It is very fast and portable. Also contains modules support (they add functions) and garbage collection. I think that it is the ideal scripting engine for any system (i'm currently using it as the major scripting language in my Linux box . Until now, i used NerveBreak to create sites (for example: http://art.bsector.cjb.net/), but recently i added CGI abilities (the next version - the one that i'm waiting from SF to approve and i already have ready - will have a customizable guestbook written in plain NerveBreak in it's samples).

Back to our topic: The make process will be indepedent of RHIDE and any IDE. In order to write the code, i developed 'BED' (Bad sector's EDitor , which is a simple fullscreen text editor. So i'm writing the sources in bed... . You can still use RHIDE or any other editor you want (BED supports syntax highlighting and launching 'make' for the make process), but i highly recommend BED, since it's written for XSeal editing. When a XSeal gets a good environment, BED will be ported to XSeal, so i'll be able to code XSeal from within XSeal .
_________________
main(){printf("Hello, world!n"); return 0;}
Bad Sector - http://www.bsector.cjb.net/
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger MSN Messenger
orudge
Administrator


Joined: 07 Oct 2001
Posts: 1332
Location: United Kingdom

PostPosted: Sat Mar 27, 2004 2:07 pm    Post subject: Reply with quote

Sounds good. Let us know how you get on (I'm sure you will).
_________________
Owen Rudge
http://www.owenrudge.net/

Currently Playing (last time I was online, anyway):
Back to top
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger MSN Messenger
poundsmack



Joined: 31 Dec 2002
Posts: 50

PostPosted: Tue Mar 30, 2004 3:08 am    Post subject: Reply with quote

Great to hear some pregress!
Back to top
View user's profile Send private message Send e-mail AIM Address Yahoo Messenger MSN Messenger
BadSector
Administrator


Joined: 24 Oct 2001
Posts: 328
Location: Greece, Samos

PostPosted: Tue Mar 30, 2004 8:15 am    Post subject: Reply with quote

I wrote a C preprocessor (actually C prepreprocessor :-) to assist me in writing XSeal code. Also i made bed (my text editor - bed=Bad sector's EDitor) to syntax highlight code and support projects (actually you just setup an environment variable where a Makefile for the project is placed - bed will chdir there, execute 'make' and then chdir back to where it was).

The preprocessor currently assists in inline assembly (i HATE this asm("blah") thing!) and documentation generation. An example of the documented code is:
Code:

!function    myFunc
!arg a       the first argument
!arg b       the second argument
!info        this function exchanges two variables
!return      a's new value
!seealso     myFuncNOT
int myFunc(int *a, int *b)
{
        int tmp = *a;
        *a = *b;
        *b = tmp;
}


!function    myFuncNOT
!arg a       the variable to NOT
!info        this function NOTs the given variable
!seealso     myFunc
void myFuncNOT(int *a)
{
        *a = !(*a);
}


BCP (Bad sector's C Preprocessor) will generate a DDF (Documentation Data File) with the abone information. DDFs can hold documentation about functions, macros, structs, variables or general documentation. Each entry in a DDF file is assigned to a file, a line (the code that immediatelly follows the last ! command - !seealso in the abone case, but may be something else) and a line number. Thus, using another tool, DDFLINK, one may merge all DDF files generated by .bc (Bad C - the files which has the BCP commands) files to a single DDF. Then this DDF can be converted to HTML, TXT, LaTeX (which results in other formats like PDF, PostScript, etc), TXT and more.

This will lead to a strongly documenteted API :-). Or at least, i hope so :-P.


Right now, i'm writing the task scheduler of XSeal. Actually the scheduler is written and i need to specify interrupts with the PIC, something which i haven't done before so it may take me some time, but i have plenty of documentation so i believe that it will not be a problem. Btw, in my current approach, each process is given 10ms for execution (the processes switch 100 times per second). I may reduce this later if i notice any kind of latency in the GUI (which will be executed in it's own process), but currently i think that it is enough (and it doesn't spam the CPU - for example, 1ms approach would result in smoother execution, but the CPU will use alot of it's power just for switching taskes).

Btw, XSeal will not be a strictly GUI-based system. Actually the first test releases will be console based, mostly in order to test the multitasking and file operation functions. Later, XSeal will be able to start in GUI or plain console. I'm going to use this approach in order to support some GNU tools. Extending this, XSeal will have some POSIX support. One may think XSeal as a POSIX system based on DOS, like what Cygwin is for windows, but with a GUI oriented design. Also i'm not going to make POSIX compliance my first priority (second is ok :-). Later i may write a Manifesto for XSeal. It will probably uploaded with XSeal's new site (which also needs to be written :-P).
_________________
main(){printf("Hello, world!n"); return 0;}
Bad Sector - http://www.bsector.cjb.net/
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger MSN Messenger
poundsmack



Joined: 31 Dec 2002
Posts: 50

PostPosted: Tue Mar 30, 2004 4:26 pm    Post subject: Reply with quote

so xseal is no longer going to jsut be a DOS GUI? you are turning it into an operating system?
Back to top
View user's profile Send private message Send e-mail AIM Address Yahoo Messenger MSN Messenger
BadSector
Administrator


Joined: 24 Oct 2001
Posts: 328
Location: Greece, Samos

PostPosted: Wed Mar 31, 2004 8:53 am    Post subject: Reply with quote

Being a standalone operating system would require a lot of work. And, yes, this is my intention -which isn't something hidden; i said it a lot of times before.

However, XSeal will not be from it's first releases a standalone OS and while i want in the long term to be a standalone OS, this will not happen soon. Until then, XSeal will run on top of DOS.

Something that i want to mention is that in order to run XSeal you *must* have long filename support. Under Windows 95/98 this won't be a problem (except if XSeal doesn't run for other issues -f.e multitasking conflicts with Windows' multitasking). Under pure DOS an external driver (TSR) will be supplied (which i'm currently using).

XSeal is currently being developed under FreeDOS. FreeCOM's filename completion has lots of bugs which makes the system hang (needs reset). I hope that they'll fix it asap, since i'm addicted to it (from WinXP and Linux).

I have to investigate on chaining interrupt 0x08 (system timer)... using _go32_dpmi_chain_protected_mode_interrupt() function does the work, if you want to call the previous function once per call and after your code. However, if you boost the system times -fe- 10x, you need to call it once per 10 calls (or the clock will go 10 times faster). And if you're going to implement multitasking, the stack will get messed up.

I would like to load my own interrupt table (using the LIDT instruction), which would make my life a lot easier, but DJGPP apps depends on CWSDPMI and CWSDPMI will get angry if i do this :-/. Another limitation of CWSDPMI is that it refuses to see more than 64MB of RAM (i think that this is a DPMI limitation). Thus, the kernel uses three function that i wrote, xsMalloc (XS from XSeal), xsFree and xsRealloc. Currently, these functions are using standard malloc, free and realloc, but in the future they'll use a memory manager that will be able to use every byte of the available RAM (up to 4GB). This will require a rewrite of many libc functions, so i'm not going to mess with it for the moment.
_________________
main(){printf("Hello, world!n"); return 0;}
Bad Sector - http://www.bsector.cjb.net/
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger MSN Messenger
dlormand



Joined: 15 Apr 2004
Posts: 5
Location: Tucson, Arizona, USA

PostPosted: Thu Apr 15, 2004 10:20 pm    Post subject: Reply with quote

Hello,

I've been watching Seal for a while now. I've played with 2.0.11,
and while it's pretty good, I am excited by what I'm hearing about
XSeal - particularly if you can get multitasking to work right.

I am a bit alarmed by the notion that XSeal could become its own
OS. While I'm not necessarily opposed to some competition to DOS,

I'd like to make a few suggestions:

1. Don't marry the GUI to the OS. That would be repeating Microsoft's
error. XSeal should be a great GUI, but it should ride on top of, and
be separate from, any OS you construct.

2. There are plenty of existing OSes out there; it would be better to
play in someone else's box. Such as NewOS, or eRTOS, or something
similar. Or helping put multitasking in FreeDOS32. Just seems like
it would be a better use of resources to concentrate on a GUI (of which
there aren't any _good_ ones - for DOS) than reinvent the OS wheel
for the umpteenth time.

Question about needing something better than DJGPP: I understand that
DJGPP may have things (in its libraries) that conflict with the goal
of a multitasking DOS. But isn't DJGPP a GCC variant? What is GCC
going to have that DJGPP doesn't have? [and while I'm sure something
else is good, like Open Watcom, I'd rather stick with real GNU tools.]

Question about TCP/IP: What's the deal? What does SEAL have that
prevents the use of WATTCP?
Back to top
View user's profile Send private message
BadSector
Administrator


Joined: 24 Oct 2001
Posts: 328
Location: Greece, Samos

PostPosted: Fri Apr 16, 2004 8:00 am    Post subject: Reply with quote

Quote:

I've been watching Seal for a while now. I've played with 2.0.11,
and while it's pretty good, I am excited by what I'm hearing about
XSeal - particularly if you can get multitasking to work right.

I already have multitasking implemented. The problem is DJGPP (see below)
Quote:

I am a bit alarmed by the notion that XSeal could become its own
OS. While I'm not necessarily opposed to some competition to DOS,

If i have to reimplement anything (memory management, filesystem [in order to access ext2, NTFS, etc partitions and support long filenames without the need of external drivers], device drivers, etc) then i don't find a usage for FreeDOS, except probably as a launcher. I don't say that i'll reimplement anything and that my goal is to reimplement anything; but if i believe that by reimplementing something will improve something (f.e. speed, stability, etc) i will.
Quote:

1. Don't marry the GUI to the OS. That would be repeating Microsoft's
error. XSeal should be a great GUI, but it should ride on top of, and
be separate from, any OS you construct.

XSeal will be based on a console. A startup script will be responsible for loading the default drivers and the GUI, but anyone could wip out the GUI and leave XSeal as it is. The services will be implemented in console (in a daemon like manner), so one could be able to use XSeal as a proxy box (when proxy is implemented - or ported from another OS).
Quote:

Question about needing something better than DJGPP: I understand that
DJGPP may have things (in its libraries) that conflict with the goal
of a multitasking DOS. But isn't DJGPP a GCC variant? What is GCC
going to have that DJGPP doesn't have? [and while I'm sure something
else is good, like Open Watcom, I'd rather stick with real GNU tools.]

DJGPP is just a port of GCC to DOS. However it doesn't use the GNU C library, which is multithread safe. DJGPP has it's own C library.
Quote:

Question about TCP/IP: What's the deal? What does SEAL have that
prevents the use of WATTCP?

Nothing. Someone had implemented a simple mailer for SEAL 1, some years ago. After that, nobody sat down to write a proper socket implementation.

XSeal is another issue, since WATTCP will have to be ported to XSeal (XSeal will be an OS over DOS - XSeal application will not be able -or should not- to access DOS resources). I don't know WATTCP and currently networking isn't a big priority for XSeal. It mostly matters to have a proper running system. When a basic system is available (one that can use console, keyboard, load external executables and libraries, etc), i'll start collecting information about networking. But even then, networking won't start being implemented until a basic GUI is available.

Note that this does not include multiuser abilities. XSeal will have support for multiple users with multiple access rights. This is a reason that i want to make XSeal work with ext2/ext3 filesystem.
_________________
main(){printf("Hello, world!n"); return 0;}
Bad Sector - http://www.bsector.cjb.net/
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger MSN Messenger
crashfourit



Joined: 10 Dec 2003
Posts: 43

PostPosted: Fri Apr 16, 2004 3:02 pm    Post subject: Reply with quote

I'm willing, if time promits, to write a 32bit LOW level kernel, which I will be writing for an OS project of my own.
I have a general idea of how I want it to be layed out--simple.
If y'all want my help, I will be will to give it.

On a side note:
It looks like Seal is getting a brand new start, so how about a new domain name--like xseal.org?
_________________
"seal" must be in the subject line if you email me.
If you try to make something idiot proof, some one will come and make a better idiot.
Back to top
View user's profile Send private message Visit poster's website
BadSector
Administrator


Joined: 24 Oct 2001
Posts: 328
Location: Greece, Samos

PostPosted: Sat Apr 17, 2004 9:56 am    Post subject: Reply with quote

lets make some working releases first. Then we'll think about a domain.
_________________
main(){printf("Hello, world!n"); return 0;}
Bad Sector - http://www.bsector.cjb.net/
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger MSN Messenger
Display posts from previous:   
Post new topic   Reply to topic    SEAL Forum Index -> General All times are GMT - 7 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group