世界上最著名的操作系统是用什么语言编写的?

英飞凌TC3xx DSADC旋变软解码实战:从示波器波形到VX1000数据,手把手教你避坑 本文详细介绍了英飞凌TC3xx系列微控制器的DSADC模块在电机旋变软解码中的实战应用。从示波器波形分析到VX1000数据采集,提供了一套完整的调试方法论,帮助工程师快速定位和解决常见问题,提升解码精度和系统性能。 阅读详情

Unix 与 C 语言的关系

在服务器领域,最著名的系统莫过于Unix了,即便Linux也是类Unix的操作系统。Unix 是用 C 语言编写的,而且是世界上第一个用 C 语言编写的操作系统。但是 Unix 是怎么产生的?C 语言又是怎么产生的?Unix 为什么要用 C 语言来编写?相信看完这篇文章你很快就会有了答案。

 

Multics 和 Unix

1964年,在 Unix 诞生之前,美国贝尔实验室、通用电气、和麻省理工学院联合开发了一个项目,叫做 Multics操作系统。Multics 在当时取得了巨大的成功,因为它给了人们一个真正可用并且很稳定的操作系统。当时从学校到政府机关,到处都在安装 Multics。

 

但是时间到了 1969年,因为种种原因,贝尔实验室的 Ken Thompson 和 Dennis Ritchie 决定放弃Multics,于是贝尔实验室退出了这个项目。Ken Thompson 和 Dennis Ritchie 决定开发一个更为简单并且高效的操作系统,并把它命名为 Unix,于是他们俩就成为了 Unix 之父。

 

和 Unix 相比,Multics 有两个比较致命的缺点,一是需要安装在非常昂贵的机器上,普通的计算机没有办法安装。二是设计非常复杂,这也是贝尔实验室的工程师退出的主要原因。不过 Ken Thompson 和 Dennis Ritchie 还是从 Multics 上得到很多启发,可以说 Unix 是 Multics 的简化以及更新。

 

说到这里,C 语言还没有出场,因为它在那个时候还没有被发明出来。Unix 操作系统的第一个版本是纯粹用汇编语言编写出来的。一直到了 1974年,第四个版本才改用 C 语言进行开发。在讲 C 语言之前,我们还不得不先说一下 BCPL 和 B 语言。

 

BCPL 与 B 语言

Ken Thompson 和 Dennis Ritchie 最初用汇编语言来开发 Unix,因为在那个时候,所有的操作系统都是用汇编语言来开发的。不过当时 Multics 是一个例外,Multics 项目组使用了 PL/1 来进行开发。它的价值就在于向世人展示了用一门高级语言也可以开发出一套操作系统。Ken Thompson 和 Dennis Ritchie 也受到了鼓舞,他们决定用汇编之外的语言重新开发 Unix。他们最初的选择是 BCPL。BCPL 最早是由 Martin Richards 发明用来开发编译器的语言。但是 Ken Thompson 和 Dennis Ritchie很快发现,如果他们想在小型计算机 DEC PDP-7 上使用 BCPL,就需要对这个语言本身进行一些修改。于是就产生了后来的 B 语言。

 

 B 语言作为系统开发语言,也存在很多的缺点,于是后来它又被改进为 NB 语言 (New B)。可是 NB 还是有很多的问题,于是 Dennis Ritchie 就又发明了 C 语言,最终在 1974年,Ken Thompson 和 Dennis Ritchie 一起用 C 语言重新编写了第四版的 Unix 系统。现在,C 语言已经成为了操作系统开发最常用的编程语言。

 

通往 C 语言与 Unix 之路

Dennis Ritchie 曾经解释过自己为什么要发明 C 语言,以及使用 B 语言过程中遇到的一些困难:

  • 只能处理计算机字:B语言所有的操作都是通过计算机字来处理的,在那个时候,能够处理字节的编程语言对工程师们来说是一个梦。

  • 没有类型:准确的说,B语言只有一种类型,计算机字。如果你有一个字符串,可能你需要把它分成多个变量来保存,比如一个21个字符的字符串,就需要 6 个变量。

  • 不支持浮点类型运算:在那个时候,大部分硬件已经都可以开始支持浮点运算了,但是 B 语言还不支持这种操作。 

 

