- 博客(80)
- 收藏
- 关注

原创 关于android系统对AndroidManifest文件的解析机制
最近在学习android的过程中一直在思考一个问题,我们都知道,在android的AndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和启动位置。一个app可以通过intent开启另一个app的Activity组件,一个系统
2016-02-14 00:08:25
1856

原创 将LFS系统通过grub装到优盘上启动
最近在搞LFS,就是通过自己动手,亲自编译源代码的方式,建立自己的linux发行版。通过这个过程可以详细的深入了解linux内部的工作方式,对理解操作系统的机制有很大的帮助。 做这个项目,光是建立合适的宿主系统环境就是花了一个星期,因为LFS也不是从无到有直接凭空构造出来的,需要一个宿主操作系统。搞了一个星期,用过ubuntu做个宿主系统,后来换了kali linux,还是跌在了第一步上
2015-02-07 20:18:44
1794

原创 截获或替换linux系统调用
直接上代码吧: hello.c:#include /*Needed by all modules*/#include /*Needed for KERN_* */#include /* Needed for the macros */#include //包含系统调用的相关定义和声明//若要打印相关目录,则需要包含以下的头文件#include #in
2014-11-19 20:51:28
2219
1

转载 Linux 进程调度时机
Linux调度时机主要 有:1、进程状态转换的时刻:进程终止、进程睡眠 ;2、当前进程的时间 片用完时(current->counter=0);3、设备驱动程序4、进程从中断、异常及系统调用返回到用户态时;时机1,进程要调用sleep()或exit()等函数进行状态转换,这些函数会主动调用调度程序进行进程调度;时机2,由于进程的时间片是由时钟
2014-09-16 20:18:27
959

原创 中断不可睡眠的一些理解
LINUX中到是有中断还没有完全返回就调用schedule()而睡眠过去的例子。可以猜是哪里。我觉得,中断和异常不同,中断是异步的,异常和系统调用是同步的。异常比如缺页异常发生时,当前任务在异常处理完成之前不能继续运行,该异常处理过程和当前任务天然相联系,运行在当前进程的上下文中。中断的发生很可能是与当前任务无关的,如果把中断处理实现为强行与当前
2014-08-03 13:25:26
4303

原创 Linux0.11 由进程睡眠函数sleep_on()中的堆栈变量tmp引发的思考 关于进程内核堆栈
sleep_on()[cpp] view plaincopy/****************************************************************************/ /* 功能:当前进程进入不可中断睡眠态,挂起在等待队列上 */
2014-07-22 14:29:48
1292

转载 Linux0.11 进程0
Linux中1号进程是由0号进程来创建的,因此必须要知道的是如何创建0号进程,由于在创建进程时,程序一直运行在内核态,而进程运行在用户态,因此创建0号进程涉及到特权级的变化,即从特权级0变到特权级3,Linux是通过模拟中断返回来实现特权级的变化以及创建0号进程,通过将0号进程的代码段选择子以及程序计数器EIP直接压入内核态堆栈,然后利用iret汇编指令中断返回跳转到0号进程运行。
2014-07-21 21:59:14
773

转载 Linux内核堆栈使用方法 进程0和进程1
今天和一个朋友聊天,朋友说在编写驱动时遇到一个怪异的问题。他在内核中使用了一个深度函数调用(多层嵌套的函数),但没有实现预定的效果,但如果把嵌套去掉,函数就没问题了。当时我也没有多想,就回答可能是编译器的问题。回来后头脑中又浮现出这个问题,突然想到内核栈,觉得这个问题的原因应该出在内核栈上。下面简要介绍下内核的知识。用户空间运行的程序可以从用户空间的栈上分配大量的空间来存放变量或数组、大的
2014-07-06 00:08:08
3341

