www.5197.com-澳门新蒲京娱乐场官网

热门关键词: www.5197.com,澳门新蒲京娱乐场官网

微软公布MS【澳门新蒲京娱乐场官网】

上周,微软与计算机历史博物馆合作,发布了MS-DOS 1.1/2.0和Word for Windows 1.1a版本的源码,这是微软首次将其核心产品开源。MS-DOSMS-DOS是微软于1981年7月推出的磁盘操作系统,在Windows 95之前,MS-DOS是个人电脑中最普遍使用的DOS操作系统。MS-DOS 1.1/2.0源码包中共包含如下4个子目录:v11source:包含7个汇编代码文件,以及一封来自Tim Paterson的说明邮件v11object:包含27个文件,一些二进制程序和一些示例程序v20source:包含118个文本文件,主要是汇编代码和一些文档v20object:包含38个二进制文件和文档文件Word for WindowsWord目前是世界上最流行的文字处理工具,包含在微软Office办公套件中。第一个Windows版本的Word于1989年发布,当时的价格高达500美元。此次微软公布的Word for Windows 1.1a源码共7M,包含33个文件夹共1021个文件,其中大部分是C源码,也有文本文档、x86汇编代码文件、可执行文件、批处理文件等。微软要求用户只能将这些源码用于非商业目的。源码下载:Word for Windows 1.1a源码MS-DOS 1.1/2.0源码延伸阅读作为商业软件公司,其产品的源码属于核心机密,但是早期版本可能不存在这种问题,经过多次升级改版,这些源码在现有版本中基本都已经不复存在了。除了微软,Adobe之前也曾公布了Photoshop 1.0.1版本的源码,其中包括179个文件共计12.8万行,其中75%为Pascal语言,15%为汇编,剩下的是其他语言。Via ComputerHistory

预处理

在编译器开始编译源文件之前,源文件由预处理器(preprocessor)进行处理。预处理器是一个真实的单独的程序(通常叫做"cpp", for "C preprocessor"),而由编译器在编译前自动调用。预处理器的工作就是讲源文件转换成另外一个源文件(你也可以认为是对源文件的修改或者扩展)。修改后的文件可能作为一个真实的文件存在文件系统中,也可能仅仅是在发送给编译器之前在内存中作短暂的保留。另外,你不需要特别关注预处理,但是你需要知道预处理是干什么滴。

预处理指令以符号("#")开始. 在多种预处理指令中,有两种最为重要:

  1. #define. 主要用于定义常量。如,

        #define BIGNUM 1000000
    

    指定在剩下的程序中任何位置处理的字符串BIGNUM应该被替换为 1000000。例如,这个语句:

        int a = BIGNUM;
    

    变成了

        int a = 1000000;
    

    #define语句用于避免一个常量值在源文件中多处重复出现。这在你随后需要对这常量值进行修改时是相当的重要,并且可以减少bug 的滋生,你只需要对 #define 的定义修改,而不是对常量值在整个源代码中多处的出现位置进行修改。

  2. #include. 用于访问位于源文件之外的函数定义。例如:

        #include <stdio.h>
    

    在源代码编译之前,预处理器将<stdio.h>的内容替换#include语句所在的位置。#include总是用于主要包含函数声明和#define 语句的头文件。这时,我们可以通过#include语句而使用一些函数,如printfscanf, 这两个函数的声明就位于文件stdio.h 中. 在源文件中,在函数声明或者定义之前,C compilers 是不允许我们使用函数的;#include语句就是用于这种情况,从而使我们可以复用之前用C 编写的代码。

还有其他的各种预处理指令,我们将会根据需要进行有所处理。

动态链接库文件,是一种不可执行的二进制程序文件,它允许程序共享执行特殊任务所必需的代码和其他资源。Windows提供的DLL文件中包含了允许基于Windows的程序在Windows环境下操作的许多函数和资源。一般被存放在C:WindowsSystem目录下。

揉成一团: 链接器

链接器的工作就是将一组目标文件一起链接到一个二进制可执行文件。这包括从你的源代码文件编译的目标文件,以及预编译的库文件(library files)。这些文件.a或者.so 作为结尾命名,通常你不需要知道他们,因为他们中大多数可以由链接器(linker)定位并根据需要自动链接。

像预处理器一样,链接器也是一个叫做 ld 独立的程序。也如预处理器一样,链接器在你使用编译器时自动被调用。链接器通常使用的方式如下:

    % gcc foo.o bar.o baz.o -o myprog

这一行是告诉编译器一起将三个目标文件(foo.o,bar.o, andbaz.o)链接成一个名为myprog 的二进制可执行文件.

这就是你需要知道如何编译你的 C 程序的事情。通常,我们也推荐-Wall选项:

    % gcc -Wall -c foo.cc