B 语言的这些问题,开发低效,在机器上运行缓慢等等,都迫使 Dennis Ritchie 发明一种新的编程语言。最开始被称为 New B,后来逐渐演化成了 C 语言。

 

C 语言解决了 B 语言的很多缺陷,并很快成为了开发操作系统最流行的一种编程语言。新版本的 Unix 以及今天很多类 Unix 的操作系统都是用 C 语言开发出来的。

 

好了,讲到这里,我想大家都清楚了 Unix 和 C 语言是怎么来的了,以及为什么要用 C 语言来编写 Unix。现在有很多非常流行的语言比如 Java 和 Python,它们是一种更高级的编程语言,是在 C 语言这一层之上的。但是如果大家想做设备驱动或者系统内核模块的修改,还是离不开 C 语言这把利器。

 

 

推荐阅读:

《一篇文章带你快速弄清楚什么是终端》

《一篇文章看清楚 Linux 的职业发展方向》

《2020年你最需要掌握的11种编程语言》

《微软:悬赏10万美金破解 Linux 系统》

《安卓到底是不是Linux》

 

 

  

 

获取知识干货、增加面试经验、了解程序人生

欢迎关注微信公众号

回复【面试】,获取技术大厂面试宝典


python基础之语言发展历史 博主简介:原互联网大厂tencent员工,网安巨头Venustech员工,阿里云开发社区专家博主,微信公众号java基础笔记优质创作者,csdn优质创作博主,创业者,知识共享者,欢迎关注,点赞,收藏。 目录一、前言二、发展历史1、Python是一种面向对象的解释型编程语言2、Python常被称为胶水语言3、Python由Guido开发4、Python连续多年入选编程语言TOP105、Python的发展历史三、总结 一、前言   由于Python语言的简洁性、易读性以及可扩展性,它在网络爬虫、数据分析、. 阅读详情

相关推荐

ADI恒流驱动芯片LT3763调试心得(25A恒流驱动)

看似很简单的一个电路,调了好几版硬件,中间还出现过一个插曲,就是电感,我用的是27A,1.5uH的,贴片封装,由于频繁试板,电感来回用热风枪拆了3次,结果上电空载到3A都没有问题,但是以上10A以上,就出现烧LT3763和mos的情况,一连烧了8片,搞得有点怀疑人生,一度觉得我的电路设计有问题,邮件咨询ADI的FAE后,确认电路设计没有问题。1、大功率同步整流的Nmos管都是取不同的型号,就是厂家推荐的主开关管和续流管的型号往往都不一样,这个里面有什么讲究,我没有整明白,暂时也不需要弄明白。

liming98lm的博客 3922

操作系统是什么语言写的

这些语言的选择取决于操作系统设计的需求、性能要求和开发团队的经验。

HJQD777的博客 2074

图像处理(12)--图像各种噪声及消除方法

文章目录结构1.什么是图像噪声2. 图像噪声来源3. 噪声分类及其消除方法3.1 高斯噪声及其消除方式3.1.1 如何确定一种噪声是高斯噪声3.1.2 高斯滤波消除高斯噪声3.1.3 高斯函数的重要性质3.2 瑞利噪声及其消除方式3.3 伽马(爱尔兰)噪声及其消除方式3.4 指数分布噪声及其消除方式3.5 均匀噪声及其消除方式3.6 脉冲(椒盐)噪声及其消除方式 1.什么是图像噪声 图像噪声是指...

ShaneHolmes 11万+

操作系统的语言

操作系统主要由什么语言开发的。某些看着很相似的英文的区分,是语言?是框架?

qq_63053996的博客 928

SAP PP实战:MRP Area怎么用?手把手教你按产线、委外供应商拆分物料计划

本文详细解析了SAP PP模块中MRP Area的功能与应用,指导如何按产线、委外供应商拆分物料计划,实现精细化物料需求管理。通过实战案例展示MRP Area在减少计划冲突、提升库存准确率方面的显著效果,为制造业企业提供可落地的解决方案。

