Like I thought I like programming....Maybe I do...But what I'd really want to do is create a piece of raw machine hardware such as a processor first, operating system and then capability to move on from there using my own instruction sets.

But is it possible for one person to do this?

This is the "ONLY" way I'd be satisfied with programming, being that I have my own programming language, processor, operating system and such that will function in only ways I know perfectly how to implement them in in the first place.

And where would I start-off learning about related things(can't be college)?

I know it sounds crazy, but advice can't hurt.

Recommended Answers

All 11 Replies

It certainly is possible. This chap did it - http://www.homebrewcpu.com/

That's not 100% reliable and true though. He didn't literally craft the device and microfabricate it himself and hard-write and generate the electro-circuits and connective modules. Plus, besides all of that, he didn't make, from scratch, sets from pure control flow and arithmetic instruction sets as a whole.

That's not 100% reliable and true though. He didn't literally craft the device and microfabricate it himself and hard-write and generate the electro-circuits and connective modules. Plus, besides all of that, he didn't make, from scratch, sets from pure control flow and arithmetic instruction sets as a whole.

Besides, even if he did do all of that it's not powerful enough to compare to Windows operating systems, which is what I need to do.

Well, to run an OS as powerful as a modern commercial OS, you'll need a processor as powerful as a modern PC processor. The assembly plants for those cost millions of dollars. Designing one from scratch and building it layer be layer would require mastery of so many disciplines and branches of mathematics, electrical engineering, solid state physics, the list goes on, and the money needed to fund it would be vast. I'm not sure one person acting completely alone could actually do all the work in a human lifetime. So the answer is probably no, it's not possible.

Well, to run an OS as powerful as a modern commercial OS, you'll need a processor as powerful as a modern PC processor. The assembly plants for those cost millions of dollars. Designing one from scratch and building it layer be layer would require mastery of so many disciplines and branches of mathematics, electrical engineering, solid state physics, the list goes on, and the money needed to fund it would be vast. I'm not sure one person acting completely alone could actually do all the work in a human lifetime. So the answer is probably no, it's not possible.

You ruined my whole happiness now. Do you enjoy ruining peoples' lives like that?

Plus, I don't care how hard it is....If I knew EXACTLY how the whole process was done in every instance I'd do it, even if it took longer than I'd live.

Plus, lying and making me think I might do it is better than outright saying I won't.

And last, do you know how the whole ENTIRE process of it is done, say, from absolute scratch?

> You ruined my whole happiness now. Do you enjoy ruining peoples' lives like that?
Ok, I think it's nap time.

>>Do you enjoy ruining peoples' lives like that?
The truth is better than false illusions.

>>If I knew EXACTLY how the whole process was done in every instance I'd do it,
Where does this logic end? Have you thought about that? You seem to be saying: I don't want to use an existing programming language because I don't know exactly what it translates to in machine code... I don't want to use existing machine code because I don't know how it translates to module executions on the CPU... I don't want to use existing CPUs because I don't know how it translates to moving charge in the integrated circuit... I don't want to use existing integrated circuits because I don't know how they move electrons around... I don't want to use existing semi-conductors because I don't know how it translates to quantum physics processes... I don't want to use existing quantum physics theory because I don't know how it translates to the fundamental laws of the Universe... come on... this thought process gets ridiculous very quickly.

>>Plus, lying and making me think I might do it is better than outright saying I won't.
No, it's not. Your parents might not want to burst your bubble and destroy your hopes. But you have to get real someday.

>>And last, do you know how the whole ENTIRE process of it is done, say, from absolute scratch?
In broad terms, yes, in details, no. A processor is essentially an electric circuit composed of resistors, capacitors, inductors, diodes, and transistors. These can be shrunk to microscopic scale by using well-placed impurities (like germanium) into a crystal of silicon (called a silicon matrix). Depending on the type of impurity, specific regions can be created (e.g. depletion wells and conductors) and the interaction of electric charge between those microscopic regions allow them to be electrically characterized as resistors, capacitors, inductors, diodes and various transistors (MOSFET, JFET, etc.). Arranging these elements in a particular way makes them perform some digital operations when pulses of charge traverse them (this would be called a module of the processor). By putting a whole bunch of these together, of different types, allows you to perform a number of different operations. Then, by having modules that can switch the flow of charge to different module entry points, you can "call" onto those specific operations. The set of configurations of those switches (called multiplexers), correspond to what is referred to as the instruction set of the processor. Feeding binary instructions to one particular entry point in the processor will realize those switches and at the next burst of charge through the processor (called a clock-cycle), the desired operation is performed. By executing one instruction after another, you have a program running. And the rest is computer science, once you can build a program, you can build an OS and a compiler for a language that is easier to use than the instruction set of the processor. And so on so forth. And this is only how the processor works (and for a particular architecture type, von Neumann). There are tons of side issues to this as well. How to store data? How to transmit data between parts of the computer? How to evacuate the heat generated by the charge travelling through the processor? How to ensure that there are enough electrons in the different regions of the integrated circuit such that it can operate reliably? etc. etc. And I haven't mentioned all the enormous problems and costs related to actually building these things. These things are microscopic (you need extremely high-precision machinery) and extremely sensitive to any kind of dust (you need a clean room, and I don't mean "clean" colloquially, I mean it in technical terms).

