Unix文件的类型
1.普通文件
2.目录
3.符号链接
4.面向块的设备文件
5.面向字符的设备文件
6.管道和命名管道
7.套接字

点评:不明觉厉

打开文件
进程只能访问“打开的”文件。为了打开一个文件,进程调用
fd = open(path,flag,mode)
path表示被打开的文件的路径。
flag表示打开的方式,它也指定是否应当创建一个不存在的文件。
mode指定新创建文件的访问权限。

关闭文件
当进程无需再访问文件的内容时,就调用系统调用:
res = close(fd)

更名及删除文件
要重新命名或删除一个文件时,进程不需要打开它。这样的操作并没有对这个文件的内容起作用,而是对一个或多个目录的内容起作用。
res = rename(oldpath,newpath)
改变了文件链接的名字,而系统调用:
res = unlink(pathname)
减少了文件的链接数,删除了相应的目录项。只有当链接数为0时,文件才被真正删除。

虚拟内存的优点
若干个进程可以并发地执行。
应用程序所需内存大于可用物理内存时也可以运行。
程序只有部分代码装入内存时进程可以执行它。
允许每个进程访问可用物理内存的子集。
进程可以共享库函数或程序的一个单独内存映像。
程序可以编写与机器无关的代码,因为他们不必关心有关物理内存的组织结构。

进程虚拟地址空间处理
内核分配给进程的虚拟地址空间由以下内存区组成:
程序的可执行代码
程序的初始化数据
程序的未初始化数据
初始程序栈
共享库的可执行代码和数据
堆(由程序动态请求的内存)

设备驱动程序
通过特定的接口,每个驱动程序与内核中的其余部分相互作用
优点如下:
可以把特定设备的代码封装在特定的模块中。
厂商可以在不了解内核源码而只知道接口规范的情况下,就能增加新的设备。
内核以统一的方式对待所有的设备,并且通过相同的接口访问这些设备。
可以把设备驱动程序写成模块,并动态地把它们装进内核而不需要重新启动系统。不再需要时,亦可以动态地卸下模块。

小结:

通过阅读,感觉系统内部的奥秘蛮好玩的,能够更深刻的认识linux系统的原理,以及windows系统。都是相通的!!!由表及里的研究!!!

《深入Linux内核》 UNIX的一些故事的更多相关文章

  1. 调皮的程序员:Linux之父雕刻在Linux内核中的故事

    本文内容由公众号“格友”原创分享. 1.引言   (不羁的大神,连竖中指都这么帅) 因为LINUX操作系统的流行,Linus 已经成为地球人都知道的名人.虽然大家可能都听过钱钟书先生的名言:“假如你吃 ...

  2. 故事 --- Linux和UNIX之间的那些爱恨与情仇

    Linux和UNIX具体有哪些关系及区别? UNIX 与 Linux 之间的关系是一个很有意思的话题.在目前主流的服务器端操作系统中,UNIX 诞生于 20 世纪 60 年代末,Windows 诞生于 ...

  3. Unix/Linux环境C编程新手教程(12) openSUSECCPP以及Linux内核驱动开发环境搭建

    1. openSUSE是一款优秀的linux. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaXRjYXN0Y3Bw/font/5a6L5L2T/font ...

  4. Unix/Linux环境C编程入门教程(12) openSUSECCPP以及Linux内核驱动开发环境搭建

    1. openSUSE是一款优秀的linux. 2.选择默认虚拟机 3.选择稍后安装操作系统 4.选择linux  opensuse 5. 选择默认虚拟机名称 6.设置处理器为双核. 7.内存设置为2 ...

  5. 对Linux(Unix)的基础知识归纳

    前言,不论是原生APP(Android&IOS),还是大型架构级基础环境(.NET&J2EE,或LAMP阵营等), 基本都不可避免的涉及到Linux(Unix),故还是觉得有必要把自己 ...

  6. 20135239 益西拉姆 linux内核分析 可执行程序的装载

    益西拉姆 + 原创作品请勿转载 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ” week 7 可 ...

  7. 期末总结20135320赵瀚青LINUX内核分析与设计期末总结

    赵瀚青原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 对LINUX内核分析与设计这 ...

  8. 陈莉君教授: 回望踏入Linux内核之旅

    本文系转载,著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 作者: 陈莉君 来源: 微信公众号linux阅码场(id: linuxdev) 初次踏入Linux 几多耕耘,几多收获 ...

  9. 【转载】我为什么放弃了 Linux 内核学习?

    最近学习内核很是心累,碰巧看到这篇文章,有点意思~ 转自http://happypeter.github.io/index.html,以下为原文内容: 我在国内的技术类网站 / 博客上, 时常会看到分 ...

  10. Linux 内核概述 - Linux Kernel

    Linux 内核学习笔记整理. Unix unix 已有40历史,但计算机科学家仍认为其是现存操作系统中最大和最优秀的系统,它已成为一种传奇的存在,历经时间的考验却依然声名不坠. 1973 年,在用 ...

随机推荐

  1. 调试exynos4412—ARM嵌入式Linux—LEDS/GPIO驱动之一

    /** ****************************************************************************** * @author    暴走的小 ...

  2. ASP.NET 打包下载文件

    使用的类库为:ICSharpCode.SharpZipLib.dll 一种是打包整个文件夹,另一种是打包指定的多个文件,大同小异: using ICSharpCode.SharpZipLib.Zip; ...

  3. Linux试玩指令开机关机

    Linux内核最初只是由芬兰人李纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的. Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和U ...

  4. 转 sqlserver字段描述相关操作sql

    可以自己查询系统表: SELECT o.name AS tableName, c.name AS columnName, p.[value] AS Description FROM sysproper ...

  5. HTML5 文件域+FileReader 分段读取文件并上传(八)-WebSocket

    一.同时上传多个文件处理 HTML: <div class="container"> <div class="panel panel-default&q ...

  6. oracle如何获取当年第一月,如今年是2015年,则需获取 201501

    当年第一个月 SQL> select to_char(sysdate,'yyyy')||'01' from dual;TO_CHA ------ 201501当前年,月 SQL> sele ...

  7. 在C语言中使用scanf语句时遇到的问题总结

    在使用visual studio2013编写c语言代码时,遇到了这样的几个小问题,进行如下的总结. 1, 关于使用scanf语句报错的解决方案1 #include <stdio.h> in ...

  8. 浅谈html5某些新元素的用途

    大家都知道html是一种前端网页语言,从出现到现在已经经历了很多的版本了,但是随着html的不断发展,现在的html5已经不再是单一的前端页面语言了,html,javascript,css不再单纯的只 ...

  9. POJ刷题记录 (。・`ω´・)(Progress:6/50)

    1743:前后作差可以转化成不可重叠最长公共字串问题,运用后缀数组解决(参考罗穗骞神犇的论文) #include <cstdio> #include <cstring> #in ...

  10. modifytime是一个神奇的column name----这边文章是错的totally,因为我的实验不彻底。timestamp属性很神奇,头一个timestamp,会自动的成DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

    在mysql里边modifytime是一个神奇的column name,试一下. 请执行sql语句 CREATE TABLE `test_time` ( `modifytime` timestamp ...