自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CRLFreedom的专栏

生而自由

  • 博客(33)
  • 收藏
  • 关注

转载 ubuntu下firefox安装adobe flash

Ubuntu绑定了Firefox(火狐)作为它的浏览器,作为一个Firefox的用户,我希望看到它得到更大的推广。但是不知道Firefox是怎么回事,并不自带flash插件那就算了吧,可恶的是在它提示了缺少插件的情况下,我进行了检测安装,联网连了半天就回了你一句:安装失败。我擦!!!    于是试着在adobe flash 官网(http://get.adobe.com/cn/flashp

2014-11-16 18:23:47 457

原创 MySQL安装与配置

1.下载地址

2014-11-14 14:34:48 454

转载 Ubuntu下如何解压缩zip,tar,tar.gz,tar.bz2文件

Ubuntu下如何解压缩zip,tar,tar.gz,tar.bz2文件这么多年来,数据压缩对我们来说是非常有用的。无论是在邮件中发送的图片用的zip文件还是在服务器压缩数据文件,我们都可以让下载更容易或者有效 的节约磁盘空间。某些压缩格式有时允许我们以60%的比率(甚至更高)压缩文件。下面我将会给大家演示如何用这些命令在Linux下面去压缩文件或者目 录。我们将学习zip

2014-10-21 18:15:15 531

原创 ubuntu下Java JDK 和eclipse的安装

1.下载最新版本的JDK

2014-10-20 22:06:42 500

转载 在Ubuntu 13.04下的安装eclipse

在Ubuntu 13.04下的安装eclipse来源:http://www.cnblogs.com/lanxuezaipiao/p/3325628.html一、eclipse安装过程首先确保在安装eclipse之前已经安装好Java虚拟机1. eclipse官网下载压缩包 下载地址:http://www.eclipse.org/downloads/?osType=linux

2014-10-20 21:22:26 428

原创 ubuntuxi

1.在终端输入

2014-09-26 20:11:31 541

原创 vim命令

为了使vim用起来顺手,我参考了网上大牛的配置vim的方法,设置了自己的vim,链接地址强大的vim配置文件,让编程更随意。vim命令集锦(只列出常用的命令):1.移动光标[Ctrl]+f = Page Down 向下移动一页[Ctrl]+b = Page Up 向上移动一页          + 光标移动到非空格符的下一行          -光标

2014-09-08 11:26:42 436

原创 Linux系统调用(国嵌)

系统调用手册(国嵌)一、进程控制fork  创建一个新进程clone  按指定条件创建子进程execve  运行可执行文件exit  中止进程_exit  立即中止当前进程getdtablesize 进程所能打开的最大文件数getpgid  获取指定进程组标识号setpgid  设置指定进程组标志号getpgrp  获取当前进程组标识号setpgrp

2014-08-30 21:29:54 518

原创 第一章--绪论

第一次自己写dus

2014-08-30 20:59:14 438

原创 一个大牛的技术博客

http://blog.chinaunix.net/uid/20196318/cid-164304-list-1.html

2014-08-30 14:09:08 406

原创 PID散列表

Linux系统中每个进程由一个进程id标识,在内核中对应一个task_struct结构的进程描述符,系统中所有进程的task_struct通过链表链接在一起,在内核中,经常需要通过进程id来获取进程描述符,最简单的方法可以通过遍历task_struct链表并对比id的值来获取,但这样效率太低,尤其当系统中运行很多个进程的时候。 linux内核通过PID散列表来解决这一问题,能快速的通过进程

2014-08-30 13:03:25 512 1

转载 《Linux内核设计与实现》读书笔记(二十)- 补丁, 开发和社区

linux最吸引我的地方之一就是它拥有一个高手云集的社区, 还有就是如果能=为linux内核中贡献代码, 一定是一件令人自豪的事情.下面主要总结一些和贡献代码相关的主要内容.加入社区编码风格提交补丁总结 1. 加入社区如果想为linux贡献代码, 那么加入linux社区是必须的, 加入了社区, 不仅可以及时内核的最新消息, 而且可以及时和社区内有经验的内核开

2014-08-30 08:32:33 486

转载 《Linux内核设计与实现》读书笔记(十九)- 可移植性

linux内核的移植性非常好, 目前的内核也支持非常多的体系结构(有20多个).但是刚开始时, linux也只支持 intel i386 架构, 从 v1.2版开始支持 Digital Alpha, Intel x86, MIPS和SPARC(虽然支持的还不是很完善).从 v2.0版本开始加入了对 Motorala 68K和PowerPC的官方支持, v2.2版本开始新增了 ARM

2014-08-30 08:31:37 505

转载 《Linux内核设计与实现》读书笔记(十八)- 内核调试

内核调试的难点在于它不能像用户态程序调试那样打断点,随时暂停查看各个变量的状态。也不能像用户态程序那样崩溃后迅速的重启,恢复初始状态。 用户态程序和内核交互,用户态程序的各种状态,错误等可以由内核来捕获并显示。而内核是直接和硬件交互的,内核出错之后整个系统就无法正常运行了,所以要想熟练的进行内核调试,首先要熟悉内核已经给我们提供的工具,然后实实在在的去做一些

2014-08-30 08:30:54 391

转载 《Linux内核设计与实现》读书笔记(十七)- 设备与模块

本章主要讨论与linux的设备驱动和设备管理的相关的4个内核成分,设备类型,模块,内核对象,sysfs。主要内容:设备类型内核模块内核对象sysfs总结 1. 设备类型linux中主要由3种类型的设备,分别是:设备类型代表设备特点访问方式块设备硬盘,光盘随机访问设备中

2014-08-30 08:30:19 688

转载 《Linux内核设计与实现》读书笔记(十六)- 页高速缓存和页回写

主要内容:缓存简介页高速缓存页回写 1. 缓存简介在编程中,缓存是很常见也很有效的一种提高程序性能的机制。linux内核也不例外,为了提高I/O性能,也引入了缓存机制,即将一部分磁盘上的数据缓存到内存中。 1.1 原理之所以通过缓存能提高I/O性能是基于以下2个重要的原理:CPU访问内存的速度远远大于访问磁盘的速度(访问速度差

2014-08-30 08:29:37 646

转载 《Linux内核设计与实现》读书笔记(十五)- 进程地址空间(kernel 2.6.32.60)

进程地址空间也就是每个进程所使用的内存,内核对进程地址空间的管理,也就是对用户态程序的内存管理。主要内容:地址空间(mm_struct)虚拟内存区域(VMA)地址空间和页表 1. 地址空间(mm_struct)地址空间就是每个进程所能访问的内存地址范围。这个地址范围不是真实的,是虚拟地址的范围,有时甚至会超过实际物理内存的大小。 现代的操作系统中进程都是在保

2014-08-30 08:28:40 431

转载 《Linux内核设计与实现》读书笔记(十四)- 块I/O层

主要内容:块设备简介内核访问块设备的方法内核I/O调度程序 1. 块设备简介I/O设备主要有2类:字符设备:只能顺序读写设备中的内容,比如 串口设备,键盘块设备:能够随机读写设备中的内容,比如 硬盘,U盘字符设备由于只能顺序访问,所以应用场景也不多,这篇文章主要讨论块设备。块设备是随机访问的,所以块设备在不同的应用场景中存在很大的优化空间。

2014-08-30 08:27:32 376

转载 《Linux内核设计与实现》读书笔记(十三)- 虚拟文件系统

虚拟文件系统(VFS)是linux内核和具体I/O设备之间的封装的一层共通访问接口,通过这层接口,linux内核可以以同一的方式访问各种I/O设备。虚拟文件系统本身是linux内核的一部分,是纯软件的东西,并不需要任何硬件的支持。 主要内容:虚拟文件系统的作用虚拟文件系统的4个主要对象文件系统相关的数据结构进程相关的数据结构小结  1. 虚拟

2014-08-30 08:26:48 412

转载 《Linux内核设计与实现》读书笔记(十二)- 内存管理

内核的内存使用不像用户空间那样随意,内核的内存出现错误时也只有靠自己来解决(用户空间的内存错误可以抛给内核来解决)。所有内核的内存管理必须要简洁而且高效。主要内容:内存的管理单元获取内存的方法获取高端内存内核内存的分配方式总结 1. 内存的管理单元内存最基本的管理单元是页,同时按照内存地址的大小,大致分为3个区。 1.1 页页

2014-08-30 08:26:06 552

转载 《Linux内核设计与实现》读书笔记(十一)- 定时器和时间管理

系统中有很多与时间相关的程序(比如定期执行的任务,某一时间执行的任务,推迟一段时间执行的任务),因此,时间的管理对于linux来说非常重要。 主要内容:系统时间定时器定时器相关概念定时器执行流程实现程序延迟的方法定时器和延迟的例子 1. 系统时间系统中管理的时间有2种:实际时间和定时器。1.1  实际时间实际时间就是现实中钟表上显示的

2014-08-30 08:25:04 479

转载 《Linux内核设计与实现》读书笔记(九)- 内核同步介绍

存在共享资源(共享一个文件,一块内存等等)的时候,为了防止并发访问时共享资源的数据不一致,引入了同步机制。主要内容:同步的概念同步的方法-加锁死锁锁的粒度 1. 同步的概念了解同步之前,先了解另外2个概念:临界区   - 也称为临界段,就是访问和操作共享数据的代码段。竞争条件 - 2个或2个以上线程在临界区里同时执行的时候,就构成了竞争条件。

2014-08-30 08:22:22 374

转载 《Linux内核设计与实现》读书笔记(十)- 内核同步方法

内核中提供了多种方法来防止竞争条件,理解了这些方法的使用场景有助于我们在编写内核代码时选用合适的同步方法,从而即可保证代码中临界区的安全,同时也让性能的损失降到最低。主要内容:原子操作自旋锁读写自旋锁信号量读写信号量互斥体完成变量大内核锁顺序锁禁止抢占顺序和屏障总结 1. 原子操作原子操作是由编译器来保证的,保证一个线程对数据的操作不会被其他线程打断

2014-08-30 08:20:33 328

转载 《Linux内核设计与实现》读书笔记(七)- 中断处理

中断处理一般不是纯软件来实现的,需要硬件的支持。通过对中断的学习有助于更深入的了解系统的一些底层原理,特别是驱动程序的开发。主要内容:什么是中断中断类型中断相关函数中断处理机制中断控制方法总结 1. 什么是中断为了提高CPU和外围硬件(硬盘,键盘,鼠标等等)之间协同工作的性能,引入了中断的机制。没有中断的话,CPU和外围设备之间协同工作可能只有轮询这

2014-08-30 08:19:06 489

转载 《Linux内核设计与实现》读书笔记(六)- 内核数据结构

内核数据结构贯穿于整个内核代码中,这里介绍4个基本的内核数据结构。利用这4个基本的数据结构,可以在编写内核代码时节约大量时间。主要内容:链表队列映射红黑树 1. 链表链表是linux内核中最简单,同时也是应用最广泛的数据结构。内核中定义的是双向链表。 1.1 头文件简介内核中关于链表定义的代码位于: include/l

2014-08-30 08:18:16 475

转载 《Linux内核设计与实现》读书笔记(八)- 中断下半部的处理

在前一章也提到过,之所以中断会分成上下两部分,是由于中断对时限的要求非常高,需要尽快的响应硬件。主要内容:中断下半部处理实现中断下半部的机制总结中断下半部的实现中断实现示例 1. 中断下半部处理那么对于一个中断,如何划分上下两部分呢?哪些处理放在上半部,哪些处理放在下半部?这里有一些经验可供借鉴:如果一个任务对时间十分敏感,将其放在上半部如果

2014-08-30 08:17:54 470

转载 《Linux内核设计与实现》读书笔记(五)- 系统调用

主要内容:什么是系统调用Linux上的系统调用实现原理一个简单的系统调用的实现1. 什么是系统调用简单来说,系统调用就是用户程序和硬件设备之间的桥梁。用户程序在需要的时候,通过系统调用来使用硬件设备。系统调用的存在,有以下重要的意义:1)用户程序通过系统调用来使用硬件,而不用关心具体的硬件设备,这样大大简化了用户程序的开发。    比如:用户

2014-08-30 08:17:20 510

转载 《Linux内核设计与实现》读书笔记(四)- 进程的调度

主要内容:什么是调度调度实现原理Linux上调度实现的方法调度相关的系统调用1. 什么是调度现在的操作系统都是多任务的,为了能让更多的任务能同时在系统上更好的运行,需要一个管理程序来管理计算机上同时运行的各个任务(也就是进程)。这个管理程序就是调度程序,它的功能说起来很简单:决定哪些进程运行,哪些进程等待决定每个进程运行多长时间此外,为了获得更好的用

2014-08-30 08:16:35 607

转载 《Linux内核设计与实现》读书笔记(三)- Linux的进程

进程是所有操作系统的核心概念,同样在linux上也不例外。主要内容:进程和线程进程的生命周期进程的创建进程的终止1. 进程和线程进程和线程是程序运行时状态,是动态变化的,进程和线程的管理操作(比如,创建,销毁等)都是有内核来实现的。Linux中的进程于Windows相比是很轻量级的,而且不严格区分进程和线程,线程不过是一种特殊的进程。所以下面只讨论进

2014-08-30 08:15:17 411

转载 《Linux内核设计与实现》读书笔记(二)- 内核开发的准备

在尝试内核开发之前,需要对内核有个整体的了解。主要内容:获取内核源码内核源码的结构编译内核的方法内核开发的特点 1. 获取内核源码内核是开源的,所有获取源码特别方便,参照以下的网址,可以通过git或者直接下载压缩好的源码包。http://www.kernel.org 2. 内核源码的结构 目录说

2014-08-30 08:14:13 507

转载 《Linux内核设计与实现》读书笔记(一)-内核简介

本篇简单介绍内核相关的基本概念。主要内容:单内核和微内核内核版本号 1. 单内核和微内核 原理优势劣势单内核整个内核都在一个大内核地址空间上运行。1. 简单。2. 高效:所有内核都在一个大的地址空间上,所以内核各个功能之间的调用和调用函数类似,几乎没有性能开销。一

2014-08-30 08:10:16 466

转载 Linux的线程-轻进程

进程类似于人生:它们被产生,有或多或少有效的生命,可以产生一个或多个子进程,最终都要死亡。一个微小的差异是进程之间没有性别差异——每个进程都只有一个父亲。那么,操作系统有一个重要的概念——线程,在Linux上是怎么实现的呢?可以明确的告诉你,Linux并没有线程这个概念。呵呵,是不是Linux很落后呢,不是,恰恰相反,Linux提供了另一个概念——轻进程,其更具有扩展性,更伟大。Linux

2014-08-28 22:18:37 678

转载 Linux内核入门—— C语言基本功

linux是一个复杂的软件系统,其内核源代码往往会用到一些在应用程序设计中部常见语言成分和编程技巧,这些都是分析内核源代码的基本功,希望大家能重点掌握。    首先,gcc编译器从语言里吸收了“inline”和“const”。inline函数的大量使用,有利于提高运行效率,由此相当一部分代码从.c文件移入了.h文件。    gcc增加了一种新的基本数据类型“long long in

2014-08-28 14:36:18 705

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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