以下是根据看书后的理解做的总结:
 
最早,unix是使用汇编编写,但是非常简单。后来觉得汇编,换种机器又得重新用另外一种机器汇编重写,太麻烦。于是想设计一种通用的语言,到各种机器上都能运行 当时发明了b语言,但是b语言并不成功(据说是很多缺陷,缺乏数据结构),后来者在此基础上改进,发明了c语言。使用c语言重写unix,后来c语言就成为一种编写操作系统的语言了。当时有c语言编译器,使得转化成机器语言很容易。

现在终于明白了,为什么以前看的资料说:c语言是为了编写Unix操作系统而发明的语言。 当时其实存在了这个操作系统,但问题是它使用汇编编写,移植到新机器又得重新写用新的汇编实现。后来有了c语言这样通用的语言、

 
为什么操作系统的编写,一部分还要使用汇编呢?
因为硬件,两台电脑的硬盘不可能完全一样的方式工作,驱动程序是用c编写,驱动编译好后放到新机器无法工作的,所以要重新写,只能用对应机器的汇编编写。

Unix的网络的发明,原来都是出于解决实际问题需要产生。

最初发明是在一台废弃的pdp-7上。后来unix都是运行在pdp-11上。
当时要把unix移植到一种新型机器interdata上,当时pdp-7在一楼,interdata在五楼,每次都要编译好后,去五楼的interdata机器上调试,这样折腾了几个月后,感觉很麻烦。于是发明的网络。这个时候是局域网。

 
现在明白posix的真实含义了:
pos是可移植操作系统的简称。ix是unix的后面两个字母。合起来就是可移植的unix系统。
posix实际上是一个标准。并不是指特定的东西。就是工业界的iso9001标准,iso9001是一个标准。
posix标准,是为了给所有市面上大家开发的unix制定一个标准。之所以要制定一个标准约束。因为,每个人是可以拿到源码进行修改,于是当时的unix版本很多。于是迫切地需要一种统一的标准。
 
 
unix的开源过程是怎样的?
当时,贝尔实验室的发明了unix。在一台废弃的pdp-7机器上。后来公开发布了unix的论文。使得许多大学纷纷向实验室索要unix的拷贝。
当时贝尔实验室的母公司-AT&T,因为受到垄断法的管制,是不能经营计算机业务的。所以他们愿意大学支付适当的费用获取unix的源码。后来一些商业公司愿意花钱购买unix的源码进行修改,修改成自己的版本来发布。当时其实微软也花钱购买了unix,以xenix的名义出售版本7好几年了。
 
AT&T公司后来发布unix版本,进行商业化(因为通过了政府的拆分,允许设立子公司来经营计算机业务)。但是失败了,没有受到市场很大的反响。最终在1993年决定卖给novell,novell在1995年又卖给了santa cruz operation公司。
那个时候很多公司拥有了unix的许可证。
 
 
linux的出生
 
当时有minix。这个系统是一个类unix系统。它的特点是,微内核。如何解释这种微内核呢?
 
当时的很多人要求在minix上增加功能,得不到响应。越来越不满。当时又没有freebsd。
 
后来,当时的linux作者,就参考了minix的源码,对它进行了重构一次。唯一不同的是,它是使用整体设计方式。搞不清楚是怎么样的。是开发操作系统的方式不同。
 
1991年的时候发布一个版本。
 
加州大学伯利克分校早期获得了unix第6个版本的源码,他们自己修改源码进行发布,这就是著名的freebsd系统。
 

