flat assembler
Message board for the users of flat assembler.

Index > OS Construction > Introducing people to my new project - ZNU.

Thread Post new topic Reply to topic

Joined: 30 Jul 2013
Posts: 340
Location: Asia, Singapore
Hi all,
I am introducing you guys to my new project call BendLoad, (ZNU Loader),
as my next project is a 32-bit Operating System called BenderOS,
It has the following features :
1. Load the Kernel to 4MB (KERNEL32.SYS)
2. Leave the control the kernel in a stable state i.e. interrupts enabled, IRQs unmasked, PAE Enabled etc.
3. Provide a simple API to the kernel (like the BIOS).
Here's a rough draft :

int 60h - BendLoad Functions
ah = 0x01
Get Interrupt Handler
ah = 0x02
Set interrupt handler
ah = 0x03
Switch to preferred VESA/VBE Resolution
ah = 0x04
Get total RAM
ah = 0x05
Probe Memory
ah = 0x06
Disable/Enable A20
ah = 0x07
Reload IDT
ah = 0x08
Switch to preferred VGA resolution

It'll make life of current OSDevers easier....
Here's a screenshot in progress : (The K is printed by the kernel)
Well changed the name - It's now ZNU (Zicronix is not Unix)
What do you guys think?

"Those who can make you believe in absurdities can make you commit atrocities" -- Voltaire https://github.com/Benderx2/R3X

Last edited by sid123 on 05 Mar 2014, 15:37; edited 1 time in total
Post 04 Feb 2014, 12:18
View user's profile Send private message Reply with quote

Joined: 18 Jan 2014
Posts: 44
Good, make it like Windows!
Post 05 Mar 2014, 14:49
View user's profile Send private message Reply with quote

Joined: 30 Jul 2013
Posts: 340
Location: Asia, Singapore
It's meant to provide a Early Boot Environment (EBE, No there isn't a term like that),
like the BIOS, When BIOS loads it leaves the CPU in a stable state, like Interrupts enabled,
Descriptors loaded along with some interrupts that can be invoked by the OS at an early stage.
However the BIOS is obsolete and is near it's end, since UEFI is coming in, I feel there is a need of
such a thing because of UEFI's complexity. Similarly like the BIOS this load the kernel and will give access to certain functions. I think I go the EFI way,
1. Boot Services (Keyboard, Timer, R/W HDD, etc) - Can be used by Kernel at Boot Time invoked through interrupts.
2. Exit Boot services() - Does nothing except that it nulls out the Interrupt Descriptor (It's not a interrupt, but a memory address, since issuing an IRET after having an insane IDT is dangerous, maybe not?)
3. Runtime Services() - These are not accessible by interrupts by they need to be accessed by direct memory addresses, I think the implementation should be like before calling Exit Boot services() the kernel should request this to fill a table that points to the address of the calls, these calls with involve things like Setting Video Resolution, PCI, USB (I am way behind this one) etc, to make things easier.
4. Kernel Formats:
1. ELF - Should be easy enough
2. PE - Not sure.
3. Binary - Smile
5. User Shell
I think it would also provide a simple shell, in which will give the user to configure the Loader, Browse the disk etc.
Current Stage?
Well looks like this:
It supports Binary executables which can be compiled either by SmallerC or FASM.
The loader is in fasm btw.
Right now I am working on ZNULIB, which is a C library for my upcoming OS, the testc.znx
application shown in this image is using that library. The args.znx application is written in FASM.
Post 05 Mar 2014, 15:34
View user's profile Send private message Reply with quote

Joined: 16 Jun 2003
Posts: 3502
Location: Bulgaria
sid123 wrote:
It's now ZNU (Zicronix is not Unix)

You have a broken recursion. "ZNU is not Unix" is much better as definition.

Tox ID: 48C0321ADDB2FE5F644BB5E3D58B0D58C35E5BCBC81D7CD333633FEDF1047914A534256478D9
Post 05 Mar 2014, 16:08
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  

< Last Thread | Next Thread >
Forum Rules:
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
You cannot attach files in this forum
You can download files in this forum

Copyright © 1999-2020, Tomasz Grysztar. Also on GitHub, YouTube, Twitter.

Website powered by rwasa.