OSDev.org

The Place to Start for Operating System Developers
It is currently Sun Apr 28, 2024 3:09 pm

All times are UTC - 6 hours




Post new topic Reply to topic  [ 13 posts ] 
Author Message
 Post subject: AOS - An Operating System
PostPosted: Fri Aug 18, 2006 2:27 am 
Offline
Member
Member
User avatar

Joined: Sun Sep 18, 2005 11:00 pm
Posts: 106
Location: Williamstown, MA; Worcester, MA; Yokohama, Japan
AOS
- An Operating System -
Version 0.1
Contact: Kenneth P. Hough ([email protected])
URL: http://www.kenax.byethost9.com/aos.html

AOS is:
32-bit
Currently it only has a console
English only
FAT12 filesystem
Segmented Memory:
    Kernel Code: 0-based; 4GB
    Kernel Data: 0-based; 4GB
    User Code: 0-based; 4GB
    User Data: 0-based; 4GB


Eventually it'll use paging <- still working on that. 8)

My plan is to make AOS multitasking, with a custom GUI, trilingual (English, Spanish, Japanese), compatible if many filesystems (FAT12, FAT16, FAT32, NFS, NTFS, EXT 2, EXT3), DirectX implemented (for gamers i.e. my friend). Hopefully I can implement gcc and gclib. Eventually i would like my OS to be extremely secure, anti-script-kiddie OS :D .

Idea, Comments, Advice are welcome!


Last edited by kenneth_phough on Sat Aug 19, 2006 3:05 am, edited 1 time in total.

Top
 Profile  
 
 Post subject:
PostPosted: Fri Aug 18, 2006 10:08 am 
Offline
Member
Member
User avatar

Joined: Fri Jan 27, 2006 12:00 am
Posts: 1444
I hope you have alot of spair time, eg: 100 years, I do not like to put anyone off, but most OS projects fail because, they set too big a goals.
To make a Dos clone, would take a good programmer 5 years, even working, full time on it.
But good luck.


Top
 Profile  
 
 Post subject:
PostPosted: Sat Aug 19, 2006 12:29 am 
Offline
Member
Member
User avatar

Joined: Sun Sep 18, 2005 11:00 pm
Posts: 106
Location: Williamstown, MA; Worcester, MA; Yokohama, Japan
Thanks! :D
Only if I had nine lives :lol: .
My plan is to work on it bit-by-bit. Accomplish each goal one-by-one - like many others. Also, some of my friends at my high school are interested so I might create a team to work on it.

Personally...DirectX and windows/unix executable compatibility is NOT a priority. Writing a network driver is also beyond the scope but, hopefully I get some of it done.

Cheers,
Kenneth


Top
 Profile  
 
 Post subject:
PostPosted: Sat Aug 19, 2006 11:29 am 
Offline
Member
Member
User avatar

Joined: Fri Jan 27, 2006 12:00 am
Posts: 1444
kenneth_phough wrote:
Thanks! :D
Writing a network driver is also beyond the scope but, hopefully I get some of it done.

Maybe not i have made a network driver that includes rtl8139 ethernet card driver, full tcp/ip stack, is less than 8k and is self contained, only needing timer and find pci device implemented in your OS, it should be ready in about 2 to 3 weeks, maybe that will help (will come with fasm code).


Top
 Profile  
 
 Post subject:
PostPosted: Sat Aug 19, 2006 11:47 pm 
Offline
Member
Member
User avatar

Joined: Sun Sep 18, 2005 11:00 pm
Posts: 106
Location: Williamstown, MA; Worcester, MA; Yokohama, Japan
Dex wrote:
only needing timer and find pci device implemented in your OS

I got a timer working but its not accurate - or at least I think its not accurate. Still haven't got a find pci device <- need to work on that :D .

Would porting a standard C library to my os be a bad idea? I was thinking of porting the GNU gclib to my OS but some of the functions seemed to be extrememly OS/hardware dependent.


Top
 Profile  
 
 Post subject:
PostPosted: Sun Aug 20, 2006 2:42 am 
Offline
Member
Member
User avatar

Joined: Sun Oct 16, 2005 11:00 pm
Posts: 74
Location: Australia
Are you sure it's not accurate? Don't rely on emulators (especially Bochs) to test your accuracy.
On my OS, in bochs the time increases by several minutes every second. The PIT still works properly though.
Make sure you test it on a real machine.


Top
 Profile  
 
 Post subject:
PostPosted: Sun Aug 20, 2006 9:59 pm 
Offline
Member
Member
User avatar

Joined: Sun Sep 18, 2005 11:00 pm
Posts: 106
Location: Williamstown, MA; Worcester, MA; Yokohama, Japan
Well, I read that it takes about 18 timer ticks for 1 second, but in Bran's Kernel dev it said 18.2222222222HZ. I can't think of a way to make my timer that accurate so for now its set to 18 ticks but eventually I would like to make it as acurate as possible.
Your right about bochs. It does wierd things. The timer is one but also the keyboard (or at least on mine) certain keys share the same keycode as others. :?

Cheers,
Kenneth


Top
 Profile  
 
 Post subject:
PostPosted: Mon Aug 21, 2006 3:32 am 
Offline
Member
Member
User avatar

