自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

翻译 《深入理解Linux内核》-2.5. Linux分页

Linux采用一种可以兼容32位和64位系统的分页模型。正如前一章所说,32位系统上使用两级分页是足够的,但是64位系统上需要更多层级的分页。Linux直到2.6.10,使用三级分页,2.6.11之后使用四级分页。图2-12阐述了这四种页表,它们分别是: 全局页目录 顶层页目录 中层页目录 页...

2018-07-02 19:06:41

阅读数 194

评论数 0

翻译 《深入理解Linux内核》-2.4. 硬件分页

分页单元用来把线性地址转换成物理地址。它的一个主要的任务就是根据线性地址的访问权限检查请求的访问类型。如果访问的内存不合法,它会产生一个页面错误异常(参考第4章和第8章)。 出于性能考虑,线性地址被分成固定大小的组,叫做页面;一个页面中连续的线性地址被映射到连续的物理地址上。如此,内核可以对一个...

2018-06-15 18:19:32

阅读数 344

评论数 0

翻译 《深入理解Linux内核》-2.3. linux分段

译者注: 本节讲的是“linux分段”,上一节是“硬件分段”,硬件分段主要讲80x86如何从硬件层提供分段支持,而本节讲的linux如何使用分段来实现操作系统,当然基于硬件分段也可以实现windows操作系统,但是linux和windows使用相同的硬件基础设施来实现自己的系统的方式肯定...

2018-06-11 20:29:15

阅读数 424

评论数 0

翻译 《深入理解Linux内核》-2.2. 硬件分段

声明: 以下是对原文知识点的提炼总结,并非对照翻译。因为直接翻译并不容易理解。 本节涉及的概念: 段 linux把内存地址粗略的分为几个区域,分别用作不同的功能,就叫分段。为什么要分段?因为linux进程对不同地址空间的初始化、申请释放、访问权限都不相同,所以要区分对待。 常见的有六种段,...

2018-06-09 16:52:45

阅读数 181

评论数 0

翻译 《深入理解Linux内核》-2.1. 内存地址

80x86体系上有三种地址: 逻辑地址(Logical address) 机器语言指令中用来指定操作数的地址。逻辑地址包含段和偏移,偏移定义了段到实际地址的举例。 线性地址(Linear address,也叫虚拟地址) 32位的无符号整数,最大可以表示4GB的内存空间。 物理地址...

2018-06-06 20:15:11

阅读数 149

评论数 0

翻译 《深入理解Linux内核》-3.3. 进程切换

3.3. 进程切换为了控制进程的执行,内核必须能够挂起正在运行的进程并恢复运行其他之前被挂起的进程。这个活动通过进程切换,任务切换或上下文切换执行这种各样的操作。接下来的章节介绍Linux系统上的进程切换。3.3.1. 硬件上下文虽然每个进程拥有自己的地址空间,但是它们必须共享相同的CPU寄存器。...

2017-12-25 20:05:50

阅读数 288

评论数 0

翻译 《深入理解Linux内核》-3.2. 进程描述符

3.2. 进程描述符为了管理进程,内核必须对每个进程正在做什么有一个清晰的画面。比如,它必须知道进程的优先级、它是正在运行还是被某个事件阻塞、它的地址空间是多少、它被允许访问哪些地址等等。进程描述符发挥了这些作用,它是一个task_struct类型的结构,包含与单个进程有关的所有信息。正因为存放了...

2017-11-22 13:06:19

阅读数 684

评论数 0

翻译 《深入理解Linux内核》-3.1. 进程,轻量级进程,和线程

3.1. 进程,轻量级进程

2017-11-14 15:51:38

阅读数 506

评论数 0

翻译 《深入理解Linux内核》-3. 进程

3. 进程

2017-11-13 19:11:38

阅读数 184

评论数 0

翻译 《深入理解Linux内核》-3.5. 进程的销毁

linux内核翻译

2017-11-13 16:28:00

阅读数 277

评论数 0

原创 linux文件描述符限制和单机最大长连接数

linux文件描述符限制和单机最大长连接数相关参数linux系统中与文件描述符相关的参数有以下几个: soft/hard nofile file-max(/proc/sys/fs/file-max) nr_open(/proc/sys/fs/nr_open) 这三个参数的作用都是限制一个进程可以打...

2017-09-13 17:52:20

阅读数 3024

评论数 0

原创 linux终端关闭时为什么会导致在其上启动的进程退出?

现象经常在linux下开发的人应该都有这样的经验,就是在终端上启动的程序,在关闭终端时,这个程序的进程也被一起关闭了。看下面这个程序,为了是进程永远运行,在输出helloworld后,循环调用sleep:直接关闭这个终端,在另一个终端上查找该进程,已经找不到了:这个行为看起来似乎是理所当然的,也符...

2017-08-13 20:13:28

阅读数 7882

评论数 2

原创 boost::io_service解读

boost::io_service的队列模型、线程模型、源码解读。

2016-11-26 16:28:36

阅读数 10893

评论数 3

原创 std::string源码探秘和性能分析

std::string源码探秘和性能分析本文主要讲c++标准库的string的内部实现,以及对象拷贝的性能分析。

2016-05-05 22:15:15

阅读数 9728

评论数 0

原创 一个c++封装的zookeeper库

一个c++ 封装的zookeeper库

2016-04-14 16:53:02

阅读数 2215

评论数 2

原创 一个自动生成visual studio工程的脚本

本文介绍一个自制的脚本,功能是根据当前目录结构自动生成vs工程,并把目录对应到筛选器,自动包含所有源文件。 出发点:     linux下的c/c++开发缺乏一个高效的可视化编辑工具,利用visual studio的强大的语法检测、智能的代码提醒、支持tab页的编辑器等功能,会让代码编辑效率事半...

2016-02-28 19:59:02

阅读数 2249

评论数 0

原创 一个支持函数,浮点数表达式求值算法

由于工作原因,需要写一个可以解析表达式的接口

2014-08-31 18:38:01

阅读数 1911

评论数 0

转载 程序员技术练级攻略

月光博客6月12日发表了《写给新手程序员的一封信》,翻译自《An open letter to those who want to start programming》,我的朋友(他在本站的id是Mailper)告诉我,他希望在酷壳上看到一篇更具操作性的文章。因为他也是喜欢编程和技术的家伙,于...

2014-05-26 15:30:58

阅读数 744

评论数 0

原创 Linux进程权限的研究——real user id, effective user id, saved set-user-id

本文主要讨论linux进程访问文件的权限

2014-04-13 12:16:16

阅读数 2446

评论数 0

原创 read/write/fsync与fread/fwrite/fflush的关系和区别

read/write/fsync:  1. linux底层操作; 2. 内核调用, 涉及到进程上下文的切换,即用户态到核心态的转换,这是个比较消耗性能的操作。 fread/fwrite/fflush:  1. c语言标准规定的io流操作,建立在read/write/fsync之上 2...

2014-04-01 13:54:22

阅读数 6838

评论数 0

提示
确定要删除当前文章?
取消 删除