- 博客(23)
- 资源 (2)
- 收藏
- 关注
原创 ubuntu linux 启动过程
ubuntu linux 启动过程从第一次接触linux,陆陆续续在PC机上安装各种版本的linux已经不知道多少次。每次都是安装后,装下常用软件,玩几天就卸载了,图个新鲜。时间过的真快,从上大学到现在十多年了,没有好好去研究下linux的启动过程。现在由于工作需要接触的多了,今天有点时间来好好看一把。我刚在我的移动硬盘上安装了ubuntu 18.04 LTS版本(制作U盘安装盘安装,很方便!...
2018-05-02 15:56:23
1497
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
1765
原创 一眼看懂二进制补码的计算方法
二进制补码的计算方法二进制补码的计算方法最近,我仔细研究了下linux下,C程序的编译和链接过程。反汇编和查看二进制时,难免看到大量整数的二进制表示,特别是负数,例如0xfffffffc,这个是多少?记得有个转换方法,首先这个数是一个负数,它的绝对值是 ~(0xfffffffc)+ 1 = 0x00000003 + 1 = 4, 所以值为-4。那么这个取反加一的方法是怎么得来的呢?我想不起来了。就自
2017-10-16 23:08:28
5445
原创 深入浅出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
19515
3
原创 vim @ ubuntu环境配置
记录vim @ ubuntu环境配置工作中会零零星星用到vim, 主要是处理linux上的一些编辑问题,但很少直接在工作中用vim写程序。当然,有些公司是用vim写程序的,主要是那些经常使用脚本(比如python和php)的公司。不使用键盘真的可以极大的提高编辑效率和避免思路被打断,所以我一直试图使用vim来编写程序。这几天有空,在移动硬盘上安装了ubuntu, 尝试来配置一个好用的vim环境,以后
2017-10-07 21:57:49
362
原创 ctags vim csrope
1.vim1.1 配置文件vim.rc查看配置信息 vi --versionCompiled by root@apple.comNormal version without GUI. Features included (+) or not (-):-arabic +autocmd ...system vimrc file: "$VIM/vimrc" --系统配置user vimr
2016-06-13 15:45:13
412
原创 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
3311
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
363
原创 github key
1.查看是否已经有了ssh密钥:cat ~/.ssh/githubcd ~/.ssh 查看密钥文件2.没有密钥文件,则生成ssh-keygen -t rsa -C "xxx@yyy.com" -f ~/.ssh/github3.查看密钥文件ls ~/.ssh/4.查看公钥cat ~/.ssh/github 把输出的值放到github: https://github.
2015-11-20 17:03:46
464
原创 linux 下统计程序性能,并绘制成图表
最近需要在linux统计程序运行性能,一般是使用top命令查看程序cpu,mem等信息的。但是老盯着看也不方便,准备把数据写到文件,再进行统计,并绘制成图表,便于分析:研究了一下,top命令支持几个选项:-b 后台模式,支持写到文件。不加不行。-n 统计次数。-d 统计周期。秒。-p 要统计的pid.命令行如下,统计10分钟的数据,间隔0.5s:debian:/# ps
2015-07-06 17:17:52
2785
原创 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
2392
原创 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
7692
原创 硬盘安装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
3513
原创 关于计算机编程的一点理解(7)
11.一些常用的计算机语言 c\c++编译后直接由机器执行,是静态语言。还有一种语言,不直接运行在机器上,而是由虚拟机(一种程序)来解释执行,是动态语言,典型的就有JavaScript。静态语言一般不保留类型信息,运行快。动态语言,保留类型信息,自动回收内存,运行较慢。 a.编写网站会用到的一些语言 现在是网络时代,最常见的网络应用就是网站。一个网站,需要
2013-01-12 23:38:34
342
原创 关于计算机编程的一点理解(6)
10.C++的一些其他东西 C++恐怕是最复杂的高级计算机语言了,估计精通的人不多。我也只是了解一二,也不晓得以后用不用的着,都写在这里备忘。 a.函数重载(Overload)和模板(Template) 我们知道C中的函数,可以传入一定数量的固定类型的参数,但是函数名是不允许相同的。C++的函数可以同名,叫做重载,这样可以写几个同名函数,接收不同参数
2013-01-12 23:37:41
301
原创 关于计算机编程的一点理解(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
286
原创 关于计算机编程的一点理解(4)
8.面向对象的中虚函数记得刚看到这个词大概是大一下学期。觉得挺玄乎的、挺高级的。当然也激发了我的兴趣。记得有一句话:一切都是对象(Everything is object),大有放之四海而皆准的味道。其实我觉得,面向对象的关键就是封装,只暴露最必要的部分,而把所有不必要的部分隐藏起来。毕竟,什么东西都从头做起是得不偿失的,所以,我们希望把以前的东西做得能够反复使用,就是重用。封
2013-01-12 23:35:00
291
原创 关于计算机编程的一点理解(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
252
原创 关于计算机编程的一点理解(2)
6.C变长参数函数本来准备讨论下对C++的认识的,看了一下昨天写的东西,发现前一篇讲到了函数的参数传递问题,突然想到了C的一个特殊的函数——变长参数函数。其实这也不是个新东西,估计学过C的都用过,只不过没实现过这种函数而已。最常见的就是printf函数:在stdio.h头文件中它是这样定义的:printf(const char *format, ...);
2013-01-12 23:31:59
282
原创 关于计算机编程的一点理解(1)
看了很多计算机的书,从来没有自己写过东西,其实,写写东西还是不错的。下面谈谈对计算机语言的认识,以c\c++为主,略谈其它。1.计算机是怎么执行程序的 最简单的计算机应该由一个CPU和RAM组成,但是考虑到RAM在掉电的情况下无法保存数据,还需要一个在掉电情况下能够保存数据的存储器(为了方便就叫永久存储器,用英文就叫Permanent Storage,以下就叫PS,顺便说一下这是
2013-01-12 23:28:36
655
csSwing AS3 flash 窗口库
2009-10-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人