自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

林学森的技术专栏

深入剖析移动操作系统和人工智能等前沿技术,已出版《机器学习观止——核心原理与实践》、《Android内核设计思想》等

  • 博客(34)
  • 资源 (14)
  • 收藏
  • 关注

原创 GDB 调试

<br />1. 编译时<br />   在-c前加上-g (调试库时也是一样的,在编译库文件依赖的所有.o前加上-g)<br /> <br />2.调试时<br />  l(list)可以列出文件,list 文件名:行号 可以进入这个文件(在工程中一般都有很多文件)<br />  加断点:break 行号 或者 break 文件名:行号<br />  取消断点:disable delete等等<br /> 程序运行: run, continue(下个断点停住)<br /> 单步:s(有点像step in,

2010-11-30 11:36:00 873

转载 CPU启动过程

<br />IBM PC机的约定。开机执行FFFF:0000地址指令,这是一个跳转指令,跳到BIOS程序入口。机器启动时,CPU进行内部寄存器的初始化,将代码寄存器CS置为FFFFH,指令指针IP置为0000H,于是CPU的地址总线输出FFFF0H,以BIOS的FFF0H单元开执行第一条跳转指令:JMP F000H:E05B。该处存放有指令代码EA5B,E000,F030,312F。

2010-11-27 15:59:00 2280

转载 C程序内存分布

C程序一般分为1.程序段:程序段为程序代码在内存中的映射.一个程序可以在内存中多有个副本.2.初始化过的数据:在程序运行值初已经对变量进行初始化的3.未初始化过的数据:在程序运行初未对变量进行初始化的数据4.堆(stack):存储局部,临时变量,在程序块开始时自动分配内存,结束时自动释放内存.存储函数的返回指针.5.栈(heap):存储动态内存分配,需要程序员手工分配,手工释放.附程序分布图:<br />#include<stdio.h><br /><br />int g1=0, g2=0, g3=0;<b

2010-11-26 08:13:00 1036

转载 buffer overflow

可能是唯一一篇gb的写overflow的文章,好像译至aleph1的那篇文章 zer9提到后我才想起来把他贴上来,呵呵 Buffer Overflow 机理剖析 使用Buffer Overflow 方法来入侵目的主机是黑客们经常采用的一种手段,本文将几篇介绍其机理的文章作了一些加工整理, 对它的机理作出了由浅入深的剖析. 本文分为下面几个部分, 朋友们可以按照自己的兴趣选择不同的章节: 关于堆栈的基础知识 Buffer Overflow 的原理

2010-11-25 19:54:00 2085

转载 论坛转帖,C与C++头文件

<br />c++中 string与string.h 的作用和区别  <br />#include <string.h>   <br /><br />void main()   <br />{   <br />  string aaa= "abcsd d";   <br />  printf("looking for abc from abcdecd %s/n", (strcmp(aaa,"abc")) ? "Found" : "Not Found");   <br />}   <br />不能正确执行,提

2010-11-25 09:43:00 897

转载 Cookie

<br />一、什么是用户自动登录?<br />   对于我们的网站向已注册用户提供某些专门的服务,比如网上购物、在线下载、收费浏览等等,就会要求用户在使用这些服务之前进入登录页面,输入用户名和密码,并进行验证。<br />    如果用户经常访问我们的网站,假如每天都访问一次,或者好几次,那么用户每次都重复这些登录操作就会感到相当厌烦。通过一些简单的技术手段,我们可以让网站“记住”那些在曾经登录过的用户。当该用户下次再来访问的时候,网站可以识别该用户,并为其自动完成登录过程。<br />二、基本思

2010-11-24 18:11:00 885

转载 四类clustering方法比较

<br />摘  要: 介绍了较为常见的k-means、层次聚类、SOM、FCM等四种聚类算法,阐述了各自的原理和使用步骤,利用国际通用测试数据集IRIS对这些算法进行了验证和比较。结果显示对该测试类型数据,FCM和k-means都具有较高的准确度,层次聚类准确度最差,而SOM则耗时最长。<br />关键词: 聚类算法;k-means;层次聚类;SOM;FCM<br />    聚类分析是一种重要的人类行为,早在孩提时代,一个人就通过不断改进下意识中的聚类模式来学会如何区分猫狗、动物植物。目前在许多领域都得

2010-11-19 09:02:00 7258

转载 从输入网址到显示页面:浏览器工作原理拆解分析

本文深入的研究了浏览器从输入网址到显示页面之间发生的事情。本文内容面向对网络应用相关技术,如浏览器、HTTP、HTML、网络服务器、需求处理等方面有一定了解的软件开发人员。 浏览器缓存 – 浏览器会缓存DNS记录一段时间。 有趣的是,操作系统没有告诉浏览器储存DNS记录的时间,这样不同浏览器会储存个自固定的一个时间(2分钟到30分钟不等)。 系统缓存 – 如果在浏览器缓存里没有找到需要的记录,浏览器会做一个系统调用(windows里是gethostbyname)。这样便可获得系统缓存中的记录。 路由器缓

2010-11-16 17:12:00 1292

转载 程序员10个层次

<br />菜鸟,大牛这些头衔似乎适用于每个程序员,今天我们列举程序员的十个层次,看您究竟属于哪一级?<br /><br />自西方文艺复兴以来,中国在自然科学方面落后西方很多,软件领域也不例外。当然现在中国的许多程序员们对此可能有许多不同的意见,有些人认为中国的程序员水平远落后于西方,有些则认为中国的程序员个人能力并不比西方的程序员差,只是整个软件产业落后而已。<br /><br />那么,到底中国的程序员水平比西方程序员水平差,还是中国有许多优秀的程序员达到或超过了西方程序员同等水平呢?要解决这个问题,

2010-11-16 16:39:00 1426 1

转载 find_first_of()和 find_last_of()

<br />string 类提供字符串处理函数,利用这些函数,程序员可以在字符串内查找字符,<br />提取连续字符序列(称为子串),以及在字符串中删除和添加。我们将介绍一些主要函数。<br />1.函数find_first_of()和 find_last_of() 执行简单的模式匹配,如在字符串中查找单个字符c。<br />函数find_first_of() 查找在字符串中第1个出现的字符c,而函数find_last_of()查找最后<br />一个出现的c。匹配的位置是返回值。如果没有匹配发生,则函数返

2010-11-16 11:43:00 1133

原创 关于C/C++的一些链接

<br />1. C/C++库函数参考:<br />http://www.cppreference.com/wiki/<br /> 

2010-11-16 11:37:00 934

转载 C标准库函数浅析

<br />使用C语言的一半价值在于使用其标准库函数。当然,灵活的for循环以及数组和指针之间的相似性也是C语言的重要价值。在解决实际问题时,能方便地操作字符串和文件等对象是最重要的,有些语言能出色地完成其中的一部分工作,另一些语言能出色地完成其中的另一部分工作,然而,没有几种语言能象C语言那样能出色地完成全部工作。 c标准库中还缺少很多函数,例如投有图形函数,甚至没有全屏幕文本操作函数,signal机制也相当弱(见12.10),并且根本没有对多任务或使用常规内存以外的内存提供支持。尽管C标准库存在上述缺陷

2010-11-16 11:27:00 1301

转载 C Run-Time Library的理解

<br />注: 以下内容部分引自CSND中相关讨论的帖子,仅供参考, 共同学习哈 <br />*************************************** <br />1)运行时库就是   C   run-time   library,是   C   而非   C++   语言世界的概念:取这个名字就是因为你的   C   程序运行时需要这些库中的函数. <br />2)C   语言是所谓的“小内核”语言,就其语言本身来说很小(不多的关键字,程序流程控制,数据类型等);所以,C   语言

