探究服务器系统的位数及其深远影响
一、引言
在数字化时代,服务器系统作为信息技术的核心组成部分,其性能和发展趋势对各行各业产生深远影响。
而服务器系统的位数,作为衡量其性能的重要指标之一,更是我们不可忽视的关键因素。
本文将详细解析服务器系统的位数概念、分类及其影响,帮助读者更好地了解服务器系统的内容。
二、服务器系统位数概述
服务器系统的位数是指计算机系统中处理器(CPU)的位数,常见的有32位和64位两种类型。
位数决定了CPU可以处理的数据量,以及内存和文件系统的最大容量。
服务器系统的位数对其性能、功能以及应用都有重大影响。
三、服务器系统位数的分类
1. 32位服务器系统
32位服务器系统是指其CPU能够处理32位数据流的服务器系统。
这种系统在处理较小规模的数据时表现出较高的性能,广泛应用于中小型企业、学校和教育机构等领域。
随着信息技术的不断发展,其数据处理能力已经难以满足大规模和高效率的数据处理需求。
2. 64位服务器系统
相对于32位服务器系统,64位服务器系统的CPU能够处理更大的数据流,具备更高的数据处理能力。
这使得它在大规模数据处理、云计算、虚拟化等领域表现出显著优势。
同时,64位系统还能支持更大的内存和文件系统容量,为企业级应用和高端应用提供了强大的支持。
四、服务器系统位数的影响
服务器系统的位数对其性能、功能和应用产生多方面的影响。以下是具体的影响分析:
1. 性能影响
服务器系统的位数直接影响其处理数据的能力。
64位系统相比32位系统具有更高的数据处理能力,能够更快地处理大量数据,从而提高工作效率。
同时,它还能支持更复杂的运算和更高级的应用功能。
这对于需要高效率数据处理的企业和机构来说至关重要。
2. 功能影响
服务器系统的位数还影响其支持的功能和应用。
例如,某些高端应用可能需要64位系统才能正常运行,而32位系统则无法支持这些应用。
随着云计算和大数据技术的普及,大规模数据处理和存储成为服务器的核心功能之一。
因此,拥有更高数据处理能力的64位系统在满足这些功能需求方面更具优势。
同时,它还能支持更多的虚拟机运行和更高效的资源分配,为企业提供更强大的IT基础设施支持。
相反地,随着技术的发展和需求的提升,某些旧的或基于特定应用场景的32位应用可能会逐渐被淘汰或需要升级以适应新的需求。
此外对于虚拟化环境来说更高的位数意味着更高的内存寻址能力和更好的性能表现特别是在处理大量虚拟机负载时这种优势更为明显。
对于开发者和企业来说理解不同位数系统的特点和影响能够帮助他们更好地选择适合自身需求的服务器系统配置以实现最佳的性能和投资回报。
另外随着物联网人工智能等技术的不断发展未来的服务器系统可能会面临更多的挑战和机遇了解服务器系统的位数对于适应这些新技术的发展也具有积极的指导意义。
这也为行业提供了更广阔的发展空间和技术创新的潜力促进整个行业的持续发展总之了解服务器系统的位数及其影响对于企业和个人来说都是非常重要的它将帮助我们更好地利用现代信息技术提高我们的工作效率并推动整个社会的进步和发展。
总的来说服务器系统的位数对服务器的性能功能和应用产生了深远的影响了解并合理利用不同位数系统的特点将有助于我们更好地适应数字化时代的需求推动信息技术的不断进步和发展以上就是关于服务器系统位数及其影响的全部内容希望能给读者带来有价值的参考和启示谢谢大家的阅读和支持。
从技术发展来看随着硬件和软件的不断进步未来可能会有更多新的位数类型出现了解基本原理和影响将有助于我们紧跟技术发展的步伐抓住新的机遇和挑战。
五、结论综上所述服务器系统的位数是评估其性能和应用的重要参数了解它的概念和分类有助于我们根据自身需求选择适合的服务器系统从而充分利用现代信息技术提高工作效率实现企业的长远发展此外随着技术的不断进步未来可能会有更多新的位数类型出现了解基本原理和影响将有助于我们紧跟技术发展的步伐抓住新的机遇和挑战不断推动信息技术的进步和发展从而推动社会的进步和繁荣。
(全文结束)
简述web技术的结构
一、超文本(hypertext) 一种全局性的信息结构,它将文档中的不同部分通过关键字建立链接,使信息得以用交互方式搜索。
它是超级文本的简称。
二、超媒体(hypermedia) 超媒体是超文本(hypertext)和多媒体在信息浏览环境下的结合。
它是超级媒体的简称。
用户不仅能从一个文本跳到另一个文本,而且可以激活一段声音,显示一个图形,甚至可以播放一段动画。
internet采用超文本和超媒体的信息组织方式,将信息的链接扩展到整个internet 上。
web就是一种超文本信息系统,web的一个主要的概念就是超文本连接,它使得文本不再象一本书一样是固定的线性的。
而是可以从一个位置跳到另外的位 置。
可以从中获取更多的信息。
可以转到别的主题上。
想要了解某一个主题的内容只要在这个主题上点一下,就可以跳转到包含这一主题的文档上。
正是这种多连接 性把它称为web。
三、超文本传输协议(http) hypertext transfer protocol超文本在互联网上的传输协议。
当你想进入万维网上一个网页, 或者其他网络资源的时候,通常你要首先在你的浏览器上键入你想访问网页的统一资源定位符(uniform resource locator),或者通过超链接方式链接到那个网页或网络资源。
这之后的工作首先是url的服务器名部分,被名为域名系统的分布于全球的因特网数据库解 析,并根据解析结果决定进入哪一个ip地址(ip address)。
接下来的步骤是为所要访问的网页,向在那个ip地址工作的服务器发送一个http请求。
在通常情况下,html文本、图片和构成该网页的一切其他文件很快会被逐一请求并发送回用户。
网络浏览器接下来的工作是把html、css和其他接受到的文件所描述的内容,加上图像、链接和其他必须的资源,显示给用户。
这些就构成了你所看到的“网页”。
大多数的网页自身包含有超链接指向其他相关网页,可能还有下载、源文献、定义和其他网络资源。
像这样通过超链接,把有用的相关资源组织在一起的集合,就形成了一个所谓的信息的“网”。
这个网在因特网上被方便使用,就构成了最早在1990年代初蒂 姆·伯纳斯-李所说的万维网。
传统的web数据库系统体系结构 传统的web数据库系统一般实现web数据库系统的连接和应用可采取两种方法, 一种是在web服务器端提供中间件来连接web服务器和数据库服务器,另一种是把应用程序下载到客户端并在客户端直接访问数据库。
中间件负责管理web服 务器和数据库服务器之间的通信并提供应用程序服务,它能够直接调用外部程序或脚本代码来访问数据库,因此可以提供与数据库相关的动态html页面,或执行 用户查询,并将查询结果格式化成html页面。
通过web服务器返回给web浏览器。
最基本的中间件技术有通过网关接口cgi和应用程序接口api两种。
(一)、基于通用网关接口cgi cgi是www服务器运行时外部程序的规范,按照cgi编写的程序可以扩展服务器的功能,完成 服务器本身不能完成的工作,外部程序执行时间可以生成html文档,并将文档返回www服务器。
cgi应用程序能够与浏览器进行交互作用,还可以通过数据 库的api与数据库服务器等外部数据源进行通信,如一个cgi程序可以从数据库服务器中获取数据,然后格式化为html文档后发送给浏览器,也可以将从浏 览器获得的数据放到数据库中。
几乎使用的服务器软件都支持cgi,开发人员可以使用任何一种www服务器内置语言编写cgi,其中包括流行的c、c 、vb和delphi等。
从体系结构上来看,用户通过web浏览器输入查询信息,浏览器通过http协议向web服务器 发出带有查询信息的请求,web服务器按照cgi协议激活外部cgi程序,由该程序向dbms发出sql请求并将结果转化为html后返回给web服务 器。
再由web服务器返回给web浏览器。
这种结构体现了客户/服务器方式的三层模型,其中web服务器和cgi程序实际起到了html和sql转换的网 关的作用。
cgi的典型操作过程是:分析cgi数据;打开与dbms的连接;发送sql请求并得到结果;将结果转化为html;关闭dbms的连接;将 html结果返回给web服务器。
基于web的数据库访问利用已有的信息资源和服务器。
其访问频率大,尤其是热点数据。
但其主要 的缺点是:①客户端与后端数据库服务器通信必须通过web服务器,且web服务器要进行数据与html文档的互相转换,当多个用户同时发出请求时,必然在 web服务器形成信息和发布瓶颈。
②cgi应用程序每次运行都需打开和关闭数据库连接,效率低,操作费时;③cgi应用程序不能由多个客户机请求共享,即 使新请求到来时cgi程序正在运行,也会启动另一个cgi应用程序,随着并行请求的数量增加,服务器上将生成越来越多的进程。
为每个请求都生成进程既费时 又需要大量内存,影响了资源的使用效率,导致性能降低并增加等待时间;④由于sql与html差异很大,cgi程序中的转换代码编写繁琐,维护困难;⑤安 全性差,缺少用户访问控制,对数据库难以设置安全访问权限;⑥http协议是无状态且没有常连接的协议,dbms事务的提交与否无法得到验证,不能构造 web上的oltp应用。
(二)、基于服务器扩展的api 为了克服cgi的局限性,出现的另一种中间件解决方案是基于服务器扩展api的结构。
与cgi相比,api应用程序与web服务器结合得更加紧密,占用的系统资源也少得多,而运行效率却大大提高,同时还提供更好的保护和安全性。
服务器api一般作为一个dll提供,是驻留在www服务器中的程序代码,其扩展www服务器 的功能与cgi相同。
www开发人员不仅可以api解决cgi可以解决的一切问题,而且能够进一步解决基于不同www应用程序的特殊请求。
各种api与其 相应的www服务器紧密结合,其初始开发目标服务器的运行性能进一步发掘、提高。
用api开发的程序比用cgi开发的程序在性能上提高了很多,但开发 api程序比开发cgi程序要复杂得多。
api应用程序需要一些编程方面的专门知识,如多线程、进程同步、直接协议编程以及错误处理等。
目前主要的www api有microsoft公司的isapi、netscape公司的nsapi和oreily公司的wsapi等。
使用ispai开发的程序性能要优于 用cgi开发的程序,这主要是因为isapi应用程序是一些与www服务器软件处于同一地址空间的dll,因此所有的http服务器进程能够直接利用各种 资源这显然比调用不在同一地址空间的cgi程序语句要占用更少的系统时间。
而nsapi同isapi一样,给www开发人员定制了netscape www服务器基本服务的功能。
开发人员利用nsapi可以开发与www服务器的接口,以及与数据库服务器等外部资源的接口。
虽然基于服务器扩展api的结构可以方便、灵活地实现各种功能,连接所有支持32位odbc的 数据库系统,但这种结构的缺陷也是明显的:①各种api之间兼容性很差,缺乏统一的标准来管理这些接口; ②开发api应用程序也要比开发cgi应用复杂得多; ③这些api只能工作在专用web服务器和操作系统上。
(三)、基于jdbc的web数据库技术 java的推出,使www页面有了活力和动感。
internet用户可以从www服务器上下载 java小程序到本地浏览器运行。
这些下载的小程序就像本地程序一样,可独立地访问本地和其他服务器资源。
而最初的java语言并没有数据库访问的功能, 随着应用的小哥,要求java提供数据库访问功能的呼声越来越高。
为了防止出现对java在数据库访问方面各不相同的扩展,javasoft公司指定了 jdbc,作为java语言的数据库访问api。
采用jdbc技术,在java applet中访问数据库的优点在于:直接访问数据库,不再需要web数据库的介入,从而避开了cgi方法的一些局限性;用户访问控制可以由数据库服务器 本地的安全机制来解决,提高了安全性;jdbc是支持基本sql功能的一个通用低层的应用程序接口,在不同的数据库功能的层次上提供了一个统一的用户界 面,为跨平台跨数据库系统进行直接的web访问提供了方案。
从而克服了api方法一些缺陷;同时,可以方便地实现与用户地交互,提供丰富的图形功能和声 音、视频等多媒体信息功能。
jdbc是用于执行sql语句的java应用程序接口api,由java语言编写的类和接口组 成。
java是一种面向对象、多线程与平台无关的编程语言,具有极强的可移植性、安全性和强健性。
jdbc是一种规范,能为开发者提供标准的数据库访问类 和接口,能够方便地向任何关系数据库发送sql语句,同时jdbc是一个支持基本sql功能的低层应用程序接口,但实际上也支持高层的数据库访问工具及 api。
所有这些工作都建立在x/open sql cli基础上。
jdbc的主要任务是定义一个自然的java接口来与x/open cli中定义的抽象层和概念连接。
jdbc的两种主要接口分别面向应用程序的开发人员的jdbc api和面向驱动程序低层的jdbc driver api。
jdbc完成的工作是:建立与数据库的连接;发送sql语句;返回数据结果给web浏览器。
基于jdbc的web数据库结构其缺陷在于:只能进行简单的数据库查询等操作,还不能进行oltp;安全性、缓冲机制和连接管理仍不完善;sun承诺的完全跨平台跨数据库系统的功能和标准远未实现。
什么是IP地址、子网掩码、网关及DNS地址?
IP:互联网上联接了无数的服务和电脑,但它们并不是处于杂乱无章的无序状态,而是每一个主机都有惟一的地址,作为该主机在Internet上的唯一标志。
我们称为IP地址(Internet Protocol Address)。
它是一串4组由圆点分割的数字组成的,其中每一组数字都在0-256之间,如:0-255.0-255.0-255.0-255.0-255;如,202.202.96.33就是一个主机服务器的IP地址。
另一种表示方法摆脱了数字的单调和难记的缺点,用域名DN(Domain Name)来表示,即代表该主机的一个文字名称,如www.lg.com.cn是一家公司主机服务器的域名。
DNS(Domain Name System)域名服务器系统将形象的文字型域名翻译成对应的数字型IP地址。
通过上述IP,域名DN,域名系统DNS,就把每一台主机在Internet上给予了惟一的定位。
内网、公网是两种Internet的接入方式。
内网接入方式:上网的计算机得到的IP地址是Inetnet上的保留地址,保留地址有如下3种形式:6 2/a 172.16.x.x至 内网的计算机以NAT(网络地址转换)协议,通过一个公共的网关访问Internet。
内网的计算机可向Internet上的其他计算机发送连接请求,但Internet上其他的计算机无法向内网的计算机发送连接请求。
公网接入方式:上网的计算机得到的IP地址是Inetnet上的非保留地址。
公网的计算机和Internet上的其他计算机可随意互相访问。
子网掩码:子网掩码(subnet mask)是每个网管必须要掌握的基础知识,只有掌握它,才能够真正理解TCP/IP协议的设置。
以下我们就来小哥浅出地讲解什么是子网掩码。
子网掩码不能单独存在,它必须结合IP地址一起使用。
子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。
子网掩码的设定必须遵循一定的规则。
与IP地址相同,子网掩码的长度也是32位,左边是网络位,用二进制数字“1”表示;右边是主机位,用二进制数字“0”表示。
只有通过子网掩码,才能表明一台主机所在的子网与其他子网的关系,使网络正常工作。
子网掩码的术语是扩展的网络前缀码不是一个地址,但是可以确定一个网络层地址哪一部分是网络号,哪一部分是主机号,1 的部分代表网络号,掩码为 0的部分代表主机号。
子网掩码的作用就是获取主机 IP的网络地址信息,用于区别主机通信不同情况,由此选择不同路。
其中 A类地址的默认子网掩码为 255.0.0.0;B类地址的默认子网掩码为 255.255.0.0;C类地址的默认子网掩码为:255.255.255.0 网关:网关(Gateway)就是一个网络连接到另一个网络的“关口”。
??按照不同的分类标准,网关也有很多种。
TCP/IP协议里的网关是最常用的,在这里我们所讲的“网关”均指TCP/IP协议下的网关。
??那么网关到底是什么呢?网关实质上是一个网络通向其他网络的IP地址。
比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0。
在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。
而要实现这两个网络之间的通信,则必须通过网关。
如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。
网络B向网络A转发数据包的过程也是如此。
??所以说,只有设置好网关的IP地址,TCP/IP协议才能实现不同网络之间的相互通信。
那么这个IP地址是哪台机器的IP地址呢?网关的IP地址是具有路由功能的设备的IP地址,具有路由功能的设备有路由器、启用了路由协议的服务器(实质上相当于一台路由器)、代理服务器(也相当于一台路由器)。
DNS地址:DNS地址是一个域名服务器地址,它负责把用户的网站地址解析成IP地址。
如果这个服务器出现问题,那么你就可能上不了网了。
我估计世界上没有哪个强人能记住所有自己经常去的网站的IP地址吧。
DNS 全名叫 Domain Name Server,中文俗称“域名服务器”,在说明 DNS Server 之前,可能要先说明什么叫 Domain Name(域名)。
正如上面所讲,在网上辨别一台电脑的方法是利用 IP地址,但是 IP用数字表示,没有特殊的意义,很不好记,因此,我们一般会为网上的电脑取一个有某种含义又容易记忆的名字,这个名字我们就叫它“Domain Name。
例如:对著名的YAHOO!搜索引擎来说,一般使用者在浏览这个网站时,都会输入,很少有人会记住这台Server的 IP 是多少?所以就是YAHOO!站点的 Domain Name。
这正如我们在跟朋友打招呼时,一定是叫他的名字,几乎没有人是叫对方身份证号码的吧!但是由于在 Internet 上真实辨认机器的还是IP,所以当使用者在浏览器中输入Domain Name 后,浏览器必须先到一台有 Domain Name 和 IP 对应信息的主机去查询这台电脑的 IP,而这台被查询的主机,我们称它为 Domain Name Server,简称 DNS,例如:当你输入时,浏览器会将这个名字传送到离它最近的 DNS Server 去做辨认,如果查询到结果,则会传回这台主机的 IP地址,进而跟它发生连接,但如果没有查询到,就会出现类似 DNS NOT FOUND 等告警信息。
所以一旦你的电脑的DNS Server 设置不正确,就好比是路标错了,电脑也就不知道该把信息送到哪里。
由于ISP的拨号服务器一般都有缺省的DNS,所以你可以不用设置DNS,如果你需要指定一台DNS,你一定要了解这台DNS的准确IP(比如福州的163用户的DNS为202.101.98.55)。
DNS设置方法如下:在“控制面板”下打开“网络”里的“TCP/IP的“属性”,在“DNS设置”栏目选择“启用DNS,并将DNS的IP地址添加即可。
IP192.168.X.X一般都是带有路由的IP,网关默认最后1位肯定是1,子网掩码 255.255.255.0简单说C类的IP,子网都可以这样设置
如何成为网络高手?
如何成为一个网络高手这是来自国外某BBS的帖子。
我写这个并不是因为我已经厌倦了一遍又一遍地回答同样的问题,而是考虑到这确实是一个有意义的问题,其实很多人(90%)确实需要问这个问题而从来没有去问。
我被问了很多次有关安全领域的问题,比如:什么编程语言你最推崇?应该读什么书作为开始?总而言之,就是如何在安全领域内成为一个有影响的人。
既然我的答案和一般的答案有所不同,我打算把我的看法说出来。
1.从哪里开始?我的观点可能和一般的看法不同,如果你刚刚起步,我建议你不要从Technotronic,Bugtraq,Packetstorm,Rootshell等站点开始,没错?不要从那里开始(尽管它们是很好的站点,而且我的意思也并不是说不要去访问这些站点),原因十分简单,如果你以为通晓“安全”就是知道最新的漏洞,到头来你将会发现自己一无所获。
我同意,知道什么地方有漏洞是十分必要的,但是这些并不能够为你的高手之路打下坚实的基础,比如,你知道RDS是最新的漏洞,知道如何下载并使用对这个漏洞进行利用的Script工具,知道如何修补这个漏洞(也许,很多人只知如何攻击,不知道如何防护),可是,3个月后,补丁漫天飞舞,这个漏洞已经不存在了……现在你的那些知识还有什么用?而且你可能根本没有理解对漏洞的分析。
你应该学习的知识是什么?是分析?还是攻击手段?这是我想要再次强调的,人们可能没有注意,已经有很多人认为他们只要知道最新的漏洞就是安全专家,NO!No!No!所有他们知道的只不过是“漏洞”,而不是“安全”。
例如:你知道有关于phf的漏洞,的漏洞,和的漏洞,但是你知道为什么它们会成为CGI的漏洞吗?你知道如何编一个安全的通用网关程序吗?你会根据一个CGI的工作状态来判断它可能有哪些漏洞或哪方面的漏洞吗?或者,你是不是只知道这些CGI有漏洞呢?所以我建议你不要从漏洞开始,就当它们不存在(你知道我的意思),你真正需要做的是从一个普通用户开始。
2.做一个用户我的意思是你至少要有一些基本的常规知识。
例如:如果你要从事Web Hacking,你是否可能连浏览器都不会使用?你会打开Netscape,打开IE?很好!你会输入姓名,你知道HTML是网页,很好,你要一直这样下去,变成一个熟练的用户。
你会区别ASP和CGI是动态的,什么是PHP?什么是转向,Cookies,SSL?你要知道任何一个普通用户可能接触到的关于Web的事物。
不是进攻漏洞,仅仅是使用,没有这些基础的(也许是枯燥的)知识,你不可能成为高手,这里没有任何捷径。
好,现在你知道这里的一切了,你用过了。
你在Hack UNIX之前你至少要知道如何Login,Logout,如何使用shell命令,如何使用一般的常用程序(Mail,FTP,Web,Lynx等)。
要想成为一个管理员,你需要掌握如下基本的操作。
3.成为一个管理员现在你已经超过了一个普通用户的领域了,进入了更复杂的领域,你要掌握更多的知识。
例如:Web服务器的类型,与其他的服务器有什么区别?如何去配置它,像这样的知识,你知道得越多就意味着你更了解它是如何工作的?它是干什么的?你理解HTTP协议吗?你知道HTTP1.0和HTTP1.1之间的区别吗?WEBDAV是什么?知道HTTP1.1虚拟主机有助于建立你的Web服务器吗?你需要了解操作系统,如果你从来没有配置过NT,你怎么可能去进攻一个NT服务器?你从来没有用过Rdisk,用户管理器,却期望Crack一个管理员密码,得到用户权限?你想使用RDS,而你在NT下的操作一直使用图形界面?你需要从管理员提升到一个“超级管理员”,这不是指你有一个超级用户的权限,而是你的知识要贯穿你的所有领域。
很好,你会在图形界面下添加用户,在命令方式下也能做到吗?而且,system32里的那些文件都是干什么的?你知道为什么USERNETCTL必须要有超级用户权限?你是不是从来没有接触过USERNETCTL?不要以为知道如何做到就行了,要尽可能知道的更多,成为一名技术上的领导者,但是……你不可能知道所有的事情。
这是我们不得不面对的事实。
如果你认为你可以知道所有的事情,你在自欺欺人。
你需要做的是选择一个领域,一个你最感兴趣的领域,并进一步学习更多的知识。
要想成为一名熟练用户,成为一名管理员,成为一名技术上的领导者,直至成为某一个领域中最优秀的人,不是仅仅学习如何使用web浏览器,怎样写CGI就行了,你知道HTTP和web服务器的原理吗?知道服务器不正常工作时应该怎样让它工作吗?当你在这个领域内有一定经验时,自然就知道怎样攻击和防护了这其实是很简单的道理,如果你知道所有的关于这方面的知识,那么,你也就知道安全隐患在哪里。
面对所有的漏洞(新的,旧的,将来的),你自己就能够发现未知的漏洞(你这时已经是一个网络高手了)你找漏洞可以,但你必须了解漏洞的根源。
所以,放下手中的Whisker的拷贝,去学习CGI到底是干什么的?它们怎么使通过HTTP的web服务器有漏洞的?很快你就会知道到底Whisker是干什么的了。
4.编程语言在所有被问的问题中,最常听到的就是:“你认为应该学习什么编程语言?”我想,这要看具体情况了,如你准备花费多少时间来学习?你想用这种语言做哪些事?想用多长时间完成一个程序?这个程序将完成多复杂的任务?以下有几个选项。
Visual Basic一种非常容易学习的语言。
有很多关于这方面的书,公开的免费源代码也很多。
你应该能够很快地使用它。
但是这个语言有一定局限,它并不是诸如C++那样强大,你需要在windows下运行它,需要一个VB的编程环境(不论盗版还是正版的,反正它不是免费的)。
想用VB来编攻击代码或补丁是十分困难的。
C++也许是最强大的语言了。
在所有的操作系统里都存在。
在网上有上吨的源代码和书是免费的,包括编程环境。
它比VB复杂,掌握它所需花费的时间也要比掌握VB多一些。
简单的东西容易学,功能强大的东西理解起来也要困难一些,这需要你自己衡量。
Assembly也许是最复杂的语言,也是最难学习的语言。
如果你把它当作第一个要学习的语言,那么将会难得你头要爆裂。
但是,先学会了汇编,其余的编程语言就变的很容易。
市场上有一些这方面的书,但这方面的教材有减少的趋势。
不过,汇编知识在某些方面至关重要,比如缓冲溢出攻击。
perl一种很不错的语言。
它像VB一样容易学习,也像VB一样有局限。
但是它在多数操作平台中都能运行(UNIX和windows),所以这是它的优势。
有很多这方面的书籍,而且它是完全免费的,你可以用它来制作一些普通的攻击工具。
它主要用于一些文本方式的攻击技巧,并不适合制作二进制程序。
我想,这是所有你想知道的,有把握的说,c/c++是最佳选择。