zoukankan      html  css  js  c++  java
  • Linux/Unix系统编程手册 第二章:基本概念

    本章预热与后续系统编程有关的概念。

    术语“操作系统”通常包含2种含义:一是指完整的软件包,包括管理计算机资源的核心组件,已经附带的标准软件;二是独指管理硬件的内核。

    内核具有诸多概功能,包括:

    • 进程管理
    • 内存管理
    • 文件系统支持
    • 设备管理

    在内核的管理下,操作系统会给每个用户营造一种抽象:虚拟化,即使得每个用户感觉自己在独占机器。

    内核通过硬件将CPU分为2种状态,一种是用户态,又称目态;另一种是核心态,又称管态。两者区别是对CPU的限制,前面一种有很大限制,后一种无限制。

    操作系统的一切活动都掌控在内核的控制下,在后面的编程过程中,需要使用内核角度来看到程序。程序要完成的很多功能,都是借助于内核的。例如,进程创建子进程,也是当前进程向内核请求,然后内核为其创建子进程,而不是进程自身的功能。甚至是程序的结束也不能由自身掌控,也是内核来控制的,程序告诉内核需要终止,内核进行终止工作,程序才能结束,否则不允许结束。

    shell用来进行人机交互和命令解释,其实它是一个进程,是有系统创建的,shell中执行命令相当于C/C++中的函数调用,只不过shell是每执行一个命令时,创建出一个子进程,并复制一份当前的环境给子进程,然后在子进程中执行命令程序,完毕后销毁自身环境进行返回。所以shell脚本中导入的变量只对shell创建出的子shell进程有效,一旦返回就丢弃了,使用source命令来使得脚本在当前shell进程中进行执行。

    Unix使用用户和组来对用户身份进行标识

    Unix的文件系统是使用单根目录结构来维护的。

    文件分为多种类型,包括:普通文件,设备文件,目录文件,管道文件等等。

    文件系统中的文件目录有绝对和相对之分。

    文件有所有权和文件名。

    Unix系统提供文件I/O,Unix的文件I/O是通用的,也即文件I/O可以适用于所有文件类型,包括普通文件,设备文件,套接字文件。通用文件I/O屏蔽了下层的复杂细节,只要用同一套文件I/O就能处理任何类型文件。

    本质上,内核只提供一直文件类型:字节流序列。

    Unix系统没有文件结束符的概念,当读取文件时无数据返回,便认为文件结束。实际实现中,Linux是具有文件结束符的。

    程序和进程:进程是程序在内存中的活动实体抽象。

    进程分为两部分,一部分在用户内存空间,由程序使用;一部分在内核用户空间,有内核管理进程使用。

    内存映射分为两种:文件映射和匿名映射。

    程序库也分为两种:静态库和动态库。

    信号:Unix中用来通信和同步的一种方法。

    /proc文件系统,部分Unix有实现,Linux也实现了该特性。

    以上是后面将涉及到的概念,后面将具体学习。

  • 相关阅读:
    非常精辟的几句话
    关于免杀的实践
    分析PE
    分析 Nanocore
    CTO的窘境
    企业级容器云平台
    POJ 2274
    POJ 1703
    POJ 1182
    DNS协议以及报文格式总结
  • 原文地址:https://www.cnblogs.com/pluse/p/6286995.html
Copyright © 2011-2022 走看看