POSTING RULES - REQUIRED READING - FAQ
- Combuster
- Member
- Posts: 9301
- Joined: Wed Oct 18, 2006 3:45 am
- Libera.chat IRC: [com]buster
- Location: On the balcony, where I can actually keep 1½m distance
- Contact:
POSTING RULES - REQUIRED READING - FAQ
To all the newcomers to this forum:
Prerequisites
OS Development is one of the most difficult aspects of programming. Without the needed skills, you will not make it. If you don't meet the Prerequisites, we recommend that you gather the needed experience in different subjects first. We are not here to babysit people who are unable to program decently.
Frequently asked questions
Many questions have been asked, and many have been answered already. Everything to get you started is available in the wiki. A list of frequently asked questions can be found on the FAQ page. Furthermore, you should download the manuals for the platform you want to develop on. For the PC, that means you should get the software development manuals from Intel or AMD and read them through. If you don't understand them, read again.
How not to make a fool of yourself
We can see from your style of questioning how hard you have tried to solve the problem. Do read the essay on how to ask questions the smart way, and the related notes on the wiki. Offences will result in flames, STFWs, RTFMs and other noob-related insults.
I wish you all good luck with your endeavours.
Prerequisites
OS Development is one of the most difficult aspects of programming. Without the needed skills, you will not make it. If you don't meet the Prerequisites, we recommend that you gather the needed experience in different subjects first. We are not here to babysit people who are unable to program decently.
Frequently asked questions
Many questions have been asked, and many have been answered already. Everything to get you started is available in the wiki. A list of frequently asked questions can be found on the FAQ page. Furthermore, you should download the manuals for the platform you want to develop on. For the PC, that means you should get the software development manuals from Intel or AMD and read them through. If you don't understand them, read again.
How not to make a fool of yourself
We can see from your style of questioning how hard you have tried to solve the problem. Do read the essay on how to ask questions the smart way, and the related notes on the wiki. Offences will result in flames, STFWs, RTFMs and other noob-related insults.
I wish you all good luck with your endeavours.
Last edited by Combuster on Mon May 05, 2008 2:41 pm, edited 3 times in total.
- piranha
- Member
- Posts: 1391
- Joined: Thu Dec 21, 2006 7:42 pm
- Location: Unknown. Momentum is pretty certain, however.
- Contact:
I also suggest making your titles of your posts so they tell us whats going on and what you want to know.
Something like GETTING STARTED!?!!!?!!! is going to get you flamed.
Never Ever type your entire post in IM slang.
Don't offend people.
Be willing to share your opinion, but listen to others and do research before you blankly say they're wrong.
-JL
Something like GETTING STARTED!?!!!?!!! is going to get you flamed.
Never Ever type your entire post in IM slang.
Don't offend people.
Be willing to share your opinion, but listen to others and do research before you blankly say they're wrong.
-JL
Last edited by piranha on Tue Apr 01, 2008 5:46 pm, edited 1 time in total.
SeaOS: Adding VT-x, networking, and ARM support
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
-
- Member
- Posts: 2566
- Joined: Sun Jan 14, 2007 9:15 pm
- Libera.chat IRC: miselin
- Location: Sydney, Australia (I come from a land down under!)
- Contact:
Before you even think about OS development, make sure you understand C and have worked on at least 1 large-scale project in the language before.
You should also understand how to use a command line. If using Windows, you should know how to modify your PATH (if using DJGPP) or get some experience with Cygwin.
Write some "hello world!" programs and invoke the compiler on them via the command line (preferably GCC). Learn about linker scripts and what they do.
Read How_To_Ask_Questions first. Actually, read all the getting started topics in the wiki and then ask your questions.
You should also understand how to use a command line. If using Windows, you should know how to modify your PATH (if using DJGPP) or get some experience with Cygwin.
Write some "hello world!" programs and invoke the compiler on them via the command line (preferably GCC). Learn about linker scripts and what they do.
Read How_To_Ask_Questions first. Actually, read all the getting started topics in the wiki and then ask your questions.
This isn't required. Even with BASIC and some knowledge of assembly you can make a 32-bit OS, don't forget FreeBASICpcmattman wrote:Before you even think about OS development, make sure you understand C
//EDIT: The quote got messed up somehow, before making this thread as sticky, it was quoted correctly, so I've fixed it.
Regards
inflater
Last edited by inflater on Wed Sep 19, 2007 12:39 pm, edited 1 time in total.
My web site: http://inflater.wz.cz (Slovak)
Derrick operating system: http://derrick.xf.cz (Slovak and English )
Derrick operating system: http://derrick.xf.cz (Slovak and English )
- Combuster
- Member
- Posts: 9301
- Joined: Wed Oct 18, 2006 3:45 am
- Libera.chat IRC: [com]buster
- Location: On the balcony, where I can actually keep 1½m distance
- Contact:
what isn't required?inflater wrote:This isn't required. Even with BASIC and some knowledge of assembly you can make a 32-bit OS, don't forget FreeBASIC
1. C knowledge? Everything you find is either in c or assembly, and OSDeving in higher languages like FreeBasic requires a mindset you do not get from normal programming.
2. Experience with larger projects? obviously this holds as good for basic as it does for C. If you can't design and manage your code properly, you'll be doomed even before you started.
3. command line experience? Freebasic is command line oriented.
The similar line of reasoning can be applied to Pascal, Java and any other language you want to try.
Also, to be said: Know your host OS from A to Z before doing a new one !
I wonder why I have the "open DOS command window here" at the main directory/file submenu in WinXP Some things are more easily done at the command prompt, unlike the GUI... That's why I do not like Vista as it doesn't have the DOS subsystem (no more posts about this OS please )
Regards
inflater
Of course, I fully agree with this. I do have the full knowledge about DOS prompt syntax, look, and commands, basic, and extended thingies. But I can't say the same about bash in *nix thoughCombuster wrote:3. command line experience?
I wonder why I have the "open DOS command window here" at the main directory/file submenu in WinXP Some things are more easily done at the command prompt, unlike the GUI... That's why I do not like Vista as it doesn't have the DOS subsystem (no more posts about this OS please )
Regards
inflater
My web site: http://inflater.wz.cz (Slovak)
Derrick operating system: http://derrick.xf.cz (Slovak and English )
Derrick operating system: http://derrick.xf.cz (Slovak and English )
- AndrewAPrice
- Member
- Posts: 2309
- Joined: Mon Jun 05, 2006 11:00 pm
- Location: USA (and Australia)
MS is trying to _very_ gradually faze out the old cmd in favour for Windows PowerShell (a scriptable .NET command line environment). It is one of the most powerful shells I've come across. You can directly interact with any .NET dll which means you could, theoretically, have a PowerShell script that could render something on screen with DirectX, or act as a miniature web server using System.Net.inflater wrote:That's why I do not like Vista as it doesn't have the DOS subsystem
My OS is Perception.
It's always interesting to me how as Windows gets more and more 'advanced', it seems to simply incorporate more and more features that have been in *nix for ~30 years.MessiahAndrw wrote:MS is trying to _very_ gradually faze out the old cmd in favour for Windows PowerShell (a scriptable .NET command line environment).inflater wrote:That's why I do not like Vista as it doesn't have the DOS subsystem
C8H10N4O2 | #446691 | Trust the nodes.
- AndrewAPrice
- Member
- Posts: 2309
- Joined: Mon Jun 05, 2006 11:00 pm
- Location: USA (and Australia)
It's separated from most Unix shells since their pipelines are based around text. PowerShell works around the principle of passing around .NET object (which can be converted to text for output)Alboin wrote:It's always interesting to me how as Windows gets more and more 'advanced', it seems to simply incorporate more and more features that have been in *nix for ~30 years.MessiahAndrw wrote:MS is trying to _very_ gradually faze out the old cmd in favour for Windows PowerShell (a scriptable .NET command line environment).inflater wrote:That's why I do not like Vista as it doesn't have the DOS subsystem
My OS is Perception.
Yes, but if we consider a .NET object to simply be a piece of executable code, how is it any different from a normal *nix shell using programs like cat and grep? It's just syntactic sugar.MessiahAndrw wrote:PowerShell works around the principle of passing around .NET object (which can be converted to text for output)
C8H10N4O2 | #446691 | Trust the nodes.
- Colonel Kernel
- Member
- Posts: 1437
- Joined: Tue Oct 17, 2006 6:06 pm
- Location: Vancouver, BC, Canada
- Contact:
An object is code + data, not just code.Alboin wrote:Yes, but if we consider a .NET object to simply be a piece of executable code,
No, it's not. The difference is that *nix commands pass unstructured text between each other. if I do "nm foo.so | grep main", grep is just getting a stream of text that it has to parse. In PowerShell, commands pass structured data around instead of text, so it's more like composing sub-programs in a higher-level programming language than just doing text processing over and over again.how is it any different from a normal *nix shell using programs like cat and grep? It's just syntactic sugar.
Top three reasons why my OS project died:
- Too much overtime at work
- Got married
- My brain got stuck in an infinite loop while trying to design the memory manager
But it's so similar. The only difference is that it passes objects. That's why I called it syntactic sugar. It's just makes everything cleaner to write; there's still no new ideas. The thing to change would be the idea of pipes, not their format.Colonel Kernel wrote: No, it's not. The difference is that *nix commands pass unstructured text between each other. if I do "nm foo.so | grep main", grep is just getting a stream of text that it has to parse. In PowerShell, commands pass structured data around instead of text, so it's more like composing sub-programs in a higher-level programming language than just doing text processing over and over again.
C8H10N4O2 | #446691 | Trust the nodes.
- Colonel Kernel
- Member
- Posts: 1437
- Joined: Tue Oct 17, 2006 6:06 pm
- Location: Vancouver, BC, Canada
- Contact:
Ok, let me spell it out for you. Let's say you write a *nix command (program or script) that dumps out a table of information in comma-separated values. I'll use a really dumb example: firstname,lastname,phonenumber. If you want to write another *nix command that processes that table of information somehow. Your new command will have to do text parsing. The data is unstructured -- it has no schema. Yes it is flexible, but parsing is a pain in the butt.Alboin wrote:But it's so similar. The only difference is that it passes objects. That's why I called it syntactic sugar.
If you do the same thing in PowerShell, you can define a type that includes fields for firstname, lastname, and phonenumber. Your first command can create instances of this type, and your second program will simply receive them and use them, no parsing required.
I've never heard of an objected-oriented shell before PowerShell. Have you? Besides, isn't making things cleaner to write the whole point? This isn't about satisfying your personal sense of aesthetics...It's just makes everything cleaner to write; there's still no new ideas.
Why? Pipes are *nixes gift to the world!The thing to change would be the idea of pipes, not their format.
Top three reasons why my OS project died:
- Too much overtime at work
- Got married
- My brain got stuck in an infinite loop while trying to design the memory manager
I kind of got that the first three times...Colonel Kernel wrote:Ok, let me spell it out for you. Let's say you write a *nix command (program or script) that dumps out a table of information in comma-separated values. I'll use a really dumb example: firstname,lastname,phonenumber. If you want to write another *nix command that processes that table of information somehow. Your new command will have to do text parsing. The data is unstructured -- it has no schema. Yes it is flexible, but parsing is a pain in the butt.Alboin wrote:But it's so similar. The only difference is that it passes objects. That's why I called it syntactic sugar.
If you do the same thing in PowerShell, you can define a type that includes fields for firstname, lastname, and phonenumber. Your first command can create instances of this type, and your second program will simply receive them and use them, no parsing required.
This is from 1987. The only problem is that I can't tell if it really has any relation to what we're talking about or not...Colonel Kernel wrote: I've never heard of an objected-oriented shell before PowerShell. Have you?
C8H10N4O2 | #446691 | Trust the nodes.