https://www.myziyuan.com/
- 哆啦A梦的爸爸
- 操作系统怎么学,首先要想操作系统是怎么来的,在没有操作系统的年代里,人们是怎么编程的。这是首要的问题。不知道有没有人看过INTEL官方的CPU文档,总是分为应用级编程、系统级编程、指令集这三块。其中系统级编程这一块最复杂,我不说内容,就单从文件的大小来看,IA-64编程手册的应用级编程卷是2MB,系统卷却有6MB。就连IA-32编程手册上的系统卷部分也远比应用卷的要多。当然这些内容我还没有看,不过从目录当中,觉得有很多相似的地方,比如CPU内存寻址、虚拟存储器管理、中断与保护等等,可以从INTEL的CPU文档上看出,各种CPU或机器虽然各有各的不同,各有各的特点,但是目前的CPU要解决的核心问题就是那么几块,要解决的就是象如何寻址内存,如何管理虚拟存储,如何实现中断,如何保护资源等等。各位编程的同仁想必都很清楚,计算机的操作系统就是在为应用级编程提供服务,提供什么服务,就是提供象诸如如何内存寻址,如何管理虚拟存储器、如何进行中断,如何管理磁盘,如何。。。。等等。操作系统为我们做掉了系统级编程中最繁重的一块,所以我们在用应用级编程比如用C++编程的时候才会那么舒服,用int分配一个变量这内存地址就来了,某个函数要调用另一个函数执行的时候这执行行程就能跳到那个函数,内存不够了,没有关系,操作系统自动启动虚拟存储器(只不过慢了些),所以应用级编程是最舒服的,操作系统级编程比较难,而直接做单片机可能就是最难的了。因为即使就是操作系统级编程,可能很多有关CPU底层的东西也已经做掉了,你要做的可能就是要了解的你的操作系统做掉了哪些功能,如何调用。而单片机就没有那么好玩了,单片机我没有做过,我想可能就是直接对着一个CPU用汇编来编程,而且很可能是在没有操作系统的情况下,这样一来,操作系统要承担的诸如内存管理,中断,过程跳转等这些复杂繁重的工作就得程序员自己来承担,那程序员的负担就比目前应用级编程大得多了。我猜想,可能在没有操作系统的时候,每个计算机程序员的日子可不会象现在的那么好过,因为做每个程序,都需要你自己去分配管理内存,你不但要考虑如何高效的管理内存,还要知道如何进行过程跳转等等这一大堆的的细活,而这些细活在不同的CPU上的实现方式也是不同的,直到把这些问题都解决了以后,你才开始真正考虑你的应用方面的程序逻辑如何去编的问题。当然了,虽然有关CPU底层的系统级实现细节不一样,但是大至CPU系统级这一部分要解决哪几块问题这是一样的,所以在INTEL的官方文档上,无论是IA-32还是IA-64这两个编程手册的系统卷上,都是那么几块内容。既然系统级要解决的几个任务都是相同的,每个程序员在编程的时候都要考虑这几方面的内容,那么可能就会想,为什么不把这些程序要解决的相同的任务给提取出来呢,这就形成了操作系统,操作系统的内核的任务,就是专门负责解决早期计算机程序员每次编程都必须要解决的几项系统级任务,这样一来,留给应用级的担子就非常的轻了,忘记在哪里看过,好像以前的数据库系统是属于应用软件的,可能同样是因为每个应用软件连同操作系统都需要一个数据库,所以就把数据库系统给单独提了出来做为系统软件了。有一点不明白为什么目前的操作系统要用文件系统,直接用数据库系统不更好些吗,既对用户服务,又为系统服务!我觉得,如果大家有要学操作系统原理的,根本就不必要去看所谓什么操作系统原理这一类的书,连外文的书籍也没有必要去看,因为目前国际CPU制造商提供的CPU文档的系统级编程卷才是真正的,原汁原味最好的教材,你要编写的操作系统从大部分任务就是解决系统卷里的任务的。有一次在QQ上和一个做单片机的家伙聊天,那人比我小一点,我当时说目前操作系统底层好难,他就说这有什么难的,他马上就能做一个操作系统,就连编译器也能做,我当时被吓了一大跳,小小年纪就这么厉害,现在我懂了,做单片机的,大概都会做操作系统,因为单片机的每次编程就是和系统底层打交道的,所以做单片机程序的自然对一个操作系统内核会比较了解了。在此建议和我一样的对操作系统原理感兴趣,对系统底层的感兴趣的人,直接去看INTEL的官方材料吧,操作系统原理有哪几条,要解决哪些任务,通过查看不同CPU的系统卷编程手册,找出其中相同的任务和逻辑去自己总结操作系统是如何做,无疑这种方法学到会是最多的了,而且理解起来可能会比一般的学习方法来得更深刻。学习应用软件的朋友,我也劝你们看看操作系统,内核等这些系统底层的东西。看过了以后,你会觉得看应用级编程会更流畅,学起来也会更简单。我就是这样学的,学MFC,后来开始学INTEL CPU的应用级编程,现在我决定开始从系统级学起。目前我也会上MSDN英文网站看看有关MFC的东西,但我看MFC倒不是主要因为去编写MFC应用程序,而是想看看微软是用系统为所有的应用级编程提供服务的,这整个一套结构是如何构造出来的,Oracle数据
- 2022-01-04 07:30:09
- 万岳科技
- C语言当然可以编写操作系统,但操作系统的写作通常不仅用C语言编写.WRINT操作系统需要编程语言提供以下特征:1。跨平台,可以不仅在平台下编译(VB不可用);2,必须是编译语言(PHP不可用),或者有一个非常高效的翻译;3,操作硬件功能必须方便,易于嵌入合同(Java不行); C ++基本可以提供;5,编译器本身最好是由语言完成的(大多数语言编译器由C / C ++编写);6,开发人员可以非常方便扩展,转换或使用第三方运行库(大多数语言库无法修改);7,开发人员很多(小语言不可用);8,操作系统的语言开发应该改善。所以,总结,C语言是t他首先选择。
- 2022-01-04 07:28:49
- ydcker
- 编程是什么,C语言是目前世界上流行、使用最广泛的高级程序设计语言之一。 C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。 C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画,它是数值计算的高级语言。 常用编译软件有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++, Borland C++ Builder,Turbo C,等等......一、C语言的发展历史 C语言的发展颇为有趣。它的原型ALGOL 60语言。 1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。 1967年,剑桥大学的Matin Richards 对CPL语言进行了简化,于是产生了BCPL语言。 1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”。意思是将CPL语言煮干,提炼出它的精华。并且他用B语言写了第一个UNIX操作系统。 而在1973年,B语言也给人“煮”了一下,美国贝尔实验室的D.M.RITCHIE在B语言的基础上最终设计出了一种新的语言,他取了BGPL的第二个字母作为这种语言的名字,这就是C语言。 为了使UNIX操作系统推广,1977年Dennis M.Ritchie 发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。 1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《The C Programming Language》,从而使C语言成为目前世界上流行最广泛的高级程序设计语言。 1988年,随着微型计算机的日益普及, 出现了许多C语言版本。由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准, 成为现行的C语言标准 3.C语言的主要特点 。C语言发展迅速, 而且成为最受欢迎的语言之一, 主要因为它具有强大的功能。许多著名的系统软件, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 语言编写的。用C语言加上一些汇编语言子程序, 就更能显示C语言的优势了,象PC- DOS 、WORDSTAR等就是用这种方法编写的。二、C语言的特点 1. 简洁紧凑、灵活方便 C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。 2. 运算符丰富 C的运算符包含的范围很广泛,共有13种34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。 3. 数据结构丰富 C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能, 支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。 4. C是结构式语言 结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。 5. C语法限制不太严格、程序设计自由度大 一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度。 6. C语言允许直接访问物理地址,可以直接对硬件进行操作 因此既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。 7. C语言程序生成代码质量高,程序执行效率高 一般只比汇编程序生成的目标代码效率低10へ20%。 8. C语言适用范围大,可移植性好 C语言有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于多种机型
- 2022-01-04 07:28:49