unix核心编程原理(三)
设备编程:
stty用来让用户检测,修改控制键盘和显示器连接属性。对Unix来说,声卡,鼠标和磁盘文件是同一个对象。在Unix系统中,每个设备都被当作一个文件。每个设备都有一个文件名,一个i-节点号,一个文件所有者,一个权限位的集合和最近修改时间。你所了解的和文件有关的内容都将运用于终端和其他的设备。
tty*文件是终端,程序通过读取这些文件获得用户的键盘的输入,通过写入这些文件向终端屏幕发送数据。
常用的磁盘文件由字节组成,磁盘文件中的字节数就是文件的大小。设备文件是链接而不是容器。键盘和鼠标不存储击键数和点击数。设备文件的i-节点存储的是指向内核子程序的指针,而不是文件的大小和存储列表。内核中传输设备数据的子程序被称为设备驱动程序。
处理进程和外部设备间数据流的内核子程序的集合被称为终端驱动程序或tty驱动程序。
一个进程不一定必须要占一段连续的内存,就像文件在磁盘上被分成小块,进程在内存中也被分成小块。同样和文件有记录分配了的磁盘块的列表相似,进程也有保存分配到的内存页面的数据结构。因此,将进程表示为用户空间内的一个小方块只是某种程度的抽象。建立一个进程有点像建立一个磁盘文件。内核要找到一些用来存放程序指令和数据的空闲内存页。内核还要建立数据结构来存放相应的内存分配情况和进程属性。
上一篇: unix核心编程原理(四)
下一篇: RandomAccess接口的使用
推荐阅读
-
并发编程(十三)—— Java 线程池 实现原理与源码深度解析 之 Executors(三)
-
[三]java8 函数式编程Stream 概念深入理解 Stream 运行原理 Stream设计思路
-
《unix环境高级编程·第三版》源代码编译及使用
-
Java并发编程:Java线程池核心ThreadPoolExecutor的使用和原理分析
-
并发编程(三)—— ReentrantLock实现原理及源码分析
-
我的并发编程(三):Volatile的底层实现及原理
-
【高并发】学好并发编程,关键是要理解这三个核心问题
-
深入Java并发编程(三):volatile原理
-
UNIX环境高级编程 UNIX网络编程 1 2这三本书先看哪个一个?网络编程和web编程疑惑,python tornado源码学习
-
unix核心编程原理(一)