计算机工程101? [英] Computer Engineering 101?

查看:99
本文介绍了计算机工程101?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我不知道这是问这个问题的合适地方.但是我希望是.

我是小.软件工程师,我知道我的C#,JAVA,VB等...
太酷了,但我很想了解知识!

我想从头到尾都知道...计算机的工作原理.
我不是说...力量-> BIOS->后->操作系统负载

我想知道主板如何知道如何加载BIOS ...哎呀,计算机如何从仅通过通电的硬件变为能够运行机器代码的计算机.

我想知道这一切!

是的,我知道人们上学了好几年,好几年.....好几年才学这些东西.因为这涉及计算机和软件工程.

我想从头开始编写自己的操作系统.为此,我认为最好首先了解一切.哎呀,说我知道所有这些,在履历上看起来真是太神奇了,并且可以实现我的人生目标(这可能要花多长时间).

我希望能够了解一台非常基本的计算机的知识,并能够创建一个OS(甚至是DOS强度的1/100之一).

所以这才是真正的问题.我从哪说起呢?是否有在线电子书,教科书甚至教程?我不能在学校里度过一生,所以我需要自己做(因为运气不佳而付出的一切).

运气好的话,最终我将能够构建计算机零件,对基本BIOS进行编程,甚至最终可以在这些芯片和我自己的计算机上运行的操作系统.

而且请没人说出任何意思,我知道这是一项艰巨的任务,而且没人能知道这一切……但是我不能尝试吗?

据我所知,我将需要在这一步中学习一些东西. (我不知道实际的名字会叫什么,所以如果有人能告诉我那会很好)

1)芯片和硬件设计
2)构建小型芯片和电路
3)控制电路
4)BIOS
5)操作系统设计

感谢任何帮助我的人!
这对我和我的个人利益而言,比对工作或诸如此类的事情更重要.



我的问题是我有很多问题,只是不知道从哪里开始,从什么开始.

我的总体目标是从头开始创建一个非常简单的电路(并了解该电路如何工作直至位和字节)并编写我的OS(可能是BIOS?)以在该电路上运行.

我喜欢当前所有的答案和评论.

我只是希望我能找到一个从头到尾都有该过程的资源.我不能成为第一个想要这样做的人.

我使用预制套件看到了您的一些评论和答案,但我不希望这样.
我想了解该预制套件的各个部分的方式和原因.

I don''t know if this is the right place to ask the question..but i hope it is.

I am a jr. Software Engineer, and i know my C#, JAVA, VB, etc...
That is cool and all, but i have a thirst for knowledge!

I would like to know from start to end...how a computer works.
And i don''t mean...power -> bios -> post -> OS Load

I want to know how a motherboard knows to load the BIOS...heck how does the computer even go from just hardware with electricity running through it to being able to to run machine code.

I want to know it all!

And yes i know people go to school for years, and years.....and years to learn this stuff. Because this goes into Computer and Software Engineering.

I want to program my own OS, from scratch. And to do this, i figured it would be best to know how everything works first. Heck, it would look amazing on a resume to say i know all of this, and would fa-fill my lifes goal (which is how long this might take).

I want to be able to know the understandings of a very basic computer, to being able to create a OS (even one 1/100th the strength of DOS).

So here is the real question. Where do i start? Are there online E-books, text books, even tutorials? I can''t spend my life in school so i need to do this on my own time (with any luck at a lost cost).

With any luck, in the end i will be able to build computer parts, program basic BIOS, and maybe in the end a OS that runs on those chips and my own computer.

And please no one say anything mean, i know this is a large task, and no one can ever know it all...but can''t i try?

From what i know i will need to learn things in this step. (i don''t know what the actual names would be called so if anyone can tell me that would be great)

1) Chip and Hardware design
2) Building small chips and circuits
3) Controlling the circuits
4) BIOS
5) OS Design

Thanks for ANYONE who helps me!
This is more for me and my personal interest than for a job, or anything like that.



My problem is i have so many questions, and just did not know where to start, and start with what.

What my overall goal is to create a very simple circuit from scratch ( and understand how that circuit works down to the bits and bytes) and write my OS (possibly a BIOS?) to run on that circuit.

I love all the current answers and comments BTW.

I just wish i could find a single resource that has that process from start to finish. I can not be the first person to want to do this.

