我的编程空间,编程开发者的网络收藏夹
学习永远不晚

为什么Unix不用C++而是用C编写

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

为什么Unix不用C++而是用C编写

本篇内容主要讲解“为什么Unix不用C++而是用C编写”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“为什么Unix不用C++而是用C编写”吧!

有人总会说C++不是要比C的作用大很多,功能也更多。那为什么Unix不用功能更强大的C++而是用C编写?关于Unix为什么用C而不是C  ++编写的显而易见的答案是C ++是在C之后诞生的。另一个原因是,实际上C语言可能也是为了支持Unix的开发而发明的。

C的起源与Unix  OS的开发紧密相关。当团队将Unix移植到PDP-11时,它仍在组装中。汤普森(Thompson)和里奇(Ritchie)希望在系统编程中使用高级语言,以使程序员可以清晰地表达概念,而不必与一台计算机的体系结构绑定,但要使效率很高。Unix使用高级语言实现,因此打破了这样一种观念,即必须使用汇编语言来编写系统,并且该系统必须与特定的计算机设计,字长或体系结构相关联。并且首次将包括文件系统,内核,应用程序包,实用程序和用户界面在内的整个编程环境移至完全不同类型的机器上。

汤普森(Thompson)和里奇(Ritchie)早在1969年就已经开发了一种称为“  B”的编程语言,它实质上是BCPL的简化版本。基本上,BCPL去除了不必要的组件,以使实现适合当时的小型计算机的存储能力(BCPL是CPL的简化,其本身是Algol  60的简化)。汤普森和里奇正在考虑使用B语言重写Unix。但是,B无法利用PDP-11的某些功能,尤其是字节寻址能力,导致了“  C”编程语言的发展。C的名称被简单地选择为B之后的下一个字母。

C的开发始于1972年的PDP-11 Unix系统,最早出现在Version 2  Unix中。Unix的很大一部分都用C重写了。来自Unix开发的反馈对C语言的开发很有帮助。C语言“与系统重写之一融合在一起,因此,它非常适合编写系统”。到1973年,由于增加了“结构”类型,C语言已经变得足够强大,以至于现在大多数Unix内核都使用C语言。Unix成为第一个使用非汇编语言实现的OS内核之一。

Unix最初是在1973年操作系统原理专题讨论会上正式向外界介绍的,Ritchie和Thompson在那里发表了一篇论文。这导致了对系统的要求,但是根据1956年的和解协议,在解决反托拉斯案件中,AT&T(贝尔实验室的母公司)被禁止从事除“公共运营商通信服务”之外的任何业务。因此,Unix无法变成产品。贝尔实验室转而以媒体和运输成本来运送系统。

但是在此之前,Unix仍然只能在DEC系统上运行。随着更多的操作系统用C语言重写(并扩展了C语言以适应这种情况),可移植性也有所提高。1977年,贝尔实验室购买了Interdata   8/32,其目的是将Unix移植到与PDP-11尽可能不同的计算机上,从而使Unix在此过程中更加独立于机器,从而实现了汤普森的OS可移植性梦想。所有专用于PDP-11的代码都已从内核中删除并进行了重写,以使Unix的传输变得容易。在进行Interdata测试之后,他们将Unix移至IBM   /  370大型机。通过每次试用,他们了解了有关C,Unix和一般可移植性的更多信息。逐渐地,Unix被移植到许多其他硬件系统上,包括基于Intel  8086的计算机,UNIVAC 1100等。

到此,相信大家对“为什么Unix不用C++而是用C编写”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

为什么Unix不用C++而是用C编写

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

c#编译器是用什么编写的

c# 编译器是用 c# 和 f# 编写的。它由负责解析源代码的前端(c#)、进行语义分析的中间端(c#)和将 ast 编译为 il 的后端(f#)组成。C# 编译器是用什么编写的?答案: C# 编译器是用 C# 和 F# 编写的。详细解
c#编译器是用什么编写的
2024-04-04

c#用什么软件编写

使用 c# 编程的软件有:集成开发环境 (ide):如 visual studio、jetbrains rider、visual studio code跨平台开发工具:如 xamarin、uno platform、avalonia轻量级编辑
c#用什么软件编写
2024-04-04

GCC为什么用C++来编译

本篇内容介绍了“GCC为什么用C++来编译”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!为什么要用C++在GNU的C++ Conversio
2023-06-17

为什么不推荐使用C++

这篇文章主要讲解了“为什么不推荐使用C++”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“为什么不推荐使用C++”吧!(1) C++语法很复杂,好的C++程序员难求。语法上 C++14 开始的
2023-06-16

selectedIndexChanged是自动触发的,而不是在c#windows应用

在C# Windows应用程序中,`SelectedIndexChanged`事件是自动触发的。这个事件在控件的选择项发生改变时被触发,无论是通过用户交互还是编程方式改变选择项。你可以通过编写事件处理程序来响应`SelectedIndexC
2023-09-26

c#用什么编译

c# 由 .net 框架编译和运行。具体步骤包括:词法分析、语法分析、语义分析、中间语言生成以及 jit 编译。C# 是用什么编译的?C# 是一种高级编程语言,它使用 .NET 框架来编译和运行。详细说明:C# 代码由编译器编译为称为
c#用什么编译
2024-04-04

c#能用来写什么

c# 是一种用于开发广泛应用程序和软件解决方案的面向对象编程语言。它可用于创建桌面应用程序、web 应用程序、移动应用程序、游戏、人工智能系统、云计算解决方案、脚本、代码库、编译器和分析器等。C# 能用来写什么C# 是一种面向对象且高级的
c#能用来写什么
2024-04-04

怎么使用C/C++编写node.js原生模块

这篇文章主要讲解了“怎么使用C/C++编写node.js原生模块”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用C/C++编写node.js原生模块”吧!Hello World不能免俗
2023-06-17

c语言程序编写的步骤是什么

编写C语言程序的一般步骤如下:1. 确定程序的目标和需求:明确程序的目标和功能,确定需要实现的功能和处理的问题。2. 设计程序的逻辑结构:根据目标和需求,设计程序的整体逻辑结构,确定主要的模块和数据结构。3. 编写算法:将程序的功能拆分成多
2023-10-12

C语言的基本编写规范是什么

C语言的基本编写规范是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。C语言是什么C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发,使用C语言可以以简易的
2023-06-26

怎么用visual studio编写c++语言

要在Visual Studio中编写C++语言代码,您可以按照以下步骤进行操作:下载并安装Visual Studio:您可以从Microsoft官方网站下载Visual Studio的最新版本,并按照安装向导进行安装。打开Visual St
2023-10-25

怎么使用emacs编写C语言

这篇文章主要介绍“怎么使用emacs编写C语言”,在日常操作中,相信很多人在怎么使用emacs编写C语言问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用emacs编写C语言”的疑惑有所帮助!接下来,请跟
2023-06-17

c#要用什么编译器

c# 语言可以使用以下编译器进行编译:microsoft visual studio:官方 ide,提供自动完成功能、调试器和代码分析工具。mono:开源编译器和运行时环境,可在非 microsoft 操作系统上运行 c# 代码。rosly
c#要用什么编译器
2024-04-04

什么是C++引用

这篇文章主要介绍“什么是C++引用”,在日常操作中,相信很多人在什么是C++引用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”什么是C++引用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!一、C++ 引用
2023-06-25

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录