新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
C 语言从 60 年代被发明开始到 1985 年第一款 Windows(Windows 1.0)出来已经发展成熟,
“只有客户发展了,才有我们的生存与发展!”这是创新互联建站的服务宗旨!把网站当作互联网产品,产品思维更注重全局思维、需求分析和迭代思维,在网站建设中就是为了建设一个不仅审美在线,而且实用性极高的网站。创新互联对成都网站建设、成都做网站、网站制作、网站开发、网页设计、网站优化、网络推广、探索永无止境。
C++ 是从 1983 年才正式开始发展。语言早期的时候由于各方面都不成熟,不完善,最初的时候最多也只用于小型应用。
可以看到 Windows 1.0 发布的时候 CFront 1.0 刚刚发布,那个时候 c++ 是不可能拿来做系统的,如果算上系统的设计和开发周期,C++ 还在设计与试验阶段,连自己的编译器都没有,所以 Windows 一开始就是用 C 语言实现的。
由此基础,Windows 的内核就一直是 C 语言实现的。
现在有传言说,Windows 7 的用户界面是 C# 实现的,这一点不敢保证,但不是不可能。
----------------------------
BASIC 的说法就歇了,认真学计算机的人都知道,BASIC 能写什么样的程序。有点了解 Windows 的人都知道,Windows Vista 大概 5000-7000 万行代码。
微软Windows系统的内核版本号是Windows NT。
在最初的Windows架构之外,微软开发了专门面向PC服务器的Windows NT架构,它第一次出现在Windows NT 3.1里。Windows 2000就是综合了两种架构的优势,因此代码版本统一升级到5.0。
随后问世的Windows XP虽然改变了命名方法,但核心架构没有太大变化,因此核心版本号为5.1。而Windows Vista在内核和外壳架构方面都做了重大改变,因此代码版本进入6.0时代。
“Windows 7”的命名与核心代码版本无关,“7”只不过因为它是微软的第七代桌面操作系统而已,就像Windows Me与Win98/95同属一个时代,命名上却赶了个时髦一样。微软表示,Windows 7是客户端操作系统的一次重大改进,在内核、设计、工程等各个方面都有很大创新。核心版本从6.0升级到6.1,这样一方面确保Windows 7能延续Windows Vista的优秀特性,另一方面也能最大程度地保证应用程序的兼容性。
其实Windows内核编程不但有用,而且常用。很多我们每天都使用的软件,就毫无疑问的使用了Windows内核编程的技术。最典型的就是实时监控的杀毒软件。此外还有防火墙、虚拟光驱、以及90%的驱动程序。这些程序的有一个共同的特点,他们的一部分组件,是作为Windows的一部分,能对 Windows上运行的所有的应用程序起作用。
因此内核编程的应用,往往给传统软件带来更强的功能,实现技术上的飞跃。
举个例子。我们常常听说,对文件进行加密,可以使文档更加安全。对文件加密并不需要任何内核组件。我们可以写一个应用程序,读入文件,加密数据,然后重写为一个加密文件。解密也可以同样如此。
但是实际上这并不满足一般的用户需求。对一个公司的员工来说,那些“重要的文档”很可能就是每天工作所用的文件。想象一下,他必须要每天从服务器上下载加密的文件,然后用解密工具解密。然后用Office开始工作。工作完毕后,用加密工具加密,再上传,然后删除工作文档。且不说大部分时间文档是以解密的方式保存在硬盘上的不安全性,这个工作流程是可以接受的吗?没有人会接受的。
比较“人性化”的方式就是让Office可以直接打开已经加密的文档。保存的时候,直接就保存成加密的文档。硬盘上,这个文档始终是加密的。而且对合法的用户透明。对非法的用户,则只能看见密文,从而无法编辑也无法阅读。而且也不仅仅Office,还有AutoCAD、Visual Studio、Photoshop等等用户可能用于编辑机密文件的所有的工具。这是可以实现的吗?如果我们不能去修改Office和其他的工作软件。
这当然是可以实现的。既然我们编写Windows内核程序,当然可以让Windows的文件系统从硬盘读取文件的时候,对特定的进程进行特别的解密。等这些软件读取到数据的时候,它们读到的已经是正常的数据了。这个过程和实时扫描病毒的原理是一样的,使用一个文件过滤驱动程序。这就是读者可能已经听到过的文件透明加密技术。
在和《天书夜读:从汇编语言到Windows内核编程》一书同一系列的《寒江独钓——Windows内核编程与信息安全》(预计明年出版)中,对键盘过滤、硬盘过滤、文件过滤、网络过滤等安全相关的内核编程,都有详尽的讲解和例子。
内核编程的另一个特点是:这些代码运行在R0级。R0级别是最高特权级别。对CPU有完全控制的能力。这非常的适合一些安全软件,当然也适合做破坏的工作。因为内核程序有最高(也就是根)权限,这样的技术在安全领域(或者破坏领域)被称为rootkit技术。rootkit技术是当前安全领域最热门的技术之一。
许多病毒使用了rootkit技术。用来隐藏病毒文件,窃取密码、发送攻击包等等。rootkit病毒感染后极难清除,在感染前提前防范是最有效的办法。
Windows内核确实没有公开源代码。但是MS提供Windows内核程序的开发包:WDK。WDK实际上主要用于开发驱动程序。而驱动程序基本上都是内核程序。WDK提供的头文件以及部分源代码,实际上就是Windows内核的代码的一部分。有部分驱动程序(比如FAT32文件系统)的代码是完全公开的。我们也可以在这里看到Windows内核开发者的代码风格。同时,微软也提供了所有Windows版本的符号表在网上供研究者下载。并提供了功能无比强大的调试器WinDbg。有了它们,你就可以轻松的调试Windows内核了。无论是你自己写的代码的部分,还是Windows内核开发者们编写的部分。虽然看到的是汇编语言,但是函数名和全局变量名都是存在的。而且,所有的这些(WDK、WinDBG,符号表)都是免费的。