I see some of your comments and answers, using pre made kits, but i do not want that.
i want to understand how and why of the parts of that pre made kit.

推荐答案

Phew!您将得到我尚未解决的最雄心勃勃,最明智的问题的5分! :laugh:

这是很多工作和许多学科的艰巨任务.这5个领域中有一些是自己开设的大学课程的主题...

我的建议是:从小做起.

看一下获取预构建的套件(您不需要由尚待学习如何焊接的人创建您的第一个硬件项目,请相信我!) ^ ]很受欢迎,也是理解的一个好开始计算机的基本知识,而不必从晶体管或PNP/NPN结开始-甚至电容器实际上起什么作用?"这是一本完整的书...

如果您从一个流行的工具包开始,那里就有一个社区(这里也有很多人),他们可以提供帮助,支持和解释,并且适合初学者.

要记住的重要事项:
1)一次不要尝试做太多事情:如果陷入困境,您会灰心,并且可能会放弃整个想法.
2)如果您听不懂,请询问-但您已经解决了一个问题:)
3)玩得开心!因为总会有"YES!"的念头.当您的软件首次在您的硬件上运行时!
Phew! You get my 5 for the most ambitious, sensible question I have yet seen! :laugh:

That is a heck of a lot of work, and in a lot of disciplines. Some of those 5 areas are the subject of university courses all on their own...

My suggestion is: start small.

Look at getting a pre-built kit (you do not need your first hardware project to be made by someone who is yet to learn how to solder, trust me!) Arduino[^] is popular and a good start to understanding the basics of computers without having to start with transistors or PNP / NPN junctions - or even "what does a capacitor actually do?" which is a book all to itself...

If you start with a popular kit, there is a community out there (quite a few people here, too) who can help, support and explain, and who are used to beginners.

The important things to remember:
1) Don''t try to do too much at one time: if you swamp yourself you will get discouraged and may abandon the whole idea.
2) If you don''t understand, ask - but you worked that one out already :)
3) Have fun! Because there is always a heck of a "YES!" moment when your software first runs on your hardware!


我不太确定您是认真的.我什至怀疑这是一种巨魔.

但是如果你是认真的话...

我真的很同情您,并尊重您对知识和理解的渴望.

首先,您应该了解自己将生活得很艰难,而不是因为所有这些技术困难.也许您会喜欢它们的.您可以预料到非常不同的问题.在现实生活中,大多数从事该行业的工程师"与您的态度完全相反.他们竭尽所能,尽可能少地学习,并且正在寻找一些快速而廉价的解决方案以及无用的轻松赚钱的方法.只需在CodeProject上查看其他问题即可了解我在说什么.如果您达到所需的专业水平,那么所有人都会讨厌您.他们虽然不介意利用您的专业知识来发挥自己的优势,但会在任何情况下使您短缺.他们会害怕您身边的潜在竞争,并会尽力让您失望.

并非所有事情都如此严峻.您肯定会在不同的地方找到一些体面的人.没有人知道要让您有机会与他们合作需要多少只耳朵.

说到您感兴趣的技术领域,您提出的问题太多了,因此几乎没有人能够在一个快速的答案中为您提供正确的方向指导.我只能给你基本的想法.您应该了解,如果您要获取每一个技术细节,您将永远不会花时间.因此,您需要专注于编程的基本(和理论)方面.同时,您需要一直练习.对知识的错误幻想可能太强烈了.幸运的是,有一种很好的方法来检验您的理解:将关键解决方案实施到工作代码中.但是,这并不是100%可靠的.该解决方案可能会起作用,但只能持续一段时间.您应该远离反复试验的方法,而应使用基本方法.对于您写的每一行,您都应该了解原因.您应该找到解决每个问题的分析方法.这一切都与基本方面有关.

同时,有很多垃圾知识:混凝土制造商提供的许多混凝土软件/固件产品.您需要节省时间并仅在某些实际目的确实需要时才学习它们.您无需为博学而努力,而是为获得真正的深刻理解而努力. (即使求职是基于具体的垃圾知识,但这对整个行业来说都是一种严重的疾病;因此,您需要超越自己.您的原则应该首先为自己工作,然后为公司工作;与此同时,您将需要能够实现最终的商业目标和其他目标;这不是一个非常容易的平衡.)

