can i make an os in vb?
can i make an os in vb?
can i make an os in vb? i'm making an os-like program and would like it to be an os
Re:can i make an os in vb?
Answer: NO this is not possible. You need to know about at least Assembler and C, C++, Cobol or Pascal or a similar leveled language to do this.
Re:can i make an os in vb?
Nope...
You'd need to have your OS load windows apps...since VB only makes windows apps...and you'd need to have the win api...and etc and etc....
Simple Answer: Nope.
You'd need to have your OS load windows apps...since VB only makes windows apps...and you'd need to have the win api...and etc and etc....
Simple Answer: Nope.
Re:can i make an os in vb?
nuno_silva_pt
It might be worth checking your other threads before u post a new one as this question has already been answered in your previous thread.
It might be worth checking your other threads before u post a new one as this question has already been answered in your previous thread.
Re:can i make an os in vb?
Certainly... NOT !
Get away with this stupid VB stuff !
I don't deny that it be good to learned programming (I mean not making programs, but understanding what a program is and how it works).
But OS making is making a program build upon nothing more than the installed hardware, so if you want to write one, start by learning more powerful programming languages like assembler and C : this is necessary.
Than you have to understand how a computer works, how the components are working together to maintain the architecture working.
OS dev is from my point of view the most interesting and the more difficult thing that handles with programming, so please let's make yourself some experience about general programming before trying this !
Get away with this stupid VB stuff !
I don't deny that it be good to learned programming (I mean not making programs, but understanding what a program is and how it works).
But OS making is making a program build upon nothing more than the installed hardware, so if you want to write one, start by learning more powerful programming languages like assembler and C : this is necessary.
Than you have to understand how a computer works, how the components are working together to maintain the architecture working.
OS dev is from my point of view the most interesting and the more difficult thing that handles with programming, so please let's make yourself some experience about general programming before trying this !
Re:can i make an os in vb?
uhm..you can make an OS in VB...but you have to write a compiler for it..but it's not a good idea
- Pype.Clicker
- Member
- Posts: 5964
- Joined: Wed Oct 18, 2006 2:31 am
- Location: In a galaxy, far, far away
- Contact:
Re:can i make an os in vb?
oh, sure .. and you can also create an OS in javascripthanoi wrote: uhm..you can make an OS in VB...but you have to write a compiler for it..but it's not a good idea
VB is interpreted, windows-api dependent and requires a huge runtime library ...
Re:can i make an os in vb?
Neither is VB, you could write an OS in any laguage you want to if you want to implement the structure for it. But writing a compiler for VB would be a nightmare especially if you want to use all the visual stuff.
Peter
Peter
Re:can i make an os in vb?
Putting personal opinions aside, it has to be said that it would indeed be possible, in principle, to use the Visual Basic programming language as the primary langauge in which you can write an OS.
The proviso to this is that you would need a compiler that generates system-independent object code, and a completely new runtime library. While it is possible to do this, to some extent anyway (see the KBasic project as an example of similar, but not VB compatible, compiler and runtime system), it would require more work than writing the OS itself would.
The existing VB compiler and runtime system could not be used to write an OS in; they are too tightly tied into the Windows DLL and graphical systems, and prior to VB.Net, could not produce a program that did not use any forms.
That having been said, I will add that, In My Arrogant Opinion, Visual Basic is among the worst (though not the worst - surely dBase was far inferior to VB, while JCL's reputation still lingers after three decades) - languages ever designed, and that it is primarily a political move on Microsoft's part to hobble the smaller developers by convicing them to use an inferior development system. I understand that even up to Windows ME, MS programmers themselves used to develop primarily on SCO Unix, and supposedly it is still quite rare for them to 'eat their own dogfood' (MS-speak for using the programs they've developed for the customers), if that tells you anything. While I have my issues with C and its relatives (especially C++, which is more the heir of PL/1 and Ada than of C, IMAO), I far prefer them to VB. I don't even consider it an adequate teaching language; unlike Pascal, it's apparent simplicity is only surface deep, and a serious look at the syntax and behavior makes it clear that it is among the most complicated and difficult langauges to use for anything non-trivial. Furthermore, it encourages horrible programming practices such as code-under-the-form (which tends to result in dozens of small, similar snippets of code scattered around the program), and discourages modularity, careful documentation, and thoughtful design. I concede that it may be possible to write a well-designed program in VB, but I have never seen it done myself.
EDIT: I'd incorrectly stated that KBasic was a VB port; this has been corrected.
The proviso to this is that you would need a compiler that generates system-independent object code, and a completely new runtime library. While it is possible to do this, to some extent anyway (see the KBasic project as an example of similar, but not VB compatible, compiler and runtime system), it would require more work than writing the OS itself would.
The existing VB compiler and runtime system could not be used to write an OS in; they are too tightly tied into the Windows DLL and graphical systems, and prior to VB.Net, could not produce a program that did not use any forms.
That having been said, I will add that, In My Arrogant Opinion, Visual Basic is among the worst (though not the worst - surely dBase was far inferior to VB, while JCL's reputation still lingers after three decades) - languages ever designed, and that it is primarily a political move on Microsoft's part to hobble the smaller developers by convicing them to use an inferior development system. I understand that even up to Windows ME, MS programmers themselves used to develop primarily on SCO Unix, and supposedly it is still quite rare for them to 'eat their own dogfood' (MS-speak for using the programs they've developed for the customers), if that tells you anything. While I have my issues with C and its relatives (especially C++, which is more the heir of PL/1 and Ada than of C, IMAO), I far prefer them to VB. I don't even consider it an adequate teaching language; unlike Pascal, it's apparent simplicity is only surface deep, and a serious look at the syntax and behavior makes it clear that it is among the most complicated and difficult langauges to use for anything non-trivial. Furthermore, it encourages horrible programming practices such as code-under-the-form (which tends to result in dozens of small, similar snippets of code scattered around the program), and discourages modularity, careful documentation, and thoughtful design. I concede that it may be possible to write a well-designed program in VB, but I have never seen it done myself.
EDIT: I'd incorrectly stated that KBasic was a VB port; this has been corrected.
Re:can i make an os in vb?
That is exactly my oppinion oif Visual Basic. I'm having to do a VB unit at uni and I think it's an awful language, let alone the clunky IDE and runtime libs.Schol-R-LEA wrote: That having been said, I will add that, In My Arrogant Opinion, Visual Basic is among the worst (though not the worst - surely dBase was far inferior to VB, while JCL's reputation still lingers after three decades) - languages ever designed, and that it is primarily a political move on Microsoft's part to hobble the smaller developers by convicing them to use an inferior development system. I understand that even up to Windows ME, MS programmers themselves used to develop primarily on SCO Unix, and supposedly it is still quite rare for them to 'eat their own dogfood' (MS-speak for using the programs they've developed for the customers), if that tells you anything. While I have my issues with C and its relatives (especially C++, which is more the heir of PL/1 and Ada than of C, IMAO), I far prefer them to VB. I don't even consider it an adequate teaching language; unlike Pascal, it's apparent simplicity is only surface deep, and a serious look at the syntax and behavior makes it clear that it is among the most complicated and difficult langauges to use for anything non-trivial. Furthermore, it encourages horrible programming practices such as code-under-the-form (which tends to result in dozens of small, similar snippets of code scattered around the program), and discourages modularity, careful documentation, and thoughtful design. I concede that it may be possible to write a well-designed program in VB, but I have never seen it done myself.
I personally don't even use it for Windows Programming, I use Borland Delphi, much better.
Re:can i make an os in vb?
I agree that it is not (realistically) possible to program an OS in VB, but don't let this discourrage you. I would like to tell you how I came to programming OSs in C from VB
[hr]
I first learned to program in QBasic (at least program on a PC - I did program in a BASIC language before that on an integrated learning computer thingy which was little more than a toy). I then migrated to Visual Basic when my dad bought his new all singing-all dancing (PII 233 32MB RAM 4MB graphics 8GB HDD 24x CD-ROM) pc with Windows 95. With it he bought Office 97 Developer Edition and Visual Studio 97 Enterprise. I spent many (I would say 'happy' at this point, but I'd be lying) years (ie until the summer of 2002) using Visual Basic as it seemed powerful and easy to use and I already knew the BASIC language.
I have toyed with the idea of creating an OS for some time, and my dad has many books on the subject (he did some OS reasurch at Uni). In september I finally decided to start my OS and spent some time searching the internet, and after a while I found this message board (actually I found the beginners guide thing on this site first, and used that to begin my os). I read several posts about various programming languages and finally decided to use C as my language of choice for this language.
I found C fairly easy to pickup mainly because I had used PASCAL before and had started to learn C++ at one point, so I knew some of the basic syntax and many languages are fairly similar in the statements they use. I have got quite far in that time (considering I have on spent odd hours I had free on it) and have a GDT, Keyboard handler, some IO routines, a panic routine and am about to impliment a graphical mode.
[hr]
I know this is a lengthy post, but I thought it necessary to illustrate that not knowing C or another similar language does not mean that you can't use it to write an OS and learn about a very useful language in the process.
I disagree with what some people say on the board about it being a bad idea to learn C through writing an OS as I have learned a LOT about C with my OS writing and I only knew some basic syntax before. In fact I think that in some ways it was easier as I was not relying on any librarys to program before so I did not find it difficult to lose the use of such objects.
About assembly (I just want to get all my views in ):
I think that assembly is great for programming OSs, and if you are using it to write one then good on you, but I for one know very little assembly (I can tell what JMP, POP, PUSH, MOV etc represent but I couldn't tell you what a program did by looking at it) and so cannot use it.
[hr]
I first learned to program in QBasic (at least program on a PC - I did program in a BASIC language before that on an integrated learning computer thingy which was little more than a toy). I then migrated to Visual Basic when my dad bought his new all singing-all dancing (PII 233 32MB RAM 4MB graphics 8GB HDD 24x CD-ROM) pc with Windows 95. With it he bought Office 97 Developer Edition and Visual Studio 97 Enterprise. I spent many (I would say 'happy' at this point, but I'd be lying) years (ie until the summer of 2002) using Visual Basic as it seemed powerful and easy to use and I already knew the BASIC language.
I have toyed with the idea of creating an OS for some time, and my dad has many books on the subject (he did some OS reasurch at Uni). In september I finally decided to start my OS and spent some time searching the internet, and after a while I found this message board (actually I found the beginners guide thing on this site first, and used that to begin my os). I read several posts about various programming languages and finally decided to use C as my language of choice for this language.
I found C fairly easy to pickup mainly because I had used PASCAL before and had started to learn C++ at one point, so I knew some of the basic syntax and many languages are fairly similar in the statements they use. I have got quite far in that time (considering I have on spent odd hours I had free on it) and have a GDT, Keyboard handler, some IO routines, a panic routine and am about to impliment a graphical mode.
[hr]
I know this is a lengthy post, but I thought it necessary to illustrate that not knowing C or another similar language does not mean that you can't use it to write an OS and learn about a very useful language in the process.
I disagree with what some people say on the board about it being a bad idea to learn C through writing an OS as I have learned a LOT about C with my OS writing and I only knew some basic syntax before. In fact I think that in some ways it was easier as I was not relying on any librarys to program before so I did not find it difficult to lose the use of such objects.
About assembly (I just want to get all my views in ):
I think that assembly is great for programming OSs, and if you are using it to write one then good on you, but I for one know very little assembly (I can tell what JMP, POP, PUSH, MOV etc represent but I couldn't tell you what a program did by looking at it) and so cannot use it.
- Pype.Clicker
- Member
- Posts: 5964
- Joined: Wed Oct 18, 2006 2:31 am
- Location: In a galaxy, far, far away
- Contact:
Re:can i make an os in vb?
Just a few questions (i've been through 10 years of BASIC, but not a single line of visual stuff):
- can VB declare structures (or objects) ?
- can you control how these structures will map into bits and bytes ? for instance, can you make sure that you can access to the different fields of a partition sector if i tell you it has been loaded at memory address X ?
- can you access raw memory. If i tell you VRAM is located at 0xb8000, what will you do with it ?
- can you call code that has no name ? if you get a piece of code loaded at address X, can you call it ?
- can you program interrupt handlers ?
- can you control memory allocation ? Java is a weird choice for OS programming because of the garbage collector (you cannot know when memory will be released and the OS is usually in charge of releasing it ...)
- can you access code that has not been written in the language, such as ASM code ?
If one of these questions come with a negative answer, then the language is unlikely to be useable for OS development (or any low-level development). For sure, you still can come with writeByte ("0xb8000", offset, value) written in assembly and use it to access VRAM -- or even the good old "POKE 0xb8000+offset, value", but compared to "*curr_video=value", it will quickly become impossible to use.
- can VB declare structures (or objects) ?
- can you control how these structures will map into bits and bytes ? for instance, can you make sure that you can access to the different fields of a partition sector if i tell you it has been loaded at memory address X ?
- can you access raw memory. If i tell you VRAM is located at 0xb8000, what will you do with it ?
- can you call code that has no name ? if you get a piece of code loaded at address X, can you call it ?
- can you program interrupt handlers ?
- can you control memory allocation ? Java is a weird choice for OS programming because of the garbage collector (you cannot know when memory will be released and the OS is usually in charge of releasing it ...)
- can you access code that has not been written in the language, such as ASM code ?
If one of these questions come with a negative answer, then the language is unlikely to be useable for OS development (or any low-level development). For sure, you still can come with writeByte ("0xb8000", offset, value) written in assembly and use it to access VRAM -- or even the good old "POKE 0xb8000+offset, value", but compared to "*curr_video=value", it will quickly become impossible to use.
Re:can i make an os in vb?
The answers are :Pype.Clicker wrote: Just a few questions (i've been through 10 years of BASIC, but not a single line of visual stuff):
- can VB declare structures (or objects) ?
- can you control how these structures will map into bits and bytes ? for instance, can you make sure that you can access to the different fields of a partition sector if i tell you it has been loaded at memory address X ?
- can you access raw memory. If i tell you VRAM is located at 0xb8000, what will you do with it ?
- can you call code that has no name ? if you get a piece of code loaded at address X, can you call it ?
- can you program interrupt handlers ?
- can you control memory allocation ? Java is a weird choice for OS programming because of the garbage collector (you cannot know when memory will be released and the OS is usually in charge of releasing it ...)
- can you access code that has not been written in the language, such as ASM code ?
If one of these questions come with a negative answer, then the language is unlikely to be useable for OS development (or any low-level development). For sure, you still can come with writeByte ("0xb8000", offset, value) written in assembly and use it to access VRAM -- or even the good old "POKE 0xb8000+offset, value", but compared to "*curr_video=value", it will quickly become impossible to use.
- Yes
- Maybe (not sure, but I would say No)
- No
- No
- No
- No
- No
My conclusion is simple : VB is not useful for OS dev
Re:can i make an os in vb?
Actually I can think of 1 area where your VB knowledge might come in useful. Namely designing the OS rather than coding it.
For example designing a filesystem that is effective (And workable) is a lot easier if you can simulate it as you are working on it.
In fact OS design is littered with a need for algorithms that have to work, and work efficiently, and VB might not be such a bad language to work on them in. Then once the algorithm is functioning effectively you can translate into whichever language you happen to be coding the OS in.
Of course you could do all that in C or any other language you happen to know, but if you want to head into the design of the OS whilst learning a different language then this might be a way to move things along faster, rather than trying to learn a language and solve algorithmic problems in it simultaneously.
As for coding the OS itself in VB, I think the other replies in this thread have already stated the reasons why not to try it.
For example designing a filesystem that is effective (And workable) is a lot easier if you can simulate it as you are working on it.
In fact OS design is littered with a need for algorithms that have to work, and work efficiently, and VB might not be such a bad language to work on them in. Then once the algorithm is functioning effectively you can translate into whichever language you happen to be coding the OS in.
Of course you could do all that in C or any other language you happen to know, but if you want to head into the design of the OS whilst learning a different language then this might be a way to move things along faster, rather than trying to learn a language and solve algorithmic problems in it simultaneously.
As for coding the OS itself in VB, I think the other replies in this thread have already stated the reasons why not to try it.