「Efficient Android Threading 笔记」- C1 Android Components and the Need for Multiprocessing Android RecyclerView Android Socket Programming Supporting Multiple Screens Make a Reusable UI in Android App Development 如何在 Android Studio 中包含 *.so library,并使用库中定义的方法? 使用 SpannableString 格式化字符串,实现前景色、下划线、超链接、图文混排等 如何使用 bound service 完成进程间通信? 创建自定义视图 Creating custom views 通过 Android Theme & Style 定制应用的样式 「译」Android ViewPropertyAnimator 介绍 Android Animation Interpolator - Android 动画插值器源码笔记 「译」Android Animation in Honeycomb by Chet Haase(Android 3.0系统中的动画机制) 从 Android Sample ApiDemos 中学习 android.animation API 的用法 如何学习 Android Animation? 如何实现 Android ListView「上拉加载更多」? 「译」向Big Nerd Ranch提问:为什么Fragment在Android App开发中非常重要? 分类整理我在 SegmentFault 上针对某些问题作的回答 Android Servcie 后台服务总结笔记 如何在Android设备旋转时暂存数据以保护当前的交互状态? Android Message Handler 消息处理机制总结笔记 如何获取FragmentTabHost中指定标签页的Fragment? Fragment子类必须包含一个public无参构造器 如何更新及替换ViewPager中的Fragment? 如何使用Android UI Fragment开发“列表-详情”界面? 一个Android音频文本同步的英文有声读物App的开发过程 「Android编程权威指南笔记」Android应用本地化 通过jfeinstein10/SlidingMenu实现Android侧滑菜单 为Ubuntu14.04部署Android App的Eclipse开发环境 「Android编程权威指南笔记」使用ListFragment显示列表 「Android编程权威指南笔记」SDK版本与兼容 「Android编程权威指南笔记」Android布局和组件 「Android编程权威指南笔记」UI Fragment 「Android编程权威指南笔记」Activity 第一次开发iOS App和Android的对比总结笔记 「App Training笔记」创建第一个应用 「App Training笔记」开发入门训练大纲 Android APP - 从远程FTP服务器下载文件到本地

「UNIX环境高级编程笔记」- 进程控制 - 进程标识

2014年06月23日

Process Control - Process Identifiers

每个进程都有一个惟一的进程ID。[8.2 进程标识符]
ID为0的进程通常是调度进程,又称交换进程(swapper)。是内核的一部分,又称系统进程。

ID为1的进程通常是init进程,在引导加载程序结束后由内核调用,读系统初始化文件并启动系统。
is invoked by the kernel at the end of the bootstrap procedure.
This process is responsible for bringing up a UNIX system after thekernel has been bootstrapped.
init进程不会终止。

bootstrap 引导程序、自举。
Boot Loader是在操作系统内核运行之前运行的一段小程序。
通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。
参考嵌入式BootLoader技术内幕

ID为2的进程是页守护进程(pagedaemon)。此进程负责支持虚拟存储系统的分页操作。

weiyi:~$ ./a.out &
[1] 4723
weiyi:~$
getpid()  = 4723    //process ID of calling precess. (调用该API的)进程ID
getppid() = 4601    //parent process ID     父进程ID
getuid()  = 1000    //real user ID          实际用户ID
getgid()  = 1000    //real group ID         实际组ID
geteuid() = 1000    //effective user ID     有效用户ID
getegid() = 1000    //effective group ID    有效组ID
ps
PID TTY          TIME CMD
4601 pts/18   00:00:00 bash
4723 pts/18   00:00:00 a.out
4724 pts/18   00:00:00 ps

weiyi:~$ cat /etc/passwd | grep weiyi
weiyi    :x      :1000   :1000    :weiyi,,,           :/home/weiyi    :/bin/bash
username :passwd :userID :groupID :user personal name :home directory :login shell
[classic shell scripting 3.3.1 ]

知识共享许可协议
li2的博客WeiYi.Li 创作,采用 知识共享 署名-非商业性使用 4.0 国际 许可协议进行许可。
© 2011-2017. All rights reserved by WeiYi.Li. Powerd by Jekyll & LinAnYa's Theme