linux内核学习(一步一步走)——内核概述
一、用户空间与内核空间:
用户通过用户空间与操作系统打交道,程序员开发或使用的应用程序位于用户空间。用户空间不能直接访问内核,从而不能访问硬件资源,但是可以通过内核定义的最外层例程——系统调用来访问。
内核空间是硬件管理功能发挥作用的区域。
二、用户标识符
用户以唯一的帐号名登陆,还可以关联一个唯一的用户ID(UID).内核用这个UID验证用户的文件访问权限。
用户也是一个或多个组的成员,每个组都有其唯一的组ID(GID)。
三、文件类型
1.普通文件(regular file)在模式字段的第一个字符用破折号表示(eg, -rw-rw-rw)。
2.目录(directory)文件在模式字段的第一个字符用“d”表示(eg,drwx--),其中存放文件名和文件索引结点之间的关联关系。
3.块设备(block device)文件在模式字段的第一个字符用“b”(eg,brw---)。表示硬件设备,其I/O是以2的幂次方数据块大小进行传送的.
4.字符设备(character device)文件在模式字段的第一个字符用“c”表示(eg,crw--),表示硬件设备,数据不是以块组织的,I/O是以字节流发送的.
5.链接(link)文件在模式字段的第一个字符用“l”表示(eg,lrw---),链接就是指向文件的指针.
6.命名管道文件在模式字段的第一个字符用“p”表示(eg,prw--),它作为数据管道方便程序之间的通信
7.套接字(socket)文件在模式字段的第一个字符用“s”表示(eg,srw--)
四、文件模式
1.sticky
启用了sticky位的文件在mode字段的最后一个字符为“t”(eg,-rwx-----t)。可执行文件可以启用sticky位,以确保可以让它待在内存,而不管它的执行状态。当这应用到一个频繁使用的程序时,就会提高性能,因为减少了磁盘访问文件信息所花费的时间。
2.suid
如果设置了suid位,那么用户访问权位“x”变为“s”(eg,-rws---).当用户执行了一个可执行文件时,执行程序就会与调用这个文件的用户关联起来。
3.sgid
如果设置了sgid位,那么用户组访问权位上可执行位"x"变为“s”(eg,-rwxrws),类似suid,它用于组
linux内核学习(一步一步走)——内核概述的更多相关文章
- 嵌入式Linux驱动学习之路(六)u-boot启动内核
内核启动是需要必要的启动参数.不能开机自动完全从0开始启动,需要uboot帮助内核实现重定位并提供参数. 首先,uboo会从Kernel分区中读取bootcmd环境变量,根据环境变量可自动启动. 分区 ...
- Linux内核学习笔记(1)-- 进程管理概述
一.进程与线程 进程是处于执行期的程序,但是并不仅仅局限于一段可执行程序代码.通常,进程还要包含其他资源,像打开的文件,挂起的信号,内核内部数据,处理器状态,一个或多个具有内存映射的内存地址空间及一个 ...
- linux内核学习之二:编译内核
在linux内核学习系列的第一课中讲述了搭建学习环境的过程(http://www.cnblogs.com/xiongyuanxiong/p/3523306.html),环境搭好后,马上就进入到下一环节 ...
- Linux网络编程&内核学习
c语言: 基础篇 1.<写给大家看的C语言书(第2版)> 原书名: Absolute Beginner's Guide to C (2nd Edition) 原出版社: Sams 作者: ...
- 12.Linux软件安装 (一步一步学习大数据系列之 Linux)
1.如何上传安装包到服务器 有三种方式: 1.1使用图形化工具,如: filezilla 如何使用FileZilla上传和下载文件 1.2使用 sftp 工具: 在 windows下使用CRT 软件 ...
- Linux内核学习之路
每当学习到一定阶段自己觉得还行时,就会搜一些别人的文章. 这篇文章是原作者14年3月写的.转过来与自己共勉.学习累了就换着学也挺好 原文: 现在回首看看,接触Linux已经很长时间了. 在大三的时候开 ...
- Linux 内核学习经验总结
Linux 内核学习经验总结 学习内核,每个人都有自己的学习方法,仁者见仁智者见智.以下是我在学习过程中总结出来的东西,对自身来说,我认为比较有效率,拿出来跟大家交流一下. 内核学习,一偏之见:疏漏难 ...
- linux内核学习之一:环境搭建--安装Debian7.3
本系列文章假设读者已对linux有一定的了解,其实学习linux内核不需要有很深的关于linux的知识,只需要了解以下内容:linux基础知识及基本shell命令:现代操作系统的基本概念:C语言和gc ...
- 【Linux】一步一步学Linux——Linux版本(03)
目录 00. 目录 01. Linux内核版本 02. Linux内核官方网站 03. Linux发行版本 04. Linux发行版本介绍 4.1 Ubuntu 4.2 RedHat 4.3 Debi ...
- 【Linux】一步一步学Linux——Linux发展史(01)
目录 00. 目录 01. Linux概述 02. Linux简史 03. Linux主要特性 04. Linux之父 05. Linux相关术语 06. Linux其它 07. Linux应用领域 ...
随机推荐
- android学习笔记13——ExpandableListView
ExpandableListView==>可展开的列表组件 ==> ExpandableListView是ListView的子类,对其进行了扩展,其将应用中的列表项分为几组,每组中又包含多 ...
- worker_pool的例子
鉴于poolboy的坑,pooler不支持r18,又有在知乎上看到大神推荐worker_pool这个进程池框架(工作者进程在创建时崩溃,worker_pool不受影响),所以研究了下,贴个小例子 my ...
- Linux从逻辑地址到物理地址
转自:http://blog.chinaunix.net/uid-24774106-id-3427836.html 我们都知道,动态共享库里面的函数的共享的,这也是动态库的优势所在,就是节省内存.C ...
- 【MySQL】索引长度的一些限制
有同学问到InnoDB的索引长度问题,简单说几个tips. MySQL的每个单表中所创建的索引长度是有限制的,且对不同存储引擎下的表有不同的限制. myisam表,单列索引,最大长度不能超过 1000 ...
- android的m、mm、mmm编译命令
android的m.mm.mmm编译命令的使用 android源码目录下的build/envsetup.sh文件,描述编译的命令 - m: Makes from the top of th ...
- angular2 的依赖注入
angular2 的依赖注入包含了太多的内容,其中的一个重点就是注入器,而注入器又非常难理解,今天我们不深入介绍注入器的内容,可以参考官方文档,我们今天来说注入器的层级. 也就是组件获取服务的容器会选 ...
- [CSS]置换和非置换元素
转自:http://blog.doyoe.com 先进一个题外话 在面试一个 重构(各大公司的叫法可能不太一样)时,我喜欢从一个点开始问,然后一直延展下去成为一条线,甚至是一个面,直到问到不会的地方, ...
- Eclipse控制台输出信息的控制
当你在Eclipse中 running/debugging一个应用程序的时候,有关该应用程序的运行调试信息及日志信息都会输出到控制台(console )显示,但是Eclipse只会显示最后一部分的日志 ...
- ArrayList,Vector线程安全性测试
import java.util.ArrayList; import java.util.List; //实现Runnable接口的线程 public class HelloThread implem ...
- Java多线程之新类库中的构件CyclicBarrier
1.类说明: 一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point).在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 Cycl ...