Joined: Fri Oct 22, 2004 11:00 pm
Posts: 158
Location: Vlaardingen, Holland
kenneth_phough wrote:
Well, I read that it takes about 18 timer ticks for 1 second, but in Bran's Kernel dev it said 18.2222222222HZ. I can't think of a way to make my timer that accurate so for now its set to 18 ticks but eventually I would like to make it as acurate as possible.
Your right about bochs. It does wierd things. The timer is one but also the keyboard (or at least on mine) certain keys share the same keycode as others. :?

Cheers,
Kenneth

I run it A 10000Hz so I override the default:

Code:
#include <..\kernel.h>
#include <..\libc\stdlib.h>
#include <..\libc\string.h>
#include <..\driver.h>

#define HZ 10000

#define CLOCK_TICK_RATE 1193180
#define TIME  ((CLOCK_TICK_RATE + HZ/2) / HZ)

static struct CoreDevice TimerDevice;

/* Sets up the system clock for fireing every 10000th of a second */
void timer_install()
{
    /* Install driver */
   memcpy(TimerDevice.Device, "pit", 4);

   /* no need to set bits just clear flags */
   TimerDevice.flags = 0;

   TimerDevice.irq = -1;
   /* IRQ is now handled by multitasking */
   TimerDevice.IrqHandler = 0;

   TimerDevice.Read = 0;
   TimerDevice.ReadEx = 0;
   TimerDevice.Control = 0;
   TimerDevice.Write = 0;
   TimerDevice.WriteEx = 0;

   RegisterCoreDevice(&TimerDevice);

   /* Set timing properties to time @ 10000Hz */

   outportb(0x43, 0x34); // binary, mode 2, LSB/MSB, ch 0
   outportb(0x40, TIME & 0xff); // LSB
   outportb(0x40, TIME >> 8); // MSB
}


I hope it will help you :wink:

_________________
The source of my problems is in the source.


Top
 Profile  
 
 Post subject:
PostPosted: Thu Aug 24, 2006 5:53 am 
Offline
Member
Member
User avatar

Joined: Sun Sep 18, 2005 11:00 pm
Posts: 106
Location: Williamstown, MA; Worcester, MA; Yokohama, Japan
Wow! I never thought of that. (more like: I never knew you can do that....forgot anything is possible with software :D )

Thanks,
Kenneth

P.S. sorry for the late reply, I was away for 3 days.


Top
 Profile  
 
 Post subject: UPDATE!
PostPosted: Tue Aug 29, 2006 1:49 am 
Offline
Member
Member
User avatar

Joined: Sun Sep 18, 2005 11:00 pm
Posts: 106
Location: Williamstown, MA; Worcester, MA; Yokohama, Japan
HAPPY FIRST UPDATE TO AOS! (but not much of an update )

* '''AOS''' - An Operating System - AOS's main goal is to be developer-friendly. AOS is multitasking, message-based, with a console and GUI, and GNU gclib ported. Eventually is should support Windows/*NIX executables, and have a basic networking interface. Maybe in the next century DirectX will be ported.
** Contact: Kenneth P. Hough (kennethphough AT gmail.com)
** URL: [http://kenaxos.sourceforge.net]

What's new:
A new webpage made just for AOS:
http://kenaxos.sytes.net <- Just a redirect of the URL below.
and
http://kennethphough.googlepages.com
and
http://kenaxos.sourceforge.net

Mesaging added to AOS.
Timer fixed (100Hz). <- Thanks to matthias!

AOS version 0.2 source code uploaded
Eventually I will upload the AOS 0.2 bochs image <- sorry about that.

Cheers,
Kenneth


Last edited by kenneth_phough on Wed Sep 06, 2006 10:37 pm, edited 2 times in total.

Top
 Profile  
 
 Post subject:
PostPosted: Tue Aug 29, 2006 3:21 am 
Offline
Member
Member
User avatar

Joined: Fri Oct 22, 2004 11:00 pm
Posts: 158
Location: Vlaardingen, Holland
I've been looking through your code (0.2 source):

Code:
timer.c:

void hndlr_timer(void) {
   ticks++;

   if(ticks%18==0) {
   seconds++;
   }
}


It should say:

Code:
if(ticks%100==0) {
   seconds++;
   }


Because you changed the clock to 100 Hz ;)

_________________
The source of my problems is in the source.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Aug 29, 2006 3:47 am 
Offline
Member
Member
User avatar

Joined: Sun Sep 18, 2005 11:00 pm
Posts: 106
Location: Williamstown, MA; Worcester, MA; Yokohama, Japan
Thanks! :D
Didn't notice it at all :oops:

Fixed the problem and uploaded the source code and the bochs image for AOS on both sites.

Thank you very much!
Kenneth


Top
 Profile  
 
 Post subject: Development of AOS continued on as KenaxOS.
PostPosted: Tue Sep 05, 2006 4:37 am 
Offline
Member
Member
User avatar

Joined: Sun Sep 18, 2005 11:00 pm
Posts: 106
Location: Williamstown, MA; Worcester, MA; Yokohama, Japan
Development of AOS continued on as KenaxOS.

AOS (An Operating System) has changed its name to KenaxOS due to trademark issues.

Yours,
Kenneth


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 13 posts ] 

All times are UTC - 6 hours


Who is online

Users browsing this forum: No registered users and 5 guests


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 post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group