返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >为什么Unix不用C++而是用C编写
  • 791
分享到

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

2024-04-02 19:04:59 791人浏览 薄情痞子
摘要

本篇内容主要讲解“为什么Unix不用c++而是用C编写”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“为什么Unix不用C++而是用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编写”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 为什么Unix不用C++而是用C编写

本文链接: https://lsjlt.com/news/84617.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 为什么Unix不用C++而是用C编写
    本篇内容主要讲解“为什么Unix不用C++而是用C编写”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“为什么Unix不用C++而是用C编写”吧!有人总会说C++不...
    99+
    2024-04-02
  • c#编译器是用什么编写的
    c# 编译器是用 c# 和 f# 编写的。它由负责解析源代码的前端(c#)、进行语义分析的中间端(c#)和将 ast 编译为 il 的后端(f#)组成。 C# 编译器是用什么编写的? ...
    99+
    2024-04-04
    c++ c#
  • c#用什么软件编写
    使用 c# 编程的软件有:集成开发环境 (ide):如 visual studio、jetbrains rider、visual studio code跨平台开发工具:如 xamarin...
    99+
    2024-04-04
    sublime c#
  • GCC为什么用C++来编译
    本篇内容介绍了“GCC为什么用C++来编译”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!为什么要用C++在GNU的C++ Conversio...
    99+
    2023-06-17
  • 为什么使用Java和Unix来编写NumPy函数?
    随着数据科学和人工智能的快速发展,NumPy成为了一个非常受欢迎的Python包,用于进行科学计算和数据分析。然而,在某些情况下,Java和Unix可能会成为编写NumPy函数的更好选择。在本文中,我们将探讨这些情况,并提供一些演示代码。...
    99+
    2023-07-09
    unix numy 函数
  • 为什么不推荐使用C++
    这篇文章主要讲解了“为什么不推荐使用C++”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“为什么不推荐使用C++”吧!(1) C++语法很复杂,好的C++程序员难求。语法上 C++14 开始的...
    99+
    2023-06-16
  • MySQL为什么使用B+树,而不是B树?
    在MySQL中,B+树被广泛应用于索引结构,因为它支持高效的范围查询和区间扫描,并且有助于减少磁盘I/O操作,从而提高查询效率。为什么MySQL使用B+树而不是B树?主要有以下几个原因: 1、B+树可以更好地利用磁盘预读特性 在数据库中,...
    99+
    2023-09-21
    mysql 数据库
  • 为什么字节大量用GO而不是Java?
    见字如面,我是军哥。 我看很多程序员对字节编程语言选型很好奇,为此我还特地问了在字节的两位4-1的技术大佬朋友,然后加上自己的思考,总结了一下就以下 2 个原因: 1、 选型上没有历史包袱 字节的早期的程序员大多来自于百度、360,本...
    99+
    2023-10-02
    golang java 开发语言 后端
  • 用PHP编写分布式学习笔记,为什么UNIX是必备的?
    在当今时代,人们越来越重视学习和知识的积累。而学习笔记的整理与管理是一个非常重要的环节。为了更好地管理学习笔记,我们可以使用分布式学习笔记系统。在本文中,我们将介绍如何使用PHP编写一个分布式学习笔记系统,并解释为什么UNIX是必备的。 一...
    99+
    2023-09-16
    分布式 学习笔记 unix
  • selectedIndexChanged是自动触发的,而不是在c#windows应用
    在C# Windows应用程序中,`SelectedIndexChanged`事件是自动触发的。这个事件在控件的选择项发生改变时被触...
    99+
    2023-09-26
    C#
  • c#用什么编译
    c# 由 .net 框架编译和运行。具体步骤包括:词法分析、语法分析、语义分析、中间语言生成以及 jit 编译。 C# 是用什么编译的? C# 是一种高级编程语言,它使用 .NET 框...
    99+
    2024-04-04
    c#
  • c#能用来写什么
    c# 是一种用于开发广泛应用程序和软件解决方案的面向对象编程语言。它可用于创建桌面应用程序、web 应用程序、移动应用程序、游戏、人工智能系统、云计算解决方案、脚本、代码库、编译器和分析...
    99+
    2024-04-04
    c# 跨平台应用 移动应用程序
  • Java线程启动为什么要用start()而不是run()?
    目录1、直接调用线程的run()方法2、调用线程的start()方法3、总结1、直接调用线程的run()方法 public class TestStart { publi...
    99+
    2024-04-02
  • C++使用boost.python编写P
    很久没有写文章了,今天整理了一些东西,在这里分享一下。 最近一直在想用C++封装一些在工作中常用的Python扩展模块,因为之前没有用C++写过类似的东西,因此一直在网上找一些文章,但是我发现好多文章都描述的不是很清晰,对于老鸟来说应该会很...
    99+
    2023-01-31
    boost python
  • 怎么使用C/C++编写node.js原生模块
    这篇文章主要讲解了“怎么使用C/C++编写node.js原生模块”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用C/C++编写node.js原生模块”吧!Hello World不能免俗...
    99+
    2023-06-17
  • C语言的基本编写规范是什么
    C语言的基本编写规范是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。C语言是什么C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发,使用C语言可以以简易的...
    99+
    2023-06-26
  • c语言程序编写的步骤是什么
    编写C语言程序的一般步骤如下:1. 确定程序的目标和需求:明确程序的目标和功能,确定需要实现的功能和处理的问题。2. 设计程序的逻辑...
    99+
    2023-10-12
    c语言
  • 怎么使用emacs编写C语言
    这篇文章主要介绍“怎么使用emacs编写C语言”,在日常操作中,相信很多人在怎么使用emacs编写C语言问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用emacs编写C语言”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-17
  • 怎么用visual studio编写c++语言
    要在Visual Studio中编写C++语言代码,您可以按照以下步骤进行操作: 下载并安装Visual Studio:您可以从...
    99+
    2023-10-25
    c++
  • C++ STL编程是什么
    本篇内容介绍了“C++ STL编程是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1 初识STL:解答一些疑问1.1 一个最关心的问题:...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作