【linux_笔记】-操作系统基础知识

常见的CPU系列(硬件架构):

1、ARM(移动硬件平台):只生产知识产权不生产设备,只负责设计芯片,真正生产的都是由三星       高通这些生产的。手持智能设备在硬件架构上都属于ARM。
    2、x86:指的是intel或者AMD的x86系列,32位的平台
    ——32位和64位操作系统指的是CPU一次处理数据的能力是32位还是64位
    ——也就是大马路并行32条车道与并行64条车道的区别,因此,64位的可以实现的流量要比32位来              的大得多。
    3、x64:
    4、安腾:intel intel当年没有64位CPU而AMD已经出现的前提下,从惠普那儿收购的。
    5、alpha:惠普(安腾卖给intel了)
    6、UltraSparc(性能比较高的cpu):sun(已经被oracle收购)斯坦福大学设计的后来转让给sun公           司,并由富士通代为生产。
    7、Power(世界上第一个双核心八核心64核心等cpu,而且是第一个主频超过4GHz的cpu):IBM
    8、M68000(M68K):摩托罗拉
    9、PowerPC(比Power差一点但是性能仍然很不错的cpu):苹果/IBM/摩托罗拉
        ……

(linux遍布在任何一种角落里,因为linux几乎支持这所有的cpu类型)

操作系统(os):

Windows
    Linux
    Unix
        HP-UX:惠普
        Solaris:sun
        AIX:IBM
        SCO UNIX:SCO
        Unixware……
    OS/2

批处理:

job:在计算机上运行的一次完整的计算过程我们把它称作一个作业,早期的作业在磁带上,每一个磁              带上可能放一个作业,一个作业完成了就把磁带拿下来换上另一个磁带。后来为了为了提高速                度,在一个磁带上放多个作业,多个作业之间是由一些分隔符分开的。
    jobs: job1&&&&&&&&job2
    多任务系统:作业在执行过程当中,执行一个指令,执行过程中由于计算机的cpu速度过快,大多数                           时间为了跟IO交互都是空闲的,由于计算能力是非常昂贵的,因此,人们就希望能够尽                          可能的让cpu繁忙起来,希望多个程序能同时运行,意味着要将一个资源分成多个资源,                         需要对计算机运行过程中的两个重要组件(CPU,Memory)进行切割。
    进程:运行着的程序称为进程(进程是有生命周期的——从启动到结束)
    进程的工作流程:
        1、对CPU进行切割:
            slice(cpu的时间片)
                5ms(假设第一个程序的运行时间)
                5ms(假设第二个程序的运行时间)
        2、对内存(Memory)进行切割:
            分段机制:例如将内存分为两段1、2,第一个程序从第一段的001开始,第二个程序从第二段的                               001开始——相对地址
        每个程序运行的时候都有自己的虚拟地址空间(程序员开发程序时不管物理内存,例如在32位系统         上,就假设有4G内存可用——2^32)。
        在这一过程需要有软件监视着程序的运行(给你5ms你就只能运行5ms……)—— 完成这个机制的         就是操作系统。

操作系统(通用软件,不负责具体的工作,它只是负责协调其它具体的程序的工作): 运行在硬件上            的软件,负责管理硬件资源,而且将硬件资源提供的运算能力切割成多个片,分给多个 多个不同            的程序,内存分成多个段,分给多个不同的程序,并且在他们之间完成协调,操作系统还负责完              成一个程序的启动,终止和回收等工作,还要负责程序的切换等工作。因此这样的软件也可以有             多个,这就是为什么有windows,linux等操作系统同时存在的原因

操作系统本身是一个通用软件,这个软件装上去后,就将整个硬件本身所提供的计算能力使用软件          的形式模拟出来了,作为二次模拟,所以任何程序看到的就不是硬件本身而是操作系统所提供的接        口,操作系统的这种功能接口为了能够尽可能的简化,做的非常底层,操作系统的接口称作system     call(系统调用),有了操作系统以后,任何程序都不能和硬件直接打交道,要想使用硬件功能必须        要通过操作系统,通过操作系统来进行协调。

在windows下可以运行的程序,在linux下不一定能运行。

例如编写一个C程序,在windows下调用windows提供的c库来进行编程在linux下调用linux提供            的c库来进行编程,如果两个库不同,那么程序在linux下就运行不了,就算两库相同,也不一定能           够运行。
    库APL:作用是弥合底层硬件的不同,是一堆的程序,库没有执行入口(例如c中的main),可以被                   其它程序调用执行,提供一个统一的调用接口call。
    程序员开发程序(比如使用C来写),是通过call来写,是一个调用别人所提供的功能然后去开发程      序的过程。

底层的理解:例如要做个馒头,给你一堆麦子,你得把麦子拿回去磨成面粉再发酵做成馒头,或是直                          接给你馒头。麦子和馒头中,麦子就是底层,给你麦子你既可以做成馒头你也可以做成                          包子……,而馒头无法还原成面粉。所以操作系统的底层将会由上层的程序员决定它的应                         用机制,越底层意味着它的机制变化就越少,操作系统为了简化它的功能,简化它的调                         用接口,功能接口都做的非常底层。
    库APM:为了方便程序员的调用,就有人专门负责将系统调用再一次封装起来,使它功能更强大                    一点,就如同有人用麦子将馒头包子都做好了,你想要什么你买什么就行。这些将一个或                       多个底层系统调用的功能封装起来,做成更高级的接口就是库APL。

