flat assembler
Message board for the users of flat assembler.

Index > OS Construction > Help: An attempt at OS dev, again

Goto page Previous  1, 2
Author
Thread Post new topic Reply to topic
Dex4u



Joined: 08 Feb 2005
Posts: 1601
Location: web
Dex4u 19 May 2011, 16:53
cypher wrote:

    ---
    Out of thread context.
    I can agree with the code reuse principle if you are very verse in programming, but what if you are an amateur (like I am). Would it be wise to reuse code (by someone else). For example, BootProg. Would that be a good idea?

    Also, what if you are learning to program an operating system. They guide you through the development and you must use the code that they provide. For example the tutorials at www.brokenthorn.com. I am learning to create a bootloader and all i must do is follow the tutorial and rewrite the code. How do I learn this way (especially on something this vast)? Do I write notes in a note book or do the tutorial more than one (boring)?

    How do you guys remember all of this information?
    ---


Dex4u wrote:
A000-512, Thats 512bytes below the the graphic address, as the boot sector is 512bytes.

Understood. After scanning BootProg by Alexei's, I understand.

MikeOS is a really inspirational OS. I'm rethinking the design.
Minix is also good. All that is needed now is the book to complement it. Sad But I have to buy it.

æBIOS. Nice work.

SVN? Is it possible to have an SVN on my own server? Is an SVN really necessary?

I began writing the bootloader but I've become lazy and I'm thinking of using BootProg. It's less work. So I can get started on coding the kernel. But then again, by coding the bootloader I can get familiar with the filesystem and other things about protected mode.

I am using the BrokenThorn tutorial (see link above) to learn about bootloaders. When I'm done coding it I will upload it here for some assistance from the pros.


First off we lean by copying, (not cut & pasting ), example how did we all learn to write our names ?.
In most cases someone written our name and we copy it over and over again.

The most import thing is that you understand how the code works.

Next most if not all OS use a bootloader from out side there project, eg: linux and grubs etc.

And all coders need to look stuff up, that will never stop its just the way coding is.
Post 19 May 2011, 16:53
View user's profile Send private message Reply with quote
cypher



Joined: 07 Apr 2011
Posts: 51
Location: The cave
cypher 20 May 2011, 17:59
This is why I love the FASM board: Real good help Smile
cod3b453 wrote:
It's optional. Any management of code is better than none at all; it's simply down to what you prefer.

Management seems more preferable. Because what if I should accidentally delete some files without backing up first. Then it would be a lost of a new version. So, it'll be better to have some assistance from an SVN.

Dex4u wrote:
First off we lean by copying, (not cut & pasting ), example how did we all learn to write our names ?.
In most cases someone written our name and we copy it over and over again.

The most import thing is that you understand how the code works.

Next most if not all OS use a bootloader from out side there project, eg: linux and grubs etc.

And all coders need to look stuff up, that will never stop its just the way coding is.

That's true. We do learn by copying. If most OS do, then it would cut development time. But what about learning part of it?

---
I am still working on the bootloader and the kernel. The plan for now i to get it working and running. Make it run, then make it fast. That's the principle for now and the remainder.

The Linux shells have very defined characters (they are small and clean). To be honest, I don't like the size of the characters in text mode. So I plan to use mode 12h, since they support the same colours, and its resolution is greater.


Description: The commands that you see there are not functional; they are just for show.
Filesize: 118.31 KB
Viewed: 3210 Time(s)

shell.jpg



_________________
When all in life fails, get weird and disappear into the mountains
Post 20 May 2011, 17:59
View user's profile Send private message Reply with quote
cypher



Joined: 07 Apr 2011
Posts: 51
Location: The cave
cypher 26 May 2011, 06:25
this is a lil' verbose but please bear with me
How should I begin? The following is completely opinionated

I have already began coding, however, I decided to pause. I realized that most of the beginner's documents and post (on FASM) that I've read all say the same thing: design first! Now, this is a problem; as bitshifter said above. Why design when I don't know much about operating systems? Lately, I read some articles and I realized that most of these people do all most the same thing when making an OS:

    1. Case studies on other operating system to see the pros & cons that they should apply and avoid (respectively).

    2. They gather information about operating systems, processor, etc. before beginning.

    3. Design. They take time to design all the high-level things that they need for their OS. For example, the processor architecture, system requirements, what should the OS do, protected-mode or real-mode, etc. Also, they begin to write design documents and project documents. (I once read that documentation is very important). These design documents extract all ambiguity of what you want for the OS. The design phase somewhat extensive. I realize that this phase is very paramount as the first design does set foundation for later versions. By bypassing design, it could be detrimental for you to redesign the entire system.
    Do I need to do an large design document for the OS for such a small project?

    4. Implemenation. Coding begins here. The most difficult part, IMO. I notice that programmer set a roadmap so that they can see some progress.

    5. Documentation. This seems to be very difficult to find material to write about, and the main focus seems to be the the kernel as it is a complex piece of software. This also means user documentation which should be user friendly. Now this question doesn't refer to this context, nevertheless, which is better to document the project with, a word processor or a text editor?
    All documents for documentation are: design, technical, user manuals.

