自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (2)
  • 收藏
  • 关注

原创 ubuntu linux 启动过程

ubuntu linux 启动过程从第一次接触linux,陆陆续续在PC机上安装各种版本的linux已经不知道多少次。每次都是安装后,装下常用软件,玩几天就卸载了,图个新鲜。时间过的真快,从上大学到现在十多年了,没有好好去研究下linux的启动过程。现在由于工作需要接触的多了,今天有点时间来好好看一把。我刚在我的移动硬盘上安装了ubuntu 18.04 LTS版本(制作U盘安装盘安装,很方便!...

2018-05-02 15:56:23 1363 1

原创 从C代码到elf文件(1)

从C代码到elf文件(2)–obj文件工作加班太多实在没时间写,今天终于有一点空闲,继续吧。我们从《深入理解计算机系统》的第七章—链接 中的例子入手。进而对照编译生成的obj文件和C代码分析obj的关键点。C程序例子一共两个简单的C源文件,分别是swap.c和main.c。swap.c:extern int buf[];int *bufp0 = &buf[0];i

2017-10-21 22:01:37 1617

原创 一眼看懂二进制补码的计算方法

二进制补码的计算方法二进制补码的计算方法最近,我仔细研究了下linux下,C程序的编译和链接过程。反汇编和查看二进制时,难免看到大量整数的二进制表示,特别是负数,例如0xfffffffc,这个是多少?记得有个转换方法,首先这个数是一个负数,它的绝对值是 ~(0xfffffffc)+ 1 = 0x00000003 + 1 = 4, 所以值为-4。那么这个取反加一的方法是怎么得来的呢?我想不起来了。就自

2017-10-16 23:08:28 5184

原创 深入浅出GNU X86-64 汇编

深入浅出GNU X86-64 汇编本文是我翻译自 Introduction to X86-64 Assembly for Compiler Writers. 因为之前在学校学的X86汇编都是32位的,而现在的PC机处理器基本都是64位的,我的Linux机器也是64位的,反汇编C语言时,生成的是64位汇编,所以翻译一下这篇文章。这篇文章深入浅出的描述了C和X86-64汇编的转换关系。目录深入浅出GNU

2017-10-08 11:11:15 18416 3

原创 vim @ ubuntu环境配置

记录vim @ ubuntu环境配置工作中会零零星星用到vim, 主要是处理linux上的一些编辑问题,但很少直接在工作中用vim写程序。当然,有些公司是用vim写程序的,主要是那些经常使用脚本(比如python和php)的公司。不使用键盘真的可以极大的提高编辑效率和避免思路被打断,所以我一直试图使用vim来编写程序。这几天有空,在移动硬盘上安装了ubuntu, 尝试来配置一个好用的vim环境,以后

2017-10-07 21:57:49 311

原创 ctags vim csrope

1.vim1.1 配置文件vim.rc查看配置信息 vi --versionCompiled by [email protected] version without GUI. Features included (+) or not (-):-arabic +autocmd ...system vimrc file: "$VIM/vimrc" --系统配置user vimr

2016-06-13 15:45:13 354

原创 docker

debian 8 jessie docker

2016-02-22 19:00:05 380 1

原创 Spring-JDBC 操作SQL数据库

Spring-JDBC 操作SQL数据库1.关于org.springframework.jdbcJava操作关系数据库,例如MySQL,可以使用数据库对应的JDBC驱动程序(如:mysql-connector-java)提供的的方法。但由于JDBC驱动提供的API使用起来每次都要编写连接、操作、关闭数据库和异常处理的模板(Template)代码,代码显得非常冗长重复,不利于集中精力处理实际问题。or

2016-02-15 15:32:23 3185 1

原创 redis 安装配置和jedis操作

redis1.安装测试下载安装下载tar.gz文件http://redis.io/download,切换目录cp *.tar.gz /usr/local,解压sudo tar -zxf *.tar.gz, 进入解压后的目录,编译安装sudo make install,测试sudo make test。配置启动找到配置文件vi redis.conf进行修改. 注意指定日志文件路径:logfile /

2016-02-14 18:38:56 333

原创 github key

1.查看是否已经有了ssh密钥:cat ~/.ssh/githubcd ~/.ssh 查看密钥文件2.没有密钥文件,则生成ssh-keygen -t rsa -C "[email protected]" -f ~/.ssh/github3.查看密钥文件ls ~/.ssh/4.查看公钥cat ~/.ssh/github 把输出的值放到github: https://github.

2015-11-20 17:03:46 411

原创 GDB 摘抄

本文主要是零散记录GDB使用中的小问题,以备以后使用。

2015-07-07 16:36:05 366

原创 linux 下统计程序性能,并绘制成图表

最近需要在linux统计程序运行性能,一般是使用top命令查看程序cpu,mem等信息的。但是老盯着看也不方便,准备把数据写到文件,再进行统计,并绘制成图表,便于分析:研究了一下,top命令支持几个选项:-b 后台模式,支持写到文件。不加不行。-n 统计次数。-d 统计周期。秒。-p 要统计的pid.命令行如下,统计10分钟的数据,间隔0.5s:debian:/# ps

2015-07-06 17:17:52 2387

原创 GDB在调试运行过程中会由于收到信号而停止

GDB在调试运行过程中会由于收到信号而停止。先输入命令info handle 或 info signals(gdb) info signalsSignal Stop Print Pass to program DescriptionSIGABRT Yes Yes Yes AbortedSIGEMT

2015-07-06 14:03:25 2152

原创 gcc gdb调试 段错误 停在了 libc.so 如何查看函数栈中 参数值

(gdb) p pVal$1 = (GANA_VAL *) 0x0GDB调试停在了glibc中,如何查看如何查看函数栈中,参数值?bt命令:Program received signal SIGSEGV, Segmentation fault.[Switching to Thread 0x920f6b70 (LWP 5472)]0xb5045559 in ?? ()

2015-07-02 16:14:07 6766

原创 硬盘安装debian 8.1

之前我硬盘安装过Fedora,Ubuntu都是使用的Grub4Dos,很容易安装。但是这些系统运行速度都不太快,这几天查了一下Debian据说不错,准备安装一下。如法炮制了之后,安装时总是在“探测并挂载光盘镜像”这一步卡住。后来各种百度,发现需要从http://ftp.cn.debian.org/debian/dists/Debian8.1/main/installer-i386/curren

2015-06-28 20:29:19 3391

转载 Makefile基础

Makefile 相关

2015-06-23 22:10:54 291

原创 关于计算机编程的一点理解(7)

11.一些常用的计算机语言    c\c++编译后直接由机器执行,是静态语言。还有一种语言,不直接运行在机器上,而是由虚拟机(一种程序)来解释执行,是动态语言,典型的就有JavaScript。静态语言一般不保留类型信息,运行快。动态语言,保留类型信息,自动回收内存,运行较慢。    a.编写网站会用到的一些语言    现在是网络时代,最常见的网络应用就是网站。一个网站,需要

2013-01-12 23:38:34 301

原创 关于计算机编程的一点理解(6)

10.C++的一些其他东西   C++恐怕是最复杂的高级计算机语言了,估计精通的人不多。我也只是了解一二,也不晓得以后用不用的着,都写在这里备忘。   a.函数重载(Overload)和模板(Template)   我们知道C中的函数,可以传入一定数量的固定类型的参数,但是函数名是不允许相同的。C++的函数可以同名,叫做重载,这样可以写几个同名函数,接收不同参数

2013-01-12 23:37:41 271

原创 关于计算机编程的一点理解(5)

9.C/C++指针操作a.   C++中的东西是有个名(name)的:       定义有以下几种:       变量: type name; 比如:int i;       数组: type name[N1][N2]…;比如:char chs[4][5];       函数: type name(type1 v1,type2 v2…);

2013-01-12 23:36:29 234

原创 关于计算机编程的一点理解(4)

8.面向对象的中虚函数记得刚看到这个词大概是大一下学期。觉得挺玄乎的、挺高级的。当然也激发了我的兴趣。记得有一句话:一切都是对象(Everything is object),大有放之四海而皆准的味道。其实我觉得,面向对象的关键就是封装,只暴露最必要的部分,而把所有不必要的部分隐藏起来。毕竟,什么东西都从头做起是得不偿失的,所以,我们希望把以前的东西做得能够反复使用,就是重用。封

2013-01-12 23:35:00 259

原创 关于计算机编程的一点理解(3)

7.C到C++以及this指针   在C中,我们可以定义一个结构然后用相关的函数来操作这个结构,就拿C中的标准文件IO函数来说,我们可以这样写:FILE *fp;char ch;fp=fopen ("C:\\a.txt","r");ch=fgetc(fp); fclose(fp);这段代码读取C:\a.txt文件,

2013-01-12 23:33:26 219

原创 关于计算机编程的一点理解(2)

6.C变长参数函数本来准备讨论下对C++的认识的,看了一下昨天写的东西,发现前一篇讲到了函数的参数传递问题,突然想到了C的一个特殊的函数——变长参数函数。其实这也不是个新东西,估计学过C的都用过,只不过没实现过这种函数而已。最常见的就是printf函数:在stdio.h头文件中它是这样定义的:printf(const char *format, ...);

2013-01-12 23:31:59 228

原创 关于计算机编程的一点理解(1)

看了很多计算机的书,从来没有自己写过东西,其实,写写东西还是不错的。下面谈谈对计算机语言的认识,以c\c++为主,略谈其它。1.计算机是怎么执行程序的  最简单的计算机应该由一个CPU和RAM组成,但是考虑到RAM在掉电的情况下无法保存数据,还需要一个在掉电情况下能够保存数据的存储器(为了方便就叫永久存储器,用英文就叫Permanent Storage,以下就叫PS,顺便说一下这是

2013-01-12 23:28:36 611

csSwing AS3 flash 窗口库

用AS3可以在fl,fx下创建窗口应用程序,包含N多控件,超级牛逼~~~~~·顶!!比如你可以轻松设计像Windows桌面一样的程序,不过这些程序都可以在flash插件中运行,是理想的网络富媒体应用程序设计库~~~~~

2009-10-24

The C++ Programming Language Special 3rd Edition

c++创始人讲解c++程序设计,很好的一本书,强烈推荐!!

2009-03-13

空空如也

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

TA关注的人

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