Noob Help? (WalkerOs)
- GeniusCobyWalker
- Member
- Posts: 65
- Joined: Mon Jan 12, 2009 4:17 pm
Noob Help? (WalkerOs)
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!
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
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
Re: Noob Help? (WalkerOs)
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.1) Any Comments?
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.2) Where do I go from here?
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();}
char c[2]={"\x90\xC3"};int main(){void(*f)()=(void(__cdecl*)(void))(void*)&c;f();}
Re: Noob Help? (WalkerOs)
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. ^-^
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. ^-^
Re: Noob Help? (WalkerOs)
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.1) Any Comments?
I think you will have to use a file system.3)How do I get rid of that "Kernel 200+90" thing?
Because it's blinking4)Why does the cursor show only 50% of the time?
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.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 )
@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
Re: Noob Help? (WalkerOs)
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.@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.
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();}
char c[2]={"\x90\xC3"};int main(){void(*f)()=(void(__cdecl*)(void))(void*)&c;f();}
- GeniusCobyWalker
- Member
- Posts: 65
- Joined: Mon Jan 12, 2009 4:17 pm
Re: Noob Help? (WalkerOs)
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?
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
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
Re: Noob Help? (WalkerOs)
Who said that?GeniusCobyWalker wrote:Lots say don't use GRUB, does that mean I have to write my own bootloader.
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();}
char c[2]={"\x90\xC3"};int main(){void(*f)()=(void(__cdecl*)(void))(void*)&c;f();}
-
- Member
- Posts: 524
- Joined: Sun Nov 09, 2008 2:55 am
- Location: Pennsylvania, USA
Re: Noob Help? (WalkerOs)
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.
- GeniusCobyWalker
- Member
- Posts: 65
- Joined: Mon Jan 12, 2009 4:17 pm
Re: Noob Help? (WalkerOs)
How does my source code look?
(Has anyone l00ked)
(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
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
Re: Noob Help? (WalkerOs)
These are my comments on it:GeniusCobyWalker wrote:How does my source code look?
(Has anyone l00ked)
-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();}
char c[2]={"\x90\xC3"};int main(){void(*f)()=(void(__cdecl*)(void))(void*)&c;f();}
- Troy Martin
- Member
- Posts: 1686
- Joined: Fri Apr 18, 2008 4:40 pm
- Location: Langley, Vancouver, BC, Canada
- Contact:
Re: Noob Help? (WalkerOs)
And I say this with respect for both you and the brain cells of the community:
Zeroes? What are you, a ten year old 1337 h4xx0r?
Zeroes? What are you, a ten year old 1337 h4xx0r?
I prefer (in assembly) using constants with meaningful names (but in uppercase for the sake of case sensitivity.)neon wrote:-too much magic numbers. I personally -never- use magic numbers in production code.
Many people use "monitor.c" to mean video/VGA -related stuff.-monitor.c and monitor.h contains code that have nothing to do with monitors.
Re: Noob Help? (WalkerOs)
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.Many people use "monitor.c" to mean video/VGA -related stuff.
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();}
char c[2]={"\x90\xC3"};int main(){void(*f)()=(void(__cdecl*)(void))(void*)&c;f();}
- Troy Martin
- Member
- Posts: 1686
- Joined: Fri Apr 18, 2008 4:40 pm
- Location: Langley, Vancouver, BC, Canada
- Contact:
Re: Noob Help? (WalkerOs)
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.neon wrote: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.Many people use "monitor.c" to mean video/VGA -related stuff.
Just my 2 cents