Page 1 of 1
AOS - An Operating System
Posted: Fri Aug 18, 2006 2:27 am
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.
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
.
Idea, Comments, Advice are welcome!
Posted: Fri Aug 18, 2006 10:08 am
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.
Posted: Sat Aug 19, 2006 12:29 am
by kenneth_phough
Thanks!
Only if I had nine lives
.
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
Posted: Sat Aug 19, 2006 11:29 am
by Dex
kenneth_phough wrote:Thanks!
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).
Posted: Sat Aug 19, 2006 11:47 pm
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
.
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.
Posted: Sun Aug 20, 2006 2:42 am
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.
Posted: Sun Aug 20, 2006 9:59 pm
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
Posted: Mon Aug 21, 2006 3:32 am
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
Posted: Thu Aug 24, 2006 5:53 am
by kenneth_phough
Wow! I never thought of that. (more like: I never knew you can do that....forgot anything is possible with software
)
Thanks,
Kenneth
P.S. sorry for the late reply, I was away for 3 days.
UPDATE!
Posted: Tue Aug 29, 2006 1:49 am
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
Posted: Tue Aug 29, 2006 3:21 am
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:
Because you changed the clock to 100 Hz
Posted: Tue Aug 29, 2006 3:47 am
by kenneth_phough
Thanks!
Didn't notice it at all
Fixed the problem and uploaded the source code and the bochs image for AOS on both sites.
Thank you very much!
Kenneth
Development of AOS continued on as KenaxOS.
Posted: Tue Sep 05, 2006 4:37 am
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