自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Gamma Gao的专栏

https://github.com/GammaGao

  • 博客(25)
  • 资源 (23)
  • 收藏
  • 关注

原创 扣减库存

方案一: 代码同步, 使用 synchronized,lock等同步方法这个方案不太行,主要是因为以下几点:1) synchronized 作用范围是单个jvm实例, 如果做了集群,分布式等,就没用了,因为无法跨jvm.2) synchronized是作用在对象实例上的,如果不是单例,则多个实例间不会同步(这个一般用spring管理bean,默认就是单例)3) 单个jvm时,syn...

2019-03-23 20:57:44 1757

原创 epoll内部实现

epoll能够支持百万级别的句柄监听. Nodejs使用的libev,底层是epoll。Nginx使用的epoll边缘触发。调用过程1. 调用epoll_create()建立一个epoll对象(在epoll文件系统中为这个句柄对象分配资源)2. 调用epoll_ctl向epoll对象中添加这100万个连接的套接字3. 调用epoll_wait收集发生的事件的连接实现机制当某...

2019-03-19 10:11:33 3020 3

原创 Docker in Docker(dind) Jenkins实践

Docker in Docker(dind) image用于jenkins做build,在image里面装好第三方,然后jenkins有docker插件如Yet Another Docker Plugin(https://wiki.jenkins.io/display/JENKINS/Yet+Another+Docker+Plugin),管理这些image, 可以在一台机器上起多个docker i...

2018-05-22 10:52:03 5720 1

原创 最长公共子序列和最长公共子串

动态规划与分治法之间的区别:1.divide and conquer algorithm分治法是指将问题分成一些独立的子问题,递归的求解各子问题。2.dynamic programming algorithm动态规划适用于这些子问题不是独立的情况,也就是各子问题包含公共子问题。最长公共子序列和最长公共子串的区别:找两个字符串的最长公共子串,这个子串要求在原字符串中是连续的;而最长公共子序列则并不要...

2018-04-12 15:59:03 608

原创 堆(2)--最大优先级队列

1. 优先级队列优先级队列是一种用来维护由一组元素构成的集合S的数据结构,这一组元素中的每一个都有一个关键字key。一个最大优先级队列支持以下操作:        INSERT(S, x): 把元素x插入集合S。        MAXIMUM(S): 返回S中具有最大关键字的元素。        EXTRACT-MAX(S): 去掉并返回S中的具有最大关键字的元素。        INCREASE...

2018-03-11 22:19:10 547

原创 堆(1)--堆排序HeapSort

1. 堆或称二叉堆二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。当父结点的键值总是大于或等于任何一个子节点的键值时为最大堆。当父结点的键值总是小于或等于任何一个子节点的键值时为最小堆。堆一般都用数组来表示, 若数组下标从0开始, i 结点的父结点下标P...

2018-03-11 21:54:44 403

原创 归并排序Mergesort

归并排序Mergesort是个稳定的排序,时间复杂度O(nlogn), 空间复杂度是O(n), 发明者是 冯·诺伊曼。归并排序具体工作原理如下(假设序列共有n个元素):1. 将序列每相邻两个数字进行归并操作(merge),形成floor(n/2)个序列,排序后每个序列包含两个元素。2. 将上述序列再次归并,形成floor(n/4)个序列,每个序列包含四个元素。3. 重复步骤2,

2018-01-23 09:45:12 378

原创 快速排序Quicksort

快速排序(Quicksort)是对冒泡排序的一种改进, 采用的思想是分治思想。"快速排序"的思想很简单,整个排序过程只需要三步:  (1)在数据集之中,选择一个元素作为"基准"(pivot)。  (2)所有小于"基准"的元素,都移到"基准"的左边;所有大于"基准"的元素,都移到"基准"的右边。  (3)对"基准"左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元

2018-01-23 09:32:47 351

翻译 解决几乎任何机器学习问题(完整翻译)

解决几乎任何机器学习问题(完整翻译)英文原文:Approaching (Almost) Any Machine Learning ProblemKaggle团队| 07.21.2016Kaggle大师Abhishek Thakur最初在2016年7月18日在这里发表了这篇文章。一个数据科学家每天处理大量的数据。有人说,超过60-70%的时间花在了数据清理,数据转移和

2018-01-16 09:16:35 15292 1

原创 Stanford CoreNLP生成CoNLL数据格式

Stanford CoreNLP + Java 8:https://stanfordnlp.github.io/CoreNLP/index.html斯坦福大学CoreNLP提供了一套人类语言技术工具。它可以给出词的基本形式,词类,是否是公司名称,人名等,规范日期,时间和数量,根据短语和句法依赖标记句子的结构,指出哪些名词短语是指相同的实体,表示情感,提取实体提及的特定或开放的类关系,得到人

2017-11-13 18:13:53 6938 2

原创 Theano和Tensorflow多GPU使用问题

我使用的是tensorflow-gpu (1.2.1)和Theano (0.9.0),2个4G显存Nvidia Quadro M2000 GPU。1. theano: ValueError: Could not infer context from inputs THEANO_FLAGS="contexts=dev0->cuda0;dev1->cuda1,gpuarray.prea

2017-09-25 17:46:56 3113

翻译 什么是加密,它是如何工作的?通俗易懂

What Is Encryption, and How Does It Work? 一文的翻译,通过漫画的方式讲清楚了加密,通俗易懂,是一篇好文。加密有着悠久的历史,可以追溯到古希腊人和罗马人时代,他们用字符替换的方式来送密文,有了密钥才能解出来。让我们快速回顾一下历史,学习更多关于加密如何工作的知识。在本文的讲解中,我们先简要的回顾历史,工作原理,以及不同类型加密的例子。

2017-07-26 16:57:05 2843

原创 Ubuntu创建本地bitcoin.org站点

(1) 建立一台ubuntu16虚拟机(2) 安装ruby, jekyll, bundleapt-get updateapt-get install build-essential git libicu-dev zlib1g-devapt-get install ruby ruby-devgem install jekyllgem install b

2017-06-24 19:45:45 807

原创 Centos Keras(2.0.4)+Theano(0.9.0)+OpenBLAS CPU方式配置

实际测试openblas运算比atlas快很多。1. centos安装openblas:yum install openblas-devel2. 安装python2.7.x, 并pip安装keras.3. 配置keras使用theano backend:vim /root/.keras/keras.json{    "epsilon": 1e-07,

2017-05-12 17:47:05 1158

原创 Centos6.3 keras+tensorflow+xgboost+libsvm机器学习环境搭建

最近项目做机器学习的功能,同时用到了keras,xgboost,svm,项目用到的os很老是centos6.3,近期也没有升级os的plan,我只有在此os摸索, 耗了好几天的时间。以下记录了安装过程和遇到的问题,适用于CentOS release 6.3 x86_64。开始使用Keras(2.0.4) + Theano(0.9.0)backend,在AWS EC2 m3.xlar

2017-05-11 19:31:04 1558

原创 扁鹊三兄弟

原文:《鹖冠子·世贤第十六》卓襄王问庞暖曰:“夫君人者亦有为其国乎?”庞暖曰:“王独不闻俞跗之为医乎?已成必治,鬼神避之,楚王临朝为随兵故,若尧之任人也,不用亲戚,而必使能其治病也,不任所爱,必使旧医,楚王闻传暮在身,必待俞跗。”卓襄王曰:“善。”庞暖曰:“王其忘乎?昔伊尹医殷,太公医周武王,百里医秦,申麃医郢,原季医晋,范蠡医越,管仲医齐,而五国霸。其善一也,然道不同数。”卓襄王曰:“愿

2016-03-03 08:44:10 3328

原创 perl解析XML的性能比较

perl XML模块perl解析XML实现方式有很多模块。下面总结一些。模块说明XML::Simple用于读写 XML 的普通 API,最好与 XML 格式的配置文件一起使用XML::LibXMLgnome libxml2 库的 Perl 接口,用于高性能的 DOM 处理XML::Parser用于 James Cl

2015-11-27 12:49:14 383397

原创 perl对称加密解密

概述常见的对称加密有DES,3DES,AES, RC2, RC4, RC5和Blowfish等,这些在Perl里面都有相应的模块实现。列举一些如下:算法模块rpm包cpanDESCrypt::DES   perl-Crypt-DEShttp://search.cpan.org/~dparis/Crypt-DES-2.07/DES.pm

2015-11-27 08:33:47 188731

原创 python Queue的多线程应用

python Queue的用法python队列是线程安全的,它里面可以承载任何类型的数据,供多个线程处理。python queue模块有三种队列:    python queue模块的FIFO队列先进先出,构造函数class Queue.Queue(maxsize)。    LIFO类似于堆。即先进后出,构造函数class Queue.LifoQueue(maxsize)。

2015-11-20 16:35:20 186242

原创 python logging模块的多文件应用

概述有的时候需要在一个python程序中生成多个log文件。本文对logging进一步封装,展示如何在一个程序中使用logging模块打印两个log文件来记录不同类型的信息。注意logging模块是线程安全的,可以在多线程环境中使用。完整的代码#!/usr/bin/env python2.7# -*- coding:utf-8 -*-import logging, logg

2015-11-20 10:09:39 392714

原创 sqlite编程心得

1. 应用场景SQLite(sqlite3)数据库是个文件,又有数据库操作的接口,所以某些场景用起来特别方便。就我的使用感受, sqlite3特别适合应用于单进程来操作数据,缓存中间数据,并且数据库大小有上限,建议1G之内。在内部,SQLite由以下几个组件组成:内核、SQL编译器、后端以及附件。SQLite通过利用虚拟机和虚拟数据库引擎(VDBE),使调试、修改和扩展SQLi

2015-11-19 08:35:58 187790

原创 mysql自动分区自动清理

1. 概述mysql分区表功能特别有用,其中一个应用就是保存固定时间的数据信息,自动分区自动purge,不用担心数据量越积累越多。比较实用的一个实现方式是表一天一个分区,保持固定天数的数据。2. 完整的SQL以数据库log为例,里面有一个表tb_log, 按天分区,始终保存最新的30天的数据。存储过程sp_create_log_partition和sp_drop_log_par

2015-11-18 15:52:51 189040

原创 Redis编程--Perl接口及内建Lua脚本应用

1. Redis built-in Lua ScriptRedis支持内建持久化的Lua脚本的执行并返回结果。使用"SCRIPT LOAD"命令将得到此脚本的SHA1 ID.redis-cli SCRIPT LOAD "$(cat ./myexample.lua) 使用"EVALSHA"命令传入SHA1,KEY和参数便能执行此脚本并返回结果。“SCRIPT LOAD”详见h

2015-11-17 14:08:07 107827

原创 Redis with HA

概述Redis(http://redis.io/)一个高性能的key-value数据库,可用于实时的计算和统计等。Redis有多种HA方案,比如Master-Slave,Redis Cluster等方案。本文采用Redis Sentinel来管理1 Master 2 Slave的3台VM实例的方式,每台VM实例有一个Redis进程和一个Sentinel进程。对于小型的应用来说,此方

2015-11-17 12:31:50 184575

原创 数据库重要概念简述

数据库系统的三级模式模式:概念模式或逻辑模式,一个数据库只有一个概念模式。外模式,:子模式, 一个数据库可以有多个外模式。内模式,: 存储模式, 一个数据库只有一个内模式。数据库的二级映像功能:外模式/模式映像,对应于同一个模式可以有任意多个外模式。模式/内模式映像, 数据库中只有一个模式,也只有一个内模式,所以模式/内模式映像是唯一的。范式

2013-08-27 12:32:15 184681

c++20的编程示例和深入解析

c++20的编程示例和深入解析

2023-12-18

c++工具类及编程示例

c++工具类及编程示例

2023-12-18

asio network demo

asio network demo

2023-12-04

windows iocp编程实例

windows iocp编程实例

2023-10-25

sundb产品介绍,体系结构

sundb产品介绍,体系结构

2023-08-10

SUNDB - 墨天轮百科

SUNDB - 墨天轮百科

2023-08-10

SUNDB数据库技术白皮书

SUNDB数据库技术白皮书

2023-08-10

TotalCMDPortable

TotalCMDPortable

2023-07-01

TA-Lib : Technical Analysis Library

TA-Lib : Technical Analysis Library

2023-06-12

Hands-On Machine Learning for Algorithmic Trading第一版

Hands-On Machine Learning for Algorithmic Trading第一版

2023-05-23

Machine Learning for Algorithmic Trading, 2nd edition

Machine Learning for Algorithmic Trading, 2nd edition

2023-05-23

Code for Machine Learning for Algorithmic Trading, 2nd edition

Code for Machine Learning for Algorithmic Trading, 2nd edition

2023-05-23

Python中的投资组合优化和量化战略资产配置

Python中的投资组合优化和量化战略资产配置

2023-05-18

Ray -分布式计算框架架构设计详解 v2

Ray -分布式计算框架架构设计详解 v2

2023-05-05

Ray Forward Meetup2022 会议PPT

Ray Forward Meetup2022 会议PPT

2023-05-05

ray serve test 2

ray serve test 2

2023-04-25

ray serve arch

ray serve arch

2023-04-24

ray serve demo

ray serve demo

2023-04-24

ray-2.3.1-cp37-cp37m-win-amd64.whl

ray-2.3.1-cp37-cp37m-win-amd64.whl

2023-04-24

Netron-Setup-6.8.4

Netron-Setup-6.8.4

2023-04-23

Ceph分布式存储学习指南

卡伦·辛格所著的《Ceph分布式存储学习指南》是一本关于Ceph开发与集成的综合实践指南。书中详细讲解如何部署和设置Ceph集群,深入探索各种组件以及为什么需要它们,既包含实现Ceph集群所需的基本信息,又涵盖Ceph的高级特性。

2019-05-06

Boost程序库完全开发指南 深入C++准标准库 第3版

《Boost程序库完全开发指南——深入C++“准”标准库(第3版)》基于2014 年11 月发布的Boost 1.57 版,介绍了其中的所有129 个库,并且结合C++11/14 标准详细、深入地讲解了其中数十个库,同时实现了若干颇具实用价值的工具类和函数,可帮助读者迅速地理解、掌握Boost 的用法并应用于实际的开发工作。

2019-05-06

C++高级进阶教程

《重点大学计算机教材•C++高级进阶教程》在假定读者有一定的C++编程能力的基础上,进一步加强了对一些基本概念的解释,介绍了一些不太常用的关键字的用法。同时,介绍了一些C++语言机制的底层实现方案。另外,还进一步加深了对一些常用的C++语言机制的讲解,同时也对一些高级话题进行了探讨。《重点大学计算机教材•C++高级进阶教程》可作为高年级本科生、研究生的程序设计语言教材,也可供相关的工程技术人员参考。

2019-05-06

C++11/14高级编程: Boost程序库探秘 第三版

C++的新标准(C++11/14)引入了许多强大易用的新特性新功能,从语言层面深刻地改变了C++的开发范式。 Boost程序库由C++标准委员会部分成员所设立的Boost社区开发并维护,它构造精巧、跨平台、开源并且完全免费,被称为“C++‘准’标准库”,已广泛应用在实际软件开发中。Boost内容涵盖智能指针、文本处理、并发、模板元编程、预处理元编程等许多领域,其范围之广内涵之深甚至要超过C++11/14标准,极大地增强了C++的功能和表现力。 本书基于C++11/14标准和Boost程序库1.60版,深入探讨了其中的许多特性和高级组件,包括迭代器、函数对象、容器、流处理以及C++语言中最复杂+威力的模板元编程和预处理元编程,具有较强的实用性,可帮助读者深层次地理解掌握现代C++的高级技术和Boost的内部实现机制及用法。

2019-05-06

Effective Modern C++英文版及中文翻译

Effective Modern C++英文版及中文翻译. 第一章 类型推导 条款1: 理解模板类型推导 条款2: 理解auto类型推导 条款3: 理解decltype 条款4: 知道如何查看类型推导 第二章 auto关键字 条款5: 优先使用auto而非显式类型声明 条款6: 当auto推导出非预期类型时应当使用显式的类型初始化

2019-05-06

Matrix Cookbook

机器学习用到的矩阵论等知识,一本速查手册,里面向量矩阵微分的东西还是很全的。

2018-01-22

R语言实战 Robert I. Kabacoff

《R语言实战》从解决实际问题入手,尽量跳脱统计学的理论阐述来讨论R语言及其应用,讲解清晰透澈,极具实用性。作者不仅高度概括了R语言的强大功能、展示了各种实用的统计示例,而且对于难以用传统方法分析的凌乱、不完整和非正态的数据也给出了完备的处理方法。通读本书,你将全面掌握使用R语言进行数据分析、数据挖掘的技巧,并领略大量探索和展示数据的图形功能,从而更加高效地进行分析与沟通。

2018-01-22

Deep Learning深度学习中文版

Deep Learning(An MIT Press book Ian Goodfellow and Yoshua Bengio and Aaron Courville) The Deep Learning textbook is a resource intended to help students and practitioners enter the field of machine learning in general and deep learning in particular. The online version of the book is now complete and will remain available online for free.

2018-01-22

集体智慧编程 (美) 西格兰著

集体智慧编程, 以机器学习与计算统计为主题背景,专门讲述如何挖掘和分析Web上的数据和资源,如何分析用户体验、市场营销、个人品味等诸多信息,并得出有用的结论,通过复杂的算法来从Web网站获取、收集并分析用户的数据和反馈信息,以便创造新的用户价值和商业价值。全书内容翔实,包括协作过滤技术(实现关联产品推荐功能)、集群数据分析(在大规模数据集中发掘相似的数据子集)、搜索引擎核心技术(爬虫、索引、查询引擎、PageRank算法等)、搜索海量信息并进行分析统计得出结论的优化算法、贝叶斯过滤技术(垃圾邮件过滤、文本过滤)、用决策树技术实现预测和决策建模功能、社交网络的信息匹配技术、机器学习和人工智能应用等。

2018-01-22

统计学习方法 李航

统计学习方法 李航2012年版,学习机器学习的经典图书之一。

2018-01-21

金融时间序列分析 中文第3版 RueyS.Tsay著

学习时间序列分析的经典图书之一,中文第3版,RueyS.Tsay著

2018-01-21

嵌入式Linux图形界面开发

嵌入式Linux图形界面开发 miniGUI QT GTK 有参考比较价值。

2010-06-23

基于VxWorks的Zinc程序设计

基于VxWorks的Zinc程序设计 Vxworks下的图形编程

2010-06-23

VxWorks下图形用户界面的开发

VxWorks下图形用户界面的开发 。 VxWorks下的图形编程。 很有用。

2010-06-23

嵌入式经典--Linux设备驱动第三版中文版

嵌入式经典--Linux设备驱动第三版中文版 学习linux device driver的必备之书。 1. 第一章 设备驱动简介 1.1. 驱动程序的角色 1.2. 划分内核 1.2.1. 可加载模块 1.3. 设备和模块的分类 1.4. 安全问题 1.5. 版本编号 1.6. 版权条款 1.7. 加入内核开发社团 1.8. 本书的内容 2. 建立和运行模块 2.1. 设置你的测试系统 2.2. Hello World 模块 2.3. 内核模块相比于应用程序 2.3.1. 用户空间和内核空间 2.3.2. 内核的并发 2.3.3. 当前进程 2.3.4. 几个别的细节 2.4. 编译和加载 2.4.1. 编译模块 2.4.2. 加载和卸载模块 2.4.3. 版本依赖 2.4.4. 平台依赖性 2.5. 内核符号表 2.6. 预备知识 2.7. 初始化和关停 2.7.1. 清理函数 2.7.2. 初始化中的错误处理 2.7.3. 模块加载竞争 2.8. 模块参数 2.9. 在用户空间做 2.10. 快速参考 3. 字符驱动 3.1. scull 的设计 3.2. 主次编号 3.2.1. 设备编号的内部表示 3.2.2. 分配和释放设备编号 3.2.3. 主编号的动态分配 3.3. 一些重要数据结构 3.3.1. 文件操作 3.3.2. 文件结构 3.3.3. inode 结构 3.4. 字符设备注册 3.4.1. scull 中的设备注册 3.4.2. 老方法 3.5. open 和 release 3.5.1. open 方法 3.5.2. release 方法 3.6. scull 的内存使用 3.7. 读和写 3.7.1. read 方法 3.7.2. write 方法 3.7.3. readv 和 writev 3.8. 使用新设备 3.9. 快速参考 4. 调试技术 4.1. 内核中的调试支持 4.2. 用打印调试 4.2.1. printk 4.2.2. 重定向控制台消息 4.2.3. 消息是如何记录的 4.2.4. 打开和关闭消息 4.2.5. 速率限制 4.2.6. 打印设备编号 4.3. 用查询来调试 4.3.1. 使用 /proc 文件系统 4.3.2. ioctl 方法 4.4. 使用观察来调试 4.5. 调试系统故障 4.5.1. oops 消息 4.5.2. 系统挂起 4.6. 调试器和相关工具 4.6.1. 使用 gdb 4.6.2. kdb 内核调试器 4.6.3. kgdb 补丁 4.6.4. 用户模式 Linux 移植 4.6.5. Linux 追踪工具 4.6.6. 动态探针 5. 并发和竞争情况 5.1. scull 中的缺陷 5.2. 并发和它的管理 5.3. 旗标和互斥体 5.3.1. Linux 旗标实现 5.3.2. 在 scull 中使用旗标 5.3.3. 读者/写者旗标 5.4. Completions 机制 5.5. 自旋锁 5.5.1. 自旋锁 API 简介 5.5.2. 自旋锁和原子上下文 5.5.3. 自旋锁函数 5.5.4. 读者/写者自旋锁 5.6. 锁陷阱 5.6.1. 模糊的规则 5.6.2. 加锁顺序规则 5.6.3. 细 -粗- 粒度加锁 5.7. 加锁的各种选择 5.7.1. 不加锁算法 5.7.2. 原子变量 5.7.3. 位操作 5.7.4. seqlock 锁 5.7.5. 读取-拷贝-更新 5.8. 快速参考 6. 高级字符驱动操作 6.1. ioctl 接口 6.1.1. 选择 ioctl 命令 6.1.2. 返回值 6.1.3. 预定义的命令 6.1.4. 使用 ioctl 参数 6.1.5. 兼容性和受限操作 6.1.6. ioctl 命令的实现 6.1.7. 不用 ioctl 的设备控制 6.2. 阻塞 I/O 6.2.1. 睡眠的介绍 6.2.2. 简单睡眠 6.2.3. 阻塞和非阻塞操作 6.2.4. 一个阻塞 I/O 的例子 6.2.5. 高级睡眠 6.2.6. 测试 scullpipe 驱动 6.3. poll 和 select 6.3.1. 与 read 和 write 的交互 6.3.2. 底层的数据结构 6.4. 异步通知 6.4.1. 驱动的观点 6.5. 移位一个设备 6.5.1. llseek 实现 6.6. 在一个设备文件上的存取控制 6.6.1. 单 open 设备 6.6.2. 一次对一个用户限制存取 6.6.3. 阻塞 open 作为对 EBUSY 的替代 6.6.4. 在 open 时复制设备 6.7. 快速参考 7. 时间, 延时, 和延后工作 7.1. 测量时间流失 7.1.1. 使用 jiffies 计数器 7.1.2. 处理器特定的寄存器 7.2. 获知当前时间 7.3. 延后执行 7.3.1. 长延时 7.3.2. 短延时 7.4. 内核定时器 7.4.1. 定时器 API 7.4.2. 内核定时器的实现 7.5. Tasklets 机制 7.6. 工作队列 7.6.1. 共享队列 7.7. 快速参考 7.7.1. 时间管理 7.7.2. 延迟 7.7.3. 内核定时器 7.7.4. Tasklets 机制 7.7.5. 工作队列 8. 分配内存 8.1. kmalloc 的真实故事 8.1.1. flags 参数 8.1.2. size 参数 8.2. 后备缓存 8.2.1. 一个基于 Slab 缓存的 scull: scullc 8.2.2. 内存池 8.3. get_free_page 和其友 8.3.1. 一个使用整页的 scull: scullp 8.3.2. alloc_pages 接口 8.3.3. vmalloc 和 其友 8.3.4. 一个使用虚拟地址的 scull : scullv 8.4. 每-CPU 的变量 8.5. 获得大量缓冲 8.5.1. 在启动时获得专用的缓冲 8.6. 快速参考 9. 与硬件通讯 9.1. I/O 端口和 I/O 内存 9.1.1. I/O 寄存器和常规内存 9.2. 使用 I/O 端口 9.2.1. I/O 端口分配 9.2.2. 操作 I/O 端口 9.2.3. 从用户空间的 I/O 存取 9.2.4. 字串操作 9.2.5. 暂停 I/O 9.2.6. 平台依赖性 9.3. 一个 I/O 端口例子 9.3.1. 并口纵览 9.3.2. 一个例子驱动 9.4. 使用 I/O 内存 9.4.1. I/O 内存分配和映射 9.4.2. 存取 I/O 内存 9.4.3. 作为 I/O 内存的端口 9.4.4. 重用 short 为 I/O 内存 9.4.5. 在 1 MB 之下的 ISA 内存 9.4.6. isa_readb 和其友 9.5. 快速参考 10. 中断处理 10.1. 准备并口 10.2. 安装一个中断处理 10.2.1. /proc 接口 10.2.2. 自动检测 IRQ 号 10.2.3. 快速和慢速处理 10.2.4. 实现一个处理 10.2.5. 处理者的参数和返回值 10.2.6. 使能和禁止中断 10.3. 前和后半部 10.3.1. Tasklet 实现 10.3.2. 工作队列 10.4. 中断共享 10.4.1. 安装一个共享的处理者 10.4.2. 运行处理者 10.4.3. /proc 接口和共享中断 10.5. 中断驱动 I/O 10.5.1. 一个写缓存例子 10.6. 快速参考 11. 内核中的数据类型 11.1. 标准 C 类型的使用 11.2. 安排一个明确大小给数据项 11.3. 接口特定的类型 11.4. 其他移植性问题 11.4.1. 时间间隔 11.4.2. 页大小 11.4.3. 字节序 11.4.4. 数据对齐 11.4.5. 指针和错误值 11.5. 链表 11.6. 快速参考 12. PCI 驱动 12.1. PCI 接口 12.1.1. PCI 寻址 12.1.2. 启动时间 12.1.3. 配置寄存器和初始化 12.1.4. MODULEDEVICETABLE 宏 12.1.5. 注册一个 PCI 驱动 12.1.6. 老式 PCI 探测 12.1.7. 使能 PCI 设备 12.1.8. 存取配置空间 12.1.9. 存取 I/O 和内存空间 12.1.10. PCI 中断 12.1.11. 硬件抽象 12.2. 回顾: ISA 12.2.1. 硬件资源 12.2.2. ISA 编程 12.2.3. 即插即用规范 12.3. PC/104 和 PC/104+ 12.4. 其他的 PC 总线 12.4.1. MCA 总线 12.4.2. EISA 总线 12.4.3. VLB 总线 12.5. SBus 12.6. NuBus 总线 12.7. 外部总线 12.8. 快速参考 13. USB 驱动 13.1. USB 设备基础知识 13.1.1. 端点 13.1.2. 接口 13.1.3. 配置 13.2. USB 和 sysfs 13.3. USB 的 Urbs 13.3.1. 结构 struct urb 13.3.2. 创建和销毁 urb 13.3.3. 提交 urb 13.3.4. 完成 urb: 完成回调处理者 13.3.5. 取消 urb 13.4. 编写一个 USB 驱动 13.4.1. 驱动支持什么设备 13.4.2. 注册一个 USB 驱动 13.4.3. 提交和控制一个 urb 13.5. 无 urb 的 USB 传送 13.5.1. usb_bulk_msg 接口 13.5.2. usb_control_msg 接口 13.5.3. 使用 USB 数据函数 13.6. 快速参考 14. Linux 设备模型 14.1. Kobjects, Ksets 和 Subsystems 14.1.1. Kobject 基础 14.1.2. kobject 层次, kset, 和子系统 14.2. 低级 sysfs 操作 14.2.1. 缺省属性 14.2.2. 非缺省属性 14.2.3. 二进制属性 14.2.4. 符号连接 14.3. 热插拔事件产生 14.3.1. 热插拔操作 14.4. 总线, 设备, 和驱动 14.4.1. 总线 14.4.2. 设备 14.4.3. 设备驱动 14.5. 类 14.5.1. class_simple 接口 14.5.2. 完整的类接口 14.6. 集成起来 14.6.1. 添加一个设备 14.6.2. 去除一个设备 14.6.3. 添加一个驱动 14.6.4. 去除一个驱动 14.7. 热插拔 14.7.1. 动态设备 14.7.2. /sbin/hotplug 工具 14.7.3. 使用 /sbin/hotplug 14.8. 处理固件 14.8.1. 内核固件接口 14.8.2. 它如何工作 14.9. 快速参考 14.9.1. Kobjects结构 14.9.2. sysfs 操作 14.9.3. 总线, 设备, 和驱动 14.9.4. 类 14.9.5. 固件 15. 内存映射和 DMA 15.1. Linux 中的内存管理 15.1.1. 地址类型 15.1.2. 物理地址和页 15.1.3. 高和低内存 15.1.4. 内存映射和 struct page 15.1.5. 页表 15.1.6. 虚拟内存区 15.1.7. 进程内存映射 15.2. mmap 设备操作 15.2.1. 使用 remap_pfn_range 15.2.2. 一个简单的实现 15.2.3. 添加 VMA 的操作 15.2.4. 使用 nopage 映射内存 15.2.5. 重新映射特定 I/O 区 15.2.6. 重新映射 RAM 15.2.7. 重映射内核虚拟地址 15.3. 进行直接 I/O 15.3.1. 异步 I/O 15.4. 直接内存存取 15.4.1. 一个 DMA 数据传输的概况 15.4.2. 分配 DMA 缓冲 15.4.3. 总线地址 15.4.4. 通用 DMA 层 15.4.5. ISA 设备的 DMA 15.5. 快速参考 15.5.1. 介绍性材料 15.5.2. 实现 mmap 15.5.3. 实现直接 I/O 15.5.4. 直接内存存取 16. 块驱动 16.1. 注册 16.1.1. 块驱动注册 16.1.2. 磁盘注册 16.1.3. 在 sbull 中的初始化 16.1.4. 注意扇区大小 16.2. 块设备操作 16.2.1. open 和 release 方法 16.2.2. 支持可移出的介质 16.2.3. ioctl 方法 16.3. 请求处理 16.3.1. 对请求方法的介绍 16.3.2. 一个简单的请求方法 16.3.3. 请求队列 16.3.4. 请求的分析 16.3.5. 请求完成函数 16.4. 一些其他的细节 16.4.1. 命令预准备 16.4.2. 被标识的命令排队 16.5. 快速参考 17. 网络驱动 17.1. snull 是如何设计的 17.1.1. 分配 IP 号 17.1.2. 报文的物理传送 17.2. 连接到内核 17.2.1. 设备注册 17.2.2. 初始化每一个设备 17.2.3. 模块卸载 17.3. net_device 结构的详情 17.3.1. 全局信息 17.3.2. 硬件信息 17.3.3. 接口信息 17.3.4. 设备方法 17.3.5. 公用成员 17.4. 打开与关闭 17.5. 报文传送 17.5.1. 控制发送并发 17.5.2. 传送超时 17.5.3. 发散/汇聚 I/O 17.6. 报文接收 17.7. 中断处理 17.8. 接收中断缓解 17.9. 连接状态的改变 17.10. Socket 缓存 17.10.1. 重要成员变量 17.10.2. 作用于 socket 缓存的函数 17.11. MAC 地址解析 17.11.1. 以太网使用 ARP 17.11.2. 不考虑 ARP 17.11.3. 非以太网头部 17.12. 定制 ioctl 命令 17.13. 统计信息 17.14. 多播 17.14.1. 多播的内核支持 17.14.2. 典型实现 17.15. 几个其他细节 17.15.1. 独立于媒介的接口支持 17.15.2. ethtool 支持 17.15.3. netpoll 17.16. 快速参考 18. TTY 驱动 18.1. 一个小 TTY 驱动 18.1.1. 结构 struct termios 18.2. tty_driver 函数指针 18.2.1. open 和 close 18.2.2. 数据流 18.2.3. 其他缓冲函数 18.2.4. 无 read 函数? 18.3. TTY 线路设置 18.3.1. set_termios 函数 18.3.2. tiocmget 和 tiocmset 18.4. ioctls 函数 18.5. TTY 设备的 proc 和 sysfs 处理 18.6. tty_driver 结构的细节 18.7. tty_operaions 结构的细节 18.8. tty_struct 结构的细节 18.9. 快速参考

2009-11-17

cleartool_command_version7.0.0.1

cleartool_command_version7.0.0.1: clearcase命令大全 你使用clearcase的详尽的查询手册。

2009-11-07

设计模式精解-GoF23种设计模式解析附C++实现源码

设计模式精解-GoF23种设计模式解析附C++实现源码 学习设计模式的好书一本!

2009-11-07

设计模式全部演示代码

设计模式全部演示代码: 教你快速学会并深入理解23种设计模式。 从代码开始,一切变得简单,无需理会晦涩的四人帮书。

2009-11-07

STL标准库示例源码

STL标准库示例源码 浅显易懂,看代码实现学习STL编程,快速入门。

2009-11-07

STL 参考手册--使用STL编程必备

非常全面,可做STL编程的参考书。 Content: ===General C/C++=== Pre-processor commands Operator Precedence Escape Sequences ASCII Chart Data Types Keywords ===C++=== C++ I/O C++ Strings C++ String Streams Miscellaneous C++ ===Standard C Library=== Standard C I/O Standard C String & Character Standard C Math Standard C Date & Time Standard C Memory Other standard C functions All C Functions ==C++ Standard Template Library== About the Standard Template Library Iterators C++ Algorithms C++ Vectors C++ Double-Ended Queues C++ Lists C++ Priority Queues C++ Queues C++ Stacks C++ Sets C++ Multisets C++ Maps C++ Multimaps C++ Bitsets All C++ Functions

2009-11-07

空空如也

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

TA关注的人

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