《UNIX环境高级编程》学习笔记一 —— UNIX基础知识
1.UNIX体系结构
内核(Kernel)控制计算机硬件资源 ,提供程序运行环境。
内核的接口被称为系统调用(System Calls)。
公用函数库(Library Routines)构建在系统调用接口之上,应用程序(Applications)即可使用公用函数库,也可使用系统调用。
shell是一个特殊的应用程序,为运行其他应用程序提供了一个接口。
Linux是GNU操作系统的内核
2.文件和目录
2.1 文件系统
UNIX文件系统是目录和文件的一种层次结构,所有东西的起点是称为根的目录,这个目录的名称是一个字符“/”。
2.2 文件名
只有斜线(/)和空格两个字符不能出现在文件名中。
创建新目录时会自动创建两个文件名: . 和 .. 。 .指向当前目录;.. 指向父目录;在最高层次的根目录中, . 和 .. 相同。
2.3 路径名
以斜线开头的路径名称为绝对路径名,否则为相对路径名。
3. 输入和输出
3.1 文件描述符
文件描述符通常是一个小的非负整数,内核用以标识一个特定进程正在访问的文件。当内核打开一个现有文件或创建一个新文件时,它都会返回一个文件描述符。在读、写文件时,可以使用这个文件描述符。
3.2 不带缓冲的IO
函数open、read、write、lseek以及close提供不带缓冲的IO。,这些函数都使用文件描述符。
4.标准IO
使用标准IO函数无需担心如何选取最佳的缓冲区大小,标准IO还简化了对输入行的处理。
最熟悉的标准IO函数是printf。
5.程序和进程
5.1 程序
程序是一个存储在磁盘上某个目录中的可执行文件。内核使用exec函数将程序读入内存。
5.2 进程和进程ID
程序的执行实例被称为进程。