热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux/Unix系统编程手册第二章:基本概念

本章预热与后续系统编程有关的概念。术语“操作系统”通常包含2种含义:一是指完整的软件包,包括管理计算机资源的核心组件,已经附带的标准软件&

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

 

术语“操作系统”通常包含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也实现了该特性。

 

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

转:https://www.cnblogs.com/pluse/p/6286995.html



推荐阅读
author-avatar
汉臣Y
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有