加里·基尔代尔:CP/M之父与个人计算时代的先驱
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》
创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊)
加里·基尔代尔:CP/M之父与个人计算时代的先驱
一、早年生活与教育背景
1. 家庭背景
加里·阿伦·基尔代尔(Gary Arlen Kildall)1942年5月19日出生于美国华盛顿州西雅图市,他的父亲约瑟夫·基尔代尔(Joseph Kildall)是一位挪威血统的船长,家族经营一所航海学校。
他的母亲艾玛有一半的瑞典血统,他的祖母出生在瑞典斯凯勒夫特奥市的朗贝克,23岁时移民到了加拿大。这样的家庭背景为基尔代尔提供了独特的成长环境,在西雅图的雨城,年轻的基尔代尔对电子设备产生了浓厚的兴趣。
图片:加里·基尔代尔
2. 学术之路
基尔代尔在西雅图度过了童年,对电子学和计算有着天生的好奇心。他后来进入华盛顿大学攻读计算机科学专业,在那里他的创新天赋开始展露头角。在华盛顿大学期间,他对计算机科学的热情和创新能力开始扎根发展。毕业后,他短暂地回到华盛顿大学,并于1972年获得了计算机科学博士学位。在此期间,英特尔公司借给他使用8008和8080处理器的系统,为他后来的技术发展奠定了基础。
二、技术创新与CP/M的诞生
1. 从PL/M到CP/M
作为英特尔公司的顾问,基尔代尔编写了关键的编程语言工具,支持该公司在1971年推出的微处理器芯片。1973年,基尔代尔开发了第一种面向微处理器的高级编程语言PL/M(Programming Language for Microcomputers),同年他与Kathryn Strutynski一起开发了PL/M语言来生产CP/M,这是个人计算机最早的操作系统之一。
2. CP/M的突破性意义
1974年,基尔代尔发明了CP/M(Control Program for Microcomputers),这是第一个能够在新兴桌面平台上运行的操作系统。不久之后,他创建了BIOS(Basic Input Output System),使CP/M能够轻松与不同的计算机硬件接口。CP/M很快成为早期个人电脑领域的事实标准操作系统。
CP/M被形象地描述为一个"软件总线",允许多个程序以标准化的方式与不同的硬件交互。为CP/M编写的程序通常可以在不同的机器上移植,通常只需要指定控制屏幕和打印机的转义序列。这种可移植性使CP/M大受欢迎,为CP/M编写的软件比仅在一种硬件上运行的操作系统要多得多。
三、Digital Research公司的创立与发展
1. 公司的诞生
基尔代尔和他的妻子多萝西(Dorothy)建立了一家公司,最初叫做"星际数字研究"(Intergalactic Digital Research),后来改名为数字研究公司(Digital Research, Inc.),通过在业余爱好者杂志上刊登广告来推广CP/M操作系统。
图片:Digital Research
2. CP/M的商业成功
Digital Research为IMSAI 8080(Altair 8800的一个流行克隆版)授权使用CP/M。随着更多制造商获得CP/M许可,它成为了一个事实上的标准,并且必须支持越来越多的硬件变种。为了解决这个问题,基尔代尔开创了BIOS的概念,这是一组存储在计算机硬件(ROM或EPROM芯片)中的简单程序,使CP/M能够在不同系统上运行而无需修改。
3. 高峰时期
到1981年,在其受欢迎程度的巅峰时期,CP/M在3000种不同的计算机型号上运行,DRI(Digital Research, Inc.)的年收入达到540万美元。CP/M成为了早期个人计算机行业的关键组成部分,为后来的操作系统发展奠定了基础。
四、与IBM和Microsoft的故事
1. 关键的错失机会
1980年,盖瑞曾飞往奥克兰与一位重要客户会面,按计划返回讨论技术问题。会议最终因财务条件而陷入僵局。IBM希望完全购买CP/M,而DRI则寻求按复制付费的版税,以保护其现有的业务基础。这次会面的失败为后来的个人计算机行业格局带来了深远影响。
2. 误传与事实
关于基尔代尔与IBM会面的故事有很多误传。科技行业的一个都市传说称,基尔代尔去飞行而不是与IBM会面,因此导致IBM推广微软的劣质操作系统,改变了计算机历史的进程。这个故事是不真实的。实际上,谈判失败的原因更为复杂,涉及到商业模式和技术路线的分歧。
3. 微软崛起的转折点
在与DRI的谈判陷入僵局后,盖茨尝试直接购买CP/M,但基尔代尔拒绝了,而是以每份2.50美元的价格出售了10,000个许可证。随后,IBM转向了由比尔·盖茨和保罗·艾伦领导的微软公司,这一决定最终使MS-DOS成为了个人电脑的标准操作系统,而CP/M的影响力逐渐减弱。
五、技术贡献与创新精神
1. 操作系统的革命性设计
在基尔代尔开发CP/M之前,计算机制造商提供的专有应用软件只能在他们自己的硬件上工作。所有程序都必须从头开始编写,才能在每个独特的机器配置上运行。CP/M的设计改变了这一点,它允许使用英特尔8080微处理器的任何制造商的计算机系统运行第三方供应商编写的应用程序。
2. BIOS的创新
基尔代尔的BIOS概念是他最重要的技术贡献之一。1976年的1.3版是第一个包含BIOS(Basic Input Output System)代码的版本,这使得为不同的计算机修改软件变得容易。这一创新使得硬件独立性成为可能,极大地促进了个人计算机产业的发展。
3. 教育与分享精神
基尔代尔对编程语言的教育从未减弱!他始终致力于教育他人关于编程语言的知识;领导专门针对教学学生编码和软件工程领域原理的研讨会!这种在渴望学习者中分享知识的渴望,说明了他的使命远超过了通常在其他行业看到的单纯利润最大化目标。
六、晚年生活与遗产
1. 电视节目与公众教育
在20世纪80年代,基尔代尔还在PBS上担任《计算机编年史》(Computer Chronicles)的联合主持人,这是一个每周信息节目,报道个人计算领域的最新发展。通过这个平台,他向更广泛的公众传播了计算机知识,推动了个人计算机的普及。
2. 不幸离世
1994年7月11日,加里·基尔代尔,这位美国计算机科学家,Digital Research的创始人,在52岁时不幸离世(生于1942年)。尽管他的生命相对短暂,但他在个人计算机行业的开创性工作为后来的技术发展奠定了坚实的基础。
3. 技术遗产与荣誉
1995年3月,基尔代尔被软件出版商协会(SPA)追授荣誉,表彰他对微型计算机行业的贡献:第一种专门为微处理器设计的编程语言和编译器:PL/M(1973年);第一个微处理器磁盘操作系统,最终售出四分之一百万份:CP/M(1974年);通过在一组BIOS例程中隔离系统特定的硬件接口,创建了第一个成功的开放系统架构(1975年)。
七、对今日计算机世界的影响
1. 开放标准的先驱
基尔代尔对计算机科学的影响至今仍然深远。他在创建用户友好的操作系统和软件方面的开创性努力彻底改变了人们与计算机互动的方式。基尔代尔的遗产作为创新力量的证明,为未来几代计算机科学家和创新者提供了灵感来源。
2. 现代操作系统的基础
50年前,个人电脑软件先驱加里·基尔代尔"在加利福尼亚州太平洋格罗夫演示了CP/M,这是第一个商业上成功的个人电脑操作系统"。这一创新为后来的Windows、macOS和Linux等现代操作系统奠定了概念基础,尤其是在硬件抽象和系统架构方面。
3. 创新精神的传承
基尔代尔的创新操作系统CP/M成为早期个人电脑的基石。他与早期PC制造商的合作帮助确立了CP/M作为微型计算机操作系统的流行选择。CP/M的成功一飞冲天,其用户友好的界面和广泛的兼容性使其成为许多计算机用户的首选。这种创新和开放的精神,至今仍然是科技行业的重要价值观。
八、结语:被低估的计算机革命英雄
加里·基尔代尔是个人计算机行业的创始人之一,但你可能不知道他的名字。那些听说过他的人可能会想起那个他"错过"成为比尔·盖茨的机会的神话,因为他去飞行而不是与IBM会面。然而,真相比这个简化的故事要复杂得多。
基尔代尔的技术远见和创新精神为个人计算机时代的到来铺平了道路。他创造的CP/M和BIOS概念至今仍然影响着计算机架构。在追逐商业成功的科技行业中,基尔代尔的动机是技术卓越,而不是主宰他的同胞。这种纯粹的技术创新精神,使他成为了一位被低估的计算机革命英雄,他的遗产将继续启发未来的创新者。
专栏✅:《计算机名人堂》,欢迎订阅催更,谢谢大家支持!
创作者:Code_流苏(CSDN)
相关文章:

