<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[LinuxBreak x86 System!]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/LinuxBreak</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; LinuxBreak]]></copyright><item><title><![CDATA[向大家推荐博士数学论坛！]]></title><link>https://blog.youkuaiyun.com/LinuxBreak/article/details/43342991</link><guid>https://blog.youkuaiyun.com/LinuxBreak/article/details/43342991</guid><author>LinuxBreak</author><pubDate>Sat, 31 Jan 2015 18:57:08 +0800</pubDate><description><![CDATA[博士数学论坛是国内最全面的中文数学专业网站（http://www.math.org.cn）。
博士家园旗下网站，建站于2004年。主要是推广普及数学信息和知识，使数学走近寻常百姓。享受稳定快速的数学资源服务，交流数学问题，寻找数学朋友等。 欢迎真正讨论问题的学生，老师，科研人员参与。每一位用到数学的人都应该有个论坛帐号。现在免费赠送邀请码，快去注册一个会员账号吧！]]></description><category></category></item><item><title><![CDATA[Linux内核设计与实现 读书笔记(10)内核同步方法]]></title><link>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341763</link><guid>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341763</guid><author>LinuxBreak</author><pubDate>Fri, 02 Jan 2015 15:58:33 +0800</pubDate><description><![CDATA[主要内容：

原子操作自旋锁读写自旋锁信号量读写信号量互斥体完成变量大内核锁顺序锁禁止抢占顺序和屏障总结

 

1. 原子操作

原子操作是由编译器来保证的，保证一个线程对数据的操作不会被其他线程打断。

原子操作有2类：

原子整数操作，有32位和64位。头文件分别为和原子位操作。头文件 

 

原子操作的api很简单，参见相应的头文件即可。

原子操作头]]></description><category></category></item><item><title><![CDATA[Linux内核设计与实现 读书笔记(9)内部同步介绍]]></title><link>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341751</link><guid>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341751</guid><author>LinuxBreak</author><pubDate>Fri, 02 Jan 2015 15:57:38 +0800</pubDate><description><![CDATA[主要内容：

同步的概念同步的方法-加锁死锁锁的粒度

 

1. 同步的概念

了解同步之前，先了解另外2个概念：

临界区   - 也称为临界段，就是访问和操作共享数据的代码段。竞争条件 - 2个或2个以上线程在临界区里同时执行的时候，就构成了竞争条件。

 

所谓同步，其实防止在临界区中形成竞争条件。

如果临界区里是原子操作(即整个操作完成前不会被打断)，]]></description><category></category></item><item><title><![CDATA[Linux内核设计与实现 读书笔记(8)中断处理下半部]]></title><link>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341737</link><guid>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341737</guid><author>LinuxBreak</author><pubDate>Fri, 02 Jan 2015 15:55:54 +0800</pubDate><description><![CDATA[主要内容：

中断下半部处理实现中断下半部的机制总结中断下半部的实现中断实现示例

 

1. 中断下半部处理

那么对于一个中断，如何划分上下两部分呢？哪些处理放在上半部，哪些处理放在下半部？

这里有一些经验可供借鉴：

如果一个任务对时间十分敏感，将其放在上半部如果一个任务和硬件有关，将其放在上半部如果一个任务要保证不被其他中断打断，将其放在上半部其他所有任务，考虑放]]></description><category></category></item><item><title><![CDATA[Linux内核的设计与实现 读书笔记(7)中断处理]]></title><link>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341723</link><guid>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341723</guid><author>LinuxBreak</author><pubDate>Fri, 02 Jan 2015 15:54:17 +0800</pubDate><description><![CDATA[主要内容：

什么是中断中断类型中断相关函数中断处理机制中断控制方法总结

 

1. 什么是中断

为了提高CPU和外围硬件(硬盘，键盘，鼠标等等)之间协同工作的性能，引入了中断的机制。

没有中断的话，CPU和外围设备之间协同工作可能只有轮询这个方法：CPU定期检查硬件状态，需要处理时就处理，否则就跳过。

当硬件忙碌的时候，CPU很可能会做许多无用功（每次轮询都是跳过]]></description><category></category></item><item><title><![CDATA[Linux内核设计与实现 读书笔记(6)内核数据结构]]></title><link>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341711</link><guid>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341711</guid><author>LinuxBreak</author><pubDate>Fri, 02 Jan 2015 15:52:17 +0800</pubDate><description><![CDATA[主要内容：

链表队列映射红黑树

 

1. 链表

链表是linux内核中最简单，同时也是应用最广泛的数据结构。

内核中定义的是双向链表。

 

1.1 头文件简介

内核中关于链表定义的代码位于： include/linux/list.h

list.h文件中对每个函数都有注释，这里就不详细说了。

其实刚开始只要先了解一个常用的链表操作（追加，删]]></description><category></category></item><item><title><![CDATA[Linux内核的设计与实现 读书笔记(5)系统调用]]></title><link>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341699</link><guid>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341699</guid><author>LinuxBreak</author><pubDate>Fri, 02 Jan 2015 15:50:50 +0800</pubDate><description><![CDATA[主要内容：

什么是系统调用Linux上的系统调用实现原理一个简单的系统调用的实现

1. 什么是系统调用

简单来说，系统调用就是用户程序和硬件设备之间的桥梁。

用户程序在需要的时候，通过系统调用来使用硬件设备。

系统调用的存在，有以下重要的意义:

1）用户程序通过系统调用来使用硬件，而不用关心具体的硬件设备，这样大大简化了用户程序的开发。

    比如：用户]]></description><category></category></item><item><title><![CDATA[Linux内核设计与实现 读书笔记(4)进程的调度]]></title><link>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341681</link><guid>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341681</guid><author>LinuxBreak</author><pubDate>Fri, 02 Jan 2015 15:49:44 +0800</pubDate><description><![CDATA[主要内容：

什么是调度调度实现原理Linux上调度实现的方法调度相关的系统调用

1. 什么是调度

现在的操作系统都是多任务的，为了能让更多的任务能同时在系统上更好的运行，需要一个管理程序来管理计算机上同时运行的各个任务（也就是进程）。

这个管理程序就是调度程序，它的功能说起来很简单：

决定哪些进程运行，哪些进程等待决定每个进程运行多长时间

此外，为了获得更好的用]]></description><category></category></item><item><title><![CDATA[Linux内核设计与实现 读书笔记(3)Linux的进程]]></title><link>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341671</link><guid>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341671</guid><author>LinuxBreak</author><pubDate>Fri, 02 Jan 2015 15:48:39 +0800</pubDate><description><![CDATA[主要内容：

进程和线程进程的生命周期进程的创建进程的终止

1. 进程和线程

进程和线程是程序运行时状态，是动态变化的，进程和线程的管理操作(比如，创建，销毁等)都是有内核来实现的。

Linux中的进程于Windows相比是很轻量级的，而且不严格区分进程和线程，线程不过是一种特殊的进程。

所以下面只讨论进程，只有当线程与进程存在不一样的地方时才提一下线程。]]></description><category></category></item><item><title><![CDATA[Linux内核设计与实现 读书笔记(2)内核开发的准备]]></title><link>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341663</link><guid>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341663</guid><author>LinuxBreak</author><pubDate>Fri, 02 Jan 2015 15:46:43 +0800</pubDate><description><![CDATA[主要内容：

获取内核源码内核源码的结构编译内核的方法内核开发的特点

 

1. 获取内核源码

内核是开源的，所有获取源码特别方便，参照以下的网址，可以通过git或者直接下载压缩好的源码包。

http://www.kernel.org

 

2. 内核源码的结构

 





目录

说明



arch

特定体系结构的代码]]></description><category></category></item><item><title><![CDATA[Linux内核设计与实现 读书笔记(1)内核简介]]></title><link>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341655</link><guid>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341655</guid><author>LinuxBreak</author><pubDate>Fri, 02 Jan 2015 15:45:23 +0800</pubDate><description><![CDATA[主要内容：

单内核和微内核内核版本号

 

1. 单内核和微内核




 

原理


优势


劣势




单内核


整个内核都在一个大内核地址空间上运行。

1. 简单。
2. 高效：所有内核都在一个大的地址空间上，所以内核各个功能之间的调用和调用函数类似，几乎没有性能开销。

一个功能的崩溃会导致整个内核无法使用。
]]></description><category></category></item><item><title><![CDATA[C++资源总汇]]></title><link>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341577</link><guid>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341577</guid><author>LinuxBreak</author><pubDate>Fri, 02 Jan 2015 15:32:52 +0800</pubDate><description><![CDATA[关于 C++ 框架、库和资源的一些汇总列表，由 Break发起和维护。
内容包括：标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。
标准库
C++ Standard Library：是一系列类和函数的集合，使用核心语言编写，也是C++ISO自身标准的一部分。
Standard Template Library：标准模板库
C POSIX library ：]]></description><category></category></item><item><title><![CDATA[Linux内核设计与实现 学习笔记(10)补丁,开发和社区]]></title><link>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341461</link><guid>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341461</guid><author>LinuxBreak</author><pubDate>Fri, 02 Jan 2015 15:13:33 +0800</pubDate><description><![CDATA[linux最吸引我的地方之一就是它拥有一个高手云集的社区, 还有就是如果能=为linux内核中贡献代码, 一定是一件令人自豪的事情.

下面主要总结一些和贡献代码相关的主要内容.

加入社区编码风格提交补丁总结

 

1. 加入社区

如果想为linux贡献代码, 那么加入linux社区是必须的, 加入了社区, 不仅可以及时内核的最新消息, 而且可以及时和社区内有经验的内核开]]></description><category></category></item><item><title><![CDATA[Linux内核设计与实现 学习笔记(8)内核调试]]></title><link>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341459</link><guid>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341459</guid><author>LinuxBreak</author><pubDate>Fri, 02 Jan 2015 15:12:08 +0800</pubDate><description><![CDATA[内核调试的难点在于它不能像用户态程序调试那样打断点，随时暂停查看各个变量的状态。

也不能像用户态程序那样崩溃后迅速的重启，恢复初始状态。

 

用户态程序和内核交互，用户态程序的各种状态，错误等可以由内核来捕获并显示。

而内核是直接和硬件交互的，内核出错之后整个系统就无法正常运行了，所以要想熟练的进行内核调试，

首先要熟悉内核已经给我们提供的工具，然后实实在在的去做一些]]></description><category></category></item><item><title><![CDATA[Linux内核设计与实现 学习笔记(9)可移植性]]></title><link>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341443</link><guid>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341443</guid><author>LinuxBreak</author><pubDate>Fri, 02 Jan 2015 15:10:51 +0800</pubDate><description><![CDATA[linux内核的移植性非常好, 目前的内核也支持非常多的体系结构(有20多个).

但是刚开始时, linux也只支持 intel i386 架构, 从 v1.2版开始支持 Digital Alpha, Intel x86, MIPS和SPARC(虽然支持的还不是很完善).

从 v2.0版本开始加入了对 Motorala 68K和PowerPC的官方支持, v2.2版本开始新增了 ARM]]></description><category></category></item><item><title><![CDATA[Linux内核设计与实现 学习笔记(7)设备与模块]]></title><link>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341435</link><guid>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341435</guid><author>LinuxBreak</author><pubDate>Fri, 02 Jan 2015 15:08:53 +0800</pubDate><description><![CDATA[主要内容：

设备类型内核模块内核对象sysfs总结

 

1. 设备类型

linux中主要由3种类型的设备，分别是：




设备类型


代表设备


特点


访问方式




块设备

硬盘，光盘

随机访问设备中的内容

一般都是把设备挂载为文件系统后再访问



字符设备

键盘，打印机

只能顺序访]]></description><category></category></item><item><title><![CDATA[Linux内核设计与实现 学习笔记(6)页高速缓存和页回写]]></title><link>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341427</link><guid>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341427</guid><author>LinuxBreak</author><pubDate>Fri, 02 Jan 2015 15:07:28 +0800</pubDate><description><![CDATA[主要内容：

缓存简介页高速缓存页回写

 

1. 缓存简介

在编程中，缓存是很常见也很有效的一种提高程序性能的机制。

linux内核也不例外，为了提高I/O性能，也引入了缓存机制，即将一部分磁盘上的数据缓存到内存中。

 

1.1 原理

之所以通过缓存能提高I/O性能是基于以下2个重要的原理：

CPU访问内存的速度远远大于访问磁盘的速度（访问速度差]]></description><category></category></item><item><title><![CDATA[Linux内核设计与实现 学习笔记(5)进程地址空间]]></title><link>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341415</link><guid>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341415</guid><author>LinuxBreak</author><pubDate>Fri, 02 Jan 2015 15:04:38 +0800</pubDate><description><![CDATA[进程地址空间也就是每个进程所使用的内存，内核对进程地址空间的管理，也就是对用户态程序的内存管理。

主要内容：

地址空间(mm_struct)虚拟内存区域(VMA)地址空间和页表

 

1. 地址空间(mm_struct)

地址空间就是每个进程所能访问的内存地址范围。

这个地址范围不是真实的，是虚拟地址的范围，有时甚至会超过实际物理内存的大小。

 

现代]]></description><category></category></item><item><title><![CDATA[Linux内核设计与实现 学习笔记(4)块I/O层]]></title><link>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341393</link><guid>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341393</guid><author>LinuxBreak</author><pubDate>Fri, 02 Jan 2015 15:01:47 +0800</pubDate><description><![CDATA[主要内容：

块设备简介内核访问块设备的方法内核I/O调度程序

 

1. 块设备简介

I/O设备主要有2类:

字符设备：只能顺序读写设备中的内容，比如 串口设备，键盘块设备：能够随机读写设备中的内容，比如 硬盘，U盘

字符设备由于只能顺序访问，所以应用场景也不多，这篇文章主要讨论块设备。

块设备是随机访问的，所以块设备在不同的应用场景中存在很大的优化空间。]]></description><category></category></item><item><title><![CDATA[Linux内核设计与实现 学习笔记(3)虚拟文件系统]]></title><link>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341381</link><guid>https://blog.youkuaiyun.com/LinuxBreak/article/details/42341381</guid><author>LinuxBreak</author><pubDate>Fri, 02 Jan 2015 15:00:15 +0800</pubDate><description><![CDATA[虚拟文件系统（VFS）是linux内核和具体I/O设备之间的封装的一层共通访问接口，通过这层接口，linux内核可以以同一的方式访问各种I/O设备。

虚拟文件系统本身是linux内核的一部分，是纯软件的东西，并不需要任何硬件的支持。

 

主要内容：

虚拟文件系统的作用虚拟文件系统的4个主要对象文件系统相关的数据结构进程相关的数据结构小结

 

 

1. 虚拟]]></description><category></category></item></channel></rss>