Noob Help? (WalkerOs)

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
User avatar
GeniusCobyWalker
Member
Member
Posts: 65
Joined: Mon Jan 12, 2009 4:17 pm

Noob Help? (WalkerOs)

Post by GeniusCobyWalker »

After 1 month of on and off work, on my kernel here is what I have.
Now I have some questions.

Here is my OS so far:
http://www.mediafire.com/?zwttukcknky
( Binary, Image, Layout Chart, Source)

1) Any Comments?
2) Where do I go from here? EDIT: Is Keyboard Entry Next?
3)How do I get rid of that "Kernel 200+90" thing?
4)Why does the cursor show only 50% of the time?

5)Anyone else wont to join me on this project? (knowledge at or after text output, required)
(I was on a team of 3 but 2 left and now I'm the only 1 continuing )

Giving up is not an option!
Last edited by GeniusCobyWalker on Sat May 09, 2009 6:46 pm, edited 1 time in total.
Full Knowledge in:
GML, Ti-Basic, Zilog Z80 Assembly, SX28 Assembly and Blender
Experience in:
C++,OpenGl,NDS C++,Dark Basic,Dark Basic Pro,Dark Gdk and PSP Coding
Using:
Ubuntu ,GEdit ,NASM ,GCC ,LD ,Bochs
User avatar
neon
Member
Member
Posts: 1567
Joined: Sun Feb 18, 2007 7:28 pm
Contact:

Re: Noob Help? (WalkerOs)

Post by neon »

1) Any Comments?
I can nit pick but the two bigger things I dont personally like is that your code uses too much magic numbers and the kernel being a .bin. Magic numbers is just poor use in software engineering, the using a flat binary kernel is just personal opinion though.
2) Where do I go from here?
If you ever need to ask this question, please consider the end design goal of your system. You should never be needing to ask this in a general sense.

I do give you credit for not giving up yet though :)
OS Development Series | Wiki | os | ncc
char c[2]={"\x90\xC3"};int main(){void(*f)()=(void(__cdecl*)(void))(void*)&c;f();}
AUsername
Member
Member
Posts: 54
Joined: Sun Feb 01, 2009 9:07 pm

Re: Noob Help? (WalkerOs)

Post by AUsername »

Ok figured out how to install it.
Not much there but,

1. Writing the files directly to the disk causes it corrupt. (may have to do with GRUB I don't know I don't use GRUB)
2. The "pad" file kinda worries me, looks like a bad practice in reading the disk to me.
3. Why do none of the files have extensions?

I didn't really look at the source code, and I don't know how much GRUB actually does for ya but it looks like it works.

Not much there but you gotta start somewhere. As for where to go next, that's honestly up to you there's no set order you have to do things, but I would set the HAL up next so you have an abstraction layer for programming drivers and such.

Good luck. ^-^
ruisleipa
Member
Member
Posts: 46
Joined: Wed Sep 10, 2008 8:39 am
Location: Finland

Re: Noob Help? (WalkerOs)

Post by ruisleipa »

1) Any Comments?
As neon said, you use too much magic numbers. Use variables (or #defines) to hold the address of the video memory and the amount of rows and columns. That way you don't have to change values all over the code if they need to be changed. It also makes the code a lot easier to read.
3)How do I get rid of that "Kernel 200+90" thing?
I think you will have to use a file system.
4)Why does the cursor show only 50% of the time?
Because it's blinking :)
5)Anyone else wont to join me on this project? (knowledge at or after text output, required)
(I was on a team of 3 but 2 left and now I'm the only 1 continuing )
What makes your OS so special that others want to join your team? It kind of seems that you are trying to get someone else to do the dirty work instead of learning to do it yourself. No offense.

@Neon: Why is it bad to use flat binary? If you don't need any of the things that some "real" executable format offers you, it is only going to make your code more complicated.
http://code.google.com/p/rmmtos/ - Real Mode MultiTasking Operating System
User avatar
neon
Member
Member
Posts: 1567
Joined: Sun Feb 18, 2007 7:28 pm
Contact:

Re: Noob Help? (WalkerOs)

Post by neon »

@Neon: Why is it bad to use flat binary? If you don't need any of the things that some "real" executable format offers you, it is only going to make your code more complicated.
Nothing bad about them - I just have a personal dislike of them do to their limitations and no standards, that's all. Id prefer having a cleaner design without the limitations of flat binary images, even if the end code is more complex.

Of course, this is just personal opinion, that's all :)
OS Development Series | Wiki | os | ncc
char c[2]={"\x90\xC3"};int main(){void(*f)()=(void(__cdecl*)(void))(void*)&c;f();}
User avatar
GeniusCobyWalker
Member
Member
Posts: 65
Joined: Mon Jan 12, 2009 4:17 pm

Re: Noob Help? (WalkerOs)

Post by GeniusCobyWalker »

The reason I was looking for someone else is that I just don't want to work on it alone.

I want to learn to do everything, otherwise it would not be my OS.

Lots say don't use GRUB, does that mean I have to write my own bootloader.
Also should I write the bootloader now or later?
Full Knowledge in:
GML, Ti-Basic, Zilog Z80 Assembly, SX28 Assembly and Blender
Experience in:
C++,OpenGl,NDS C++,Dark Basic,Dark Basic Pro,Dark Gdk and PSP Coding
Using:
Ubuntu ,GEdit ,NASM ,GCC ,LD ,Bochs
User avatar
neon
Member
Member
Posts: 1567
Joined: Sun Feb 18, 2007 7:28 pm
Contact:

Re: Noob Help? (WalkerOs)

Post by neon »

GeniusCobyWalker wrote:Lots say don't use GRUB, does that mean I have to write my own bootloader.
Who said that?

If Grub works and fits well in your OS design, then use it ;)
OS Development Series | Wiki | os | ncc
char c[2]={"\x90\xC3"};int main(){void(*f)()=(void(__cdecl*)(void))(void*)&c;f();}
JohnnyTheDon
Member
Member
Posts: 524
Joined: Sun Nov 09, 2008 2:55 am
Location: Pennsylvania, USA

