美文网首页
UNIX基础知识

UNIX基础知识

作者: 陀氏 | 来源:发表于2019-07-14 23:20 被阅读0次

一、UNIX基础知识
1.6 程序和进程

  • 程序(program)是一个磁盘中的可执行文件,内核中用exec将程序读入内存。
  • 进程(process)是程序的执行实例,也有些地方称为任务(task)
  • 每个进程有唯一标志的、非负整数的进程ID(processID,通过getpid()可获取)
  • 进程控制:通过fork\exec\waitpid函数控制。
  • 线程:
    • 通常一个进程只有一个控制线程。一个进程内的所有线程共享同一地址空间、文件描述符、栈以及相关进程属性。因为访问共享数据,所以需要采取同步措施避免不一致性。
    • 线程也有一个线程ID,只在所属进程内起作用。线程模型是在进程模型建立很久之后才被引入unix系统的。

1.7 出错处理
unix系统函数出错通常返回一个负值。POSIX和ISO C将errno定义为一个整型的可变值,每个线程都有属于它自己的局部errno值防止互相干扰。C标准定义了函数:

  • char *strerror(int errnum):将errnum映射为一个错误信息,返回其字符串指针。
  • void perror(const char *msg):输出msg、冒号、空格及当前errno值对应的出错消息,最后换行。

错误分为致命的和非致命性的:致命的通常打个日志就无法做什么了,非致命的错误程序可自行考虑措施。

1.8 用户标识

  • 用户ID:系统通过用户登录名确认其ID,用户ID不可变,每个用户有唯一ID。ID为0的是root或superuser,可跳过大多数文件权限检查。
  • 组ID:同组ID的各用户可共享资源,文件通常是/etc/group。
  • 选用数字是为了节省空间、检查效率高。口令文件里另存了映射关系,方便用户使用字符串作为名字。
  • 附属组ID:大多数系统支持16个附属组,使一个用户属于组的同时,也属于另外的若干附属组。

1.9 信号

  • 信号(signal)用于通知进程发生了某种情况,如被0除。信号可以被忽略、关闭程序、提供handler函数。
  • 关闭:终端键盘上支持中断键(Ctrl+c)、退出键信号(Ctrl+)来中断当前进程。也可以通过kill信号,由一个进程向另一进程发送中断信号(前提我们必须是那个进程的所有者或超级用户)。

1.10 时间值

  • unix系统使用过两种时间值:
    • UTC 1970年至今秒数,用于记录文件最近一次修改时间。
    • 进程时间:以cpu运行该进程的滴答数为计。
  • 进程执行时间unix维护了三份:
    • 时间时间:进程运行时间的总量,与系统同时运行的进程数有关。
    • 用户CPU时间\系统CPU时间:执行用户指令、系统指令所花的系统cpu时间量。

1.11 系统调用和库函数

  • 所有操作系统都提供了多种入口,由此程序向内核请求服务。各种unix实现的良好定义、数量有限的直接入口点称为系统调用(system call)。所用的技术是为每个系统调用在标准C库设置一个同名函数,通过用标准C来调用内核服务。(产生软中断进入内核的机器指令)
  • 从实现角度看,库函数和系统调用有根本区别。库函数可替代但系统调用不能替换,如malloc如果不满可以使用其它的库实现内存管理。
  • 库函数与系统调用另一差别是:系统调用通常提供一种最小接口,而库函数提供比较复杂的功能。

相关文章

  • Unix 基础知识

    Unix 基础知识 @[执行新程序, 打开文件, 读取文件, 分配存储区, 获取当前时间等, 应用程序, shel...

  • UNIX基础知识

    1.1 unix的体系结构 内核(kernel)系统调用(system call)库函数shell应用程序 1.2...

  • UNIX基础知识

    一、UNIX基础知识1.6 程序和进程 程序(program)是一个磁盘中的可执行文件,内核中用exec将程序读入...

  • UNIX基础知识

    UNIX基础知识 UNIX体系结构 登陆 文件和目录文件系统【1、目录是一个包含目录项的文件;2、根目录:所有东西...

  • apue 第一章 unix基础知识

    apue 第一章 unix基础知识 unix 体系结构 kernel(内核):一种软件,控制计算机的硬件资源,提供...

  • Unix环境编程1-2

    第一章 unix基础知识 1.1 unix体系结构 操作系统(也叫内核)是一种控制协调计算机硬件资源的软件,为程序...

  • APUE 01 UNIX基础知识

    /etc/passwd /etc/shadow 目录是一个包含目录项的文件。“/”表示根目...

  • 第1章——《Unix基础知识》

    实验环境介绍 gcc:4.8.5 glibc:glibc-2.17-222.el7.x86_64 os:Cento...

  • 19:unix/linux之基础知识

    1、unix/linux文件管理方式 2、常见命令操作 3、磁盘文件管理 1、命令:ls 2、命令:more 3、...

  • 从零开始UNIX环境高级编程(1):Unix基础知识

    1. 概述 《UNIX环境高级编程》介绍的是不同版本的Unix操作系统提供的服务。那具体指的是哪些服务呢?首先,需...

网友评论

      本文标题:UNIX基础知识

      本文链接:https://www.haomeiwen.com/subject/dscwkctx.html