Unix文件的类型
1.普通文件
2.目录
3.符号连接
4.面向块的设备文件
5.面向字符的设备文件
6.管道和命名管道
7.套接字
点评:不明觉厉
打开文件
进程只能访问“打开的”文件。为了打开一个文件,进程调用
fd = open(path,flag,mode)
path表示被打开的文件的路径。
flag表示打开的方式,它也指定是否应当建立一个不存在的文件。
mode指定新建立文件的访问权限。
关闭文件
当进程无需再访问文件的内容时,就调用系统调用:
res = close(fd)
改名及删除文件
要从新命名或删除一个文件时,进程不须要打开它。这样的操做并无对这个文件的内容起做用,而是对一个或多个目录的内容起做用。
res = rename(oldpath,newpath)
改变了文件连接的名字,而系统调用:
res = unlink(pathname)
减小了文件的连接数,删除了相应的目录项。只有当连接数为0时,文件才被真正删除。linux
虚拟内存的优势
若干个进程能够并发地执行。
应用程序所需内存大于可用物理内存时也能够运行。
程序只有部分代码装入内存时进程能够执行它。
容许每一个进程访问可用物理内存的子集。
进程能够共享库函数或程序的一个单独内存映像。
程序能够编写与机器无关的代码,由于他们没必要关心有关物理内存的组织结构。
进程虚拟地址空间处理
内核分配给进程的虚拟地址空间由如下内存区组成:
程序的可执行代码
程序的初始化数据
程序的未初始化数据
初始程序栈
共享库的可执行代码和数据
堆(由程序动态请求的内存)
设备驱动程序
经过特定的接口,每一个驱动程序与内核中的其他部分相互做用
优势以下:
能够把特定设备的代码封装在特定的模块中。
厂商能够在不了解内核源码而只知道接口规范的状况下,就能增长新的设备。
内核以统一的方式对待全部的设备,而且经过相同的接口访问这些设备。
能够把设备驱动程序写成模块,并动态地把它们装进内核而不须要从新启动系统。再也不须要时,亦能够动态地卸下模块。windows
小结:并发
经过阅读,感受系统内部的奥秘蛮好玩的,可以更深入的认识linux系统的原理,以及windows系统。都是相通的!!!由表及里的研究!!!函数