User:Bellezzasolo

From OSDev.wiki
Revision as of 13:20, 15 March 2012 by osdev>Bellezzasolo (Added my OS page (link to create page))
Jump to navigation Jump to search

Me

Welcome to my home page. For that reason please edit the talk area, not this part. Here are the pages I've created:

Talk to me

You can talk to me here or at my talk page. Any contribution greatly appreciated.

My experience

Accelades:

  • No computing-related official accelades.

However I do have over a year's experience of OS deving in holidays and at weekends.

I have been programming for almost 3 years. I know that makes me probably the most inexperienced on this community, but allow me to continue. Order of languages:

  • HTML
  • JavaScript -a month or so down the line
  • PHP(never really got goging because of server side) -similar time
  • Java(again never really got going) -a few months down the line
  • C++ - loved it, but never had a brilliant idea. -about 6 months in

Started OS programming here -about 1 1/2 years in. I found working on someone else's black box unworkable. The API was difficult to work with, whearas creating my own? Easy.

  • Assembly - x86
  • C - done in moderation. Most of my OS is C++

I learnt a large amount of basic C++ through my OS. I used the brokenthorn OS as my OS for a while, and at it's height I was working on loading programs.

I decided to restart and do my own coding. I now have a white CLI on a light blue background in PMode and am working on CLI functionality. I now probably can be called a C++ guru as I know how to manipulate pointers and references, as well as classes. I still find asm a bit cluttered if the algorithm is complex, but if I'm doing my kernel in C++ I only need to provide basic asm routines.

My Setup

Overview

I have a OS that is going to support x86 and AMD64 (with an actual 64 bit version). For testing purposes I am currently using the BrokenThorn bootloader. I am adabting it for 64 bit purposes, but my target setup is my own bootloader on a HDD (MBR currently working).

Assembler

I use NASM as my assembler, in conjunction with the Notepad++ editor.

Compiler/Linker

I use the unusual, but productive and familiar, environment provided by Visual C++ 2010 Express (SP1). I installed the windows SDK (update for SP1) for the 64 bit compilers. Because Visual C++ doesn't support 64 bit inline asm or naked functions I use this type of setup:

//Asmlayer.h - 32 bit and 64 bit
#ifdef __cplusplus
extern "C" {
#endif
 void disable();
 //other function declarations go here
#ifdef __cplusplus
}
#endif

And in my asm code:

;Asmlayer.asm - 32 bit version
BITS 32
global @disable@0 ;all will be revealed
;other declarations go here

@disable@0:
cli
ret

;Asmlayer64.asm - 64 bit version
BITS 64
global disable
;other declarations go here

disable:
cli
ret

Note the fastcall convention - 64 bit VC++ only supports fastcall. I use the integrated editor.

Emulator

I use sevral emulators, but for testing purposes it has to be bochs.

Development/Test PC

For development I use an HP Pavilion g6 (6GB RAM, quad-core 1.5 GHz AMD A8 3500M, 1TB HDD), with Windows 7 64 bit home edition.

For testing I will use emulators, then once fairly trusted I will place on a HP Pavillion 6405 (64MB RAM, 6GB HDD, 400Mhz Celeron), which currently has Win98 SE dual-booted with Linux Mandrake 7. Once I have tested HDD's completely, I will place it on a small partition of my development PC (64 bit testing).

My OS

My OS is an 32/64 bit x86 OS. It currently has a CLI, and virtually no drivers (basic chip drivers only). It WILL be extended to HDD's and use a custom file system, TFS.

See also

Me

Related articles

  • None yet