weixin_27015733的博客 432

Delta并联机械手-Codesys实现以及正解逆解研究

由于Codesys的Robotics模块有Delta并联机械手的运动模型,因此借助Codesys的机械手运动模型,研究自己的正解逆解算法。

weixin_42386991的博客 5567

操作系统简介及编程语言

操作系统介绍与编程语言一.操作系统简介1.什么是操作系统?操作系统位于计算机硬件与应用软件之间,是一个协调、管理、控制、硬件资源与软件资源的控制程序。2.为何要有操作系统?第一:控制硬件。第二:把对硬件的复杂操作封装成优美简单的接口(文件),给用户或者应用程序去使用。注意:一套完整的计算机系统包括三个部分:                      第一:应用程序(QQ、暴风影音等)       ...

乐石风华 5004

麻雀搜索算法(SSA)详解:从鸟群智能到优化实践

麻雀搜索算法(SSA)是一种新型群智能优化算法,模拟麻雀群体的觅食行为和反捕食机制。该算法将优化问题转化为麻雀群体对食物源的搜索过程,通过发现者、加入者和警戒者的角色分工实现高效优化。SSA具有原理新颖、参数合理、收敛快速等特点,在函数优化、工程设计和机器学习等领域展现出良好应用前景。算法通过数学模型模拟麻雀的觅食策略,包括发现者全局探索、加入者局部开发和警戒者危险预警机制,有效平衡了全局搜索与局部开发能力。SSA相比传统优化算法具有更好的收敛性和优化效果。

qq_42212808的博客 1072

主流操作系统的开发语言

windows ,linux 等操作系统的开发语言以及各种编译器的开发语言及其发展脉络。

walkingmanc的专栏 1万+

LLM的MCP协议:初识MCP,搭建第一个MCP Server

MCP(Model Context Protocol),是一个开发的协议,标准化了应用程序如何为大模型提供上下文。MCP提供了一个标准的为LLM提供数据、工具的方式,使用MCP会更容易的构建Agent或者是基于LLM的复杂工作流。

Criss@陈磊 2万+

YOLOv11全网首发:注意力独家魔改 | 具有切片操作的SimAM注意力,魔改SimAM助力小目标检测

1)直接作为注意力使用,效果秒杀SimAM;2)高效和卷积结合,代替原始网络的卷积操作;

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1576

操作系统UNIX介绍3

Ritchie 和他在贝尔实验室的同事,包括 Ken Thompson,决定开发他们自己的操作系统,这就是 Unix。Unix 和 C 的重要性怎么强调都不为过。C 是 Unix 开发中的重要编程语言,因为它被设计为系统编程语言,这意味着它非常适合编写与硬件和操作系统资源交互的低级软件。C 的设计使得编写高效且可移植的代码变得容易,这对 Unix 很重要,因为它被设计为可以在广泛的硬件平台上运行。基于 Unix 的系统在当今的网络中仍然广泛使用,特别是在稳定性、可伸缩性和安全性是关键要求的服务器环境中。

u010839117的博客 1027

基于 Simulink 的单相 PWM 整流器(四象限变流器)在高铁辅助电源系统中的建模与仿真实战教程

这是一份基于 Simulink 的实战教程。在高铁牵引供电与辅助电源系统中,单相 PWM 整流器(又称四象限变流器,4QC)是极其核心的“绿色电源”枢纽。传统的二极管整流器虽然结构简单,但会导致严重的输入电流畸变和低功率因数,对电网造成极大的谐波污染。而 PWM 整流器通过高频主动控制,不仅能将单相交流电转换为平稳的直流电,还能实现输入电流正弦化、单位功率因数(PF=1)运行,并支持能量双向流动(如列车再生制动时的能量回馈)。本教程将带你从数学模型出发,搭建一套高性能的电压电流双闭环控制系统。

amy_mhd的博客 47

一些著名的软件都用什么语言编写?

