User:Bellezzasolo: Difference between revisions
Pages I've made. |
m Bot: Replace deprecated source tag with syntaxhighlight |
||
(29 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
== Me == |
|||
Welcome to my home page. For that reason please edit the talk area, not this part. |
|||
== Me = |
|||
Here are the pages I've created: |
|||
Welcome to my home page. For that reason please edit the talk area, not this part |
|||
here are the pages I've created: |
|||
*[[IDT_problems| IDT problems]] |
*[[IDT_problems| IDT problems]] |
||
*[[SSE2| SSE2]] |
|||
*[[User:Bellezzasolo/CFS|CFS]] |
|||
*[[User:Bellezzasolo/Memory Management|Memory Management]] |
|||
=== Talk to me === |
|||
You can talk to me at my [[User talk:bellezzasolo|talk]] page. Any contribution greatly appreciated. |
|||
===My experience=== |
|||
Accolades: |
|||
*No computing-related official accolades. (I'm too young yet) |
|||
*However, I do have a working OS. That has to count for something! :) |
|||
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 going 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. I had no brilliant ideas and the API was difficult to learn, whereas creating my own? Easy. |
|||
*[[Assembly]] - x86 |
|||
*[[C]] - know the basics from C++ and brief experience. My OS is totally C++, with many Object Orientated elements. |
|||
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 CLI functionality, with PCI probing and a simple VFS (along with a disk management system I call the VDS)(Both implemented as classes) I also have a simple VGA graphics screen. 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 [http://www.brokenthorn.com/Resources/OSDevIndex.html 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 [http://www.nasm.us NASM] as my assembler, in conjunction with the [http://www.notepad-plus-plus.org 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: |
|||
<syntaxhighlight lang="cpp"> |
|||
//Asmlayer.h - 32 bit and 64 bit |
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
void disable(); |
|||
//other function declarations go here |
|||
#ifdef __cplusplus |
|||
} |
|||
#endif |
|||
</syntaxhighlight> |
|||
And in my asm code: |
|||
<syntaxhighlight lang="asm"> |
|||
;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 |
|||
</syntaxhighlight> |
|||
Note the fastcall convention - 64 bit VC++ only supports fastcall. |
|||
I use the integrated editor for C/C++, and Notepad++ for asm (syntax highlighting) |
|||
===Controversial issues=== |
|||
I use gotos. Sometimes I come across an algorithm I've just written and there are to options: rewrite the algorithm or use the goto. For lack of time to rewrite the algorithm, I use a goto. Don't get me wrong, I'm a fan of neat code. However, there are times when I use a goto and the odd goto doesn't mess up neatness. Admittedly, a algorithm full of gotos would be hard to follow around (like asm), but the odd goto is like using the odd break statement. That is my opinion. |
|||
===Emulator=== |
|||
I use several 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 implemented in a grpahics mode, and virtually no drivers (basic chip drivers only). It '''WILL''' be extended to HDD's and use a custom file system, [[CFS]]. <br /> |
|||
<!--For more information, see [[User:Bellezzasolo/MyOS|My OS]]--> |
|||
==See also== |
|||
===Me=== |
|||
*[[User talk:Bellezzasolo]] |
|||
*[[User:Bellezzasolo/Old talk]] |
|||
===My Likes=== |
|||
*[[User:Lionel/What kind of kernel should I make?]] |
|||
== |
===Related articles=== |
||
*None yet |
|||
You can talk to me here or at my talk page. Any contibution greatly appreciated. |
Latest revision as of 06:40, 9 June 2024
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 at my talk page. Any contribution greatly appreciated.
My experience
Accolades:
- No computing-related official accolades. (I'm too young yet)
- However, I do have a working OS. That has to count for something! :)
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 going 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. I had no brilliant ideas and the API was difficult to learn, whereas creating my own? Easy.
- Assembly - x86
- C - know the basics from C++ and brief experience. My OS is totally C++, with many Object Orientated elements.
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 CLI functionality, with PCI probing and a simple VFS (along with a disk management system I call the VDS)(Both implemented as classes) I also have a simple VGA graphics screen. 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 for C/C++, and Notepad++ for asm (syntax highlighting)
Controversial issues
I use gotos. Sometimes I come across an algorithm I've just written and there are to options: rewrite the algorithm or use the goto. For lack of time to rewrite the algorithm, I use a goto. Don't get me wrong, I'm a fan of neat code. However, there are times when I use a goto and the odd goto doesn't mess up neatness. Admittedly, a algorithm full of gotos would be hard to follow around (like asm), but the odd goto is like using the odd break statement. That is my opinion.
Emulator
I use several 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 implemented in a grpahics mode, and virtually no drivers (basic chip drivers only). It WILL be extended to HDD's and use a custom file system, CFS.
See also
Me
My Likes
Related articles
- None yet