微软Windows生态是怎么打造成功的?

news2025/1/17 15:32:50

(1)2015年Windows10:兼容性

我不得不再次佩服一下微软,Windows10是2015年出品的,但是仍然能正常运行绝大多数的Windows95软件,不用做任何的适配修改,连重新编译都不用,运行照样正常。这对于Open API的设计功力要求得多高啊。我们做软件的都知道,一个接口,随时使用的人多、各色需求就越多,不得不需要修订接口,一般人修订着修订着就没法保持向下兼容性了。但微软却做到了。

这种开放兼容性不仅体现在向上的应用软件层,也体现在向下的硬件层。微软操作系统能兼容那么多各色硬件,这操作系统的北向接口设计、南向接口设计,这功力太佩服了。我在网上见过视频:有人在奔腾II电脑上安装正常使用windows10,要知道奔腾II CPU是1997年发布的。

不过也不用把微软吹的这么神,毕竟微软是在IBM的前人栽树后人乘凉下干活的。如果不是IBM为了遏制对抗苹果在1981年振臂一挥创建了兼容个人电脑工业标准结构,微软也未必干的这么顺手。

(2)1995年Office95:微软自己的努力

一个操作系统,如果上面没有什么浏览器、记事本、画图、播放器、挖地雷游戏,你一开机你还真不知道能干点啥。

微软Office一开始是首发在苹果电脑上的,这也是苹果电脑能够风靡的原因之一(当然,更重要的原因是苹果公司把GUI交互技术最先规模化商业化地推向了市场)。

我是蛮佩服微软的,因为世界上既能做好系统级软件(操作系统、编程语言、数据库),还能做好应用软件的公司,很少很少,因为设计哲学和工作模式不一样。但微软算一个。

(3)1995年Windows95:双浪叠加的历史机遇

一、局域网

Windows95非常简便的点对点联网技术,可以使若干台个人电脑很容易联在一起玩局域网游戏(如微软收购的游戏工作室帝国时代,这个很重要),太胜过当时的PC机联网技术:Novell。

二、互联网

1995年正值Web互联网热潮爆发。windows95免费捆绑IE浏览器,打败了商业软件网景浏览器。

1995年,微软通的一声,爆发了,爆的按都按不住。

(4)1995年WindowsNT:虎将

没有windows95客户端操作系统如此简单的联网,也很难把WindowsNT这个服务器软件市场引出来。

WindowsNT给微软带来的价值有多高,都不可想象。不管是服务器端,还是后来的微软的客户端操作系统,都是WindowsNT的内核在跑。如果不是盖茨从著名的小型机厂商DEC挖来VAX操作系统负责人卡特勒,那就没有这些故事。另外我再说一个八卦:卡特勒和微软网络技术研发组的负责人互相看不上,导致鲍尔默整天做和事佬。要知道这三个人可都是暴脾气,就看谁能暴过谁。

WindowsNT服务器操作系统开启了和Windows客户端操作系统一起配合局域网C/S模式的时代。

但有两个神助攻,也功不可没。

一个是Sybase公司,它和微软一开始合作开发基于OS/2的数据库软件,后来微软不做OS/2而改做NT了,这个合作就破产了。但微软却学会了研发数据库软件,于是出现了MS SQLSERVER。

一个是Anders,他是Delphi的创造者,后来被盖茨挖到了微软,这才有了微软后来的编程语言:C#。当年,VB、PB、Delphi是Windows平台上开发C/S数据库管理系统最好的三种编程语言。而PB就是Sybase公司的。

于是,Windows95+局域网+编程语言(VB/PB/Delphi)+SQLServer+WindowsNT,微软占住了服务器软件市场。

回头来看,微软没赶上Web互联网(虽然它搞了MSN门户、MSN Messager、MySpace社交网络、bing搜索,也并购了Hotmail邮箱通信服务、Skype语音通信服务、LinkedIn商业社交网络),微软也没赶上移动互联网时代(虽然微软并购了Nokia手机硬件,自己也研发了WindowsPhone操作系统),但微软确实紧紧抓住了局域网时代,这就是我为什么强调Windows95点对点联网技术,以及Windows95和WindowsNT简便联网的原因。如果没有网络卷入效应,光靠Windows GUI单机,守不住。

cef2951ba5570a05ff4352adffb68f57.jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1442028.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AcWing 1224 交换瓶子(简单图论)

[题目概述] 有 N 个瓶子,编号 1∼N,放在架子上。 比如有 5 个瓶子: 2 1 3 5 4 要求每次拿起 2 个瓶子,交换它们的位置。 经过若干次后,使得瓶子的序号为: 1 2 3 4 5 对于这么简单的情况,显然&a…

mysql8.0 正值表达式Regular expressions (sample database classicmodels _No.5)