比如你的两个朋友与你分别玩用VB、Java、与C++编写的“跑跑卡丁车”,你玩C++编写的游戏已经跑玩结束了,发现你的两个朋友还没开始跑呢,那是相当的卡啊。备注:曾经在智能手机的操作系统(Windows Mobile)考虑掺点C#写的程序,比如软键盘,结果因为写出来的程序太慢,实在无法和别的模块合并,最终又回到C++重写。:2008 年推出:C语言(有传言说是用Java开发的操作系统,但最近刚推出原生的C语言SDK): 部分JAVA(对外接口),主要为C++ (开源,可下载其源代码)

朱雀随云记的博客 6684

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

那些著名的软件都是用什么语言编写的?

那些著名的软件都是用什么语言编写的? 一、操作系统: 1.Microsoft Windows :汇编 -> C -> C++ 曾经在智能手机的操作系统(Windows Mobile)考虑掺点C#写的程序,比如软键盘,结果因为写出来的程序太慢,实在无法和别的模块合并,最终又回到C++重写。 相信很多朋友都知道Windows Vista,这个系统开发早期比尔盖茨想全部用C#写,但是最终因为执行慢而放弃,结果之前无数软件工程师日夜劳作成果一夜之间被宣告作废。 2.Linux :C 3.Apple Ma

weixin_52275937的博客 1419

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

著名的软件都用什么语言编写?

比如你的两个朋友与你分别玩用VB、Java、与C++编写的“跑跑卡丁车”,你玩C++编写的游戏已经跑玩结束了,发现你的两个朋友还没开始跑呢,那是相当的卡啊。备注:曾经在智能手机的操作系统(Windows Mobile)考虑掺点C#写的程序,比如软键盘,结果因为写出来的程序太慢,实在无法和别的模块合并,最终又回到C++重写。随着技术的不断发展,开发者们面对日益复杂的需求和多样化的平台,编程语言的选择不再单一。“编程语言的选择,就像是工具的选择,合适的工具能让你事半功倍,错误的选择会让你的努力付诸东流。

朱雀随云记的博客 1007

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

世界上的著名编程语言

这只是编程语言世界中的 “冰山一角”,随着技术的不断发展,还会有新的编程语言不断涌现,它们各自有着独特的优势和适用场景,满足不同行业、不同开发任务的需求。

2301_78398877的博客 2322

全球最著名的16位黑客列传(上)

因为没有完整的中文资料,所以手动翻译,收集,整理了一下:从http://www.axin.net/article/ShowArticle.asp?ArticleID=804翻译参考:http://netsecurity.51cto.com/art/200604/25435.htmhttp://www.storyparty.com/Story_Detail.aspx?ID=30185http://w

luohandsome的专栏 2440

那些著名的软件都是用什么语言编写的?持续补充中...

一、操作系统: Microsoft Windows :汇编 -> C -> C++ 曾经在智能手机的操作系统(Windows Mobile)考虑掺点C#写的程序,比如软键盘,结果因为写出来的程序太慢,实在无法和别的模块合并,最终又回到C++重写。 相信很多朋友都知道Windows Vista,这个系统开发早期比尔盖茨想全部用C#写,但是最终因为执行慢而放弃,结果之前无数软件工程师日夜劳作成果一夜之间被宣告作废。 Linux :C Apple MacOS : 主要为C,部分为C

哦,原来你也在这里。 3768

一些著名的软件都用什么语言编写的?

以下内容来自公众号逆锋起笔,关注每日干货及时送达作者:土豆居士 来源:一口Linux1、操作系统Microsoft Windows :汇编 -> C -> C++备注:曾经在...

code小生 347

一些著名的软件都用什么语言编写?程序员都熟知这些软件!

点击上方“Java精选”,选择“设为星标”别问别人为什么,多问自己凭什么!下方有惊喜留言必回,有问必答!每天08:15更新文章,每天进步一点点...1、操作系统Microsoft Wi...

Java精选 1783
上一篇: 一篇文章带你快速弄清楚什么是终端
下一篇: 利用大数据做好消费者运营,你该了解这些
AI观星台
博客等级 码龄15年 112粉丝 46原创
评论 57
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值