Ada*_*dam 18 c c++ computer-science
我想知道的是从头开始编程,没有任何操作系统和类似的东西.
因为我知道Windows和Mac以及几乎任何东西,甚至DOS都是用C,C++ Pascal等编写的,所以我想我应该知道其中一种语言,但为此我需要一个程序,我可以编写代码,还编译它但没有操作系统和程序如何才能完成?他们怎么能这样做?
但这还不够,C怎么写的?在什么?因此,当我的意思是划痕时,我的意思是,从基础构建一切.也许从0,1,0,1
现在开始我认为这是确切的起点.但我怎么能这样做,我应该拥有什么,我应该从哪里开始?
谢谢你的每一个答案!
Jör*_*tag 16
Noam Nisan和Shimon Schocken 有一本名为"计算系统要素:从第一原理构建现代计算机"的优秀教科书,作为作者所教授的大学课程的基础,称为计算机构造工作坊 - 从12步到俄罗斯方块.本课程也以其他名称在其他大学讲授.NAND
作者本人在YouTube 上有10分钟的介绍,在谷歌视频上有1小时的谷歌TechTalk.
官方配套网站是http://nand2tetris.org/
不要让"计算机构造"这个称号欺骗你.通过"计算机",作者并不仅仅意味着桌面上的矩形塑料盒,他的意思是整个计算系统,从个人逻辑门到最高级别的应用程序编程.
这本书/课程教你
vls*_*vls 10
您可以获得一个微控制器原型开发板,如Arduino
, Beagleboard
或MPLAB PIC board
,然后创建一个machine monitor program
可以加载和执行您的其他程序user space
.
您可以用C或它们各自的微控制器编程instruction sets
.
Hook up an LCD display
到那个MCU板,你有一个显示器.Hook up a keyboard and mouse
对它,你有控制.(您甚至可以编写自己的内容trap handlers
来写入LCD并从键盘和鼠标读取输入,以了解中断和异常如何在低电平工作.如果您想降低,则必须查看MCU引脚输出中断控制线和时序图).
瞧!你从头设计了自己的电脑!
为了回答关于C的问题,编写了第一个编程语言的assembly
编译器,编写了汇编编译器machine code
.
您所谈论的内容曾被称为"监控"程序.您可以在osdev.org上获得一些有趣的信息并查看colorforth.
[afterthought] google Rick Hohensee也在comp.lang.forth上发布了一些文章.
[后来才知道]要真正了解基础知识,获得一个插入式电路面包板,一些旧的EPROM,一个5VDC电源和一个25VDC电源(24应该工作,它更常见).在地址和数据线上使用上拉或下拉电阻,并切换为地址和数据线供电或供电.使用开关逐步执行地址,并在数据总线上输入数据作为1和0,使用25V的脉冲对每个数据进行编程.我从来没有真正手动完成这个,但我曾经写过一个程序(http://jc.unternet.net/hacks/?1994-01-01-01)从Centronics端口执行此操作,并烧毁了几个程序办法.这是在英特尔向您发送所有处理器和辅助芯片的免费书籍的那一天,包括详细的指令集和时序.
完成后,将处理器连接到EPROM,给它一些果汁,并观察会发生什么.在开始尝试集成键盘和显示器之前,可能会使某些LED指示灯闪烁.