User:Bellezzasolo: Difference between revisions

From OSDev.wiki
Jump to navigation Jump to search
Content added Content deleted
(About my programming past)
m (→‎My experience: grammer)
Line 17: Line 17:
*PHP(never really got goging because of server side) -similar time
*PHP(never really got goging because of server side) -similar time
*Java(again never really got going) -a few months down the line
*Java(again never really got going) -a few months down the line
*[[C++]] - loved it. Never had a brilliant idea. -about 6 months in
*[[C++]] - loved it, but never had a brilliant idea. -about 6 months in
Started OS programming here -about 1 1/2 years in
Started OS programming here -about 1 1/2 years in
*[[Assembly]] - x86
*[[Assembly]] - x86

Revision as of 20:35, 20 February 2012

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

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

  • 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 hight 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.