Is it a good idea to spend time writing a professional document a small project such as this? The project will expand.

What are the steps that you guys take?

Planing the Project
Code:
Keys: [ = ½ month
      ] = ½ month
                                           months
                                 1 2 3 4 5 6 7 8 9 10 11 12
                                ------------------------------
Write project document          |[
Initial design of system        |[][ 
Setup working environment   |  [
Build bootloader            |  [
'Hello World' kernel              |   [
Setup keyboard driver              |   [
Prototype text output              |   [
Setup VESA and graphic routines    |   [][
Enter Protected-Mode             |     []
Design CLI shell            |       [][
Test system                  |          [
Write technical manual          |           []
Write user manual               |            [
Official release of version 1.0 |             [
Soak in ambition                |              [][][][][][][]      
                                ------------------------------    

Is time allocated to each part enough to finish in ~8 months?
Post 26 May 2011, 06:25
View user's profile Send private message Reply with quote
Dex4u



Joined: 08 Feb 2005
Posts: 1601
Location: web
Dex4u 26 May 2011, 15:39
First you need to know what is your OS going to before, with that info you can start to design your OS.
But its hard to design a OS if you have little knowledge of how a OS works.
So the way i did it, was to make lots of bootable demos eg: floppy, hdd, vesa, atapi etc.
Before stating the OS, this way i new about these things and when it came to coding my OS i had most of the building blocks.

If you just want to make a OS to learn its best to join a project.
My aim when i started was to make a modem dos, same access to hardware, but better graphics and more memory.
This was before windows xp and a easy to use linux, if i was starting new today i would code for ARM.


Last edited by Dex4u on 26 May 2011, 19:41; edited 1 time in total
Post 26 May 2011, 15:39
View user's profile Send private message Reply with quote
xvedejas



Joined: 23 May 2011
Posts: 7
xvedejas 26 May 2011, 17:24
My advice to anyone who hasn't already been working on an OS for two years or more, join another project. You'll learn faster, have help, and you'd probably be surprised how much input you'd probably have; many hobby OS projects would love to have another developer. And there are a LOT to choose from.
Post 26 May 2011, 17:24
View user's profile Send private message Reply with quote
cypher



Joined: 07 Apr 2011
Posts: 51
Location: The cave
cypher 27 May 2011, 22:05
> Dex4u: If you just want to make a OS to learn its best to join a project.
The aim is not to necessarily learn, however, its to dev. an OS which I've always wanted to do. But learning is also in the process.

----

> Dex4u: So the way i did it, was to make lots of bootable demos > eg: floppy, hdd, vesa, atapi etc.
> Before stating the OS, this way i new about these things and when it came to coding my OS i had most of the building blocks.

Great idea. How long was it before you started. And you've been working on DexOS since '01, or so? Wow, long time for OS dev. Also, ARM would be much faster.

----

> xvedejas:...join another project. You'll learn faster, have help...
Could you give some projects? What about your project?
Post 27 May 2011, 22:05
View user's profile Send private message Reply with quote
Dex4u



Joined: 08 Feb 2005
Posts: 1601
Location: web
Dex4u 28 May 2011, 16:33
cypher wrote:

> Dex4u: So the way i did it, was to make lots of bootable demos > eg: floppy, hdd, vesa, atapi etc.
> Before stating the OS, this way i new about these things and when it came to coding my OS i had most of the building blocks.

Great idea. How long was it before you started. And you've been working on DexOS since '01, or so? Wow, long time for OS dev. Also, ARM would be much faster.

About 2003, but i tryed pascal and C OS dev first, if you want to see some of the demos theres some on Cotys site
http://archive.asm4u.net/Dex4u/
Post 28 May 2011, 16:33
View user's profile Send private message Reply with quote
cypher



Joined: 07 Apr 2011
Posts: 51
Location: The cave
cypher 29 May 2011, 21:46
Thanks man
Those demos will come in handy

brb

_________________
When all in life fails, get weird and disappear into the mountains
Post 29 May 2011, 21:46
View user's profile Send private message Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page Previous  1, 2

< 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-2025, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.