Unix 基础.

Unix体系结构

1. 由内而外分别为: 系统内核->(系统调用)->Shell | 库函数->应用软件.

2. 用户登录:

用户名称在/etc/passwd文件中查看,用户登录后通过Shell终端和系统交互. Shell有: bash/ksh/tcsh/csh/sh, 用户登录时候的shell由/etc/passwd最后一个字段决定。

3. 系统文件和目录

目录起始点为:root (/),

4. 输入和输出

4.1. 文件描述符(file descriptor):用来标识一个特定进程正在访问的文件。当内核打开一个已有文件或者创建一个新文件的时候,它返回一个文件描述符。

4.2. 标准输入,标准输出和标准出错:运行一个程序时,这个文件描述符打开。这些文件对应的输入,输出可以重定向。

4.3. 不用缓存的I/O:系统函数:open/read/write/lseek/close (unistd.h),直接采用文件描述符。

4.4. 标准I/O:对不用缓冲I/O函数的带缓冲的接口(stdio.h)。不比要担心如何选取最佳的缓存去大小。

5. 程序和进程

5.1. 进程和进程ID:程序的执行实例被称为进程process (task), 每个进程都有一个唯一标志符:进程ID:processID (getpid).

5.2. 进程控制:fork/exec/waitpid

5.3. 线程和线程ID: 同一进程内的所有线程共享同一地址空间,文件描述符,栈以及与进程相关的属性. 线程互斥在访问同一共享数据时. 线程由线程ID标志.

6. 出错处理: 函数返回值(errno.h)来标志错误类型. 在多线程中,每个线程都有自己的局部errono,(避免线程干扰),该值不会被其他线程改变,并且不为0。Notes: 在用管道运行程序的时候,将argv[0]置于输出信息中,可以知道哪个程序产生错误:prog1 <inputfile |prog2 |prog3 > outputfile.

7. 用户标志。用户ID用来标志各个不同的用户。

7.1. 组ID:用户组标志。

7.2. 附加组ID:用户可以多至属于16个组。

8. 信号:Signal。程序根据捕获的信号,做不同的处理。

9. 时间值:1)日历时间。2)CPU时间。度量一个进程的执行时间时,3个进程时间值:时钟时间,用户CPU时间 (执行用户指令所用的时间),系统CPU时间(执行内核程序所用的时间)。

10. 系统调用和库函数。

转载于:https://www.cnblogs.com/spandon/archive/2012/10/31/2748162.html

UNIX环境高级编程_学习笔记(一)相关推荐

  1. 《Unix环境高级编程》学习笔记:从点到面

    以前在课堂上学习过<Unix初级教程(第四版)>,对于Unix有了一点了解.由于以后使用的需要,要对它进行比较深入的学习,为此需要阅读不少的书籍,这本<Unix环境高级编程>便 ...

  2. 《UNIX 环境高级编程》学习笔记——UNIX 基础知识

    UNIX环境高级编程--UNIX 基础知识 引言 UNIX 体系结构 登录 文件和目录 输入和输出 程序和进程 出错处理 用户标识 信号 时间值 系统调用和库函数 引言 所有操作系统都为它们所允许的程 ...

  3. 《UNIX 环境高级编程》学习笔记—— 标准I/O库

    UNIX环境高级编程--标准I/O库 流和 FILE 对象 标准输入.标准输出和标准错误 缓冲 打开流 读和写流 每次一行 I/O 二进制 I/O 定位流 格式化 I/O 临时文件 内存流 流和 FI ...

  4. 《UNIX环境高级编程 3rd》笔记(1 / 21):UNIX基础知识

    文章目录 引言 UNIX体系结构 登录 登录名 shell 文件和目录 文件系统 文件名 路径名 工作目录 起始目录 输入和输出 文件描述符 标准输入.标准输出和标准错误 不带缓冲的IO 标准IO 程 ...

  5. 《Unix环境高级编程》读书笔记 第5章-标准I/O流

    1. 引言 标准I/O库由ISO C标准说明,由各个操作系统实现 标准I/O库处理很多细节,如缓冲区分配.以优化的块长度执行I/O等.这些处理使用户不必担心如何使用正确的块长度,这使得它便于用于使用, ...

  6. Unix环境高级编程(阅读笔记)----sigaction函数

    sigaction函数的功能是检查或修改指定信号相关联的处理动作,此函数取代UNIX早期版本使用的signal函数. [cpp]  view plain copy #include<signal ...

  7. 5w字总结 Unix系统编程学习笔记(面试向)(Unix环境高级编程/Unix环境程序设计)

    文章目录 一.计算 C语言的数据表示与处理 计算 C语言的基本运算操作 内存表和符号表 类型转换 函数类型的分析 指令 复合指令 句法 函数 函数激活(Activation Record) 函数激活定 ...

  8. Unix环境高级编程 笔记

    Unix环境高级编程(第二版)学习笔记 这是一次较长时间的整理,然而跳跃了一些章节和很多知识点,仍然是很不完善很不全面的. 前言 操作系统某些问题 严格意义上,可将操作系统定义为一种软件,它控制计算机 ...

  9. 开发日记-20190822 关键词 读书笔记《Unix环境高级编程(第二版)》《掌控习惯》DAY 2

    Preface 话说,昨天开始尝试着去改变自己,从基础的习惯开始,11:30准时睡觉,平时差不多12:30才睡觉.按理说,比平时早了一个小时睡觉吧,然后我就把闹钟提前了45分钟,想着还能比平常多睡15 ...

最新文章

  1. 实验测试2SK241的g-s击穿电压
  2. java url工具_UrlTool官方版|UrlTool (java Url转换工具)下载v1.1-乐游网软件下载
  3. ActiveMQ-为什么需要消息中间件及优缺点
  4. npm 安装 git linux,如何直接从GitHub安装NPM软件包?
  5. python 并行_python多进程并行代码实例
  6. stm32cubeIDE下载无法打开GDB的问题
  7. 中国工业企业数据库stata处理
  8. 实对称矩阵的特征值求法_梳理:矩阵对角化
  9. checkbox不全部选中,会跳出提示(这个是我记录的重点)
  10. power oj 2825: 拔河大赛(并查集)
  11. python实现对文件夹的图片分类存放(自动新建文件夹存放图片)
  12. 2TB虚拟本地磁盘实验
  13. 点名器——随机数的应用
  14. c++builder 6.0中OnCliked= fun实现的原理
  15. 硬件电路常用设计摘要
  16. vscode写php高亮,写了一个Hy的vscode语法高亮插件
  17. (附源码)计算机毕业设计SSM大学生项目众筹系统
  18. unity3D 摄像机旋转、平移、缩放
  19. mysql 语法-insert.into..select 容易陷入的坑
  20. hp-ux 防火墙 状态_UX技巧:考虑空状态

热门文章

  1. xp系统共享文件,其他电脑访问提示“您没有权限访问,请与网络管理员联系请求访问权限”解决办法。
  2. [LeetCode][H0629]K个逆序对数组(Java)(动态规划)
  3. C语言作业(软件工程),C语言作业软件工程
  4. 8年软件测试工程师职业生涯感悟—写给正在迷茫的你
  5. 怎样在PADS中设置阻焊层的大小
  6. Mybatis 标签合集
  7. 论文阅读笔记(一)《Sequence to Sequence Learning with Neural Networks》
  8. 读大学时千万要避免的几个坑
  9. PhotoStage for Mac(幻灯片相册制作工具)
  10. JAVA EE课堂笔记