zoukankan      html  css  js  c++  java
  • 《UNIX环境高级编程》第一章总结

    第一章 UNIX 技术知识

    unix的口令文件一般情况下是/etc/passwd文件

    口令文件中的登录项一般有7个以冒号进行分割的字段组成:登录名,加密扣了,数字用户ID(224),数字组ID(20),注释字段,起始目录(比如:/home/rollen),以及shell程序(/bin/ksh)。

    unix目录的起始目录叫做root,他的名字是一个字符/

    stat和fstat函数返回一个包含所有文件属性的信息结构

    不能出现在文件名中的字符有:斜线(/)和空操作符null

    以斜线开头的路径名叫做绝对路径,否则是相对路径

    每一个进程都有一个工作目录的,也叫做当前工作目录,进程调用chdir可以改变当前的工作目录

    登陆的时候,工作目录设置为起始目录,也就是(home/rollen)之类的目录,这个目录可以在/etc/passwd文件中获得。

    文件描述符是一个小的非负整数,内核使用它来标识一个特定进程正在访问的文件。当内核打开一个现存的文件或者创建一个新的文件的时候,他就会返回一个文件描述符,当我们读取,写入文件的时候就可以使用他。

    每当我们运行一个新的程序的时候,所有的shell都会打开标准输入,标准输出,标准错误输这三个文件描述符,默认都是连接到终端。

    函数open,read,write,lseek以及close都提供了不适用缓冲的I/O,这些函数都是用文件描述符工作。

    程序是存放在磁盘上的可执行文件,使用6个exec函数中的一个可以由内核将程序读入存储器,并将其执行。

    每一个unix进程都有一个唯一的进程ID,这个数字是一个非负整数。

    有3个函数主要用于进程控制,fork,exec(exec有6中变体),waitpid。

    以_t结尾的数据类型被称为原始数据类型,一般定义在<sys/types.h>文件中、他们一般使用c typedef说明加以定义。

    当unix函数出错的时候,一般需要返回一个负值,而且整数型变量errno通常设置为具有特定信息的一个值。但是也有例外,比如一些函数并不是返回负值,而是使用其他的约定,比如返回null等。

    对于errno应该知道1)如果没有出错,那么他的值不会被一个例程清除。因此只需要在函数返回值出错的时候,才需要检查他的值。2)任何一个函数都不会把errno的值设置为0,在<erron.h>文件中定义的所有常数都不为0.

    口令文件登录项中的user ID是一个数值,他用来想系统标识不同的用户,系统管理员在确定一个用户的登录名的同时,也需要确定他的user ID。用户不能更改自己的user ID,每个用户都有一个user id。

    user id为0的用户是超级用户root。在口令文件中通常有一个登录项的登录名为root。

    组ID也是一个数值,他是由系统管理员在确定用户的登录名的时候分配的。一般在unix下,组被用来将不同的用户集成到一个部门下面,这种机制可以容许组中的不同成员之间可以共享一些资源,组文件(通常是/etc/group)将组名映射为数字组ID.

    系统中每个文件的目录项都包含这个文件的所有者的user id和group id。在目录项中存放这2个值只需要4个字节(假设以双字节整形存放),但是如果使用8字节的登录名和8字节的组名的话,需要占用更多的存储空间,但是对于用户来说,使用名字作为登录名比使用数字要方便的许多,所以在口令文件中包含了登录名和用户id之间的映射关系。而组文件则包含了组名和组id之间的映射关系。

    信号是通知进程已经发生某种条件的技术,进程如何处理信号有3中形式:

    1)忽略信号2)按照系统默认方式进行处理3)提供一个信号发生的时候调用的函数

    很多条件都会产生信号,有2中键盘方式:中断键(一般是delete或者Ctrl+c)和退出键(通常是Ctrl+\),他们被用于中断当前的进程。另外一种产生信号的方式是使用kill函数,当向一个进程发送信号的时候,我们必须是这个进程的所有者。

    unix系统一直使用两种不同的时间值,1)日历时间2)进程时间。

     

  • 相关阅读:
    java并发之hashmap源码
    java并发之hashmap
    java线程池之一:创建线程池的方法
    springAOP之代理模式
    java阻塞队列之LinkedBlockingQueue
    java阻塞队列之ArrayBlockingQueue
    java中的异常
    springboot入门之一:环境搭建(续)
    Unity 游戏框架搭建 2019 (二十三、二十四) 备份与版本号&危险的操作
    Unity 游戏框架搭建 2019 (二十一、二十二) 第三章简介&整理前的准备
  • 原文地址:https://www.cnblogs.com/rollenholt/p/2508294.html
Copyright © 2011-2022 走看看