大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
90%的C语言+10%的汇编语言
成都创新互联公司是一家集网站建设,绥芬河企业网站建设,绥芬河品牌网站建设,网站定制,绥芬河网站建设报价,网络营销,网络优化,绥芬河网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
windows系统都主要是用C语言编写的
我们在用windows平台上编程的时候,要调用系统API(应用程序接口),这些接口封装在系统的.dll(动态链接库)里面,所有的API函数都是32位平台上的C函数,从windows3.0一直windows95,到现在的win2003,都是基于C函数库的程序集,所以用C函数编出的系统程序系统执行效率最高,当然在底层的一些调用,不排除有些是用汇编编的,但内核大多是用C做的。
另:MFC只是windows系统上API函数的封装,基于面向对象原理,服务于GUI程序设计,MFC从AFX发展而来,已有十多年的历史,最新的MFC6.0,那是设计基于windows系统程序的,而不是用来编写操作系统本身,但也不能完全这样说,系统上有些服务(可以说很多,比如时间)是用MFC做的。
Windows系统程序设计实验教学大纲(2007年修订)。
MicrosoftWindows操作系统是美国微软公司研发的一套操作系统。windows的内核都主要是用C语言编写的,其它还有一些汇编,basic也有不少,但最主要的还是C。
微软没有公布内核和源代码,所以你无法基于Windows再创一个OS,但你可以重新合成其相关文件,下面将一步步教你!
下载一个叫做NTlite的软件
在左上角添加Windows的ISO文件(不同的版本路径不一样,自己百度一下你的Windows版本的ISO文件的路径)
双击加载文件
尽情定制吧!
如果你对纯文字的教程感到困惑或者不知如何操作,那么你可以尝试访问以下几个网站
网站1WikiHow
(网站1 是中文网站,第二个是Wikihow国际版里的相关教程,需要翻译!)
90%的C语言+10%的汇编语言
windows系统都主要是用C语言编写的
我们在用windows平台上编程的时候,要调用系统API(应用程序接口),这些接口封装在系统的.dll(动态链接库)里面,所有的API函数都是32位平台上的C函数,从windows3.0一直windows95,到现在的win2003,都是基于C函数库的程序集,所以用C函数编出的系统程序系统执行效率最高,当然在底层的一些调用,不排除有些是用汇编编的,但内核大多是用C做的。
另:MFC只是windows系统上API函数的封装,基于面向对象原理,服务于GUI程序设计,MFC从AFX发展而来,已有十多年的历史,最新的MFC6.0,那是设计基于windows系统程序的,而不是用来编写操作系统本身,但也不能完全这样说,系统上有些服务(可以说很多,比如时间)是用MFC做的。
人家就问第一个操作系统是怎么做出来的,楼下一堆人都没说到点子上。
这个问题就像是没有生产机器,那第一台机器是怎么生产出来的。
第一台计算机,或者称之为打孔计算机,破译机。它的作用就是读0和1的不同排列组合,通过这些组合来解译不同的意思。比如 0010代表什么意思,1101代表什么意思。这些是一开始就设定好了的,就像是中国古代的算盘一样,上面的算子代表5,下面的算子代表1是一个道理。
好了,开始就设定好这个解码功能后,这台破译机就可以读信息了,它通过什么读呢?那时候没有数据,没有数字信号,只有模拟信号,它们就读打孔纸。就是在纸上写,然后打出一个一个孔,像卡纸一样。设备就读这个孔的排列,根据不同的排列去找这个排列代表了什么,然后给出答案。这就是最初的计算机原理,非常简单,它就是一个密码解释器,或者说是简单的编译器。
那时候就是用来算加减法等一些计算,它就是一个大型的计算器。
后来发展的复杂一些了,也就是增加了更多的0和1的组合来丰富机器的解释库,来计算更复杂的公式。
这时候你要问了,这些0和1的解释库是存在哪里的?这就是为什么以前的计算机房间那么大个。它们是通过电子管的开和关来代表了0和1,通过电路给电子管通电,比如说那张纸打的孔,有一个像探头一样的东西,探测到那里有一个孔,或者没有孔,就给出电信号来控制不同的电子管组合的通路和断路,最后给出结果。
比如我用纸戳一个1+1=?,我就戳一个(0000 0000 0000 0001)代表1(00001 001000 ....)代表+ (0000 0000 0000 0001)代表1,然后给机器读,机器读出来后,就会根据电子管的通断组合,最后将结果反馈回来。一开始是用亮了多少盏灯来表示计算结果,有了显示器后,才把它变成了显示画面。
显示画面其实也是有一个库的,比如0001,你就给我显示1,00010,你就给我显示2,它会找对应的库,这个库一开始就用不同的电路
搭建做好,无非就是不同的电路通断,电压,电流等各种奇怪的组合来完成 。它自身有一套神奇的检测机制,这个就不说了,我也说不清楚。
那么回到最开始的问题,世界上第一个操作系统是怎么出现的?就是用手在纸上写出来的。
一开始不能算是系统,比如我要算一个公式,a /b +1+a+5*b,举个例子,这个公式我要经常用,我不可能每次都要去戳很多纸,所以我只需要先做一个模板,然后留出一个空白,需要的时候,把a和b戳出来就可以了,这样就很方便了。
后来这些公式越来越复杂,甚至是出现了不同的计算,比如说, 如果a100,那么就执行xxxx,如果a100,就执行xxxx。然后这个模板就越做越大,需要戳的纸也越来越长。
好家伙,后来实在戳不过来了,十个手指都戳破了,甚至计算机也运行不过来了,更复杂的运算根本做不了。不行,不能这样下去了。
后来就开始有人研究了,电子技术的发展越来越高科技,电子管也做得越来越小,最后用集成电路来控制开关,但是其实原理都是一样的。可以运算的公式和能力也越来越强。其实还是不同的电子管组合成不同的开关,你以为这个组合就是几个电子组的组合吗?不,已经达到上亿,上千亿个电子管的组合了,这也是集成电路的优势。
一开始是用纸来保存信息,但是前面说了,纸已经不够用了,就开始出现了软盘,光盘。光盘上的凹凸点,代表了0和1,其实就是存储的介质发生了变化,后面发明了磁盘,发明了光盘,甚至是软盘、机械硬盘,SSD等不同的储存介质,这些其实就是保存的方式不同而已,其实它们保存的数据还是和打孔纸一样,就是0和1的数据,只是相比纸而言,保存得更多,更方便,也更容易被机器读取。
这时候保存的介质发生了变化 ,那么读取这些数据的那个探头也发生了变化,变成了像软盘的磁头,光盘的激光头等。
当这种保存的介质从纸变成了硬盘后,就会出现一个问题,一开始写这些孔的时候,是用笔和给纸戳一个窟窿来让机器识别,现在要怎么把0和1这种数据写到磁盘里呢?这里就发明了键盘了,最初的键盘当然和现在不一样,但是原理是一样的。还是按一个键,给一个电信号,磁头收到了电信号,会判断是0还是1,如果是0,就是反磁,如果是1就是正磁。一开始的键盘,就是只有几个键,1键和0键。
后来有人觉得整天打0和1太麻烦了,如果我要打a这个符号,我就要按(0000000000000000),按这么多下,我的手都要变成一指禅了,于是就发明更复杂的键盘,比如我要打a,b,c,d,我就一开始就设定好,我打a,就直接发送一串机器码(0000000000000000),我要打b就发送一串机器码(0000000000000001),类似这样的。其实也是给键盘做好一个约定,我一开始就把一些特定的,经常使用到的符号或其他有代表性的字母、数字,把它们对应的0和1组合的机器码先做成一个表格,存到键盘的识别库里,我按哪一个字符,你就给我发送哪一个字符对应的机器码就可以了,这样我就不用从早到晚按0和1这两个键,按个没完。这么一设定,我就不用记太多的机器码组合了,一开始就把这些组合给分门别类。
这样发展到这里,键盘的雏形就出来了,也为汇编的发展埋下了伏笔。汇编其实就是最接近或者它就是机器码的一种组合语言,机器是可以直接识别出来。
前面说了,为了执行不同的公式和复杂的计算,就出现了这同的模板,只需要修改模板上的参数,就可以重复执行这些模板。
现在这些板从纸上存到了软盘上,现在就更方便了。以前用纸的时候,用过一次,纸就没用了,现在软盘上的数据一直在,我只需要用磁头把原来填的数据擦掉,重新写个新的参数就可以了。你可以理解成当时在纸上我用铅笔写参数,用过一次,用橡皮擦给擦掉重复写。但是纸是需要打孔的,打了孔,橡破擦也没用,已经是一个孔了,你也补不上,所以那纸就废掉了。
但是软盘不一样,软盘是可以重复写的。可以把磁消掉重新在那个位置写一个新的参数,这样就可以重复利用了。
后来这些模板越做越复杂,最后慢慢的发展成了一个小型的,有自己一些独立功能的计算系统,这可以理解为,它有了系统的一些特性,但是还不算系统。
后来这些模板更强大了,有人觉得,因为需要更加强大的功能,一般的模板已经没办法满足了,而且通过这种最原始的abcd来拼凑这些公式、模板,太累了。于是就有人开始写中间解释器。
怎么理解呢?前面说了,一开始大家都是写1和0组合,觉得太累了,于是把1和0的不同组合做成了一个库,我只需要输入1+1,abcd这种键盘上约定好的字母,键盘就发送对应的1和0组合给机器,机器就可以直接识别了。
现在需求越来越复杂,发现光打这些abcd,需要打越来越多的代码,发现和之前打1和0一样累了,怎么办呢?于是就有人打算再创一个中间库,把这些abcd,1,2,3等组合做成一个库,不同的组合代码不同的意思,这就是从机器向交互语言的发展了初期了。
这个库一开始还是用abcd等最初的那个键盘库打上去的,当然做的也很累,但是只要这个库完善好了,后面要继续发展更高级的交互语言就简单多了,以后所有交互语言写出来的东西,都通过这个库翻译成机器语言库,机器语言库就可以识别了。
于是有了交互语言库,大家就不用打太多的字符来拼凑成不同的模板了,因为交互语言库有了不同的单词组合成更加有意义符号,人一看就懂,不需要那些零零散散的字母,没有任何意义在里面,还需要死记硬背。
这就有点像是古代的文言文,你一听不知道他在说什么,然后去查一下文言文字典,这样你才能知道他在说什么。
现在你可以用白话言语来交流了,这样就更轻松了,你可以直接和他对话。
至于机器听不听的懂你说的意思,这个不要紧,有解释库,你把解释库做好了,你说的每一句话会自动翻译成机器语言,就可以了。
随着语言的越来越强大,现在就可以写出更加复杂的模板了,后来显示器的发展越来越强大,让这些模板出现了更丰富的画面,其实它显示什么东西,也还是会有一个库的,只要约定好,我返回的这串代码代表了什么东西,你就显示什么东西就可以了。甚至后来有了图片。
其实图片的显示也有自己的一个约定,就是我返回什么代码,你就解析成什么颜色点,然后不同的代码组合,就会现出一大串的颜色点组合在一起,就变成了有颜色的图片和画面。其实文字也是图片的一种,就是一种图信号。
回到模板上来,后来慢慢的,这些模板越来越强大,甚至有人开始动起心思,开始给这些模板加皮肤,加各种好看或者神奇的功能,让它更加好用,于是最初始的系统就这么慢慢的发展起来了。
其实系统它不是突然就有的,是在整个机器的发展的过程中,慢慢的累积到一定程度后,顺应发展而来的。
这些模板也是从最简单的公式模板慢慢发展成了现在有了自己的界面,有了自己的独立运算功能和各种娱乐功能等强大的系统。
最初的系统,也就是这些模板的诞生,其实是很辛苦的,它们需要有一定的积累,一些基础的识别库的完善,这些都是需要最初的那代人,一开始就约定好,然后慢慢地完善起来,然后高级的语言和系统才能通过这些库来和机器交流。