If you really want to just play around with really low-level stuff, I suggest you play around with FPGA (Field Programmable Gate Arrays) this is as close as you can get to making a "real" CPU within bounds of reason in terms of cost of time and money.

>>Do you enjoy ruining peoples' lives like that?
The truth is better than false illusions.

>>If I knew EXACTLY how the whole process was done in every instance I'd do it,
Where does this logic end? Have you thought about that? You seem to be saying: I don't want to use an existing programming language because I don't know exactly what it translates to in machine code... I don't want to use existing machine code because I don't know how it translates to module executions on the CPU... I don't want to use existing CPUs because I don't know how it translates to moving charge in the integrated circuit... I don't want to use existing integrated circuits because I don't know how they move electrons around... I don't want to use existing semi-conductors because I don't know how it translates to quantum physics processes... I don't want to use existing quantum physics theory because I don't know how it translates to the fundamental laws of the Universe... come on... this thought process gets ridiculous very quickly.

>>Plus, lying and making me think I might do it is better than outright saying I won't.
No, it's not. Your parents might not want to burst your bubble and destroy your hopes. But you have to get real someday.

>>And last, do you know how the whole ENTIRE process of it is done, say, from absolute scratch?
In broad terms, yes, in details, no. A processor is essentially an electric circuit composed of resistors, capacitors, inductors, diodes, and transistors. These can be shrunk to microscopic scale by using well-placed impurities (like germanium) into a crystal of silicon (called a silicon matrix). Depending on the type of impurity, specific regions can be created (e.g. depletion wells and conductors) and the interaction of electric charge between those microscopic regions allow them to be electrically characterized as resistors, capacitors, inductors, diodes and various transistors (MOSFET, JFET, etc.). Arranging these elements in a particular way makes them perform some digital operations when pulses of charge traverse them (this would be called a module of the processor). By putting a whole bunch of these together, of different types, allows you to perform a number of different operations. Then, by having modules that can switch the flow of charge to different module entry points, you can "call" onto those specific operations. The set of configurations of those switches (called multiplexers), correspond to what is referred to as the instruction set of the processor. Feeding binary instructions to one particular entry point in the processor will realize those switches and at the next burst of charge through the processor (called a clock-cycle), the desired operation is performed. By executing one instruction after another, you have a program running. And the rest is computer science, once you can build a program, you can build an OS and a compiler for a language that is easier to use than the instruction set of the processor. And so on so forth. And this is only how the processor works (and for a particular architecture type, von Neumann). There are tons of side issues to this as well. How to store data? How to transmit data between parts of the computer? How to evacuate the heat generated by the charge travelling through the processor? How to ensure that there are enough electrons in the different regions of the integrated circuit such that it can operate reliably? etc. etc. And I haven't mentioned all the enormous problems and costs related to actually building these things. These things are microscopic (you need extremely high-precision machinery) and extremely sensitive to any kind of dust (you need a clean room, and I don't mean "clean" colloquially, I mean it in technical terms).

If you really want to just play around with really low-level stuff, I suggest you play around with FPGA (Field Programmable Gate Arrays) this is as close as you can get to making a "real" CPU within bounds of reason in terms of cost of time and money.

Well, thanks. I appreciate all the knowledge, but I noticed you forgot to explain the part of how the instruction set is put in to the processor from scratch. That part is one of the most necessary ones. Do you know exactly how it's done?

But yes, in "real" terms I plan to go as far back up to the Universe part because, well, we all know I can't create my own universe(perhaps?)but we ALL know it's possible to create a processor from scratch and have it function any way you can make logic implement in it and run by any means electrical or logical/physical efficiently enough to produce results like any other processor.

>>Do you know exactly how it's done?
No. The instruction set is not put in the processor, it's intrinsic to the processor (depending on what exactly you consider the processor).

I have to stop you there though. You might be willing to go down to the fundamentals laws of the Universe, but I'm not. I have very limited knowledge of how processors work, but I have enough to be satisfied and understand its working principles (which is not needed to do programming btw).

This thread is extremely out of topic. This is a C++ forum. You ought to take this to some processor design forum (if one even exists).

>>Do you know exactly how it's done?
No. The instruction set is not put in the processor, it's intrinsic to the processor (depending on what exactly you consider the processor).

I have to stop you there though. You might be willing to go down to the fundamentals laws of the Universe, but I'm not. I have very limited knowledge of how processors work, but I have enough to be satisfied and understand its working principles (which is not needed to do programming btw).

This thread is extremely out of topic. This is a C++ forum. You ought to take this to some processor design forum (if one even exists).

Thanks, and I know this is off-topic but how is it intrinsic?

Thanks, and I know this is off-topic but how is it intrinsic?

Help would be nice... :(

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.