Re: Noob Help? (WalkerOs)

Post by JohnnyTheDon »

My personal preference on bootloaders is to create some kind of bootloading standard that fits your OS, then make an intermediate multiboot 'kernel' that takes the real kernel as a module and loads it according to that standard. If you need to create your own bootloader in the future you can, but allowing your os to be easily loaded by GRUB allows people who want to test it on RHW to just put the files in their boot directory and add an entry to the grub configuration file.
User avatar
GeniusCobyWalker
Member
Member
Posts: 65
Joined: Mon Jan 12, 2009 4:17 pm

Re: Noob Help? (WalkerOs)

Post by GeniusCobyWalker »

How does my source code look?
(Has anyone l00ked)
Full Knowledge in:
GML, Ti-Basic, Zilog Z80 Assembly, SX28 Assembly and Blender
Experience in:
C++,OpenGl,NDS C++,Dark Basic,Dark Basic Pro,Dark Gdk and PSP Coding
Using:
Ubuntu ,GEdit ,NASM ,GCC ,LD ,Bochs
User avatar
neon
Member
Member
Posts: 1567
Joined: Sun Feb 18, 2007 7:28 pm
Contact:

Re: Noob Help? (WalkerOs)

Post by neon »

GeniusCobyWalker wrote:How does my source code look?
(Has anyone l00ked)
These are my comments on it:

-monitor.c and monitor.h contains code that have nothing to do with monitors.
-too much magic numbers. I personally -never- use magic numbers in production code.
-colors defined in the same file as the main entry point (black and blue)..should be at least in its own header file.
-hardcoded version string and OS name string. Might cause problems when new versions come out
-doesnt do anything. Its basically what you posted several months ago but different colors...

Please take this as opinion only; other members might have different opinions.
OS Development Series | Wiki | os | ncc
char c[2]={"\x90\xC3"};int main(){void(*f)()=(void(__cdecl*)(void))(void*)&c;f();}
User avatar
Troy Martin
Member
Member
Posts: 1686
Joined: Fri Apr 18, 2008 4:40 pm
Location: Langley, Vancouver, BC, Canada
Contact:

Re: Noob Help? (WalkerOs)

Post by Troy Martin »

And I say this with respect for both you and the brain cells of the community: :D
Zeroes? What are you, a ten year old 1337 h4xx0r?
neon wrote:-too much magic numbers. I personally -never- use magic numbers in production code.
I prefer (in assembly) using constants with meaningful names (but in uppercase for the sake of case sensitivity.)
-monitor.c and monitor.h contains code that have nothing to do with monitors.
Many people use "monitor.c" to mean video/VGA -related stuff.
Image
Image
Solar wrote:It keeps stunning me how friendly we - as a community - are towards people who start programming "their first OS" who don't even have a solid understanding of pointers, their compiler, or how a OS is structured.
I wish I could add more tex
User avatar
neon
Member
Member
Posts: 1567
Joined: Sun Feb 18, 2007 7:28 pm
Contact:

Re: Noob Help? (WalkerOs)

Post by neon »

Many people use "monitor.c" to mean video/VGA -related stuff.
I know, it just doesn't make sense of a name to pick. If its video related stuff, video.h/c would better suit it. If its vga related stuff, vga.h/c would better suit it. A module called monitor, containing no routines for interfacing with a monitor is not a good choice on naming.

Just my 2 cents :)
OS Development Series | Wiki | os | ncc
char c[2]={"\x90\xC3"};int main(){void(*f)()=(void(__cdecl*)(void))(void*)&c;f();}
User avatar
Troy Martin
Member
Member
Posts: 1686
Joined: Fri Apr 18, 2008 4:40 pm
Location: Langley, Vancouver, BC, Canada
Contact:

Re: Noob Help? (WalkerOs)

Post by Troy Martin »

neon wrote:
Many people use "monitor.c" to mean video/VGA -related stuff.
I know, it just doesn't make sense of a name to pick. If its video related stuff, video.h/c would better suit it. If its vga related stuff, vga.h/c would better suit it. A module called monitor, containing no routines for interfacing with a monitor is not a good choice on naming.

Just my 2 cents :)
That's true. I personally used video\v_text.c and include\video\v_text.h in an experimental kernel of mine for text mode video.
Image
Image
Solar wrote:It keeps stunning me how friendly we - as a community - are towards people who start programming "their first OS" who don't even have a solid understanding of pointers, their compiler, or how a OS is structured.
I wish I could add more tex
Post Reply