AOS - An Operating System

This forums is for OS project announcements including project openings, new releases, update notices, test requests, and job openings (both paying and volunteer).
Post Reply
User avatar
kenneth_phough
Member
Member
Posts: 106
Joined: Sun Sep 18, 2005 11:00 pm
Location: Williamstown, MA; Worcester, MA; Yokohama, Japan
Contact:

AOS - An Operating System

Post by kenneth_phough »

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.
User avatar
Dex
Member
Member
Posts: 1444
Joined: Fri Jan 27, 2006 12:00 am
Contact:

Post by Dex »

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.
User avatar
kenneth_phough
Member
Member
Posts: 106
Joined: Sun Sep 18, 2005 11:00 pm
Location: Williamstown, MA; Worcester, MA; Yokohama, Japan
Contact:

Post by kenneth_phough »

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
User avatar
Dex
Member
Member
Posts: 1444
Joined: Fri Jan 27, 2006 12:00 am
Contact:

Post by Dex »

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).
User avatar
kenneth_phough
Member
Member
Posts: 106
Joined: Sun Sep 18, 2005 11:00 pm
Location: Williamstown, MA; Worcester, MA; Yokohama, Japan
Contact:

Post by kenneth_phough »

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.
User avatar
Daedalus
Member
Member
Posts: 74
Joined: Sun Oct 16, 2005 11:00 pm
Location: Australia
Contact:

Post by Daedalus »

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.
User avatar
kenneth_phough
Member
Member
Posts: 106
Joined: Sun Sep 18, 2005 11:00 pm
Location: Williamstown, MA; Worcester, MA; Yokohama, Japan
Contact:

Post by kenneth_phough »

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
User avatar
matthias
Member
Member
Posts: 158
Joined: Fri Oct 22, 2004 11:00 pm
Location: Vlaardingen, Holland
Contact:

Post by matthias »

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: Select all

#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.
User avatar
kenneth_phough
Member
Member
Posts: 106
Joined: Sun Sep 18, 2005 11:00 pm
Location: Williamstown, MA; Worcester, MA; Yokohama, Japan
Contact:

Post by kenneth_phough »

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.
User avatar
kenneth_phough
Member
Member
Posts: 106
Joined: Sun Sep 18, 2005 11:00 pm
Location: Williamstown, MA; Worcester, MA; Yokohama, Japan
Contact:

UPDATE!

Post by kenneth_phough »

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.
User avatar
matthias
Member
Member
Posts: 158
Joined: Fri Oct 22, 2004 11:00 pm
Location: Vlaardingen, Holland
Contact:

Post by matthias »

I've been looking through your code (0.2 source):

Code: Select all

timer.c:

void hndlr_timer(void) {
	ticks++;

	if(ticks%18==0) {
	seconds++;
	}
}
It should say:

Code: Select all

if(ticks%100==0) {
	seconds++;
	}
Because you changed the clock to 100 Hz ;)
The source of my problems is in the source.
User avatar
kenneth_phough
Member
Member
Posts: 106
Joined: Sun Sep 18, 2005 11:00 pm
Location: Williamstown, MA; Worcester, MA; Yokohama, Japan
Contact:

Post by kenneth_phough »

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
User avatar
kenneth_phough
Member
Member
Posts: 106
Joined: Sun Sep 18, 2005 11:00 pm
Location: Williamstown, MA; Worcester, MA; Yokohama, Japan
Contact:

Development of AOS continued on as KenaxOS.

Post by kenneth_phough »

Development of AOS continued on as KenaxOS.

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

Yours,
Kenneth
Post Reply