【qianlong88的APUE读书笔记】第一章:uinx基础知识

在做本章的笔记之前,先分享一个关于man命令的知识,对今后的学习有很大的帮助。

Linux下的在线手册(MAN)的章节分类:

/usr/share/man/ - Linux man pages
1、Standard commands (标准命令)
2、System calls    (系统调用)
3、Library functions    (库函数)
4、Special devices    (设备说明)
5、File formats    (文件格式)
6、Games and toys    (游戏和娱乐)
7、Miscellaneous    (杂项)
8、Administrative Commands    (管理员命令)

 

1.1 引言

所有操作系统都需要向他们运行的程序提供各种服务,包括:执行新程序、打开文件、读文件、分配存储区以及获取当前时间等,本书即集中阐述了unix操作系统各种版本所提供的服务。

第一章是对全书的快速浏览,涉及到了本书要讲的大部分模块,后面的章节会有具体的讲解。

1.2 unix体系结构

操作系统控制计算机硬件资源,提供程序运行环境。下图描绘了unix操作系统的体系结构。狭义的操作系统即为内核,广义的操作系统包含了其他软件,如实用程序、shell及公用函数库。

内核的接口被称为系统调用。公共函数库构建在系统调用接口之上,应用软件既可使用公共库函数,也可使用系统调用。

Shell是一种特殊的应用程序,它为运行其他应用程序提供了一个接口。

1.3 登录

1.登录名:/etc/passwd文件中的字段

2.shell:命令行解释器,用户登录后的默认shell由passwd文件指定。

常见的shell:Bourne shell/Bourne-again shell/C shell/Korn shell/TENEX C shell

Bourne shell:最常见的shell,其控制流结构类似于Algol 68;

1.4 文件和目录

Unix的文件系统是目录和文件组成的层次结构,起点为跟(/)。

目录是包含很多目录项的文件,目录项包括文件名、文件信息。

书中有一个仿ls程序,比较简单,就不写了。

另外说明本书源代码的编译方式,其实不难,如果有人需要源码和编译方法,可以找我。

1.5 输入输出

文件描述符:小的非负整数,内核用它标识一个特定进程正在访问的文件。

标准输入、标准输出、标准出错:特殊的文件,描述符分别为0、1、2

不用缓冲的I/O:系统调用,open,read,write,lseek,close。标准输入、输出均可重定向到其他文件。

标准I/O:提供了一种对不用缓冲I/O函数的带缓冲的接口。使用标准I/O函数可以无需担心如何选取最佳的缓冲区大小。

1.6 程序和进程

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

进程:程序的执行实例,由pid标识。

进程控制函数:fork/exec/waitpid

Fork函数创建一个新进程,并返回两次,一次返回给父进程,一次返回子进程。

1.7 出错处理

           errno,在<errno.h>中定义,uinx系统手册的第二部分的intro列出了所有的这些常量;linux中,出错常量在errno(3)手册页中列出。

          支持多线程的环境中,每个线程都有自己局部的errno,以避免干扰另一个线程。

        两条规则:不出错,不会清除errno;errno不为0。            

//将errno映射为出错信息字符串

Char *strerror(int errnum);

//基于当前errno值,在标准出错上产生一条出消息。

Void perror(const char *msg);


1.8 用户标识

用户ID、组ID、附加组ID

1.9 信号

信号:通知进程已发生某种情况的一种技术。

Signal函数

sighandler_t signal(int signum, sighandler_t handler);

1.10 时间值

日历时间:自1970年1月1日00:00:00以来国际标准时间所经历的秒数累计值。Time_t保存该值

进程时间:即CPU时间

Time命令

1.11 系统调用和库函数

Linux不同版本提供240~260个系统调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值