1.为什么程序员都喜欢Linux操作系统

2.程序员电脑上装360安全卫士吗?

3.C# 自动更新程序怎么弄

4.电脑系统是怎么做出来的?

5.关于windows操作系统和Linux 区别

程序员电脑系统关闭自动更新_程序员电脑系统关闭自动更新怎么设置

具体关闭步骤如下:

1、右键桌面计算机图标 - 属性。

2、在打开的系统窗口,点击左侧的高级系统设置。

3、在弹出的系统属性窗口,点击:系统保护。如果要关闭C盘的系统还原,左键点击本地磁盘(C:),再点击:配置。

4、在系统保护本地磁盘(C:)窗口,点击系统还原栏中的“关闭系统保护”,再点击确定。

5、这时会弹出一个系统保护窗口,询问:您确定要禁用此驱动器上的系统保护吗?点击是。

6、回到系统属性窗口,我们看到本地磁盘(C:)(系统)保护已经关闭。

如需打开,可重复第4步骤,选择前两个选项中的一个即可。

还原系统是一类靠数据保护和还原技术为基础的对计算机运行和数据进行安全防护的产品的统称。

用户如何选择:

1、如果您是个人用户,可以试用各类纯软件还原产品,能满足您的要求就行。很多还原软件也可以免费下载到。

2、如果您是网吧用户、学校用户,或者试用了各种纯软件还原,还是碰到解决不了的问题,或遇到被穿透的情况,则应该倾向于选择硬件卡载体还原或纯硬件还原。

3、碰到顽固机器狗病毒及最新变种,或期望一次性彻底解决病毒长期防御问题,可以直接试用纯硬件还原产品。

三类还原系统:

1、纯软件还原:如XP自带的系统还原功能、还原精灵、冰点还原、网维大师等;

2、硬件卡载体还原:如各类保护卡(海光蓝卡、易生增霸卡、小哨兵还原卡、三茗还原卡等),只是利用了PCI板块承载BOOTROOM,比软件还原尽早的获得系统控制权,根本原理还是跟纯软件还原一致的;

3、纯硬件还原:现在好像只有一个真正的产品即蓝芯防毒卡,在物理上直接接管硬盘读写,采用下一代硬盘高速接口PCI-E,解决各种软件还原的原理性缺陷,对穿透的防御能力达到极致。

为什么程序员都喜欢Linux操作系统

电脑硬件大家都知道非常重要,但是除了硬件外操作系统的好坏决定着电脑整体运行,硬件再好要是操作系统不给力,一切都是浮云,正好最近有小伙伴发了一张他电脑的配置图,他想换成w10系统,我告诉他由于驱动问题不能换,他还不信认为我在忽悠他,今天我们就来谈谈电脑操作系统的那些事!(下图就是他要求换w10的配置,小伙伴觉得能换吗?)

说到这个操作系统我应该算有一定发言权,从Windows 98开始我就接触电脑了,我这样说是不是暴露年龄了哈哈,后面又经历过2000,在到后面金典的XP,VISTA然后是w7 w8 w8.1 直到现在的最新w10,我基本上可以说每个系统我都用过,至于那个最好接下来我来谈谈我的看法。

XP曾经的经典

如果抛开硬件不支持这块不谈,单说系统我个人还是非常喜欢xp和w7,其中xp可谓是经典,服役时间之长从2001年开始发布,直到2014年微软彻底宣布取消了XP的技术支持,由于在位时间长很多应用程序,游戏甚至一些工控软件都是基于XP来研发制作以及优化,导致即便是现在还有很多地方在使用XP,不过由于XP本身指令集不能支持后期性能更为强大的新配件,不能支持大于4g的内存,无奈只能被大家无情抛弃。

W7 永恒的纪元

至于w7就更不要说了,它发布于2009年主要就是取代xp的,到现在很多小伙伴至今也不愿意更换到最新的w10 因为他们已经习惯了w7的操作方式,并且不管是软件和硬件对它都支持的比较好,尤其是对游戏方面优化更好,不过微软为了主推w10,在2015年1月开始终止了主流支持,只提供安全补丁,并于2020年1月14停止所有服务,也就是说离我们只有不到2个月的时间了,大家珍惜吧!

W8 昙花一现

至于这个w8 8.1给我的感觉就是出来打酱油的,也就是为小伙伴从w7过渡到w10的垫脚石,但是由于小伙伴不买买账,最终只能昙花一现以失败告终。

W10 全新的起点

最后再来说说这个w10,也是目前微软主推系统,为了让小伙伴从w7到w10微软是想尽了办法,但是还是有很多小伙伴不愿意升级到w10,哪怕有一段时间免费升级到w10都没人愿意更新。

后面微软不得不采用软硬夹击比如在硬件方面只支持w10,或者在系统后台自动更新,对于非正版用户大家可以关掉自动更新,但是对于正版用户你即便是关闭自动更新它还是会自动运行,用微软的话叫保护用户安全,体验到更流畅更安全的系统,在这方面微软真的做的很到位。

总体来说目前w10经过这么多年的不断优化,整体体验以及操作界面都还是非常不错的,现在的新硬件基本上也都是基于w10来研发,不过即便是w10在今年也出现了一段小插曲,微软决定对于系统版本为1803不再提供后续服务,让大家升级到新版本1903,但是这个1903缺出现了续航低,内存占用率大的问题,但在1803上夜班缺没有出现所以导致很多小伙伴不愿意升级!

至于这个几个系统到底哪个好用,我们就需要根据硬件的支持情况来决定了,很多小伙伴都认为只要把系统换成想装的就行了,就像上面这个小伙伴非要给老酷睿四核上w10一样,这个基本上是不可能的,主要原因就是本身配置差拉不动w10,另一个致命原因就是没有对应驱动,无法使硬件正常运行。

接下来我就来说说该如何正确选择系统。

★?十几年前的老爷机建议选择XP

以前的大部分老爷机电脑由于硬件本身差,满足不了w10系统需求,另一方面硬件驱动仅对XP系统进行更新和优化,如果你强制给他安装w10只会造成系统无法正常运行,驱动无法正常安装,最终导致系统无法使用,比如以前的老赛扬老酷睿,老速龙,闪龙并且硬件最大支持4G的这种机器,对于这部分机器那么建议你还是选择xp最为合适。

★?五六年前的机器建议使用W7

对于五六年前的机器我个人建议还是W7比较好一些,必定不管是软件还是硬件都对W7支持比较好,相对来说各方面已经非常完善,稳定性与兼容性都是最佳的,尤其是游戏这一块体验更好,适合装W7的CPU最好是英特尔三代到7代,AMD速龙X4,FX系列,A6到A10且内存大于4G的电脑。

★?最近两三年的建议W10

对于W10来说建议最近两三年的电脑并且内存大于8G的安装,一方面是W10对电脑本身配置要求有点高,另外在内存占用率也要大一些,另一个原因就是目前的驱动程序不管是软件还是硬件都是基于W10研发,所以不管你愿不愿意你都得使用W10,其实我看有很多小伙伴还是比较反感W10,其实W10真的还是不错的,只不过在有些操作方式上有一些小改动,但是我个人觉得不管是界面以及外观更加适合目前新生一代,有些时候其实我们也要学会进步,至于操作只是一种习惯而已,慢慢的你就养成了!

最终总结

这个操作系统的选择主要还是根据你硬件的支持情况来选择与其最佳匹配的,一般来说以前的老爷机,内存小于4G的建议使用XP,最近五六年的机器还是建议使用W7吧,最近两三年的硬件对W10支持比较好就建议W10,其实准确的来说后期基本上都是W10系统了,不管你愿不愿意始终还是会被这个时代淹没,就像XP曾经很多人都认为放不下的系统,结果在新一代大军当中很多人都不知道XP是什么,基本上也就留在80后以前小伙伴的映像中了,那中蓝天白云草地也即将在我们映像中慢慢的抹去,在此致敬那些即将逝去的青春!

在结束的时候让我们再来听一下曾经这个经典的开机声音,能听懂的估计已经步入中年了,还是那句话喜欢的别忘点赞关注哦!

程序员电脑上装360安全卫士吗?

程序员之所以喜欢Linux系统,究其原因具体如下:

1、强大的命令行

