QNX-19—QNX Proc文件
一、/proc/pid
# ls /proc/12310 as cmdline ctl exefile mappings pmap vmstat
1. as
包含进程整个内存空间的地址空间。
2. cmdline
传递给进程的参数,以空字符分隔。 例如:
# pidin -p 1130602 arg //查看参数 pid Arguments 1130602 m.samsung.home # cat /proc/1130602/cmdline m.samsung.home
3. ctl
可用于 devctl() 命令来访问进程及其线程的文件。
4. exefile
进程的可执行文件的路径。 例如:
# echo `cat /proc/28687/exefile`
/sbin/io-pkt-v6-hc
5. mappings
进程地址空间中每个页面的详细视图。
6. pmap
进程映射的详细视图。
7. vmstat
进程虚拟内存的视图。
8. /proc/self
应该指示当前线程。
二、/proc/ham
# ls i2c_service/ attached death restart # ls i2c_service/attached/ notify-pulse-attached # ls i2c_service/death/ notify-pulse-death restart-self waitfor-restart-delay-500ms waitfor-restart-enable # ls i2c_service/restart/ notify-pulse-restarted
1. notify-pulse-attached
2. notify-pulse-death
3. restart-self
4. waitfor-restart-delay-500ms
5. waitfor-restart-enable
6. notify-pulse-restarted
三、/proc/vm
# ls vm/
stats
1. stats
系统中虚拟内存状态的全局视图。
四、/proc/boot
# ls /proc/boot/ el2-save-restore ifs ksh libsecpol.so.1 mnt procnto-smp-instr
五、/proc/config
# cat /proc/config align_fault:off fd_close_timeout:30 fpustate:4 ker_verbose:0 maxfds:4000 nohalt:0 nonlazy_stack:1 nopreempt:0 pregrow_size:524288 priv_prio.prio:64 priv_prio.saturate:0 procfs_ctl_umask:022 procfs_umask:066 shutdown_stack_len:128/0 safe_shared_mutexes:0 thread_timer_prealloc:0 clockcycles_offset_max:0xFFFFFFFFFFFFFFFF allow_unregistered_events:0 pathtrust:0 small_msg_max:256 proc_thread_pool:3,10,75 thread_stack_prot:NOEXEC mm_cleanup_prio:10 mmflags:0x219 (BACKWARDS_COMPAT,LOCKALL,SUPERLOCKALL,RANDOMIZE)
1. 成员解释
align_fault: 对应选项 -ad, -ae, -as,指示未对齐访问是否导致故障; 关闭或打开。 使用命令行选项禁用未对齐访问模拟会在未对齐访问上生成故障。
fd_close_timeout: 对应选项 -T,进程终止时等待 close() 成功的时间(以秒为单位)
fpustate: 对应选项 -f*,浮点标志;见下文。
ker_verbose: 对应选项 -V,详细程度
maxfds: 对应选项 -F, 可以同时打开的文件描述符的最大数量。
nohalt: 对应选项 -h, -~h,空闲线程中是否禁用CPU暂停; 0 或 1。
nonlazy_stack: 对应选项 -n,(QNX Neutrino 7.0.4 或更高版本)是否正在使用非惰性堆栈分配; 0 或 1
nopreempt: 对应选项 -p,是否禁用内核抢占; 0 或 1。使用 procnto-smp-instr -p 关闭内核中的抢占。 ###############
pregrow_size: 对应选项 -H,procnto 的初始堆大小,以字节为单位。
priv_prio.prio: 对应选项 -P,特权优先级范围的下限。
priv_prio.saturate: 对应选项 -P,超出范围的优先级请求是否使用最大允许值(达到“最大饱和点”)而不是导致错误
procfs_ctl_umask: 对应选项 -d,文件创建掩码,八进制,用于 /proc/pid/ctl 条目。
procfs_umask: 对应选项 -u,文件创建掩码,八进制,用于 /proc/pid/as 条目。 ===>实看,两个都对应不上
shutdown_stack_len: 对应选项 -S,要包含在内核转储中的堆栈指针前后的字节数。
safe_shared_mutexes: 对应选项 -s,内核是否拒绝任何锁定影响优先级的互斥体的尝试,这些互斥体的所有者不为内核所知,并且锁定线程声称来自不同的进程; 0 或 1
thread_timer_prealloc: 对应选项 -t,内核是否在线程创建时分配线程的软件计时器(1),或者第一次需要计时器时分配线程的软件计时器(0)
clockcycles_offset_max: 对应选项 -c,系统CPU时钟周期中允许的最大偏移(差异)
allow_unregistered_events: 对应选项 -U,默认情况下是否允许 (1) 或不允许 (0) 未注册的事件。
pathtrust:
small_msg_max:
proc_thread_pool: 没有对应选项,查看PROC_THREAD_POOL环境变量,procnto的线程池的配置,包括低水位线、高水位线、最大线程数。
thread_stack_prot: 对应选项 -mx, -m~x,是否为系统分配的线程启用 PROT_EXEC 标志; 执行或无执行。
mm_cleanup_prio:
mmflags: 见下文
2. fpustate 成员
fpustate 字段指示设置了哪些 FPU 标志。 其中包括以下内容:
位 选项 说明 ------------------------------------------------------------------------------- 0x1 — 至少一个内核上未设置 CPU_FLAG_FPU 位(即至少一个内核没有浮点单元) 0x4 -fl, -~fl 启用惰性 FPU 上下文切换策略 0x8 -fa, -~fa 为每个新线程预先分配 FPU 上下文结构
3. mmflags 成员
mmflags 字段指示设置了哪些内存管理标志。 您可以使用 -m 命令行选项来设置一些。 这些标志包括以下内容:
标志 选项 说明 ------------------------------------------------------------------------ BACKWARDS_COMPAT -mb 启用向后兼容性 CACHEOP_NOCACHE None 由于特定芯片勘误,无法在不可缓存内存上执行缓存操作 LOCKALL -ml,-mL 所有内存均被锁定 RANDOMIZE -mr 正在使用地址空间布局随机化 (ASLR) REQUIRE_EXEC -mX 如果文件没有客户端进程的执行权限,则 mmap() 或 mprotect() 为内存映射文件映射打开 PROT_EXEC 的任何尝试都会失败 SHMEM_GUARD -mg 在任何共享内存分配之前添加一个保护页 SUPERLOCKALL -mL 所有内存都被超级锁定
六、/proc/dumper
当进程异常终止时接收通知的特殊条目。 dumper实用程序监视此条目。
七、/proc/mount
路径名空间挂载点。
如果列出 /proc 目录的内容,则不会显示 /proc/mount,但可以列出 /proc/mount 的内容。
参考:
https://www.qnx.com/developers/docs/7.1/index.html#com.qnx.doc.neutrino.utilities/topic/p/procnto.html
https://www.qnx.com/developers/docs/7.1/index.html#com.qnx.doc.neutrino.prog/topic/process_proc_filesystem.html
posted on 2024-03-04 13:47 Hello-World3 阅读(422) 评论(0) 编辑 收藏 举报