I have just uploaded the Eppix alpha 1.0 source release.
What is Eppix?
Eppix is a 32 bit protected mode Monolithic, OS.
It can do pre-emptive multitasking, it supports some basic system calls like _open, _read, _write (which are used by the libc fopen, fread, fwrite), and it has a device filesystem.
What is contained in the release?
Source to:
1. the bootloader
2. eppixldr (a program which loads the Eppix kernel)
3. the Eppix kernel
4. A very simple basic libc
5. init program which only does some testing of the system calls.
The source contains much documentation and explaining what it does.
Where can I download the source?
http://home.wanadoo.nl/fam.dubbelboer/files/Eppix_a10_source.zip
Just tell me what you all think of it.
Eppix alpha 1.0 source release
-
Tim
Re:Eppix alpha 1.0 source release
Looks OK to me. I couldn't build it because it uses a few DJGPP-specific things in the build process. Also, I think most people call their copy of NASM 'nasm', whereas your build script is looking for nasmw. Do you have a bootable floppy disk image?
I would recommend separating what you call processes into processes and threads. Threads are scheduled and run inside processes. Processes contain an address space, a handle table and one or more executable images. I recommend doing it at this stage because it will be much harder to add threading later, whereas scheduling threads at this point is just as hard as scheduling processes.
I don't see anything particularly outstanding about your kernel. It looks a bit Unix-ish, but I can't get a feel for the overall philosophy.
I think overall you deserve a lot of credit for writing something which (presumably) works. Your source structure and source code is much clearer than that of most programmers I've seen.
I would recommend separating what you call processes into processes and threads. Threads are scheduled and run inside processes. Processes contain an address space, a handle table and one or more executable images. I recommend doing it at this stage because it will be much harder to add threading later, whereas scheduling threads at this point is just as hard as scheduling processes.
I don't see anything particularly outstanding about your kernel. It looks a bit Unix-ish, but I can't get a feel for the overall philosophy.
I think overall you deserve a lot of credit for writing something which (presumably) works. Your source structure and source code is much clearer than that of most programmers I've seen.
-
Epp
Re:Eppix alpha 1.0 source release
Thanks.
Can you be more specific about the DJGPP things because I want to be able to build it with other gcc versions (I don't have linux installed at the moment).
The newest windows version of nasm is called nasmw, I didn't do that. But I will rename it to nasm because that's better.
About the thread and process thing, I had already planned to make it that way. I just wanted to realease something so I didn't put it in this release.
The overall philosophy is to create a working OS with good documentation and good structured code. I have spend a lot of time thinking about the best way to code some things such as the file-system. I'm also creating it to find out how things work.
Can you be more specific about the DJGPP things because I want to be able to build it with other gcc versions (I don't have linux installed at the moment).
The newest windows version of nasm is called nasmw, I didn't do that. But I will rename it to nasm because that's better.
About the thread and process thing, I had already planned to make it that way. I just wanted to realease something so I didn't put it in this release.
The overall philosophy is to create a working OS with good documentation and good structured code. I have spend a lot of time thinking about the best way to code some things such as the file-system. I'm also creating it to find out how things work.
-
Tim
Re:Eppix alpha 1.0 source release
Well, your batch files seem to want to set up lots of DJGPP enviroment stuff. I'll see if I can get it to build on Cygwin later.Epp wrote:Can you be more specific about the DJGPP things because I want to be able to build it with other gcc versions (I don't have linux installed at the moment).
The native Win32 port of NASM (as opposed to the Cygwin port) seems to include NASM for DOS (nasm.exe) and NASM for Win32 (nasmw.exe). Since I use the Win32 version, and most makefiles look for a program called 'nasm', I renamed nasm.exe to nasmd.exe and nasmw.exe to nasm.exe.The newest windows version of nasm is called nasmw, I didn't do that. But I will rename it to nasm because that's better.
That sounds very similar to my ownThe overall philosophy is to create a working OS with good documentation and good structured code. I have spend a lot of time thinking about the best way to code some things such as the file-system. I'm also creating it to find out how things work.