命令行有很多功能,如快速、自动化管理系统及处理业务,这消除了开发者对鼠标或触控板的需求,使开发者能够直接通过键盘输入指令来管理系统。自动化管理系统及处理业务可以让开发者专注于手头更重要的任务从而节省下大量实践。作为Linux的核心组件之一,尽管Linux命令行并不完美但始终保持了终端的纯度。

2、Linux非常安全

由于Linux是开源的由大型开发者社区开发和维护,所以安全漏洞被发现和修复的几率更高。此外Windows作为最受欢迎的操作系统,据相关数据统计,Windows设备以76.7%的占比排名第一。因此更多恶意攻击针对的是Windows而不是Linux。

3、对开发者友好

与Windows相比Linux在很大程度上对用户更友好更容易被接受。如Linux有为开发者专门提供的工具,所以它在开发者中非常受欢迎。在Linux中,开发者能够拥有编译器、命令行编辑器、几乎可以调整任何内容的能力、以及自己设置快捷方式的能力,并且这一切都是开箱即用。

4、定期更新

由于Linux是开源的随着人们发现漏洞、安全缓存和错误脚本,开发者会定期得到大量的更新,这就是Linux用户的主要优势之一。

5、社区支持

Linux社区致力于服务所有的Linux用户,因此它将提供长期的支持。Windows社区却与Linux不同,Windows社区之前停止为Windows7用户提供支持,因此如果开发者在Windows7中遇到任何问题或数据泄露的麻烦都将无法联系到帮助中心。但当Linux用户遇到麻烦时,可以在许多地方寻求到帮助,比如:Twitter、LinkedIn、Forums等。

6、隐私性强

Linux不会收集或与任何人分享用户的信息。用户甚至可以关闭收集数据的开发建议,如果打开,也只会提供给Linux的开发团队。如果你曾经使用过Windows10,你会注意到默认的隐私设置会自动开启所有功能。即使你选择不提交有关自己的Microsoft数据,你的信息也依旧会被收集,除非你使用一组程序来禁用Windows的窃听模块。

7、网络安全

Linux通常是网络安全方面最常用的操作系统。这是因为Linux不容易受到病毒攻击,而且它的系统维护得非常好,使系统中出现漏洞的机会极少。因此,通过使用Linux,开发者可以学习到它在网络安全方面的经验,如学习如何保护个人或专业数据免受暴力破解攻击、网络攻击或任何其他类型的攻击,以此来避免个人数据被攻击而泄露。

C# 自动更新程序怎么弄

360是个好东西啊,作为一名程序员必须诋毁他。矛盾吧?在以前,总觉得360可以杀毒,可以关闭进程,可以清理缓存,修复漏洞。总之,新电脑第一个软件就是他了。

可自从当了程序员以后,一切都变了。发现病毒不是想象中的那个样子,也没有那么可怕,甚至都敢在没杀毒软件的时候浏览非法网站了。发现病毒其实也是程序,在某些特定情况才会发生,何况病毒也并没有那么多,根本没有那么容易感染。既然都是程序,属于自己管辖的东西,他怎么会肆虐。

反而,以前的电脑反应很快的,新装后不久经常能看到各种卡顿,各种漏洞,时长更新。当了程序员以后放下了对360的执着,不再拥有他的时候。电脑速度明显提升好几个等级。

经常会被人带去修电脑,说电脑卡顿,新买不久。到了才发现电脑上百度卫士,360杀毒,qq电脑管家,金山杀毒,2345杀毒。各种杀毒软件开了一堆。有些是自己下载的,有些是被绑定下载的。平常人不知道利害,只觉得杀毒多了安全。其实不然。

每个杀毒软件都会在后台开启服务与进程,有一些核心组件无法手动关闭,全部自动开启。4核的电脑因为杀毒软件后台自动运行各种检测,恐怕只能当一核电脑使用了。甚至一核都分不出来。随时都能看到cpu占用率百分之80以上。

杀毒软件更多时候是互相排斥的,不是你死就是我亡的境地。互相在一起导致电脑内部不停的运算,运算原因就是要打死对手产品。内部斗争喋喋不休,哪里有闲工夫来运行你的 游戏 ,视频,工作?本身电脑内存有限,能用8G以上的一般都是计算机工作者或者 游戏 高端玩家,本身内存就不够,杀毒软件大部分的占用,导致效率低下,卡死也就再正常不过了。

至于进程,打开管理器一一关闭即可,普通人不认识,所以关闭不了。但是杀毒软件能关吗?能关对吗?也不一定,毕竟程序都是死的,经常会有写好的文档被误删,当做病毒处理。也有真正的病毒程序运行杀毒软件检测不出来,一切都正常。计算机进程等级更高的服务,杀毒软件无法关闭。病毒软件新出的查不出,是因为每个杀毒软件都是使用一个病毒库比对计算机内部程序,如果匹配,就报病毒,查杀,否则默认没有。所以程序永远是程序,病毒是程序,杀毒软件也是程序,就看谁更高级了。

只要平时注意使用习惯,杀毒软件毫无用处。反而会占用大量内存,降低电脑效率。杀毒软件其实说白了就是一个伪病毒软件而已。

目前来说360安全卫士比较好用,它是当前功能最强、效果最好、最受用户欢迎的上网必备安全软件。360安全卫士拥有查杀木马、清理插件、修复漏洞、电脑体检等多种功能,并独创了“木马防火墙"功能,依靠抢先侦测和云端鉴别,可全面、智能地拦截各类木马,保护用户的帐号、隐私等重要信息

我猜楼主问这个问题背后的动机是:作为程序员装360安全卫士是不是显得比low!~我觉得完全没必要,只要你觉得好用即可。

我来谈下我个人的经历和看法,只是个人的。

作为一员程序员,从360开始免费的时候就开始使用了,至到前不久还一直使用360安全了卫士,360有些功能还是很方便的,比如开机优化,垃圾清理、插件清理等。

当然也有很烦的时候,偶尔弹出个框,一不小心就安装了360全家桶,这点我有点不能忍。

期间也换过腾讯的电脑管家,主要是为QQ升级!~~!感觉上比360差了一点点,时间有点久,具体忘了是什么原因后来又换回360。

至到有一天,电脑不知道为什么开机后运行个几分钟就突然卡死,动不了。重启,重装系统也没用,整个人都崩溃了....

安装了几次系统,发现只要一装360安全卫士就不行,后来果断卸载,系统OK,因为是WIN10系统,所以直接使用了自带的安全软件:Windows Defender,到目前为止,一切安好!

操作系统:win10 企业版

很多人说「 360 安全卫士」(以下简称 360 )是流氓软件,但也有 2.6 亿人每天在用 360 ,可以说 360 一直以来都是绯闻不断。那她到底好不好,程序员电脑上需不需要装 360 ?

我的理解是根据自己的需求来,不要妄下断论,因为不管是普通计算机使用者也好,程序员也罢,鞋合不合适,只有脚知道。

PS: 送给程序员们一个价值 888 元的大礼包,点我头像,关注,看我个人介绍免费获取。

一、360 自我介绍

我,「 360 安全卫士」是一款由奇虎360公司推出的安全杀毒软件。我是在卡巴斯基、江明杀毒软件、金山毒霸等众多武林高手中杀出重围,冲出一片天的免费杀毒帮手。当然了,现在的我除了体检、杀木马,还有清理垃圾,软件管理和电脑急救等多样功能。

二、什么时候该用她

1.当我们的电脑没有其他杀毒软件,为了不至于裸奔的时候。我们可以使用「 360 安全卫士」来帮我们管理电脑的安全。也正因为 360 的出现,才使得像卡巴斯基、江明杀毒软件、金山毒霸等众多收费杀毒软件败下阵来,才使得我们可以免费使用工具来帮我们保护电脑。这点上,360 着实为我们带来了利好。

2.需求一般,又力求方便简单。那么下载个 360 安全卫士就足够了,他没有那么的繁琐操作,都是简单的点击处理就能帮助电脑进行病毒控制和木马的检查。其实程序员也一样,在要求不那么苛刻的情况下,大家都善于将这些事情交给第三方工具帮我们管理电脑。