加里·基尔代尔:CP/M之父与个人计算时代的先驱
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 加里基尔代尔:CP/M之父与个人计算时代的先驱 一、早年生活与教育背景 1.…...

静态多态和动态多态的区别
C多态机制深度解析 多态是面向对象编程的核心特性,允许通过统一接口执行不同实现。在C中,多态表现为基类指针或引用调用虚函数时,根据实际对象类型执行对应派生类的函数逻辑。 基础实现示例 定义基类与派生类,演示动态绑定…...
MQL5教程 06 EA开发实战
文章目录 一、调用多指标多周期EA示例二、获取ZigZag顶点值三、逆势加仓EA 一、调用多指标多周期EA示例 shuju.mqh: class shuju{public:shuju(){} ~shuju(){}void MA(double &ma[],int count,string symbol, // 交易品种名称 ENUM_TIMEFRA…...
LLaMa Factory大模型微调
LLaMa Factory大模型微调 大模型微调平台&硬件LLaMA-Factory安装hfd下载hugging face模型自我认知微调Alpaca数据集指令监督微调断点续训 大模型微调 微调自我认知微调特定领域数据集。 平台&硬件 Ubuntu20.04显卡:M40 24G 2080TI 22G微调框架ÿ…...

Burp靶场JWT学习笔记1
JWT(JSON Web Token) 从其名字就可以看出来,它具有表示身份的作用,其本质是将用户信息储存到一串json字符串中再将其编码得到一串token JWT由三部分组成,分别是 Header,Payload,Signatrue JWTBase64(Header).Base6…...

C++?类和对象(下)!!!
一、前言 在之前我们已经讨论过了有关类和对象的前置知识以及类中的六大默认成员函数,在本期我们继续再讨论类和对象中剩余的友元、初始化列表等相关知识,如果需要再了解之前的知识的话,链接奉上:C?类和对象࿰…...

FastAPI 零基础入门指南:10 分钟搭建高性能 API
一、为什么选择 FastAPI? 想象一下,用 Python 写 API 可以像搭积木一样简单,同时还能拥有媲美 Go 语言的性能,这个框架凭借三大核心优势迅速风靡全球: 开发效率提升 3 倍:类型注解 自动文档,…...
prometheus通过Endpoints自定义grafana的dashboard模块
1、prometheus自定义的dashboard模块 文件路径/etc/prometheus/config_out/prometheus-env.yaml - job_name: serviceMonitor/monitoring/pfil/0honor_labels: falsekubernetes_sd_configs:- role: endpointsnamespaces:names:- monitoringrelabel_configs:- source_labels:- …...

机器人新革命:Pi 0.5如何让智能走进千家万户
在科技飞速发展的今天,机器人技术正在以一种令人惊喜的方式贴近我们的生活。最近,Physical Intelligence 公司推出了 Pi 0.5 版本,这一创新设计不仅颠覆了传统机器人的运作模式,更让我们看到了未来智能设备融入日常生活的无限可能…...
std::mutex底层实现原理
std::mutex是一个用于实现互斥访问的类,其具备两个成员函数——lock和unlock 锁的底层实现原理 锁的底层实现是基于原子操作的,这些原子操作是由指令支持的,因为单个指令是不能被中断的 一些与锁的实现有关的原子指令为: 待补充…...

从数据结构说起(一)
1 揭开数据结构神奇的面纱 1.1 初识数据结构 在C的标准库模板(Standard Template Library,STL)课程上,我初次结识了《数据结构》。C语言提供的标准库模板是面向对象程序设计与泛型程序设计思想相结合的典范。所谓的泛型编程就是编写不依赖于具…...
【后端】构建简洁的音频转写系统:基于火山引擎ASR实现
在当今数字化时代,语音识别技术已经成为许多应用不可或缺的一部分。无论是会议记录、语音助手还是内容字幕,将语音转化为文本的能力对提升用户体验和工作效率至关重要。本文将介绍如何构建一个简洁的音频转写系统,专注于文件上传、云存储以及…...
矫平机终极指南:特殊材料处理、工艺链协同与全球供应链管理
一、特殊材料矫平:挑战与创新解决方案 1. 高温合金(如Inconel 718)处理 技术难点: 屈服强度高达1100 MPa,传统矫平力不足 高温下易氧化,需惰性气体保护环境 解决方案: 采用双伺服电机驱动&a…...
云服务器 —— 公有 IP 与 私有 IP
云服务器的 公有 IP 和 私有 IP 在网络架构中扮演不同的角色,具体用途和区别如下: 目录 1. 公有 IP(Public IP) 作用: 特点: 示例场景: 2. 私有 IP(Private IP) 作用…...

Git基本使用(很详细)
一:Git 概述 1.1 定义:分布式版本控制系统 1.2 版本控制 (1)定义: 版本控制时一种记录文件内容变化,以便将来查阅特定版本修订情况的系统 (2)举例 多副本 优化: 不使用多…...
【人工智能】基于Python和Transformers库构建高效问答系统的实践与实现**
《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 随着自然语言处理(NLP)的发展,问答系统成为了人工智能应用中的一个重要领域。近年来,预训练模型如BERT、GPT、T5等,通过大规模数据的预…...

仓颉编程语言最佳实例 “Hello, world!”
仓颉编程语言最佳实例 “Hello, world!” The Best Practice to Cangjie Programming Language - “Hello, world!” BY JACKSON 1. 仓颉集成开发工具(IDE)安装 打开Chrome浏览器,访问仓颉编程语言官网:https://cangjie-lang.…...
【机器学习-线性回归-3】深入浅出:简单线性回归的概念、原理与实现
在机器学习的世界里,线性回归是最基础也是最常用的算法之一。作为预测分析的基石,简单线性回归为我们理解更复杂的模型提供了完美的起点。无论你是机器学习的新手还是希望巩固基础的老手,理解简单线性回归都至关重要。本文将带你全面了解简单…...

[mysql]窗口函数
目录 窗口函数: 为何要学习窗口函数,与mysql5.7实现语句对比 现在我们介绍一下窗口函数: 函数规则 1序号函数 2分布函数 3前后函数 5其他函数 总结 窗口函数: 首先数据库的迁移是非常慢的,大家学习新特性的时候要考虑自己公司的数据库版本是不是和自己学习的吻合 为何…...

内存四区(栈)
今天我再次学到了有趣的知识,内存四区! 内存四区分为代码区,全局区,栈区,堆区,今天我们详细来讲讲栈区! 内存四区和栈区都是用来存放数据的,而栈区存放的数据具体有两类 1.形参数…...

新零售行业时代:如何用科技驱动传统零售的转型升级
新零售行业时代:如何用科技驱动传统零售的转型升级 “在变化的世界中,唯一不变的是变化本身。” 一、传统零售的困局:当“生存”成为一场鏖战 街角的便利店老板老王,每天凌晨4点起床进货,却在月…...

长途骑行装备攻略:VELO维乐 Angel Revo坐垫伴我畅享旅途
工作忙碌了很久,终于迎来了一个难得的假期。我决定和朋友一起踏上一场长途骑行之旅,远离城市的喧嚣,去寻找那份久违的宁静与自由。这次旅行,不仅是为了旅途风景的放松,更是为了体验一场身体与心灵的挑战。而朋友推荐的…...
WebcamJS中文文档
文章目录 WebcamJS针对Chrome 47及以上版本的重要说明浏览器支持演示示例开源协议快速入门指南配置初始化拍摄照片自定义图像大小裁剪图像翻转图像(镜像模式)冻结/预览图像设置备用SWF文件位置重置(关闭)API 参考自定义事件向服务器提交图像跟踪上传进度包含在现有表单中自…...
用Python做有趣的AI项目1:用 TensorFlow 实现图像分类(识别猫、狗、汽车等)
项目目标 通过构建卷积神经网络(CNN),让模型学会识别图片中是什么物体。我们将使用 CIFAR-10 数据集,它包含 10 类:飞机、汽车、鸟、猫、鹿、狗、青蛙、马、船和卡车。 🛠️ 开发环境与依赖 安装依赖&…...

微软官网Win10镜像下载快速获取ISO文件
如何从微软官网轻松下载win10镜像?win10镜像的下载方式主要包括两种: 目录 一:借助官方工具 二:直接微软官网通过浏览器进行下载。 三:实现方法与步骤: 1:利用微软官方提供的MediaCreationT…...
Python循环结构深度解析与高效应用实践
引言:循环结构在编程中的核心地位 循环结构作为程序设计的三大基本结构之一,在Python中通过while和for-in两种循环机制实现迭代操作。本文将从底层原理到高级应用,全面剖析Python循环机制的使用技巧与优化策略,助您掌握高效迭代的…...
springboot入门-controller层
在 Spring Boot 中,Controller 层是处理 HTTP 请求的核心组件,负责接收客户端请求、调用业务逻辑(Service 层)并返回响应。其核心原理基于 Spring MVC 框架,通过注解驱动的方式实现请求的路由和参数绑定。以下是 Contr…...
SpringBoot技术概述与应用实践
一、SpringBoot简介 SpringBoot是由Pivotal团队开发的一个基于Spring框架的开源框架,旨在简化Spring应用的开发与部署。它通过约定大于配置的理念,减少了配置复杂性,并通过内嵌式服务器的支持,使得开发者可以更方便地创建独立运行…...

逆向|dy|a_bogus|1.0.1.19-fix.01
2025-04-26 请求地址:aHR0cHM6Ly93d3cuZG91eWluLmNvbS91c2VyL01TNHdMakFCQUFBQV96azV6NkoyMG1YeGt0eHBnNkkzRVRKejlyMEs3d2Y2dU9EWlhvd2ttblZWRnB0dlBPMmMwN2J0WFotcVU4V3M 个人主页的视频数据 我们需要逆向这个接口,所以现在需要分析这个请求, 分析这几个数据包可以发现: 只有…...
golang的cgo的一点小心得
最后有个项目需要涉及到cgo,在这块以前用的不多, 这次略微用得深入了一点,记下来几点以备以后使用 本质上cgo去用的时候就是遵守一些ABI而已,总体而言,尽量避免复杂结构的来回传递。1 对于变长参数,只有…...