mysql8.0 正值表达式Regular expressions 准备工作,可以去下载 classicmodels 数据库资源如下 [ 点击:classicmodels] (https://download.csdn.net/download/tomxjc/88685970) 也可以去我的博客资源下载 https://download.csdn.net/download/tomxjc/8…

Eclipse导入maven项目或者创建maven项目时,报错Could not calculate build plan: Plugin

问题&#xff1a;Eclipse导入maven项目或者创建maven项目时,报错Could not calculate build plan: Plugin 1.上述问题大概是项目不能加载此maven插件&#xff0c;在pom文件中添加依赖项 <dependency><groupId>org.apache.maven.plugins</groupId><artifa…

JetpackCompose之状态管理

JetPack Compose系列&#xff08;13&#xff09;—状态管理 State 即&#xff0c;状态。官方的解释是&#xff1a; State in an application is any value that can change over time. And ****event can notify a part of a program that something has happened. 可以这样…

发廊理发店微信小程序展示下单前端静态模板源码

模板描述&#xff1a;剪发小程序前端源码&#xff0c;一共五个页面&#xff0c;包括店铺、理发师、订单、我的等页面 注&#xff1a;该源码是前端静态模板源码&#xff0c;没有后台和API接口

代码随想录算法训练营第四十六天(动态规划篇)|01背包(滚动数组方法)

01背包&#xff08;滚动数组方法&#xff09; 学习资料&#xff1a;代码随想录 (programmercarl.com) 题目链接&#xff08;和上次一样&#xff09;&#xff1a;题目页面 (kamacoder.com) 思路 使用一维滚动数组代替二维数组。二维数组的解法记录在&#xff1a;代码随想录算…

106. 从中序与后序遍历序列构造二叉树 - 力扣(LeetCode)

题目描述 给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 题目示例 输入&#xff1a;inorder [9,3,15,20,7], postorder [9,15,7,20,3] 输出&a…

嵌入式学习之Linux入门篇笔记——18,makefile基本语法(下)

配套视频学习链接&#xff1a;http://【【北京迅为】嵌入式学习之Linux入门篇】 https://www.bilibili.com/video/BV1M7411m7wT/?p4&share_sourcecopy_web&vd_sourcea0ef2c4953d33a9260910aaea45eaec8 1.wildcard 函数 格式&#xff1a;$&#xff08;wildcard PAT…

Ivanti Pulse Connect Secure VPN SSRF(CVE-2023-46805)漏洞

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

maven-install-plugin:2.4:install (default-cli) on project ability-dispatch:

IDEA&#xff0c;instal时报错 &#xff0c;错误 信息如下&#xff1a; Failed to execute goal org.apache.maven.plugins:maven-install-plugin:2.4:install (default-cli) on project ability-dispatch: The packaging for this project did not assign a file to the buil…

使用 devc++ 开发 easyx 实现 Direct2D 交互

代码为 codebus 另一先生的 文案 EasyX 的三种绘图抗锯齿方法 - CodeBus 这里移植到 devc 移植操作如下&#xff1a; 调用dev 的链接库方式&#xff1a; project -> project option -> 如图所示 稍作修改的代码。 #include <graphics.h> #include <d2d1.…

Onerugged三防平板厂家丨三年质保承诺丨三防平板PAD

行业领先产品——Onerugged三防平板。凭借着十年的经验&#xff0c;我们深知终端设备在各个行业中的重要性&#xff0c;因此致力于为用户提供高可靠性的解决方案。 Onerugged三防平板以其卓越的性能和全方位的保护功能&#xff0c;在市场上脱颖而出。首先&#xff0c;它拥有IP…

路由引入路由过滤排错

目录 排错网络拓扑图 排错需求 故障排错 故障一 故障二 故障三 排错网络拓扑图 排错需求 按照图示配置 IP 地址&#xff0c;总部和分支 A、分支 B 各自使用 loopback 口模拟业务网段公司业务流分为 A 流和 B 流&#xff0c;网段如图所示总部内部配置 OSPF 互通&#xff0…

Linux笔记之expect和bash脚本监听输出并在匹配到指定字符串时发送中断信号

Linux笔记之expect和bash脚本监听输出并在匹配到指定字符串时发送中断信号 code review! 文章目录 Linux笔记之expect和bash脚本监听输出并在匹配到指定字符串时发送中断信号1.expect2.bash 1.expect 在Expect脚本中&#xff0c;你可以使用expect来监听程序输出&#xff0c;…

[红日靶机渗透] ATKCK红队评估实战靶场三

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【ATK&CK红队评估实战靶场】 【VulnHub靶场复现】【面试分析】 &#x1f…

K210如何下载程序

一、打开资料包里提供的K-Flash程序烧录软件 二、选择串口 三、选择波特率 四、选择In-Chip&#xff0c;烧录到Flash芯片里面&#xff0c;重新上电还会运行程序 五、如果选择In - Memory&#xff0c;这次可以运行&#xff0c;但下次重新上电就不会保持这次的程序了。 六、选择固…

第三百一十回

我们在上一章回中介绍了"再谈ListView中的分隔线"&#xff0c;本章回中将介绍showMenu的用法.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们在第一百六十三回中介绍了showMenu相关的内容&#xff0c;它主要用来显示移动PopupMenu在页面中的位置…

C语言每日一题(52)单值二叉树

力扣网 965 单值二叉树 题目描述 如果二叉树每个节点都具有相同的值&#xff0c;那么该二叉树就是单值二叉树。 只有给定的树是单值二叉树时&#xff0c;才返回 true&#xff1b;否则返回 false。 示例 1&#xff1a; 输入&#xff1a;[1,1,1,1,1,null,1] 输出&#xff1a;t…

【黑马程序员】程序的内存模型

文章目录 内存分区模型分区意义代码区全局区特点代码示例 栈区特点代码示例 堆区特点代码示例 new 操作符 20240209 内存分区模型 分区意义 不同区域存放的数据&#xff0c;赋予不同的生命周期&#xff0c;给我们更大的灵活编程 代码区 处于程序未执行之前 程序编译后生成的…

Windows 安装 Linux子系统,并为子系统设置图形化界面

安装WSL 在控制面板中打开下面的选项&#xff1a; 执行下面的命令&#xff0c;更新到WSL2版本&#xff0c;并在以后创建子系统的时候默认采用WSL2的版本&#xff1a; wsl --update wsl --set-default-version 2在Window上安装连接工具&#xff1a; 在Window上下载VcXsrv&…