-Wall选项让编译器对合法但是可以的代码结构发出警告,并且帮助你轻松捕获一些 bugs。如果你想要更多的编译检查项:

    % gcc -Wall -Wstrict-prototypes -ansi -pedantic -c foo.cc

-Wstrict-prototypes选项是让编译器对代码中没有正确原型的函数做出警告。-ansi-pedantic是让编译器对代码中不可移植的结构(e.g.一些在 gcc 中合法而不满足标准C compilers 的代码结构;这些结构通常是需要避免的)做出警告。


 

References

  • Kernighan and Ritchie,The C Programming Language, 2nd Ed.

  • The man page forgcc. Type: man gcc at the unix prompt.

  • The GNU Info documentation ongcc.Warning!This is far more information than most people could possibly absorb in the average millenium.

    Info documentation ongcccan be accessed through the GNU emacs editor by typing "M-x info" (where "M-x" means to hit the meta-key and "x" simultaneously), or "C-h i" (where "C-h" means to hit the control key and "i" simultaneously), followed by "mgcc<return>". Type "minfo<return>" instead for a quick tour of how to use info. You can also access the info documentation from the unix command line by typing info gcc.


WIN7下直接在运行窗口中输入如下运行命令和对应打开的窗口

C track: compiling C programs.


尽管有些计算机语言(如 Schema 或者 Basic)通常使用交互式的解释器(当你输入命令后,就可立即执行),但 C 语言不是。C 的源文件总是要通过一个叫做编译器的程序编译成二进制代码然后运行。这就是我们接下来要详细说明的几个步骤。


control           控制面板

生成目标文件: 编译器

在 C 预处理器包含了所有的头文件并且展开所有的#define#include语句(也有其他一些在源文件中出现的预处理指令)后,编译器就可以编译程序了。编译器将 C 源文件编译成目标文件(object code),包含二进制版本源代码并以 ".o" 结尾的文件。 然而,目标文件并不能直接运行。为了能够生成可执行文件,你还需要加入被#included包含的库函数代码(这个通过 #include 包含函数声明是不一样的)。这就是下一节要讲到的链接器 linker 的工作。

通常,编译由以下方式被调用:

    % gcc -c foo.c

符号%是 unix 提示符. 它告诉编译器对文件foo.c运行预处理程序并编译成目标文件foo.o。``-c选项意思是由编译器将源文件编译成目标文件而不会调用链接器。如果你的整个程序就一个源文件,你也可以这么做:

    % gcc foo.c -o foo

它告诉编译器在文件foo.c 运行预处理器,编译并链接产生一个可执行文件``foo。``-o表示二进制可执行文件将以其随后的单词作为文件名。 如果你不制定-o 选项,或者仅仅是输入``gcc foo.c,由于某种历史原因,可执行文件将以``a.out命名。

请注意编译器的名字,我们使用的是gcc,代表 "GNU C compiler" 或者 "GNU compiler collection" 。也有其他的编译器;他们中大多数都以cc("C compiler")命名。在Linux 操作系统中cc 是``gcc 的别名。

mplayer2      Widnows Media Player 

几种不同类型的文件

你需要4种文件进行编译C 程序:

  1. 常规的源代码文件(source code)。这些文件包含了函数定义,并约定以 ".c" 作为结尾进行命名。

  2. 头文件(Header). 这些文件包含了函数声明以及各种预处理语句。源文件可以通过头文件访问外部定义的函数。头文件的文件名约定以 ".h" 作为结尾.

  3. 目标文件(Object). 这些文件由编译器的输出而产生。目标文件包含了二进制形式的函数定义,本身是不可执行文件。目标文件的文件名约定以".o" 结尾,尽管在一些操作系统,如(Windows, MS-DOS),经常以".obj"结尾。

  4. 二进制可执行文件(Binary executables)。这些文件由一个叫做链接器的程序的输出而产生。链接器链接一些目标文件并产生可以直接执行的二进制文件。二进制可执行文件在 Unix 操作系统上没有后缀名,但在 Windows 上,通常以".exe"作为后缀名。

还有其他的各种文件,尤其是静态库文件(".a" files or ".lib" on Windows)以及共享库文件(".so" files or ".dll" on Windows)。但通常,你不需要直接与他们打交道。

以下是相关概念的理解:

原文:C track: compiling C programs.

cmd         cmd命令提示符

 

devmgmt.msc      设备管理器

explorer         资源管理器

mstsc            远程桌面连接

 

 

 

备注说明:

dxdiag           查看电脑的全部配置信息

mmc           控制台

tsshutdn        60秒倒计时关机命令

Nslookup          IP地址侦测器

lusrmgr.msc       本机用户和组