原创 从操作系统内核解释电脑死机原理
关于电脑死机的原因或者说原理,即电脑为什么会死机,电脑死机时计算机底层都发生了什么。一直不太明白,在网上也查过相关的资料,但是都没有找到自己想要的。网上谈的都是外部导致电脑死机的原因,比如内存条坏了、散热不良、硬盘故障、应用软件不兼容,但我觉得这些都太抽象,没有分析透彻。没有从根本上解释死机、蓝屏的原因。 最近在学习Linux内核,自从大一的时候读了一本《计算机的心智---操作系统之哲
2014-03-22 22:39:13
3179
原创 ios系统removeCachedResponseForRequest无效的替代方案
相信你能找到我这篇博客,肯定是对URLCache缓存有了深刻的理解,并且被ios系统api removeCachedResponseForRequest使用起来并不能删除指定的缓存所困惑。 其实也可以自己想办法来模拟此函数对应的功能。一种办法是使用不带缓存的请求去请求对应的资源,这样可以将本地的缓存删除,但是这样的话会多一次网络请求,并且容易受网络环境的影响。第二种方法就是利...
2018-05-16 18:37:40
807
原创 golang gorilla/mux设置静态目录
发现网上都是类似下面的代码```s := "/Users/golang/golang";http.Handle("/static/",http.StripPrefix("/static/",http.FileServer(http.Dir(s))))```经过mux设置就是如下代码```router := mux.NewRouter().StrictSlash(true)s := "/Us...
2018-03-20 15:35:41
2427
转载 将数据库文件导入mysql并输出为txt文件
大致上MySQL数据库备份可以采用两种方式:一种就是直接导出sql语句或者易于导入的其他格式的sql存储文件,使用sql语句或者一些可视化客户端导出,这种方法非常简单,无需赘述;另一种方法就是拷贝出数据库文件,再将数据库文件转换成sql文件,这篇文章就介绍一下这种方法。 ①查找数据库文件存放位置,MySql文件的后缀有三种形式*.MYD、*.MYI、*.frm;find / -n
2016-06-24 15:08:03
1633
转载 把vim打造成C++ IDE
目录(?)[-]准备工作第一个插件pathogenauto-pairsNERDTreeMiniBufExplorerctagstaglistomnicppcompletectagstaglistOmniCppCompleteSuperTab最终的配置文件总结对于windows上做C++开发的用户来说,vs为他们做了大量的工作,语法高亮、自动缩进、智能提示
2016-05-01 20:56:31
685
原创 Linux 安装远程桌面并设置添加分辨率
本来想用本地的kali linux来远程登陆centos的服务器,在远程服务器安装VM,再VM里安装Windows虚拟机,用作工作娱乐需要,尼玛八颗八核至强CPU,128G内存,2T硬盘,资源不能闲置不是? 一开始安装在服务器安装的XRDP,RDP是微软的一套remote desktop protocol协议,在本地安装rdesktop,再使用rdesktop -f -u u
2016-04-27 17:34:43
10881
2
转载 kail linux 安装QQ
腾讯QQ下载地址:http://www.ubuntukylin.com/appli ... p?lang=cn&id=23下载后解压得到wine-qqintl文件夹,里面有三个deb包:fonts-wqy-microhei_0.2.0-beta-2_all.deb、ttf-wqy-microhei_0.2.0-beta-2_all.deb、wine-qqintl_0
2016-04-10 15:01:59
2883
原创 Android对xml文件的解析
今天阅读android sdk官方文档时,看到这么一段话: 感觉深受启发:1.android的图形界面内部逻辑结构是树形结构,这个从xml文件的结构可以直观的看出来。如果我们要使用java代码来构建一个界面,实际上我们是在构建一棵树,明白了这一点,以后自己使用代码构建视图,逻辑上就很清楚了。2.文档中提到使用xml来构建(描述)布局是最简单和最高效的,在这里有个问题,最简
2016-02-15 13:12:34
657
原创 kali linux安装搜狗输入法
昨天安装了kali linux2.0,感觉输入法没有以前好了。于是查资料安装搜狗输入法,还是搜狗输入法好使。 有几篇文章倒是谈到如何在kali上安装搜狗了,但是一方面是文章太老了,二是还得自己下载好多包,还有依赖关系,尼玛这些不都应该是包管理器自己该做的吗?我大概看了看文章,感觉那些包,一是原网站上已经没有了,因为文章里的都是老版本了,二也是太复杂了,没有必要。
2016-01-02 01:08:03
2526
原创 教你如何用Kali Linux制作windows 10安装优盘
最近win10发布了,看样子挺不错。虽然我一直用的是Linux,但是还是想体验一把win10.主要是尼玛我想看百度云里存放的教学视频,但是里面的视频还需要特殊的播放器,也是不得己,才开始想安装windows. 以前都是在Windows下利用工具安装windows的,但是这一次,我只有Linux。于是我下载了win10的iso镜像。但是,接下来该怎么安装呢?当然,我首先想到的是利用
2015-08-03 23:23:03
4560
原创 kali linux 安装Pidgin QQ
首先,需要kali开启PPA源。 PPA(Personal Package Archives:个人软件包档案)是Ubuntu Launchpad网络提供的一项服务,允许个人用户上传软件源代码,通过launchpad进行编译并发布为二进制软件包,作为apt/synaptic(新立得)源供其他用户下载和更新。在Launchpad网站上的每一个用户和团队都可以拥有一个或多个PPA。
2015-07-12 23:16:40
1835
原创 Linux 调节并自动保存屏幕亮度,重启有效
用过几个Linux的发行版,发现在笔记本上每次调节亮度后,不能固定下来,重新开机后就又恢复最大亮度了。 之前一直用的是网上流行的方法,即往etc/rc.local文件写入命令,使其每次重新开机都会将亮度值写入特定的文件以控制屏幕亮度。虽然能满足大多数情况下的需要,因为人们一旦找到适合自己的亮度后,一般也不会再变了。但是这种方法每次开机都是将事先固定好了的亮度值写入设备文件的。
2015-05-25 23:01:47
3148
转载 硬盘寻址能力的变换
1, 8G限制-硬盘寻址的限制硬盘最初使用的寻址方法是柱面/磁头/扇区CHS(Cylinder/Head/Sector),也称为3D模式,是硬盘最早采用的寻址模式。通过分别指定柱面、磁头、扇区来确定某个数据块的确切位置,它是在硬盘容量较小的前提下产生的。硬盘的C/H/S 3D参数既可以计算出硬盘的容量,也可以确定数据所在的具体位置。这是因为扇区的三维物理地址与硬盘上的物理扇区一一对应,即三维物
2015-03-07 22:36:37
1456
原创 linux系统备份命令
tar cvpzf backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys --exclude=/media /用时23分钟
2015-02-16 19:14:27
758
原创 kali linux 解决风扇猛转
之前玩ubuntu的时候,就感觉风扇猛转个不停,之前是通过安装nvidia的闭源驱动,然后再安装一个管理双显卡的工具解决的,确实风扇及立马安静了下来。 http://www.linuxidc.com/Linux/2014-10/108483.htm,这是我参考的教程解决ubuntu风扇猛转的问题的网址。 现在我又玩kali linux,感觉风扇还是猛转,因为有先前的经验,所以我
2015-02-14 23:47:23
5452
2
原创 LFS编译GCC GNU_USER_TARGET_OS_CPP_BUILTINS not declared in this scope
安装gcc-4.4(or 4.3), 重新链接,问题解决。 apt-get install gcc-4.4 g++-4.4 进入/usr/bin cd /usr/bin 建个软连接 ln -s gcc-4.3 gcc ln -s g++-4.3 g++
2015-02-04 22:30:40
1206
原创 安装ubuntu14.04后做的一些事情
ubuntu又折腾坏了,于是有重新装系统了。装完之后,美化美化:1.本来嫌每次都sudo麻烦,于是想将我的帐号设置为sudo不用输入密码,但是编辑sudoer文件的时候,格式错了,于是悲剧了,因为sudoer文件有错误,导致无法解析,所以sudo不能使用了,又因为是刚装完系统,还没设置root密码,所以也不能用root修正sudoer文件了(修改系统配置需要root权限)。所以我最后重
2015-02-01 15:48:16
935
转载 vnc不显示ubuntu桌面环境的解决方案之一
安装另一个Desktop Envrioment : Xfce4 lisp@lisp-ubuntu13:~$ sudo apt-get install xfce4 修改配置文件~/.vnc/xstartup如下[plain] #!/bin/sh
2015-01-21 00:55:35
5148
原创 Ubuntu14.10 unity-tweak-tool 不能正常打开的解决方法
新的系统,风格都变了,折腾了一晚上,想安装个苹果主题,可是unity-tweak-tool 这个东西就是死活打不开。这么晚了,不想多说了,直接给解决方法吧: udo apt-get install unity-webapps-common udo apt-get install unity-webapps-service sudo ap
2015-01-05 03:41:45
7047
原创 Ubuntu删除Compiz之后 恢复方法
因为ubuntu14.10不能播放avi的问题纠结了很久,最终使用转码软件解决的。但是还是不甘心啊,总想解决这个问题或者知道问题的原因。 偶然看到了系统中的compiz软件,想到在网上看到的有人说是因为系统驱动和compiz产生了冲突所致,也不知道compiz是个什么东西,就删除了,想看看是不是就可以播放avi了,结果悲催了,系统窗口不能拖动了,三个经典的按钮也没了==最大最小化
2015-01-05 02:41:35
2777
1
原创 Ubuntu 14.10 播放avi视频闪屏的简单解决方案
昨天将ubuntu升级到了14.10版本,没有得到想象中的视觉效果。但是,后来却发现不能播放avi视频了,尝试了各种播放器,都无解,总是闪屏,而播放flv格式的视频就没问题,郁闷。搞到了早上两点。 可能是ubuntu系统的原因吧。早上起来继续搞。我换了个思路,不再寻找能播放avi视频格式的播放器,而是将avi转码为flv格式的软件。尝试了许久,最终用WinFF这个工具解决了。安装命令如下
2015-01-04 09:33:39
2952
转载 ubuntu linux GAIM QQ
sudo add-apt-repository ppa:lainme/pidgin-lwqqsudo apt-get updatesudo apt-get install pidgin-lwqqsudo apt-get install pidgin 搞完这些东西,我们按 super 键,在 Applications 中搜索 pid,就会看见这个图标:打开这个应用:最开始
2014-12-15 17:22:57
1094
1
原创 Linux gcc 利用反汇编来研究C语言函数堆栈的分配方式
越来越感觉学习C和汇编才是最能接近计算机本质的途径。所以,今天开始研究汇编了,先从gcc反汇编开始。 首先是下面的C代码:#include int sum(int a,int b){ char s=1; return a+b;}int main(void){ int a,b; a = 1; b = 2;
2014-12-11 21:56:27
6554
转载 linux sys_call_table 初始化
Linux Kernel代码艺术——数组初始化前几天看内核中系统调用代码,在系统调用向量表初始化中,有下面这段代码写的让我有点摸不着头脑:const sys_call_ptr_t sys_call_table[__NR_syscall_max+1] = { /* * Smells like a compiler bug -- it doesn't work
2014-11-20 22:09:41
1917
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人