3.清理垃圾和拯救系统 bug 。360 安全卫士可以帮助我们清理掉一些难以直接能找到的系统垃圾、软件安装和资源备份垃圾。同时,现在的安全卫士里也可以下载到相当一部分常用的简单的软件,且都已进行了相对的安全认证。这里提示一下大家,在下载应用软件的时候,尽量在官网下载,其他平台下载,就一定要仔细看清楚了,避免被第三方平台绑定一堆「意外之喜」的软件和广告,更有甚者会携带一些病毒。

当然了,还有一个功能,可以帮助我们解决一些系统 bug 之类的问题,比如“上不了网”、“电脑桌面图标消失”之类。

所以,我们可以在不被诱导安装有用无用全家桶的情况下,细心点根据自己所需来取舍安装 360 系列产品。「用其好,避其坏。」

三、什么时候不用她

1.当你只是用 360 安全卫士来进行电脑杀毒,而你的电脑上已经有了其他更好、更专业的杀毒软件,那你就完全没必要再安装个 360。再或者你有足够的技术水平和精力可以很好的保护自己电脑,那么你的裸机跑起来可能还更快。

2.当 360 与有些软件不兼容,这些软件无法在有 360 存在的情况下使用时,当你厌倦了 360 的首页爱篡改、全家桶大礼包偷偷送、卸载不彻底、占有 CPU 太严重的时候,你可以考虑弃之另寻欢。

综合而言,万事不能绝对,但要有原则。而至于「 360 安全卫士」这个无关大雅之事,我们完全可以不用极端态度待之,我们只需按照自己的需求,选择适合自己的「鞋子」。

如上是我的一点想法。你怎么看待这个问题,朋友?

“程序员”和“360安全卫士”这两个概念,题主你可能至少对于其中的一个有误解,首先,程序员并不是什么高不可攀的职业,我这么说的意思是程序员并不一定对于Windows、Linux、macOS的使用习惯毫无盲点、驾驭系统的经验不一定很丰富,安全架构一清二楚、潜在的和已有的漏洞,以及对应的攻击方式和原理都胸有成竹,否则的话你要问的应该计算机系统安全专家,他们当中的门槛要比一般的程序员要更高。

从定义来说,程序员所指的是工作是将方案和策划在软件层面实现的群体,换句话说他们的强项在于通过自己熟悉的语言和相对应的库,在熟悉的平台上实现需要实现的功能,虽然程序员也需要自我学习能力,但是他们本质上是执行者,当然我不能排除其中拔尖者身兼众家之长、对知识融会贯通之大牛对于自己手中的机器就好像自己的手指一样轻松控制,但是就一般的从业者而言,安全领域并不一定是他们的必需。

再说说360安全卫士,虽然你没有说明,但是我估计你想问的应该是其中的安全防护、病毒查杀能力是不是普通用户不可或缺的(这里暂不考虑竞争对手的产品)。然而事实是,无论是微软定期针对操作系统发布的安全补丁(其实不只是360,很多安全卫士提供的补丁都是来源于微软,用户会尝试关闭系统更新而接受第三方软件提供的安全布冯),还是针对系统运作方式、攻击机理作出的防御,都是普通用户和程序员很难通过自己的力量和网络的渠道直接抵御的,充其量是通过熟悉系统而自己清理硬盘当中的垃圾文件而已。

综上所述,在安全风险面前,“即使”是程序员也需要安装360安全卫士,但如果说是自己有没有兴趣、喜不喜欢这款软件,那么说的又是另一个问题。

360和管家对于大部分人来说,需求早已经从安全转移到了小工具,比如系统优化,比如软件卸载,又比如垃圾清理等等。

对于目前最新的操作系统来说,一个Windows defender足矣,免费而且不装什么全家桶给你,也不要求你登录什么帐号,加速等级。就是单纯的保障系统安全。

在现在这个时代,真正的传统意义上的病毒并不能给制作者和发布者带来多大利息,风险超高,利润又高不到哪去,所以制作病毒并不划算。大量存在的是各种木马,木马也是病毒的一种但是可以隐蔽的隐藏在电脑中提供后门,导致用户数据丢失,帐号被盗。

所以想要有效的保障电脑安全第一条就是时刻保证防火墙是开启的,没有登记的程序便必须经过用户的允许才能通过。

安全是从意识上开始的,任何程序都建立在人制造和人使用上的,如果仅仅把电脑的安全建立在某款软件上,遇到病毒库没有的病毒,还是有很高的风险。

我的电脑上就装有360安全卫士,但360杀毒没有装。

安装360的卫土目的不是为了杀病毒,而是有如下用途。

删除不需要的软件,有些软件特别是垃圾很隐藏,在控制面板里边面跟本人显删不掉。

安装操作系统的补丁,360在这方面好用。

当硬盘满时,可以删除临时文件或者大数据文件,对硬盘进行清理。

总的来说360卫士还算可以,但千万不要用它目的作为杀毒。

@编程保姆 电脑本身是没病毒的,但如果你把它当做杀毒工具的时候,你的电脑就有病毒了。

如果不是前端HTML开发人员那么98%不敢装,尤其是搞C++的,360那套垃圾机制能让你啥都干不成,而且编译出来的程序换台机器可能会出现各种奇怪的问题,一切的原因就是360在你的系统上乱改注册表,还安装了很多虚拟驱动(系统级的),导致原生编译器编译的时候会出现很多权限错误或者注册表错误,或者内存冲突的问题

360是流氓软件,前身是3721,正是360开启了中国IT行业无底线模式。这个行业已经没有道德底线了,不管3721,拉到用户就是胜利,所以各位电脑用户们,你们家的电脑开机之后就各种弹窗,各种火箭加速清理垃圾,释放内存等等,应接不暇。开初还觉得新鲜,觉得是好事,可是电脑是拿来工作 生活的,不是培养成电脑高手的。普通用户不需要知道清理内存不需要垃圾文件清理,可惜国内用户都被了,上网若干浏览器抢夺默认浏览器头衔,一不小心就被主页劫持成hao123等,你的上网行为都被监视着,如果你浏览某类型商品,以后广告推介就是这类商品居多。

所以想安安静静做个电脑小白的朋友们,拒绝360从自己开始做起,如果你仅仅是电脑上看个**听歌做个文案,买个苹果电脑最省心,实在不想花钱,就请人给自己电脑装个黑苹果电脑系统,这样再也没有弹窗,没有内存报警,浏览器打开网页速度是秒开。有的人说我是电脑小白啥都不懂,我怕不习惯苹果操作呢,我想说的是既然是小白说明电脑不熟悉,也就没有根生地固改不了的习惯,苹果电脑强迫自己使用一个星期就习惯了,遇到不懂的问题,正品苹果电脑可以打电话咨询,黑苹果用户可以百度解决方案。

现在使用苹果电脑的程序员不在少数,而且还是程序员中的高收入哦,因为苹果电脑上没有360生存的土壤,所以这程序员自然就不会安装360。这也从侧面证实了苹果电脑系统的优越性。

绿色屏幕是为了护眼,整天写程序,就懒得折腾电脑了,怎么简单怎么来

电脑系统是怎么做出来的?

用C#实现软件自动更新思路

前言

长期以来,广大程序员为到底是使用Client/Server,还是使用Browser/Server结构争论不休,在这些争论当中,C/S结构的程序可维护性差,布置困难,升级不方便,维护成本高就是一个相当重要的因素。有很多企业用户就是因为这个原因而放弃使用C/S。然而当一个应用必须要使用C/S结构才能很好的实现其功能的时候,我们该如何解决客户端的部署与自动升级问题?部署很简单,只要点击安装程序即可,难的在于每当有新版本发布时,能够实现自动升级[3]。现在好了,我们的目标很简单,我们希望开发一个与具体应用无关的能够复用的自动升级系统。下面我为大家提供了一套可复用的用C#编写的自动升级系统。

2 实现软件的自动升级存在的困难

第一,为了查找远程服务器上的更新,应用程序必须有查询网络的途径,这需要网络编程、简单的应用程序与服务器通讯的协议。

第二是下载。下载看起来不需要考虑联网的问题,但要考虑下载用户请求的文件,以及在没有用户同意时下载大文件。友好的自动更新应用程序将使用剩余的带宽下载更新。这听起来简单,但却是一个技术难题,幸运的是已经有了解决方法。