操作系统与c语言的更多相关文章

  1. 【操作系统】C语言编写的FAT16文件系统

    [操作系统]C语言编写的FAT16文件系统 这是操作系统的期末课程设计作业之一,主要功能是在物理内存中虚拟出一个1M大小的FAT16的文件系统,然后把它读入内存中,进行具体的文件操作,具体的实用性不大 ...

  2. 操作系统和程序设计语言的API使用的字符编码分析

     1.Java的运行环境中,String是什么编码? 使用java做程序设计语言,字符编码是和jvm相关的,和操作系统无关. java默认的编码是jvm在安装的时候就确定了的,它是根据你的系统的环境确 ...

  3. linux 操作系统下c语言编程入门

    2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门--时间概念 5)Linux程序设计入门--信号处理 6)Linux程序设计入门--消息管理  ...

  4. 如何在CentOS里切换操作系统所用的语言,中英文切换

    操作系统CentOS 7.5,安装的时候选择的事中文,后来想改成英文 1.点左上角的“应用程序”---->再点“系统工具”----->“设置” 2.点“区域语言”,再点右侧的“汉语(中国) ...

  5. 大二作业——操作系统实验——C语言用双向链表,模拟实现动态分区式存储管理

    实验:动态分区式存储管理 实验内容: 编写程序模拟完成动态分区存储管理方式的内存分配和回收.实验具体包括:首先确定内存空闲分配表:然后采用最佳适应算法完成内存空间的分配和回收:最后编写主函数对所做工作 ...

  6. [转] linux操作系统下c语言编程入门--基础知识

    点击阅读原文 这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将会学到以下内容: 1. 源程序编译        2. Makefile的编写        3. 程序库 ...

  7. 挑战30天写操作系统-day2-汇编语言学习与Makefile入门

    1.介绍文本编辑器 这里,我们直接采用自己windows电脑自带的文本编辑器即可以完成制作要求 2.继续开发 下面先是对昨天使用的helloos.nas文件内容进行详细解释 ; hello-os ; ...

  8. C语言笔记——简介与编译过程初探

    序言 从今天起,详细说说C语言.这一年多,在大多数语言和技术之间转了一大圈,终于看清楚了事实,决心静下心来好好学学C语言.初学者会认为C语言是个入门用的东西,没有必要深入研究.但对计算机领域再稍加了解 ...

  9. Oberon程序设计语言简介

    Oberon奥伯龙是一种通用编程语言,也是一种同名操作系统(由Oberon语言开发,且参考过贝尔实验室的新一代网络操作系统Plan9),是由原Pascal程序设计语言的发明者Niklaus Wirth ...

随机推荐

  1. fir.im Weekly - 除了写代码,还需要了解什么

    雾霾天,宜撸代码.吹牛,不宜出门约会(¬_¬)ノ 本期 fir.im Weekly 亦如往期,收集了优秀的  iOS/Android 开发资源,GitHub 源码.前端方面的热点分享.除了代码,也许你 ...

  2. Java基础,输入输出

    package hanqi.test; import java.io.File; import java.io.IOException; public class Test02 { public st ...

  3. 信息加密之信息摘要加密MD2、MD4、MD5

    对于用户数据的保密一直是各个互联网企业头疼的事,那如何防止用户的个人信息泄露呢?今天为大家介绍一种最简单的加密方式--信息摘要算法MD.它如何来保护用户的个人信息呢?其实很简单,当获得到用户的信息后, ...

  4. linux分享六:字符串处理

    一:cut (1)其语法格式为:cut [-bn] [file] 或 cut [-c] [file] 或 cut [-df] [file] 使用说明cut 命令从文件的每一行剪切字节.字符和字段并将这 ...

  5. [转载]TFS源代码管理8大注意事项

    目录 1. 使用TFS进行源代码管理 2. 如果代码没放在源代码管理软件里,等于它不存在 3. 要早提交,常提交,并且不要觉得麻烦 4. 提交前要检查你更改了什么 5. 写提交信息时一定要认真 6. ...

  6. 生成二维码的方法,基于zxing

    现在生活中常用了一些二维码,这些在现实生活中已经非常密切了,那么怎么使用java来产生一个二维码呢? 下面给出代码 首先给出一个工具类,这里包含了生成二维码的图片对象,保存到流中,或者文件中: pac ...

  7. svn冲突问题详解

    开发人员都知道代码管理工具是开发中一个必不可少的工具,这里也不废话详细介绍了.不管你个人喜欢git还是svn还是其他,但还有一大部分公司在使用svn做代码管理工具.这里详细介绍下SVN提交文件时冲突问 ...

  8. 帮助你提高排版技巧的18个 PS 文字特效教程

    Photoshop 文字特效教程对于学习基础的和高级的排版思维有很大的帮助.在这篇文章中,你会发现一组最新发布的文字效果教程.这些高品质的 Photoshop 教程可以帮助你设计出惊人的2D,3D,木 ...

  9. Theano入门神经网络(二) 实现一个XOR门

    与非门的图片如下 示意图 详细解释: 1 定义变量的代码,包括了输入.权值.输出等.其中激活函数采用的是sigmod函数 # -*- coding: utf-8 -*- __author__ = 'A ...

  10. HT for Web列表和3D拓扑组件的拖拽应用

    很多可视化编辑器都或多或少有一些拖拽功能,比如从一个List列表中拖拽一个节点到拓扑组件上进行建模,并且在拖拽的过程中鼠标位置下会附带一个被拖拽节点的缩略图,那么今天我们就来实现这样的拖拽效果. 首先 ...