2010-11-16 11:15:00 906

原创 makefile小结

首先牢记make的规则A:B     CA依赖B,当B的日期比A新时,执行C1.伪目标:   伪目标是一个标签,它的目的不在于生成文件,而是执行命令(感觉有点像宏定义。不用太纠结于定义,记住MAKE的规则就能知道它怎么做的)clean:rm *.o tempclean 依赖于空的文件。个人认为在出现这种空依赖时,A)如果当前目录没有同名文件或文件夹时, make将其认为是.PHONY。所以当我们敲make clean或make(如果clean在第一个)时,它会被执行(伪目标是用来执行命令的,所以当你调用时,

2010-11-13 12:09:00 969

转载 Linux下动态库的生成及链接方法

<br />Linux下动态库文件的扩展名为".so"(Shared Object)。按照约定,所有动态库文件名的形式是libname.so(可能在名字中加入版本号)。这样,线程函数库被称作libthread.so。静态库的文件名形式是libname.a。共享archive的文件名形式是libname.sa。共享archive只是一种过渡形式,帮助人们从静态库转变到动态库。<br /><br />本文仅以简单的例子介绍动态库文件的生成和链接方法。<br />操作系统:Debian/GNU Linux 2.6

2010-11-12 17:25:00 1069

转载 Create treeview on GLADE

Sunday, April 19, 2009Creating GtkTreeView with Glade-3, part 1In today's bit, I'll show you how to create tree view and underlying model completely from glade GUI builder. <br /><br />Contents: Creating GtkTreeView with Glade-3, part 1Creating GtkTreeView

2010-11-11 22:55:00 2768

转载 使用diff和patch进行简单的文件版本管理

本文来自: http://blog.chinaunix.net/u1/50916/showart_679530.html在Unix系统下,维护源码版本可以使用很多方法,其中最常用的当然是大名鼎鼎的CVS,但实际上,简单的版本维护工作并没有必要使用复杂的CVS等专门的版本维护工具,Unix标配中的diff和patch工具就完全可以完成代码的简单备份和升级工作。<br />diff 以"行"为单位比较两个文本文件(也可以是目录比较),并将不同之处以某种格式输出到标准输出上;patch可以读入这种输出,并按照一定

2010-11-11 10:47:00 1563

转载 Glade Tutorial

Friday, September 4, 2009Glade3 tutorial (1) - IntroductionHello again. <br /><br />In next series of posts I'll try to show you some of the techniques I personally use when developing applications using Glade3. <br /><br />What are we going to code<br /><

2010-11-10 20:21:00 4833

原创 How to install GTK+ on ubuntus_10.10

vbox+ubuntus 10.10, all installed to /usr (./configure --prefix=/usr)---------------------------------------------------BINARY METHODS---------------------------------------------------------------------------------SOURCE FILE METHODS----------------All th

2010-11-09 20:56:00 2825

转载 VBOX File sharing

<br /><br />1》Vbox中安装了Linux系统<br />在Vbox中安装了Linux系统后,就需要使的Linux虚拟机系统和真实的主机系统共享文件了,这里这个真是的主机系统可以是windows也可以是Linux,这个对后期设置没有什么太大的影响。<br />a。首先在开启的虚拟机停止的情况下操作(在虚拟机开启的情况下也是可以操作的,只不过那样添加的是零时的,这里介绍永久有效的),在配置管理中选择数据空间管理,添加新的文件夹并且给此次添加命名,比如添加了E:/,并且命名为epan。<br />b

2010-11-09 14:29:00 856

转载 关于linux图形界面的基本知识

<br />很多LINUX初学者分不清楚linux和X之间,X和Xfree86之间,X和KDE,GNOME等之间是什么关系.常常混淆概念,我想以比较易于理解的方式说明一下X,X11,XFREE,WM,KDE,GNOME等之间的关系.由于本人水平有限可能存在错误,请高手指正.  <br /><br />一,linux本身没有图形界面,linux现在的图形界面的实现只是linux下的应用程序实现的.  <br />图形界面并不是linux的一部分,linux只是一个基于命令行的操作系统,linux和Xfree的

2010-11-08 09:46:00 862

转载 排序算法的比较

<br />学习开发至今,《算法导论》这部经典却一直没有看过。虽然大多常见算法都在其他书籍(如数据结构)学过,但还是想重新把它看一遍。今天终于收到amazon寄来的厚厚的一本,开始看。。。<br /> <br />书共分八部分,其中最后一部分附录,是数学基础。我是先看这一部分的,浏览了一遍。<br /> <br />基本上内容有:<br /> <br />1。高数中的级数,常见的数列(级数)的求和。 --- 基本上用数学归级法很容易证明<br />2。离散数学中的:集合,关系以及函数,图,树,二叉树概念。<

2010-11-07 15:45:00 805

转载 排序算法小析

<br />目录: <br />  <br />1 ,冒泡排序 (bubble sort) 1 <br />2 , 插入排序 (insertion sort) 2 <br />3 ,选择排序 (selection sort) 2 <br />4 ,合并排序 (merge sort) 3 <br />5 ,快速排序 (quick sort) 4 <br />6 ,线性时间排序 — 计数排序 (counting sort) 7 <br />7 ,线性时间排序 — 基数排序 -- 7 <br />8 ,线性排序

2010-11-07 13:49:00 1021

原创 算法与数据结构总结

<br />数据结构有四种:集合,线性,树,图<br />算法:<br />1. 排序<br />2.

2010-11-07 13:12:00 920

转载 键盘输入

键盘输入<br />这节讲述windows如何产生键盘输入和程序如何接受和处理输入; <br />所有Microsoft windows的应用程序应该能够从键盘和鼠标接收用户的输入,windows应用程序是以处理投递到窗口的消息的形式接收键盘输入的。 键盘输入模式<br />windows系统通过安装与当前键盘相应的键盘设备驱动程序为应用程序提供设备独立键盘支持,windows系统还通过使用由当前用户或应用程序选中的语言特有的键盘配置.提供语言独立键盘支持。键盘设备驱动器从键盘接收的扫描码,被发送到键盘配置

2010-11-06 13:27:00 1754

转载 Windows消息编程

Windows消息编程韩耀旭下载源代码本文主要包括以下内容:1、简单理解Windows的消息2、通过一个简单的Win32程序理解Windows消息3、通过几个Win32程序实例进一步深入理解Windows消息4、队列消息和非队列消息5、WM_COMMAND和WM_NOTIFY6、MFC的消息映射7、消息反射机制1、简单理解Windows的消息消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了。举个例子来说,鼠标单击某应用程序的一个按钮。这时,Windows(操作系统)给应用程序发送这个消息

2010-11-06 12:09:00 947

转载 glib: 恶梦终结者

<br />gnome是基于gtk+开发的一套桌面环境,gnome和KDE作为两大最流行的桌面环境,在全世界广泛使用。只要是在Linux下工作的开发人员,对于gtk+一定不陌生。而对于glib,这个gtk+下的无名英雄,其功能强大却鲜为人知。今天,在这里简要介绍一下,如果你是开发人员,看完本文,相信你会爱上它的。<br /> <br />glib不是gllibc,尽管两者都是基于(L)GPL的开源软件。但这一字之差却误之千里,glibc是GNU实现的一套标准C的库函数,而glib是gtk+的一套函数库。在l

2010-11-06 11:12:00 1206

转载 GTK+主循环(main loop)的工作原理

<br />我们知道GUI应用程序都是事件驱动的。这些事件大部分都来自于用户,比如键盘事件、鼠标事件或笔点事件。还有一些事件来自于系统内部,比如定时事件、socket事件和其它文件事件等等。在没有任何事件的情况下,应用程序处于睡眠状态。<br /> <br />因为这种事件驱动机制,GUI应用程序都毫无例外的需要一个主循环(main loop)。主循环(main loop)控制应用程序什么时候进入睡眠状态,什么时候被唤醒。主循环实现得好,应用程序才能工作正常又省电。<br /> <br />Win32 GU

2010-11-06 10:45:00 1276

转载 GTK安装步骤

目录0. 前言1. 二进制安装和源码安装2. GTK+ 依赖软件包3. 查看软件的版本号4. 安装规划4.1 系统上未安装 GTK+4.2 系统上已安装 GTK+5. 软件下载6. 库的安装6.1 安装顺序6.2 安装过程6.2.1 解包6.2.2 配置6.2.3 构建6.2.4 安装6.2.5 设置6.2.5.1 搜索路径6.2.5.2 编译和连接界面6.2.5.3 pkg-config6.2.5.4 GTK+ 及其依赖库的设

2010-11-05 23:53:00 2160

转载 LINUX库

Linux 共享库<br /><br />  Linux 系统上有两类根本不同的 Linux 可执行程序。第一类是静态链接的可执行程序。静态可执行程序包含执行所需的所有函数 —换句话说,它们是“完整的”。因为这一原因,静态可执行程序不依赖任何外部库就可以运行。<br /><br />  第二类是动态链接的可执行程序。<br />静态可执行程序与动态可执行程序比较<br /><br />  我们可以用 ldd 命令来确定某一特定可执行程序是否为静态链接的:<br />  # ldd /

2010-11-05 23:13:00 867

转载 GTK安装步骤

sudo apt-get install build-essential       #这将安装gcc/g++/gdb/make 等基本编程工具 sudo apt-get install gnome-core-devel #这将安装 libgtk2.0-dev libglib2.0-dev 等开发相关的库文件 sudo apt-get install pkg-config            #用于在编译GTK程序时自动找出头文件及库文件位置 sudo apt-get

2010-11-05 23:07:00 1437

转载 讲解如何利用NT Native API获取NT系统的CPU使用率(支持多核)

[前言]本文的目的不是贴代码,而是希望通过较浅显的文字,讲明白求解CPU使用率的方法.所以急功近利的人并不适合阅读本文.[概述]其实,获取Windows系统的CPU使用率已经是老问题了.大概是有以下几种方法:1.查询注册表(HKEY_DYN_DATA),这个适用于Win9x,太老的东西,觉得现在基本没有什么必要再去了解它.2.利用性能计数器(PDH)接口查询,支持NT系统,功能全面,用起来也方便,不过不是本文讨论的重点,只提一下.3.利用Windows NT Native API(以下简称Native AP

2010-11-05 18:45:00 1107

转载 linux下的lib文件知识

<br />随着Linux性能的不断提升和逐渐普及,会有越来越多的人在Linux下从事应用软件的开发。这里笔者根据从事Linux应用程序开发的经验,介绍Linux编程库使用的一些基础知识。零点网络Pgt$lvyleQ<br />零点网络/DJD` S-J3F9} B<br />库的定义和种类<br />#@X D3BsfE0零点网络 w0I+@o2@m,[<br />所谓编程库就是指始终可以被多个Linux软件项目重复使用的代码集。库是Linux软件开发所追求的目标,C语言

2010-11-04 23:50:00 1776

转载 Linux操作系统下的GTK图形界面编程方法

<br />GTK(GIMP Toolkit)是一个图形用户编程的接口。它完全免费,所以用来开发自由软件或商业软件都不需要花费什么。现在很多Linux集成系统都已经将 GTK1.2版本打包进去了。包括RedHat Linux 6.0以上版本,还有中文化的Turbo Linux等等。它也越来越被普遍的应用于UNIX系统编程。<br />还有一个组件叫Glib,它包含了一些标准应用的新扩展用来提高GTK的兼容性。用于Linux系统的某些函数可能不适合标准的UNIX系统,例如g_strerror()函数等等。某些

2010-11-03 19:56:00 1336

实战无线通信应知应会 完整版

实战无线通信应知应会 完整版

2019-04-16

百面机器学习 hulu

人工智能 面试 百面机器学习 hulu

2018-12-09

智能革命 李彦宏

智能革命 李彦宏

2018-12-09

分布式服务框架

分布式 服务框架 开发 技术 经典书 分布式 服务框架 开发 技术 经典书

2018-01-18

单元测试之道Java版

单元测试之道Java版

2017-03-08

《Site.Reliability.Engineering 》英文原版

《Site.Reliability.Engineering 》英文原版,中文名《SRE:Google运维解密》

2017-03-08

Adw launcher的源码

Adw launcher是非常受欢迎的android项目,并且它是开源的,这对想学习launcher开发的同学是不错的资源

2011-11-15

STL源文件剖析-台湾侯老师精典之作

STL入门提高必读之作,侯老师经典之作.为DOC文件类型

2011-03-21

LINUX 经典GTK图形编程

非常经典的教材,示例也很不错,希望对大家有帮助。

2010-11-03

LINUX基本命令集锦

linux基本命令的详细解释及使用,比较实用

2010-10-14

自己动手写一个操作系统

利用开源软件,阐述如何自己动手写一个操作系统,包括计算机启动,保护模式设计等等

2009-05-19

空空如也

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

TA关注的人

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