资源管理器的理解
1、资源管理器在不同的操作系统有不同的名字(设备驱动,i/o管理器,文件系统,驱动,设备等),这些所有的目标都是实现一些服务。
2、qnx是遵循POSIX规范的操作系统,这个表明资源管理器是基于POSIX规范
3、资源管理器的特点,使用了标准的POSIX的函数(read(), open(), write()等),特殊的功能需要特殊的函数实现。clients和resource manager 之间是消息传递,这就要求是传递层尽可能的简单。比如:client 通过open()获得一个文件描述符,这个文件描述符实际上就是一个connection id,client能通过这个id使用read()获得resource manager的信息。
#client
client通过调用open()函数来获取resource manager的相关信息
fd = open ("/dev/ser1", O_WRONLY);
首先查询路径名,得到回应后,开始connect,等到reply,路径名的查询由qnx内核process manager完成
总结:
1、client通过open()或者fopen()函数与resource manager建立连接
2、一旦请求了一个特定的resource manager,将不能改变resource manager
3、所有client会话消息都基于文件描述符
4、当关闭文件描述符时,会话结束
5、所有基于client的文件描述符的函数调用都被转换成消息