![]() |
|
![]() |
|
|
Thread Tools | Display Modes |
|
|
#21 |
|
Hobbyist Programmer
Join Date: May 2006
Location: West Jordan, Utah, United States
Posts: 176
Rep Power: 3
![]() |
Why can't SkyOS and Menuet count?
|
|
|
|
|
|
#22 |
|
Resident Grouch
![]() ![]() ![]() ![]() ![]() ![]() Join Date: Jun 2005
Posts: 6,453
Rep Power: 10
![]() |
Count for what?
![]()
__________________
Abstraction doesn't make it impossible to write bad code; it makes it possible to write superior code. Contributor's Corner: Grumpy on C++ Exceptions DaWei on Pointers |
|
|
|
|
|
#23 |
|
Hobbyist Programmer
Join Date: May 2006
Location: West Jordan, Utah, United States
Posts: 176
Rep Power: 3
![]() |
Why can't SkyOS and Menuet count as evidence one person can write a decent operating system.
|
|
|
|
|
|
#24 | |
|
Programming Guru
![]() Join Date: Aug 2005
Location: England
Posts: 1,499
Rep Power: 5
![]() |
Quote:
|
|
|
|
|
|
|
#25 |
|
Newbie
Join Date: Aug 2006
Posts: 5
Rep Power: 0
![]() |
Hey, too many replies, bad internet connection..
I just saw about 23 replies! Give me some time to read it all and understand all this conversation.. ..... |
|
|
|
|
|
#26 |
|
Newbie
Join Date: Aug 2006
Posts: 5
Rep Power: 0
![]() |
Well, first of all, I am going to handle up only the gl ( the other group the rest os). First of all I'm going to try to make it on windows.
I'm going to make a simple 3d graphics library, so don't imagine that I'm going to make something like opengl or directX 3d. Once (and if) its ready then we are going to start thing of how to combine it with the os. The idea of starting with a simple text os sounds good (a bit). I'm going to suggest it to the other groop. But as I said before 1. we are going to TRY and 2. I'm going to make the gl (on windows first). I m going off for now. see you in 1 or 2 days (the most).. |
|
|
|
|
|
#27 |
|
Caffeinated Neural Net
![]() Join Date: Jun 2005
Location: Dry west coast of Canada
Posts: 1,011
Rep Power: 5
![]() |
What you might want to do instead is start off with a 2D graphics library. While different brands and models of video cards will likely differ in how the mode is set, vertical pitch (byte offset between the start of neighboring horizontal scanlines; used to allow padding for faster addressing and/or logical screen widths greater than the physical screen width), ordering of RGB elements within each pixel, and so on, in many respects, they are much the same. Aside from the code to jump into different video modes (which is only needed to initialize a mode, not actually draw in it), much of the logic can be separated. The vertical pitch can just be added in (even when it is zero); all this means is that you can only copy a single scanline at a time, rather than the whole block. Since you could only copy it all at once if it was the width of the logical screen anyways, this is not a big restriction. Ordering of the RGB triplets can, like setting the video mode, be done at load time rather than on each drawing operation; if you stick to a standard graphics file format, you can adjust the pixel formats as needed whenever you load graphics.
When you get into acceleration, though, is when you will probably see the most difference between hardware. This is where it will become extremely difficult to use the full capabilities of even a handful of video cards, as you will not be able to rely on driver-level support (such drivers having been written for OSs besides yours). You might consider also building your GUI on top of another OS, like DOS, rather than writing an OS from scratch (yet). Why DOS? Because it's very simple (in comparison to things like Linux and Windows), has some versions with available source, and- most importantly- doesn't implement memory protection or hardware virtualization, meaning you can do pretty much anything you like. Just be sure all your data is backed up. If the 640k barrier is an issue, as it most likely will be, there are tricks to get around this, such as using 'flat real mode' to allow addressing all memory locations, or DPMI (which is much safer, though it means memory protection and hardware virtualization will be in place).
__________________
And once again, Probability proves itself willing to sneak into a back alley and service Drama as would a copper-piece harlot. - Vaarsuvius, Order of the Stick |
|
|
|
|
|
#28 |
|
Newbie
Join Date: Aug 2006
Posts: 5
Rep Power: 0
![]() |
Hi all!
First, lets forget about the os, and focus on the gl. Any suggestions? Perhaps some books to read and start? I thing that there must be some books about this; (except opengl or dirextx 3d books)l |
|
|
|
|
|
#29 |
|
Resident Grouch
![]() ![]() ![]() ![]() ![]() ![]() Join Date: Jun 2005
Posts: 6,453
Rep Power: 10
![]() |
Why resort to books? Isn't that cheating?
__________________
Abstraction doesn't make it impossible to write bad code; it makes it possible to write superior code. Contributor's Corner: Grumpy on C++ Exceptions DaWei on Pointers |
|
|
|
|
|
#30 |
|
Hobbyist Programmer
Join Date: May 2006
Location: West Jordan, Utah, United States
Posts: 176
Rep Power: 3
![]() |
I would still suggest learning about OpenGL. I am not suggesting you learn the OpenGL library. I am talking about the OpenGL standard implemented by video card makers. I will admit I don't know much about video cards. I would imagine that video card vendors follow some standard in implementing OpenGL though. This will let you use the cards rather than using the CPU.
If you find out that vendors don't follow a standard (very possible), learn about drivers. Figure out how you can let developers make a simple system call (maybe putting information in a queue?). Then you will have to write a different driver for each card you plan to support, but that will be better than writing the world's largest graphics subsystem. If you still want to write it from scratch, you should probably consider reading a lot of books about matrix mathematics or linear algebra to begin with. If you are considering lectricpharaoh's suggestion about using DOS. There is an operating system called FreeDOS that I believe is open source. That would save you a lot of time/headaches and let you have more freedom. As a side note, I am interested in writing an operating system, so I would like it if you would keep me up to date. My email is <my forum username>@gmail.com. |
|
|
|
![]() |
| Bookmarks |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
| Display Modes | |
|
|