时间: 2024-11-01 22:36:00

【linux_笔记】-操作系统基础知识的相关文章

C#学习笔记(基础知识回顾)之值类型与引用类型转换(装箱和拆箱)

一:值类型和引用类型的含义参考前一篇文章 C#学习笔记(基础知识回顾)之值类型和引用类型 1.1,C#数据类型分为在栈上分配内存的值类型和在托管堆上分配内存的引用类型.如果int只不过是栈上的一个4字节的值,该如何在它上面调用方法? 二:值类型转换为引用类型--装箱 2.1CLR对值类型进行装箱时:新分配托管堆内存,将值类型的实例字段拷贝到新分配的内存中,返回托管堆中新分配对象的地址.这个地址就是一个指向对象的引用. int i = 10; Object obj = i; 三:将引用类型转换为值

[Golong]学习笔记(一) 基础知识

Go编程基础 Go的内置关键字(25个) 不多 break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continute for import return var Go的注释方法(和js一样) 单行注释: // 多行注释: /**/ Go程序一般结构 common_structure.go 通过 pack

[设计模式整理笔记 一] 基础知识

[设计模式整理笔记 一] 基础知识 [导读] [设计模式整理笔记 一] 基础知识 [设计模式整理笔记 二] 简单工厂模式(Simple Factory) [设计模式整理笔记 三] 工厂模式(Factory) [设计模式整理笔记 四] 抽象工厂模式(Abstract Factory) [设计模式整理笔记 五] 创建者模式(Builder) [设计模式整理笔记 六] 工厂模式与创建者模式总结 [设计模式整理笔记 七] 原型模式(ProtoType) [设计模式整理笔记 八] 单例模式(Singlet

《统计自然语言处理》读书笔记 一.基础知识及概念介绍

最近准备学习自然语言处理相关的知识,主要参考<统计自然语言处理·宗成庆>和<Natural Language Processing with Python>,推荐大家阅读.第一篇主要介绍的是NLP的基础知识和概念介绍,其实也是我关于NLP的读书笔记吧,希望对大家有所帮助. 一. 概念介绍 自然语言处理 自然语言处理(Natural Language Processing,简称NLP)技术的产生可追溯到20世纪50年代,它是一门集语言学.数学(代数.概率).计算机科学和认知科学等于一

[算法学习笔记]算法基础知识

算法基础知识 算法的五大要素 有穷性:算法必须能够在有限个步骤内完成. 确定性:算法的每一步必须有确定的定义. 输入 输出 可行性:算法的每个步骤都必须能分解为基本的可执行操作,每个步骤都必须能在有限时间内完成 循环不变式 循环中的循环不变式可以帮助我们理解算法的正确性.为了证明算法的正确,必须证明循环不变式的三个性质: 1. 初始化:循环不变式在循环开始之前是正确的. 2. 保持:循环不变式在循环的每一次迭代开始之前是正确的. 3. 终止:在循环结束时,不变式会给出一个可以对判断算法是否正确有

Spring笔记(基础知识)01

1.基础知识 01.Spring:轻量级Java EE开源框架,它是由Rod Johnson为了解决企业应用程序开发的复杂性而创建. 02.目标:实现一个全方位的整合框架,实现"一站式"的企业应用开发. 03.内容: a.IoC容器 b.AOP实现 c.数据访问支持:简化JDBC/Hibernate编码    声明式事务 d.Web集成 04.Spring设计理念 Spring是面向bean的编程,IoC(Inversion of Control) ,AOP(Aspect Orient

《汇编语言》学习笔记1——基础知识

第一章   基础知识 汇编语言的组成 汇编指令:机器码的助记符,有对应的机器码(汇编语言的核心) 伪指令:没有对应的机器码,由编译器执行,计算机并不执行 其他符号:如:+.-.*./等,由编译器识别,没有对应的机器码 指令和数据都是应用上的概念,在内存或磁盘上指令和数据都是二进制信息. 存储器被划分为若干个存储单元,每个存储单元从0开始. 一个存储器有128个存储单元,一个存储单元存储一个字节,一个字节有8个二进制位. 内存换算: 1bit=8byte(B).1KB=1024B.1MB=1024

Scala学习笔记--正则表达式基础知识、如何在scala内使用

正则表达式语法:https://msdn.microsoft.com/zh-cn/library/ae5bf541(VS.80).aspx 基础知识:正则表达式30分钟入门教程 http://www.jb51.net/tools/zhengze.html  版本:v2.33 (2013-1-10) 作者:deerchao 转载请注明来源 使用格式:  见java API  http://docs.oracle.com/javase/7/docs/api/ java : java.util.reg

《嵌入式操作系统内核调度》笔记:1 操作系统基础知识

很偶然地搜到这本书,最近买了纸版书,作者有个新浪博客和淘宝配套的开发板,可以自己搜下. 笔记主要记录下看书时画下的,因为是说明性的文字,所以没有经过编码,自己理解也是很模糊的. 写下来发到博客上,感觉能提高学习动力,可能是有潜在的交流作用吧. ? ? 为什么要有操作系统? 最初的时候其实是没有的,CPU的功能不就是执行指令吗,最初人们就写个程序让计算机去跑嘛,那时是没有操作系统观念的.后来,跑了一个程序,自然就会想跑两个程序,一山不容二虎,两个程序麻烦就来了,但还不是太大,能跑两个了,人们自然想