第三个考虑因素是使用新版应用程序更换原应用程序的过程。这个问题比较有趣,因为它要求代码运行时将自己从系统删除,有多种办法可以实现该功能[5],本文程序主要通过比较新旧版本的日期号来实现替换新版本应用程序的功能。

3 实现软件自动在线升级的原理

写两个程序,一个是主程序;一个是升级程序;所有升级任务都由升级程序完成。

1.启动升级程序,升级程序连接到网站,下载新的主程序(当然还包括支持的库文件、XML配置文档等)到临时文件夹;

2.升级程序获取服务器端XML配置文件中新版本程序的更新日期或版本号或文件大小;

3.升级程序获取原有客户端应用程序的最近一次更新日期或版本号或文件大小,两者进行比较;如果发现升级程序的日期大于原有程序的最新日期,则提示用户是否升级;或者是采用将现有版本与最新版本作比较,发现最新的则提示用户是否升级;也有人用其它属性如文件大小进行比较,发现升级程序的文件大小大于旧版本的程序的大小则提示用户升级。本文主要采用比较新旧版本更新日期号来提示用户升级。

4.如果用户选择升级,则获取下载文件列表,开始进行批量下载文档;

5.升级程序检测旧的主程序是否活动,若活动则关闭旧的主程序;

6.删除旧的主程序,拷贝临时文件夹中的文件到相应的位置;

7.检查主程序的状态,若状态为活动的,则启动新的主程序;

8.关闭升级程序,升级完成[4]。

4 用C#实现在线升级的关键步骤

这里我主要使用日期信息来检测是否需要下载升级版本。

4.1 准备一个XML配置文件

名称为AutoUpdater.xml,作用是作为一个升级用的模板,显示需要升级的信息。

名称为AutoUpdater.xml,作用是作为一个升级用的模板,显示需要升级的信息。

<?xml version="1.0"?> //xml版本号

<AutoUpdater>

<URLAddres URL=""/>//升级文件所在服务器端的网址

<UpdateInfo>

<UpdateTime Date = "2005-02-02"/> //升级文件的更新日期

<Version Num = "1.0.0.1"/> //升级文件的版本号

</UpdateInfo>

<UpdateFileList> //升级文件列表

<UpdateFile FileName = "aa.txt"/> //共有三个文件需升级

<UpdateFile FileName = "VB40.rar"/>

<UpdateFile FileName = "VB4-1.CAB"/>

</UpdateFileList>

<RestartApp>

<ReStart Allow = "Yes"/> //允许重新启动应用程序

<AppName Name = "TIMS.exe"/> //启动的应用程序名

</RestartApp>

</AutoUpdater>

//xml版本号

//升级文件所在服务器端的网址

//升级文件的更新日期

//升级文件的版本号

//升级文件列表

//共有三个文件需升级

//允许重新启动应用程序

//启动的应用程序名

从以上XML文档中可以得知升级文档所在服务器端的地址、升级文档的更新日期、需要升级的文件列表,其中共有三个文件需升级:aa.txt、VB40.rar、VB4-1.CAB。以及是否允许重新启动应用程序和重新启动的应用程序名。

4.2 获取客户端应用程序及服务器端升级程序的最近一次更新日期

通过GetTheLastUpdateTime()函数来实现。

private string GetTheLastUpdateTime(string Dir)

{

string LastUpdateTime = "";

string AutoUpdaterFileName = Dir + @"\AutoUpdater.xml";

if(!File.Exists(AutoUpdaterFileName))

return LastUpdateTime;

//打开xml文件

FileStream myFile = new FileStream(AutoUpdaterFileName,FileMode.Open);

//xml文件阅读器

XmlTextReader xml = new XmlTextReader(myFile);

while(xml.Read())

{

if(xml.Name == "UpdateTime")

{

//获取升级文档的最后一次更新日期

LastUpdateTime = xml.GetAttribute("Date");

break;

}

}

xml.Close();

myFile.Close();

return LastUpdateTime;

}

通过XmlTextReader打开XML文档,读取更新时间从而获取Date对应的值,即服务器端升级文件的最近一次更新时间。

函数调用实现:

//获取客户端指定路径下的应用程序最近一次更新时间

string thePreUpdateDate = GetTheLastUpdateTime(Application.StartupPath);

Application.StartupPath指客户端应用程序所在的路径。

//获得从服务器端已下载文档的最近一次更新日期

string theLastsUpdateDate = GetTheLastUpdateTime(theFolder.FullName);

theFolder.FullName指在升级文档下载到客户机上的临时文件夹所在的路径。

4.3 比较日期

客户端应用程序最近一次更新日期与服务器端升级程序的最近一次更新日期进行比较。

//获得已下载文档的最近一次更新日期

string theLastsUpdateDate = GetTheLastUpdateTime(theFolder.FullName);

if(thePreUpdateDate != "")