system32是Windows 操作系统的系统文件夹,是操作系统的中枢。system32在计算机C盘Windows文件夹中,其中包含了大量的用于 Windows 的文件。 这里主要用于存储 DLL 文件, 控制面板小程序(.CPL),设备驱动 (.drv),帮助文件 (.hlp 和 .cnt),MS-DOS 工具 (.com),语言支持文件 (.nls),屏幕保护 (.scr),安装信息文件 (.inf)以及其它用于支持, 配置或操作的文件。

windows r:打开运行窗口

以上运行命令的.exe或.msc文件大都在C:\WINDOWS\system32文件夹下可以找到,双击后可以同样打开相同的窗口,因为实际上在运行窗口中输入以上命令后系统会先到C:\WINDOWS\system32查找有没有相关可执行文件或嵌入式管理单元文件

write           写字板

 

动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL 副本的内容。

 

DOS是英文Disk Operating System的缩写,意思是“磁盘操作系统”。DOS是个人计算机上的一类操作系统。从1981年直到1995年的15年间,DOS在IBM PC 兼容机市场中占有举足轻重的地位;在 Windows 95(以及其后发生的 Windows 98与 Me)中,MS-DOS 核心依然存在,只是加上 Windows 当作系统的图型界面。直到纯 32 位版本的 Windows(从 NT 开始;包含了 2000、XP 、vista、win7和 win8)才完全脱离了DOS的基础;而且,若是把部分以DOS为基础的Microsoft Windows版本,如Windows 95、98和Me等都算进去的话,那么其商业寿命至少可以算到2000年。

 

osk          屏幕键盘

gpedit.msc       本地组策略编辑器

regedit         注册表编辑器

凡是不以.msc后缀名结尾的命令其后都可以加上.exe后缀名,比如在运行窗口中输入cmd.exe和输入cmd的效果是一样的

cleanmgr               磁盘清理

rononce -p        15秒关机

 

mspaint         画图板

 

calc          计算器

 

运行命令       打开的窗口

 

动态链接库(Dynamic Link Library或者Dynamic-link library,缩写为DLL),是微软公司在微软视窗操作系统(即Windows操作系统)中实现共享函数库概念的一种方式。这些库函数的扩展名是.DLL、.OCX(包含ActiveX控制的库)或者.DRV(旧式的系统驱动程序)。

动态链接库英文为DLL,是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。

winword        microsoft office word文档

  运行命令主要是DOS操作系统的运行方式。为方便用户的操作,微软公司将一些常用的命令,如DIR,CD等命令全部集成在系统里面;存放这些内部命令的文件是“Command”(文件后缀.com)。它与IO.sys,Msdos.sys一起成为DOS系统的三个重要文件;在DOS系统里面输入任何命令的时候,系统会先从COMMON(后缀.com)文件里面来寻找有没有这条命令,如果没有则转向寻找外部命令,到了XP时代后,这个内部命令文件则集成到了系统里面(没有考证过是哪个文件);外部命令其实就是一些可执行的文件(.exe文件),程序文件(.com文件),和批处理文件(.bat),不可执行文本(txt.shs),防止破坏文件(.dll)。也包括微软后来更新windows installer后而以.msi命名的文件。

动态链接库缩写为DLL,在电脑中可以更为容易地将更新应用于各个模块,而不会影响该程序的其他部分。例如,您有一个大型网络游戏,如果把整个数百MB甚至数GB的游戏的代码都放在一个应用程序里,日后的修改工作将会十分费时,而如果把不同功能的代码分别放在数个动态链接库(DLL)中,您无需重新生成或安装整个程序就可以应用更新。

 

notepad        记事本

winver           检查Windows版本

diskmgmt.msc       磁盘管理

Windows中,DLL多数情况下是带有DLL扩展名的文件,但也可能是EXE或其他扩展名;Debian系统中常常是.so的文件。它们向运行于Windows操作系统下的程序提供代码、数据或函数。程序可根据DLL文件中的指令打开、启用、查询、禁用和关闭驱动程序。

taskmgr         任务管理器

services.msc      本地服务设置

 

除了直接在运行窗口中输入以上命令外,当然也可以在cmd命令提示符窗口中输入以上命令,效果是一样的

 

 

 

magnify        放大镜实用程序

MSC(Microsoft Snap-In Control)文件,是微软管理控制台MMC(Microsoft Management Console)用来添加/删除的嵌入式管理单元文件。通常通过MMC来管理,可点击“文件”菜单中的“添加/删除管理单元”操作来管理当前系统中已经安装的MSC文件。可以点击开始/运行,然后输入下列文件名就可以打开相应的控制窗口。

澳门新蒲京娱乐场官网 1

本文由www.5197.com发布于web前端,转载请注明出处:微软公布MS【澳门新蒲京娱乐场官网】