一个solaris的内核问题的解答
作者: Badcoffee
Email: blog.oliver@gmail.com
Blog: http://blog.youkuaiyun.com/yayong
2004年11月回答别人的问题能促使自己学到很多东西。
下面是我回答chinaunix网友的关于solaris内核编程的一个记录,绝对值得收藏,也许某天我会根据这个写一些东西出来:)
问题:solaris 下,map 文件到一虚拟内存地址,然后对该虚拟内存地址进行写操作,该写操作居然绕过了内核的vnode VOP_WRITE操作直接写到物理磁盘上。请问:该io操作怎么写道磁盘上的?我痛苦几周了,哪位高手救命啊!!!
答:你是用mmap(2)吗?
具体参数是甚么?
如果你用了 MAP_SHARED,而且用了 PROT_WRITE
那么,修改内存文件肯定会一起被修改。
以下节选自man page:
The MAP_SHARED and MAP_PRIVATE options describe the disposi-
tion of write references to the underlying object. If
MAP_SHARED is specified, write references will change the
memory object. If MAP_PRIVATE is specified, the initial
write reference will create a private copy of the memory
object page and redirect the mapping to the copy.再问:如楼上所说,修改内存文件肯定会一起被修改,但我现在想知道内核是怎样实现写入磁盘的。普通的文件的write操作,内核是通过vnode VOP_WRITE写入磁盘的,而map操作没有这样做,而是通过其它途径写入磁盘的。该途径是什么,我研究了solaris 的内核,用了很多种方法,仍然不得其解。有熟悉solaris 内核代码的人吗?本人不胜感激。
再答:mmap影射一个ufs系统的普通文件到内存是
使用vnode的VOP_MAP来作的,
map成功后
读写都是直接访问内存方式,
第一次读会产生page fault, 导致最终调用 vop_getpage, ufs_getpage
写则是vop_putpage, ufs_putpage, 最终该页被标志为dirty,由fflush写回磁盘
因此,使用mmap确实不会用VOP_WRITE
vop_write和vop_read都是在read和write系统调用,即文件IO时才使用
相关推荐
Solaris内核结构(第二版)
本书介绍Solaris操作系统的内核,提供了内核结构以及该操作系统中使用的主要数据结构和算法的大量信息,主要内容包括:Solaris内核概述、Solaris存储系统线程、进程和IPC、文件和文件系统;本书还讲解了该系统的实际应用,用大量实例阐述了应用方法和技巧;本书对于使用Solaris操作系统的各类技术人员来讲是一本极具参考价值的专著。
Solaris内核目录
目录: 概述 ◆ /proc/目录简介 ◆ procfs的实现 后记 -------------------------------------------------------------------------- 概述: 进程文件系统 -- procfs -- 允许像管理文件那样直接管理内核进程。 进程文件系统,procfs,是一个伪文件系统,提供了内核进程表的文件系统接
Gartner《构建可扩展数据产品建设框架》心得
数据产品化:从概念到落地的实践指南 当前企业正从传统数据需求模式转向数据产品化新范式。本文系统阐述了数据产品的核心价值、定义分类和实施框架,指出成功关键是将数据包装为可复用、可扩展的产品。Gartner框架强调产品思维,提出4阶段12步实施路径,涵盖设计、工程、发布和监控全流程。文章特别提醒要避免7大常见误区,如简单重命名报表、忽视元数据治理等,建议采取MVP策略,90天内完成从价值验证到产品落地的闭环。实施中需平衡技术选型与业务需求,建立跨职能团队,并通过AARRR模型持续追踪产品价值。
Sunos内核版本对应的Solaris版本
SUNos简介 2010-02-01 11:46 Solaris 是Sun Microsystems研发的计算机操作系统。它被认为是UNIX操作系统的衍生版本之一。 目前Solaris仍旧属于私有软件。2005年6月14日,Sun公司将正在开发中的Solaris 11的源代码以CDDL许可开放,这一开放版本就是OpenSolaris。 历史 Sun的操作系统最初叫做SunOS,由于Su
手把手教你搞定EMC EFT测试:从电源线到信号线的完整整改实战(附常见失败原因)
本文详细解析了EMC EFT测试中的常见问题及整改措施,从电源线到信号线的完整实战方案。通过四步定位法和成本最优整改策略,帮助工程师有效应对电快速脉冲群干扰,提升产品通过率并降低成本。
Materials Studio与LAMMPS联合作战:如何用msi2lmp.exe完美转换聚合物模型(含PCFF力场配置)
本文详细解析了如何利用msi2lmp.exe工具将Materials Studio中的聚合物模型高效、准确地转换为LAMMPS可识别的data文件,并重点配置PCFF力场。文章提供了从MS模型构建、文件导出到命令行转换、参数调整及转换后验证的全流程实战指南与避坑技巧,旨在帮助研究者解决模型转换中的常见问题,实现跨平台分子动力学模拟的无缝衔接。
OpenSolaris/Solaris中文FAQ
Wikipedia,自由的百科全书(重定向自Opensolaris chinese faq)维护者: Oliver Adamzhang 本文来自: OpenSolaris中国社区 URL: http://wiki.gceclub.sun.com.cn/index.php/Opensolaris_chinese_faq 声明: 本FAQ可自由拷贝、分发、修改及再创作;
CMake接口库实战:如何用add_library的INTERFACE选项管理跨项目依赖
本文深入探讨了CMake中add_library的INTERFACE选项在管理跨项目依赖时的实战应用。通过创建不包含源代码的接口库,开发者可以集中管理头文件路径、编译定义、链接库等公共配置,并将其声明式地传递给依赖目标。文章以构建模块化跨平台网络应用为例,详细展示了如何利用接口库实现配置的集中化、依赖关系的显式化,从而提升大型项目的可维护性和可移植性。
oracle817安装完报错,oracle for solaris 安装错误FAQ
声明:以下均为从论坛上整理而来,有什么错误之处敬请大家指出,并请大家补充这上面没有的^_^Q:ORACLE for solaris有64-bit和32-bit的区别吗?A:有,安装时视操作系统而定。检查操作系统是32位还是64位:#isoinfo -vQ: 安装ORACLE时无法更换第二张盘A: 当安装程序提示插入第二张盘时,必须将当前目录改变到其他目录。使用cd /退出光盘目录,光盘就可以退出了...
DICOM图像知识:深入详解DICOM的层级关系
解析DICOM的四个主要层级:Patient(患者)、Study(检查)、Series(序列)和SOP(服务-对象对),探讨它们之间的关系、各自的唯一标识符以及在实际应用中的用途
因素空间与可拓学的互补性分析及问题处理融合模型
随着知识与信息数量的快速增长以及信息获取便利性的增加,企事业组织所面临的内外部环境更加复杂,业务问题呈现非线性、不确定性、多维化和实时交互性等特点。业务环境的高度不确定性和面临问题的开放性,人工智能与问题处理的深入研究迫切需要有一种自觉地为信息科学与智能科学服务的定性定量相结合的智能数学模型。经典数学适于描述物质世界的数量与空间关系,智能数学必须能描述信息拓展与智能机理。
Solaris 问答集
Solaris 问答集 1. Q: Solaris 的系统配置文件一般在什么地方? A: 可以查看/etc/system文件,里面有一些solaris启动时默认加载的选项,包括 共享内存大小等的设置。 2. Q: 在solaris中,用户默认的Shell在什么文件中规定? A: 可以查看/etc/passwd中,用户默认的shell在这里规定。 3. Q: 如果solaris不幸忘记了root
攻克反光难题!YOLOv9工业缺陷检测实战:高反光件、微小划痕精准识别(附抗反光代码+产线数据)
文章摘要:本文针对不锈钢、铝合金等高反光工业件的缺陷检测难题,提出了一套“硬件抗反光+YOLOv9小目标增强”的解决方案。通过分析反光干扰(镜面/漫反射)和微小划痕(0.1mm级)两大核心问题,详细介绍了500万像素工业相机+偏振光源的硬件配置方案,以及基于偏振图像融合和超分辨率放大的预处理方法。最终实现误检率1.2%、微小划痕检出率99.3%的工业级检测效果,并提供了可落地的代码实现和车间实测数据。(148字)
OpenSolaris/Solaris 常见问题解答
本文转载于 http://blog.chinaunix.net/uid-11193716-id-2896321.html OpenSolaris/Solaris中文FAQ (2008-08-04 19:30) 分类: Solaris 注: 1.本文档只覆盖Solaris 9及以后的平台上的常见问题 2.S9/10/11 分别对应目前Sol
机器人控制基础:伺服驱动器的泄放电阻
摘要:伺服驱动器泄放电阻用于消耗电机减速或制动时产生的再生电能,防止母线电压过高损坏元件。其核心作用是将多余电能转化为热能,规避硬件损坏和停机风险。选型需关注功率、阻值和封装三大参数,功率应匹配再生能量,阻值需符合驱动器要求,封装应满足散热需求。可通过动态监测母线电压或静态检测电阻阻值来判断其是否正常工作。
WINCC7.3破解文件
WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!
Solaris 常见问题
转自:http://bbs.chinaunix.net/thread-1127665-1-1.html 简介 这篇文档包含了你用Solaris和Sun平台工作时所需要的最重要的20%的技术。它能处理你所遇到的80%的问题。 这篇文档并不打算覆盖Solaris处理环境的细节,也不会包含常见问题解答(相关的书和链接将在附录中给出) 。这本书将用来为刚成为Solaris系统管理员的新手或没有...
pscad IEEE标准系统搭建说明
pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。
Solaris 9 安装Oracle 实录
有客户是solaris的系统,需要安装Oracle,所以自己下叻个solaris在试装一下oracle,下了一个sol-9-u8-install-ga-x86的版本,直接从sun的网站上下的。sol-9-u8-ga-x86-v1-iso.zip sol-9-u8-ga-x86-v2-iso.zip 今天去看,好像都已经remove了哟,当时下了3个文件 还 有一个sol-9-u8-in...
OV9734 DATASHEET,完整规格书
OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等
怀旧版电脑GBC模拟器
再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。
Solaris 初步设置(转)
Solaris 初步设置(转) 简介 这篇文档包含了你用solaris和Sun平台工作时所需要的最重要的20%的技术。它能处理你所遇到的80%的问题。 这篇文档并不打算覆盖Solaris处理环境的细节,也不会包...
Install Orace 11g on Solaris 10 Sparc 64 bit
昨天去一客户那里安装11g数据库,把整个安装过程和遇到的一些问题做个记录,分享一下。由于该客户无法用自己的机器远程连接到服务器,也不允许通过U盘、移动硬盘等拷贝任何文件,因此一些记录内容无法做到很详尽,只能凭记忆大致写出。 主机:SUN Netra T4-1 M4000 CPU:8 core 2.85GHz 内存:32G 系统:Solaris 10
20%的SOLARIS知识解决80%的问题
Solaris下ps -ef命令回显CMD列80个字符长度的限制 /usr/ucb/ps -auxww pargs -l 1314 20%的SOLARIS知识解决80%的问题 德国Sun微系统股份有限公司 版本历史 日期 版本 简介 2002年05月25日 V1.8e 第一个英语发布版 2002年06月12日 V1.9e 第一次反馈(感谢Dnaiel Sch...
1520



被折叠的 条评论
为什么被折叠?