{

//如果客户端将升级的应用程序的更新日期大于服务器端升级的应用程序的更新日期

if(Convert.ToDateTime(thePreUpdateDate)>=Convert.ToDateTime(theLastsUpdateDate))

{

MessageBox.Show("当前软件已经是最新的,无需更新!","系统提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

this.Close();

}

}

this.labDownFile.Text = "下载更新文件";

this.labFileName.Refresh();

this.btnCancel.Enabled = true;

this.progressBar.Position = 0;

this.progressBarTotal.Position = 0;

this.progressBarTotal.Refresh();

this.progressBar.Refresh();

//通过动态数组获取下载文件的列表

ArrayList List = GetDownFileList(GetTheUpdateURL(),theFolder.FullName);

string[] urls = new string[List.Count];

List.CopyTo(urls, 0);

将客户端升级的应用程序的日期与服务器端下载的应用程序日期进行比较,如果前者大于后者,则不更新;如果前者小于后者,则通过动态数组获取下载文件的列表,开始下载文件。

4.2 获取客户端应用程序及服务器端升级程序的最近一次更新日期

通过GetTheLastUpdateTime()函数来实现。

private string GetTheLastUpdateTime(string Dir)

{

string LastUpdateTime = "";

string AutoUpdaterFileName = Dir + @"\AutoUpdater.xml";

if(!File.Exists(AutoUpdaterFileName))

return LastUpdateTime;

//打开xml文件

FileStream myFile = new FileStream(AutoUpdaterFileName,FileMode.Open);

//xml文件阅读器

XmlTextReader xml = new XmlTextReader(myFile);

while(xml.Read())

{

if(xml.Name == "UpdateTime")

{

//获取升级文档的最后一次更新日期

LastUpdateTime = xml.GetAttribute("Date");

break;

}

}

xml.Close();

myFile.Close();

return LastUpdateTime;

}

通过XmlTextReader打开XML文档,读取更新时间从而获取Date对应的值,即服务器端升级文件的最近一次更新时间。

函数调用实现:

//获取客户端指定路径下的应用程序最近一次更新时间

string thePreUpdateDate = GetTheLastUpdateTime(Application.StartupPath);

Application.StartupPath指客户端应用程序所在的路径。

//获得从服务器端已下载文档的最近一次更新日期

string theLastsUpdateDate = GetTheLastUpdateTime(theFolder.FullName);

theFolder.FullName指在升级文档下载到客户机上的临时文件夹所在的路径。

4.3 比较日期

客户端应用程序最近一次更新日期与服务器端升级程序的最近一次更新日期进行比较。

//获得已下载文档的最近一次更新日期

string theLastsUpdateDate = GetTheLastUpdateTime(theFolder.FullName);

if(thePreUpdateDate != "")

{

//如果客户端将升级的应用程序的更新日期大于服务器端升级的应用程序的更新日期

if(Convert.ToDateTime(thePreUpdateDate)>=Convert.ToDateTime(theLastsUpdateDate))

{

MessageBox.Show("当前软件已经是最新的,无需更新!","系统提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

this.Close();

}

}

this.labDownFile.Text = "下载更新文件";

this.labFileName.Refresh();

this.btnCancel.Enabled = true;

this.progressBar.Position = 0;

this.progressBarTotal.Position = 0;

this.progressBarTotal.Refresh();

this.progressBar.Refresh();

//通过动态数组获取下载文件的列表

ArrayList List = GetDownFileList(GetTheUpdateURL(),theFolder.FullName);

string[] urls = new string[List.Count];

List.CopyTo(urls, 0);

将客户端升级的应用程序的日期与服务器端下载的应用程序日期进行比较,如果前者大于后者,则不更新;如果前者小于后者,则通过动态数组获取下载文件的列表,开始下载文件。

通过BatchDownload()函数来实现。升级程序检测旧的主程序是否活动,若活动则关闭旧的主程序;删除旧的主程序,拷贝临时文件夹中的文件到相应的位置;检查主程序的状态,若状态为活动的,则启动新的主程序。

private void BatchDownload(object data)

{

this.Invoke(this.activeStateChanger, new object[]{true, false});

try

{

DownloadInstructions instructions = (DownloadInstructions) data;

//批量下载

using(BatchDownloader bDL = new BatchDownloader())

{

bDL.CurrentProgressChanged += new DownloadProgressHandler(this.SingleProgressChanged);

bDL.StateChanged += new DownloadProgressHandler(this.StateChanged);

bDL.FileChanged += new DownloadProgressHandler(bDL_FileChanged);

bDL.TotalProgressChanged += new DownloadProgressHandler(bDL_TotalProgressChanged);

bDL.Download(instructions.URLs, instructions.Destination, (ManualResetEvent) this.cancelEvent);

}

}

catch(Exception ex)

{

ShowErrorMessage(ex);

}

this.Invoke(this.activeStateChanger, new object[]{false, false});

this.labFileName.Text = "";

//更新程序

if(this._Update)

{

//关闭原有的应用程序

this.labDownFile.Text = "正在关闭程序....";

System.Diagnostics.Process[]proc=System.Diagnostics.Process.GetProcessesByName("TIMS");

//关闭原有应用程序的所有进程

foreach(System.Diagnostics.Process pro in proc)

{

pro.Kill();

}

DirectoryInfo theFolder=new DirectoryInfo(Path.GetTempPath()+”JurassicUpdate");

if(theFolder.Exists)

{

foreach(FileInfo theFile in theFolder.GetFiles())

{

//如果临时文件夹下存在与应用程序所在目录下的文件同名的文件,则删除应用程序目录下的文件

if(File.Exists(Application.StartupPath + \\"+Path.GetFileName(theFile.FullName)))

File.Delete(Application.StartupPath + "\\"+Path.GetFileName(theFile.FullName));

//将临时文件夹的文件移到应用程序所在的目录下

File.Move(theFile.FullName,Application.StartupPath + \\"+Path.GetFileName(theFile.FullName));

}

}

//启动安装程序

this.labDownFile.Text = "正在启动程序....";

System.Diagnostics.Process.Start(Application.StartupPath + "\\" + "TIMS.exe");

this.Close();

}

}

关于windows操作系统和Linux 区别

你用到的操作系统,是微软公司大量程序员,写出来的。

操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。

操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。操作系统的功能包括管理计算机系统的硬件、软件及数据资源,控制程序运行,改善人机界面,为其它应用软件提供支持,让计算机系统所有资源最大限度地发挥作用,提供各种形式的用户界面,使用户有一个好的工作环境,为其它软件的开发提供必要的服务和相应的接口等。实际上,用户是不用接触操作系统的,操作系统管理着计算机硬件资源,同时按照应用程序的资源请求,分配资源,如:划分CPU时间,内存空间的开辟,调用打印机等。

现代操作系统通常都有一个使用的绘图设备的图形用户界面(GUI),并附加如鼠标或触控面版等有别于键盘的输入设备。旧的OS或性能导向的服务器通常不会有如此亲切的界面,而是以命令行界面(CLI)加上键盘为输入设备。以上两种界面其实都是所谓的壳,其功能为接受并处理用户的指令(例如按下一按钮,或在命令提示列上键入指令)。

选择要安装的操作系统通常与其硬件架构有很大关系,只有Linux与BSD几乎可在所有硬件架构上运行,而Windows NT仅移植到了DEC Alpha与MIPS Magnum。在1990年代早期,个人计算机的选择就已被局限在Windows家族、类Unix家族以及Linux上,而以Linux及Mac OS X为最主要的另类选择,直至今日。

大型机与嵌入式系统使用很多样化的操作系统。在服务器方面Linux、UNIX和WindowsServer占据了市场的大部分份额。在超级计算机方面,Linux取代Unix成为了第一大操作系统,截止2012年6月,世界超级计算机500强排名中基于Linux的超级计算机占据了462个席位,比率高达92%。随着智能手机的发展,Android和iOS已经成为目前最流行的两大手机操作系统。[1]

2012年,全球智能手机操作系统市场份额的变化情况相对稳定。智能手机操作系统市场一直被几个手机制造商巨头所控制,而安卓的垄断地位主要得益于三星智能手机在世界范围内所取得的巨大成功。2012年第三季度,安卓的市场份额高达74.8%,2011年则为57.4%。2013年第一季度,它的市场份额继续增加,达到75%。虽然 Android 占据领先,但是苹果 iOS 用户在应用上花费的时间则比 Android 的长。虽然在这方面 Android 的数字一度接近苹果,但是像 iPad 3 这样的设备发布之后,苹果的数字还是会进一步增长。Windows Phone 系统在 8.1 版发布后市场份额稳步提高,应用生态正在改善,众多必需应用不断更新,但是速度还略嫌迟缓。微软收购了诺基亚,发展了许多OEM厂商,并不断发布新机型试图扭转WP的不利局面,小有成效。

组成部分

操作系统理论研究者有时把操作系统分成四大部分:

驱动程序:最底层的、直接控制和监视各类硬件的部分,它们的职责是隐藏硬件的具体细节,并向其他部分提供一个抽象的、通用的接口。

内核:操作系统内核部分,通常运行在最高特权级,负责提供基础性、结构性的功能。

接口库:是一系列特殊的程序库,它们职责在于把系统所提供的基本服务包装成应用程序所能够使用的编程接口(API),是最靠近应用程序的部分。例如,GNU C运行期库就属于此类,它把各种操作系统的内部编程接口包装成ANSI C和POSIX编程接口的形式。

外围:是指操作系统中除以上三类以外的所有其他部分,通常是用于提供特定高级服务的部件。例如,在微内核结构中,大部分系统服务,以及UNIX/Linux中各种守护进程都通常被划归此列。

并不是所有的操作系统都严格包括这四大部分。例如,在早期的微软视窗操作系统中,各部分耦合程度很深,难以区分彼此。而在使用外核结构的操作系统中,则根本没有驱动程序的概念。

操作系统中四大部分的不同布局,也就形成了几种整体结构的分野。常见的结构包括:简单结构、层结构、微内核结构、垂直结构、和虚拟机结构。

内核结构编辑

内核是操作系统最基础的构件,因而,内核结构往往对操作系统的外部特性以及应用领域有着一定程度的影响。尽管随着理论和实践的不断演进,操作系统高层特性与内核结构之间的耦合有日趋缩小之势,但习惯上,内核结构仍然是操作系统分类之常用标准!

内核的结构可以分为单内核、微内核、混合内核、外内核等。

单内核(Monolithic kernel),又称为宏内核。单内核结构是操作系统中各内核部件杂然混居的形态,该结构于1960年代(亦有1950年代初之说,尚存争议),历史最长,是操作系统内核与外围分离时的最初形态。

微内核(Microkernel),又称为微核心。微内核结构是1980年代产生出来的较新的内核结构,强调结构性部件与功能性部件的分离。20世纪末,基于微内核结构,理论界中又发展出了超微内核与外内核等多种结构。尽管自1980年代起,大部分理论研究都集中在以微内核为首的“新兴”结构之上,然而,在应用领域之中,以单内核结构为基础的操作系统却一直占据着主导地位。

混合内核(Hybrid kernel)像微内核结构,只不过它的组件更多的在核心态中运行,以获得更快的执行速度。

外内核(Exokernel)的设计理念是尽可能的减少软件的抽象化,这使得开发者可以专注于硬件的抽象化。外核心的设计极为简化,它的目标是在于同时简化传统微内核的讯息传递机制,以及整块性核心的软件抽象层。

在众多常用操作系统之中,除了QNX和基于Mach的UNIX等个别系统外,几乎全部采用单内核结构,例如大部分的Unix、Linux,以及Windows(微软声称Windows NT是基于改良的微内核架构的,尽管理论界对此存有异议)。 微内核和超微内核结构主要用于研究性操作系统,还有一些嵌入式系统使用外核!

基于单内核的操作系统通常有着较长的历史渊源。例如,绝大部分UNIX的家族史都可上溯至1960年代。该类操作系统多数有着相对古老的设计和实现(例如某些UNIX中存在着大量1970年代、1980年代的代码)。另外,往往在性能方面略优于同一应用领域中采用其他内核结构的操作系统(但通常认为此种性能优势不能完全归功于单内核结构)!

主要功能

操作系统的主要功能是资源管理,程序控制和人机交互等。计算机系统的资源可分为设备资源和信息资源两大类。设备资源指的是组成计算机的硬件设备,如中央处理器,主存储器,磁盘存储器,打印机,磁带存储器,显示器,键盘输入设备和鼠标等。信息资源指的是存放于计算机内的各种数据,如文件,程序库,知识库,系统软件和应用软件等。

操作系统位于底层硬件与用户之间,是两者沟通的桥梁。用户可以通过操作系统的用户界面,输入命令。操作系统则对命令进行解释,驱动硬件设备,实现用户要求。以现代观点而言,一个标准个人电脑的OS应该提供以下的功能:

进程管理(Processing management)

内存管理(Memory management)

文件系统(File system)

网络通讯(Networking)

安全机制(Security)

用户界面(User interface)

驱动程序(Device drivers)

资源管理

系统的设备资源和信息资源都是操作系统根据用户需求按一定的策略来进行分配和调度的。操作系统的存储管理就负责把内存单元分配给需要内存的程序以便让它执行,在程序执行结束后将它占用的内存单元收回以便再使用。对于提供虚拟存储的计算机系统,操作系统还要与硬件配合做好页面调度工作,根据执行程序的要求分配页面,在执行中将页面调入和调出内存以及回收页面等。

处理器管理或称处理器调度,是操作系统资源管理功能的另一个重要内容。在一个允许多道程序同时执行的系统里,操作系统会根据一定的策略将处理器交替地分配给系统内等待运行的程序。一道等待运行的程序只有在获得了处理器后才能运行。一道程序在运行中若遇到某个事件,例如启动外部设备而暂时不能继续运行下去,或一个外部事件的发生等等,操作系统就要来处理相应的事件,然后将处理器重新分配。

操作系统的设备管理功能主要是分配和回收外部设备以及控制外部设备按用户程序的要求进行操作等。对于非存储型外部设备,如打印机、显示器等,它们可以直接作为一个设备分配给一个用户程序,在使用完毕后回收以便给另一个需求的用户使用。对于存储型的外部设备,如磁盘、磁带等,则是提供存储空间给用户,用来存放文件和数据。存储性外部设备的管理与信息管理是密切结合的。

信息管理是操作系统的一个重要的功能,主要是向用户提供一个文件系统。一般说,一个文件系统向用户提供创建文件,撤销文件,读写文件,打开和关闭文件等功能。有了文件系统后,用户可按文件名存取数据而无需知道这些数据存放在哪里。这种做法不仅便于用户使用而且还有利于用户共享公共数据。此外,由于文件建立时允许创建者规定使用权限,这就可以保证数据的安全性。

程序控制

一个用户程序的执行自始至终是在操作系统控制下进行的。一个用户将他要解决的问题用某一种程序设计语言编写了一个程序后就将该程序连同对它执行的要求输入到计算机内,操作系统就根据要求控制这个用户程序的执行直到结束。操作系统控制用户的执行主要有以下一些内容:调入相应的编译程序,将用某种程序设计语言编写的源程序编译成计算机可执行的目标程序,分配内存储等资源将程序调入内存并启动,按用户指定的要求处理执行中出现的各种事件以及与操作员联系请示有关意外事件的处理等。

人机交互

操作系统的人机交互功能是决定计算机系统“友善性”的一个重要因素。人机交互功能主要靠可输入输出的外部设备和相应的软件来完成。可供人机交互使用的设备主要有键盘显示、鼠标、各种模式识别设备等。与这些设备相应的软件就是操作系统提供人机交互功能的部分。人机交互部分的主要作用是控制有关设备的运行和理解并执行通过人机交互设备传来的有关的各种命令和要求。

进程管理

不管是常驻程序或者应用程序,他们都以进程为标准执行单位。当年运用冯纽曼架构建造电脑时,每个中央处理器最多只能同时执行一个进程。早期的OS(例如DOS)也不允许任何程序打破这个限制,且DOS同时只有执行一个进程(虽然DOS自己宣称他们拥有终止并等待驻留(TSR)能力,可以部分且艰难地解决这问题)。现代的操作系统,即使只拥有一个CPU,也可以利用多进程(multitask)功能同时执行复数进程。进程管理指的是操作系统调整复数进程的功能。

由于大部分的电脑只包含一颗中央处理器,在单内核(Core)的情况下多进程只是简单迅速地切换各进程,让每个进程都能够执行,在多内核或多处理器的情况下,所有进程通过许多协同技术在各处理器或内核上转换。越多进程同时执行,每个进程能分配到的时间比率就越小。很多OS在遇到此问题时会出现诸如音效断续或鼠标跳格的情况(称做崩溃(Thrashing),一种OS只能不停执行自己的管理程序并耗尽系统资源的状态,其他使用者或硬件的程序皆无法执行)。进程管理通常实现了分时的概念,大部分的OS可以利用指定不同的特权等级(priority),为每个进程改变所占的分时比例。特权越高的进程,执行优先级越高,单位时间内占的比例也越高。交互式OS也提供某种程度的回馈机制,让直接与使用者交互的进程拥有较高的特权值。

内存管理

根据帕金森定律:“你给程序再多内存,程序也会想尽办法耗光”,因此程序员通常希望系统给他无限量且无限快的存储器。大部分的现代计算机存储器架构都是层次结构式的,最快且数量最少的暂存器为首,然后是高速缓存、存储器以及最慢的磁盘存储设备。而操作系统的存储器管理提供查找可用的记忆空间、配置与释放记忆空间以及交换存储器和低速存储设备的内含物……等功能。此类又被称做虚拟内存管理的功能大幅增加每个进程可获得的记忆空间(通常是4GB,即使实际上RAM的数量远少于这数目)。然而这也带来了微幅降低运行效率的缺点,严重时甚至也会导致进程崩溃。

存储器管理的另一个重点活动就是借由CPU的帮助来管理虚拟位置。如果同时有许多进程存储于记忆设备上,操作系统必须防止它们互相干扰对方的存储器内容(除非通过某些协定在可控制的范围下操作,并限制可访问的存储器范围)。分区存储器空间可以达成目标。每个进程只会看到整个存储器空间(从0到存储器空间的最大上限)被配置给它自己(当然,有些位置被操作系统保留而禁止访问)。CPU事先存了几个表以比对虚拟位置与实际存储器位置,这种方法称为标签页(paging)配置。

借由对每个进程产生分开独立的位置空间,操作系统也可以轻易地一次释放某进程所占据的所有存储器。如果这个进程不释放存储器,操作系统可以退出进程并将存储器自动释放。

虚拟内存

虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。

用户接口

用户接口包括作业一级接口和程序一级接口。作业一级接口为了便于用户直接或间接地控制自己的作业而设置。它通常包括联机用户接口与脱机用户接口。程序一级接口是为用户程序在执行中访问系统资源而设置的,通常由一组系统调用组成。

在早期的单用户单任务操作系统(如DOS)中,每台计算机只有一个用户,每次运行一个程序,且次序不是很大,单个程序完全可以存放在实际内存中。这时虚拟内存并没有太大的用处。但随着程序占用存储器容量的增长和多用户多任务操作系统的出现,在程序设计时,在程序所需要的存储量与计算机系统实际配备的主存储器的容量之间往往存在着矛盾。例如,在某些低档的计算机中,物理内存的容量较小,而某些程序却需要很大的内存才能运行;而在多用户多任务系统中,多个用户或多个任务更新全部主存,要求同时执行独断程序。这些同时运行的程序到底占用实际内存中的哪一部分,在编写程序时是无法确定的,必须等到程序运行时才动态分配。[3]

用户界面

用户界面(User Interface,简称 UI,亦称使用者界面[1])是系统和用户之间进行交互和信息交换的媒介,它实现信息的内部形式与人类可以接受形式之间的转换。

用户界面是介于用户与硬件而设计彼此之间交互沟通相关软件,目的在使得用户能够方便有效率地去操作硬件以达成双向之交互,完成所希望借助硬件完成之工作,用户界面定义广泛,包含了人机交互与图形用户接口,凡参与人类与机械的信息交流的领域都存在着用户界面。用户和系统之间一般用面向问题的受限自然语言进行交互。目前有系统开始利用多媒体技术开发新一代的用户界面。

我们平时所用的WINDOWS和MS-DOS都是微软出的,而Linux不是微软出的,Linux的最大好处是非商业软件,它的原代码是完全公开的,也就是说我们可以随自己的喜好进行编辑和修改来符合我们的使用习惯与增强它的功能。它与其他操作系统的最大区别就是它代表这自由和免费精神!

1.Linux的操作比较复杂,windows的比较简单.

Linux速度比较快,安全性比windows好

但是有很多软件只能在windows里运行

与Linux兼容的软件正在开发中.

Linux适用在网络方面.

2. 什么是Linux?

简单地说, Linux是一套免费使用和自由传播的类 Unix操作系统,它主要用于基

于 Intel x86系列 CPU的计算机上。这个系统是由世界各地的成千上万的程序员

设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自

由使用的 Unix兼容产品。 Linux的出现,最早开始于一位名叫 Linus Torvalds

的计算机业余爱好者,当时他是芬兰赫尔辛基大学的学生。他的目的是想设计一

个代替 Minix(是由一位名叫 Andrew Tannebaum的计算机教授编写的一个操作系

统示教程序)的操作系统,这个操作系统可用于 386、 486或奔腾处理器的个人

计算机上,并且具有 Unix操作系统的全部功能,因而开始了 Linux雏形的设计。

Linux以它的高效性和灵活性著称。它能够在 PC计算机上实现全部的 Unix特性,

具有多任务、多用户的能力。 Linux是在 GNU公共许可权限下免费获得的,是一

个符合 POSIX标准的操作系统。 Linux操作系统软件包不仅包括完整的 Linux操

作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有

多个窗口管理器的 X-Windows图形用户界面,如同我们使用 Windows NT一样,允

许我们使用窗口、图标和菜单对系统进行操作。

Linux与其他操作系统有什么区别:

Linux可以与 MS-DOS、 OS/2、 Windows等其他操作系统共存于同一台机器上。它

们均为操作系统,具有一些共性,但是互相之间各有特色,有所区别。

目前运行在 PC机上的操作系统主要有Microsoft的 MS-DOS、 Windows、 Windows

NT、 IBM的 OS/2等。早期的 PC机用户普遍使用 MS-DOS,因为这种操作系统对机

器的硬件配置要求不高,而随着计算机硬件技术的飞速发展,硬件设备价格越来

越低,人们可以相对容易地提高计算机的硬件配置,于是开始使用

Windows、Windows NT等具有图形界面的操作系统。 Linux是新近被人们所关注的

操作系统,它正在逐渐为 PC机的用户所接受。那么, Linux与其他操作系统的主

要区别是什么呢?下面从两个方面加以论述。

首先看一下Linux与 MS- DOS之间的区别。 在同一系统上运行 Linux和 MS-DOS

已很普遍,就发挥处理器功能来说, MS-DOS没有完全实现 x86处理器的功能,而

Linux完全在处理器保护模式下运行,并且开发了处理器的所有特性。 Linux可以

直接访问计算机内的所有可用内存,提供完整的 Unix接口。而 MS-DOS只支持部

分 Unix的接口。

就使用费用而言, Linux和 MS-DOS是两种完全不同的实体。与其他商业操作系统

相比, MS-DOS价格比较便宜,而且在 PC机用户中有很大的占有率,任何其他 PC

机操作系统都很难达到 MS-DOS的普及程度,因为其他操作系统的费用对大多数

PC机用户来说都是一个不小的负担。 Linux是免费的,用户可以从 internet上或

者其他途径获得它的版本,而且可以任意使用,不用考虑费用问题。 就操作系统

的功能来说, MS-DOS是单任务的操作系统,一旦用户运行了一个 MS-DOS的应用

程序,它就独占了系统的资源,用户不可能再同时运行其他应用程序。而 Linux

是多任务的操作系统,用户可以同时运行多个应用程序。 再看一下 Linux与

OS/2、 Windows、 Windows NT之间的区别。

从发展的背景看, Linux与其他操作系统的区别是, Linux是从一个比较成熟的

操作系统发展而来的,而其他操作系统,如 Windows NT等,都是自成体系,无对

应的相依托的操作系统。这一区别使得 Linux的用户能大大地从 Unix团体贡献中

获利。因为 Unix是世界上使用最普遍、发展最成熟的操作系统之一,它是七十年

代中期发展起来的微机和巨型机的多任务系统,虽然有时接口比较混乱,并缺少

相对集中的标准,但还是发展壮大成为了最广泛使用的操作系统之一。无论是

Unix的作者还是 Unix的用户,都认为只有 Unix才是一个真正的操作系统。

3. 首先你需要明白,Linux不是windows,它不是一个由一家商业公司维护的软件

只有一个包装。Linux是可以任意包装自由配置的东西。任何一个人,一家公司

都可以按照自己的想法,比如加一点功能,加中文支持,作一个Linux出来。这些

Linux虽然核心部分都一样,但是他们所带的各种软件,缺省的配置都不一样。区

是用一种Linux 发布 (不同的Linux我们叫做不同的发布)也许硬件很好配置,

各种软件也好安装,用另外一种也许速度快,再一种也许支持中文比较好。总之

没有白吃的午餐,在windows下想当然的东西在linux下也许需要你熬夜才能得到

所以从一开始选择distribution就必须非常小心,否则因为自己刚好随某个杂志

得到一个Linux发布就以为所有的都一样就开始安装,等硬盘数据毁了,

或者网络哭天跄地也配不出来的时候,就晚了。不是开玩笑,我知道windows下

安装驱动程序就是鼠标点几下,可是在Linux下,为了驱动一个网卡,折腾一夜

是不希奇的 -- 当然,我觉得这是值得的。

所以,面对那么多Linux distribution,你应当选择哪个呢?

比较著名的Linux distribution有:

RedHat:最新版本6.2, 7.0beta。由于RedHat公司已经上市,获得了很多

商业的支持,所以它在硬件软件兼容性上很好。实际上它已经是Linux的

工业标准。想象一下如果你是一个比如Oracle这样厂商的老板,你需要为

Linux开发一个版本,而不同的Linux dist需要单独开发维护,为成本考虑你

自然会只认准一个Linux。

Slackware(7.1)。很早就有的Linux,有很多老的忠实用户,但现在越来越不行了

SuSe Linux,德国人做的,在欧洲很流行,有一些驱动上的优势。

另外还有Debian,CorelLinux等dist,不一一介绍了。

还有你会看到国内媒体上吹捧的各种“中文Linux”,他们的优势主要是有

中文处理。但是如前一篇文章提到的,想用中文,用windows 2000最好。实际上

我觉得一个老7字班的前辈跟我说的一句话很好:“(对我们来说)在计算机上看

中文本身就是一件很古怪的事情”。如果你是抱着学习计算机的目的而来,那么

你不可能避免阅读英文文档。即使是microsoft的文档,有关编程的文档,最新的

全是英文。当然,要上BBS,看中文网页等,用英文的dist一样能做到

4. Linux和Windows的区别

和Linux 一样,Windows系列是完全的多任务操作系统。它们支持同样的用户接口

、网络和安全性。但是,Linux和Windows的真正区别在于,Linux 事实上是Unix

的一种版本,而且来自Unix的贡献非常巨大。是什么使得Unix如此重要?不仅在

于对多用户机器来说,Unix是最流行的操作系统,而且在于它是免费软件的基础

。在Internet上,大量免费软件都是针对Unix系统编写的。由于有众多的Unix厂

商,所以Unix也有许多实现方法。没有一个单独的组织负责Unix的分发。现在,

存在一股巨大的力量推动Unix社团以开放系统的形式走向标准化。另一方面Windo

ws系列是专用系统,由开发操作系统的公司控制接口和设计。在这个意义上这种

公司利润很高,因为它对程序设计和用户接口设计建立了严格的标准,和那些开

放系统社团完全不一样。一些组织正在试图完成标准化Unix程序设计接口的任务

。特别要指出的是,Linux完全兼容POSIX.1标准。

安全问题对于IT管理员来说是需要长期关注的。主管们需要一套框架来对操作系

统的安全性进行合理的评估,包括:基本安全、网络安全和协议,应用协议、发

布与操作、确信度、可信计算、开放标准。在本文中,我们将按照这七个类别比

较微软Windows和Linux的安全性。最终的定性结论是:目前为止,Linux提供了相

对于Windows更好的安全性能,只有一个方面例外(确信度)。

无论按照什么标准对Windows和Linux进行评估,都存在一定的问题:每个操作系

统都不止一个版本。微软的操作系统有Windows98、 Windows NT、 Windows 2000

、 Windows 2003 Server和Windows

CE,而Linux的发行版由于内核(基于2.2、2.4、2.6)的不同和软件包的不同也

有较大的差异。我们本文所使用的操作系统,都是目前的技术而不是那些"古老"

的解决方案。

用户需要记住:Linux和Windows在设计上就存在哲学性的区别。Windows操作系统

倾向于将更多的功能集成到操作系统内部,并将程序与内核相结合;而Linux不同

于Windows,它的内核空间与用户空间有明显的界限。根据设计架构的不同,两者

都可以使操作系统更加安全。

Linux和Windows安全性的基本改变

对于用户来说,Linux和Windows的不断更新引发了两者之间的竞争。用户可以有

自己喜欢的系统,同时也在关注竞争的发展。微软的主动性似乎更高一些――这

是由于业界"冷嘲热讽"的"激励"与Linux的不断发展。微软将在下几个月对Window

s安全进行改观,届时微软会发布Windows XP的WindowsXP Service Pack 2。这一

服务包增强了Windows的安全性,关闭了原先默认开放的许多服务,也提供了新的

补丁管理工具,例如:为了避免受到过多无用的信息,警告服务和信使服务都被

关闭。大多数情况下,关闭这些特性对于增强系统安全性是有好处的,不过很难

在安全性与软件的功能性、灵活性之间作出折衷。

最显著的表现是:微软更加关注改进可用性的同时增强系统的安全性。比如:200

3年许多针对微软的漏洞攻击程序都使用可执行文件作为电子邮件的附件(例如My

Doom)。Service Pack2包括一个附件执行服务,为Outlook/Exchange、 Windows

Messenger和Internet Explorer提供了统一的环境。这样就能降低用户运行可执

行文件时感染病毒或者蠕虫的威胁性。另外,禁止数据页的可执行性也会限制潜

在的缓冲区溢出的威胁。不过,微软在WindowsXP Service Pack

2中并没有修改Windows有问题的架构以及安全传输的部分,而是将这部分重担交

给了用户。

微软的重点显然是支持应用程序的安全性。WindowsXP Service Pack 2中增强的

许多方面都是以Outlook/Exchange和Internet

Explorer作为对象的。例如:Internet Explorer中有一个智能的MIME类型检查,

会对目标的内容类型进行检查,用户可以获悉该内容中是否存在潜在的有害程序

。不过这一软件是不是能将病毒与同事的电子数据表区分开来呢?

WindowsXP Service Pack 2的另一个新特性是能够卸载浏览器的多余插件,这需

要终端用户检查并判断需要卸载哪些插件。Outlook/Exchange可以预览电子邮件

消息,因此用户可以在打开之前就将电子邮件删除。另一个应用安全的增强,防

火墙在网络协议栈之前启动。对于软件开发者来说,远方过程调用中权限的改变

,使得安全性差的代码难以工作正常。

WindowsXP Service Pack 2也为Windows用户提供了许多华丽的新特性,但是问题

仍然存在:这些特性会不会对管理员甚至是终端用户造成负担?是不是在增加了W

indows操作系统代码安全性的同时让系统变得更加复杂?

Linux 与 Windows 的不同

虽然有一些类似之处,但Windows和Linux的工作方式还是存在一些根本的区别。

这些区别只有在您对两者都很熟悉以后才能体会到,但它们却是 Linux 思想的核

心。

Linux 的应用目标是网络而不是打印

Windows最初出现的时候,这个世界还是一个纸张的世界。Windows的伟大成就之

一在于您的工作成果可以方便地看到并打印出来。这样一个开端影响了 Windows

的后期发展。

同样,Linux 也受到了其起源的影响。Linux 的设计定位于网络操作系统。它的

设计灵感来自于 Unix 操作系统,因此它的命令的设计比较简单,或者说是比较

简洁。由于纯文本可以非常好地跨网络工作,所以 Linux 配置文件和数据都以文

本为基础。

对那些熟悉图形环境的人来说,Linux服务器初看可能比较原始。但是Linux开发

更多关注的是它的内在功能而不是表面上的东西。即使是在纯文本的环境中,Lin

ux同样拥有非常先进的网络、脚本和安全能力。执行一些任务所需的某些表面上

看起来比较奇怪的步骤是令人费解的,除非您认识到 Linux 是期望在网络上与其

他 Linux系统协同执行这些任务。Linux的自动执行能力也很强,只需要设计批处

理文件就可以让系统自动完成非常详细的任务。Linux 的这种能力来自于其基于

文本的本质。

可选的 GUI

Linux有图形组件。Linux支持高端的图形适配器和显示器,完全胜任图形相关的

工作。现在,许多数字效果艺术家在Linux工作站上来进行他们的设计工作,而以

前这些工作需要使用IRIX系统来完成。但是,图形环境并没有集成到 Linux 中,

而是运行于系统之上的单独一层。这意味着您可以只运行 GUI,或者在需要时才

运行 GUI。如果您的系统主要任务是提供Web应用,那么您可以停掉图形界面,而

将其所用的内存和CPU资源用于您的服务。如果您需要在 GUI 环境下做一些工作

,可以再打开它,工作完成后再将其关闭。

Linux 有图形化的管理工具,以及日常办公的工具,比如电子邮件、网络浏览器

和文档处理工具等。不过,在 Linux 中,图形化的管理工具通常是控制台 (命令

行) 工具的扩展。也就是说,用图形化工具能完成的所有工作,用控制台命令同

样可以完成。同样,使用图形化工具并不妨碍您对配置文件进行手工修改。其实

际意义可能并不是特别显而易见,但是,如果在图形化管理工具中所做的任何工

作都可以以命令行的方式完成,这就表示那些工作也可以由一个脚本来实现。脚

本化的命令可以成为自动执行的任务。Linux 同时支持这两种方式,并不要求您

只用文本或者只用 GUI。您可以根据您的需要选择最好的方法。

Linux 中的配置文件是人类可读的文本文件,这与过去的 Windows 中的 INI 文

件类似,但与 Windows 的注册表机制在思路上有本质的区别。每一个应用程序都

有其自己的配置文件,而且通常不与其他的配置文件放在一起。不过,大部分的

配置文件都存放于一个目录树 (/etc) 下的单个地方,所以看起来它们在逻辑上

是在一起。文本文件的配置方式使得不通过特殊的系统工具就可以完成配置文件

的备份、检查和编辑工作。

文件名扩展

Linux不使用文件名扩展来识别文件的类型。相反,Linux根据文件的头内容来识

别其类型。为了提高人类可读性您仍可以使用文件名扩展,但这对 Linux 系统来

说没有任何作用。不过,有一些应用程序,比如 Web 服务器,可能使用命名约定

来识别文件类型,但这只是特定的应用程序的要求而不是 Linux 系统本身的要求

Linux通过文件访问权限来判断文件是否为可执行文件。任何一个文件都可以赋予

可执行权限,这样程序和脚本的创建者或管理员可以将它们识别为可执行文件。

这样做有利于安全。保存到系统上的可执行的文件不能自动执行,这样就可以防

止许多脚本病毒。