当前位置:首页 > 站长推荐 > 你知道 Windows 系统到底有多复杂吗?

你知道 Windows 系统到底有多复杂吗?

Microsoft Windows问世于1985年,起初仅仅是Microsoft-DOS模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统。

你知道 Windows 系统到底有多复杂吗?

下面我们从代码行数、开发难度,参与人员的数量,开发的时间长度等角度来说说,一个windows系统有多复杂。

  • Windows XP 大约40,000,000行代码。
  • Windows Vista 大约50,000,000行代码。
  • Windows 7 大约50,000,000行代码。

Windows 7开发的时候有23个小组,每个小组约40人,也就是将近1000人。这仅仅是Windows团队的人数,其余为其做出贡献的更是数不胜数。

这23个团队是:

  • Applets and Gadgets (小程序和边栏应用)
  • Assistance and Support Technologies (协助和支持技术)
  • Core User Experience (核心用户体验)
  • Customer Engineering and Telemetry (用户工程和遥测)
  • Deployment and Component Platform? (部署和组件平台)
  • Desktop Graphics (桌面图形)
  • Devices and Media (设备和媒体)
  • Devices and Storage (设备和存储)
  • Documents and Printing (文档和打印)
  • Engineering System and Tools (工程系统和工具)
  • File System (文件系统)
  • Find and Organize (查找与组织)
  • Fundamentals (基础)
  • Internet Explorer (包括IE8 down-level)
  • International (国际化)
  • Kernel & VM (内核与虚拟机)
  • Media Center (媒体中心)
  • Networking – Core (网络 – 核心)
  • Networking – Enterprise (网络 – 企业)
  • Networking – Wireless (网络 – 无线)
  • Security (安全)
  • User Interface Platform (用户界面平台)
  • Windows App Platform (Windows 应用平台)

Windows Vista 代码行数约5000万行,算上修正掉的代码估计超过一亿行。内部版本超过上千个。。。每个版本都有所测试。。。为其做出贡献的正式工合约工临时工超过数万人。大概的工程量可能和胡夫金字塔相当。

按照Word标准A4纸默认打印+Consolas字体+默认字号,每页A4纸可以打印44行代码。考虑到折行问题(假设有30%的代码行数在A4纸上一行打印不完),1.3*5000w=6500w行代码。大概需要148万张A4纸才能打印完。每张A4纸长29.7厘米,算起来大概是4440w厘米,也就是44w米,440公里,这还不算上各种修正掉的代码和之后的补丁。

这是2015年5月5日的Windows 8.1 Pro + VS后的Windows文件夹大小:

Windows 8.1 Pro + VS后的Windows文件夹大小

导航到Windows文件夹,右键,属性。

看到那个数字一直往上走,就算是完全的外行也已经是超级震撼了。

服务列表

注册表

这还没有全部展开,但看那个滑块……

十年发展,XP当年装一下几个G搞定,现在Win8代码量已经上亿。然而,经历了这么多个版本的迭代,十年前的软件一个字节不改,放到十年后的系统一样能完美运行。开发人员的呕心沥血,看不见的复杂度,恕我无法用语言描述。这是Windows给我最大的震撼。

PS:整理自互联网

  • << Google、微软、苹果的优点和弱点是什么?
  • 站长之家CEO姚剑军创业故事分享 >>
  • 作者:
    除非注明,本文原创:知道91,欢迎转载!转载请以链接形式注明本文地址,谢谢。
    原文链接:http://www.zhidao91.com/how-complex-windows-system/

    相关文章 近期热评 最新文章

    • 使用微信JDK实现微信接口签名验证
      要使用微信的接口必须在绑定的域名下测试;签名必须先向微信请求到access_token,然后用access_token再去请求jsapi_ticket,最后用jsapi_ticket和相关的参数按照ASCII码...
    • oracle数据库相关操作注意事项
      修改Oracle SGA(共享内存) 很多网站说修改Oracle的内存通过命令 如果你这么做了,那么恭喜你,你的Oracle数据库无法启动了。如果你已经这么做了,恢复Oracle启动的方...
    • oracle数据库相关操作注意事项
      修改Oracle SGA(共享内存) 很多网站说修改Oracle的内存通过命令 如果你这么做了,那么恭喜你,你的Oracle数据库无法启动了。如果你已经这么做了,恢复Oracle启动的方...
    • 使用微信JDK实现微信接口签名验证
      要使用微信的接口必须在绑定的域名下测试;签名必须先向微信请求到access_token,然后用access_token再去请求jsapi_ticket,最后用jsapi_ticket和相关的参数按照ASCII码...
    • ABP开发指南系列教程(2) – 多层架构...
      为了减少复杂性和提高代码的可重用性,采用分层架构是一种被广泛接受的技术。为了实现分层的体系结构,ABP遵循DDD(领域驱动设计)的原则,将工程分为四个层: 展现层(...
    • ABP开发指南系列教程(1) – 入...
      ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称。 ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程序的新起点,它旨在成为一个通用的WE...
    • Windows下 JIRA + Agile + Mysql 破解...
      本文讲述了Windows下 JIRA + Agile + Mysql 破解安装示例教程
    • c#类的构造函数继承关系示例剖析
      本文通过示例代码讲解了c#子类的构造函数与父类的关系,子类怎样集成父类的构造函数的。