zoukankan      html  css  js  c++  java
  • 0.3 数据表示方式 0.4 软件程序运作

    0.3 数据表示方式

    主要讲了文字与编码系统,计算机只认识01,现实世界千千万万种类的文字都要存在计算机中,这就是编码--计算机如何用01去记录与显示文字。

    0.3.1 数字系统

    • 二进制,通电是1,不通电是0。

    0.3.2 文字编码系统

    • 无论你输入的是什么字符,什么语言在计算机内部存储的只有0、1。
    • 输入在存储到计算机之前,要先经过一个编码的过程,即根据一个字符对照表把文字翻译成0、1。
    • 取出的时候也要经过一个解码的过程,根据字符对照表把0、1转换成相应文字的。

    0.4 软件程序运作

    计算机上的软件分为两大类别:系统软件,应用程序。

    0.4.1 机器程序与编译程序

    • 程序员写程序然后把程序编译成计算机能够理解的语言,去操纵cpu内部的微指令集去执行相关的功能。

    0.4.2 操作系统

    早期写程序是要考虑硬件驱动的,你想让你的代码执行某个功能到最最底层是一定要通过驱动去操作硬件的,所以同一段代码放到不同的机器上可能都要重新写。操作系统提供了一个软件接口给开发者,由操作系统去负责处理跟硬件有关的事情。

    • 操作系统核心(Kernel),主要和硬件去打交道,管控硬件与提供相关的功能。如果os也有分层的话,kernel就是处在软件与硬件交互的最底层。
    • 从此开发软件不必直接考虑硬件的功能了,而是考虑kernel的主要功能,kernel像是一种把底层硬件封装起来的感觉。
    • kernel非常重要,处在内存中受保护的区域,开机以后就一直在内存里。
    • 系统呼叫(system call),开发软件的时候跟kernel打交道还是比较复杂,于是就产生了system call,进一步的对底层进行抽象和封装,开发程序只要调用system call的接口就可以了。
    • 不同的操作系统不能在不同的硬件架构的计算机上安装,因为操作系统里的kernel的参照硬件的规格编写的。
    • 不同的软件不能在不同的系统上运行是因为软件是参照操作系统的呼叫层(system call)编写的,操作系统不同,呼叫层不同,所以不能混着用。
    • 核心的功能:1.系统呼叫接口(system call),方便开发者去开发程序 2.程序管理(process control):更好的是翻译成进程的管理吧,在多任务多进程的情况下去排队、调度,让cpu的资源去有效的分配 3.内存管理(memory management) 4.文件系统管理(filesystem management):文件的读入输出,支持哪些种类的文件,不支持哪些种类的文件 5.装置的驱动(device drivers)
    • 同一个操作系统,可以和不同的硬件适配一起工作,是因为驱动。驱动是由硬件生产商负责开发,操作系统留了一个开发接口给硬件开发商,开发商根据这个接口开发驱动,操作系统直接管理这个驱动,然后由驱动去和硬件正面打交道。

    0.4.3 应用程序

  • 相关阅读:
    linux内核中GNU C和标准C的区别
    linux内核中GNU C和标准C的区别
    Getting start with dbus in systemd (02)
    Getting start with dbus in systemd (01)
    Getting start with dbus in systemd (03)
    物理内存相关的三个数据结构
    数据类型对应字节数(32位,64位 int 占字节数)
    Linux kernel 内存
    共模电感的原理以及使用情况
    [原创]DC-DC输出端加电压会烧毁
  • 原文地址:https://www.cnblogs.com/AshOfTime/p/9377963.html
Copyright © 2011-2022 走看看