至于知识本身,如今这要容易得多.您可以使用Google,Wikipedia和其他来源.真正的问题是选择有效而可靠的信息来源.随着时间的流逝,您会发现从许多间接"症状中分辨出真实"与冷静"的方法.在发展更好的直觉之前,应该少信任,多检查,尤其是在自我发展的早期阶段.

作为一个亮点,我只想给您一个参考,但是我认为每个开发人员都应该首先知道一个参考.这也可能是最令人鼓舞的:

Peter Norvig,十年自学编程
http://norvig.com/21-days.html [
I am not really sure you are serious. I even suspected this is a kind of trolling.

But if you are serious…

I really sympathize with you and respect your thirst for knowledge and understanding.

First of all, you should understand you''re going to live a very difficult like, and not because of all those technical difficulties. Probably you will enjoy them. You can expect problem of a very different sort. In real life most "engineers" working in the industry have the attitude directly opposite to yours. They do all what it takes to learn as little as possible and are looking for some quick and cheep solutions and unearned easy money. Just take a look on other questions here at CodeProject to see what I''m talking about. If you reach the level of expertize you desire, all that people will hate you. They won''t mind to use your expertize to their benefits though but will cell you short at any chance. They will be afraid of potential competition from your side and will do their best to let you down.

Not everything is that grim. You will certainly find some decent people in difference places. Nobody knows how many ears would it take to get you a chance to work with them.

Speaking of the fields of technology you''re interesting in, you''re asking too many questions, so hardly anyone would be able to help you right direction in all the fields in one quick answer. I can only give you the basic ideas. You should understand that if you go in for every technical detail, you will never get time for this. Therefore, you need to focus on fundamental (and theoretical) aspects of programming. At the same time, you need to practice all the time. The false illusion of knowledge can be too strong. Fortunately, there is pretty good way to check up your understanding: implement key solutions into working code. This is not 100% reliable though. The solution may work, but only for a while. You should go away from trial and error approach and use fundamental approach. For every line you write you should understand why. You should find analytical approach to every problem. This is all about fundamental aspects.

At the same time, there is a lot of junk knowledge: a lot of concrete software/firmware products by concrete manufacturers. You need to save time and learn them only when it is really required by some practical purpose. You need to work not toward erudition, but for really deep understanding. (Even though the job hunting is based on concrete junk knowledge, this is a bad illness of the industry; so you need to put yourself above this. You principle should be working for yourself first, then for your company; at the same time, you will need to be able to achieve ultimate commercial and other goals; this is no a very easy balance.)

As to the knowledge itself, these days this is much easier. You can use Google, Wikipedia and other sources. The real problem is selecting effective and solid sources of information. With time, you will find your ways to tell "cool" from "real" looking at many indirect symptoms. You should trust less and check up more, especially in the early stages of your self-development, before you develop better intuition.

For the bright note, I would like to give you only one reference, but the one I think every developer should know first. It is probably the most encouraging, too:

Peter Norvig, Teach Yourself Programming in Ten Years,
http://norvig.com/21-days.html[^].

Good luck,
—SA


thexcodec编写了
thexcodec wrote

我想对自己的操作系统进行编程,从头开始

I want to program my own OS, from scratch



看起来您在正确的轨道上;).我以相同的目标开始,随着时间的流逝,我意识到我并不需要新的OS(您可能会有所不同,最终写了一个OS),但是我确实学到了很多东西,这使我成为一名优秀的程序员. />
就像OriginalGriff所说的那样,从小做起. SA也说得很对,您在问很多问题,并列出了很多不同的领域.

看看这本
[



Looks like you are on the right track ;). I started of with the same aim and as time passed I realised that I did not need a new OS (you could be different and end up writing one), but I did learn a lot of stuff which made me a good programmer.

Like OriginalGriff said, start small. SA is also right in saying, you are asking a lot of questions and have listed a lot of different fields.

Take a look at this book[^] by Tannenbaum, it should give you some knowledge about OS. It was a textbook for one of my papers in college and it was really good. His other book on modern operating system also has some good reviews.

You also have a ton of articles on CodeProject, one of the regular member is creating his own operating system and is also writing articles about it, take a look at them.


这篇关于计算机工程101?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