- 博客(50)
- 资源 (26)
- 收藏
- 关注
原创 notes: Hacking Blind
1. TitleHacking BlindAndrea Bittau, Adam Belay, Ali Mashtizadeh, David Mazières, Dan BonehStanford University2. SkeletonIt illustrates that it is possible to launch stack buffer overflow exploits...
2019-04-07 10:58:00
279
原创 opengl开发的一些网站
OpenGL开发学习网站列表记录:1. http://www.lazyfoo.net/tutorials/OpenGL/index.php2. http://ogldev.atspace.co.uk/3. http://www.gamedev.net/page/resources/_/technical/opengl/opengl-33-tutorials-r37544. http
2016-04-08 12:38:30
602
转载 linux c检测USB热插拔(netlink)
#include #include #include #include #include #include #define UEVENT_BUFFER_SIZE 2048 int main(void) { struct sockaddr_nl client; struct timeval tv; int CppL
2016-02-19 09:43:17
5314
2
转载 linux c检测网线热插拔(netlink)
#include #include #include #include #include #include #include #include #include #include #include #define BUFLEN 20480 int main(int argc, char *argv[]) {
2016-02-19 09:37:08
3359
原创 彩票调度算法权重分配
彩票调度算法,每个待运行的进程分配一张彩票,每次需要调度的时候,随机抽取一张已分配的彩票,中奖的进程获得CPU。如果是优先级高的进程,应该保证被抽取的几率更大,所以需要提高高优先级进程的中奖率:
2016-02-17 10:59:15
3299
原创 Xml树状节点的遍历
一、问题之前在生成PCI设备的树形结构的时候,采用读取PCI设备的目录结构来实现。将设备树输出到xml文件的时候,很“自然”的选择了递归的方式。后面当想要从输出的xml文件里获取PCI设备树形信息的时候,又再一次很“自然”地选择了递归读取xml文件。这种“自然”的选择,一定程度上影响了运行的效率。最后不得不将递归遍历xml节点的方式,改成迭代来处理。二、递归读写xml
2016-02-16 17:12:13
1482
原创 Linux C获取PCI设备名和厂商名
一、接口char *pci_lookup_name(struct pci_access *a, char *buf, intsize, int flags, ...) PCI_ABI;(/usr/include/pci/pci.h) 二、描述在/sys/bus/pci/devices/目录下面可以读取PCI设备的Vendor
2016-02-03 16:27:08
3303
原创 linux Kernel module简单模拟ps指令输出
一、方法/* sched.h */Struct task_struct { … list_headchildren; list_headsibling; …}; 1)/* traver every process */struct task_struct *task;for_each_process( task ){ /* handle
2016-01-19 16:00:30
548
原创 linux kernel module打印指定进程栈信息
一、 方法使用接口sched.h:extern void show_stack(structtask_struct *task, unsigned long *sp);二、 问题1)不能直接使用show_stack()2)应用的时候,无法插入模块,报Unknown symbol in module三、
2016-01-15 17:29:03
2252
1
原创 OS之子进程简单模拟shell解释环境(再次)
(1)当输入一条指令后,将指令拆分成独立的符号;(2)如果指令的最后一个符号是’&’,则(4)子进程执行指令的时候,父进程将不会wait()子进程执行完毕,继续接收下一条指令进行解释;(3)History指令由主程序使用循环队列进行维护,最多只记录10条历史指令;'!!'执行最近执行过的指令,'! + 数字'执行对应的历史指令;(4)如果是非history指令,fork()
2016-01-12 17:22:19
448
原创 opengl简单视频教程
一个国外大学生的OpenGL简单视频教程:http://www.videotutorialsrock.com/index.phpLesson1 - Base ShapesLesson2 - Transformations and TimersLesson3 - ColorLesson4 - LightingLesson5 - Textur
2015-12-30 10:27:46
3330
原创 虚拟化简单练习环境搭建(二)
4)上一步之后,已经将镜像文件上传到虚拟主机里面。还需要安装一些额外的工具;virt-install: 创建虚拟机qemu-img:创建虚拟机的磁盘现在假设虚拟主机处于断网状态,借助镜像里的rpm包进行安装:1.将镜像挂载到某个目录;2.借助yum进行安装,这样可以避免依赖包的手动安装。但是在此之前,需要在/etc/yum.repos.d加一个配置文件;
2015-12-20 21:27:24
590
原创 虚拟化简单练习环境搭建(一)
一、准备1)基本准备:vmware workstationCentOS-7-x86_64-Everything-1503-01.iso2)可选准备: 1.xshell,xftp二、开始搭建1)使用vmware安装CentOS系统(略),这个虚拟机把它当成一个主机来看待,所以这儿就叫它虚拟主机,而把安装在虚拟主机里的虚拟机叫做虚拟客户机,以此来
2015-12-20 21:09:24
2118
原创 gdb执行和调试窗口分离
将执行程序和调试窗口分开,目前我在工作中用到的应用场景:在发往测试部的程序包,如果测出bug,而在开发环境暂时没有复现环境的时候(在测试部能复现),会打开一个调试窗口,找到执行程序的进程号,将运行的程序attach到gdb里面(方法二),然后进行简单的调试,寻找bug的原因。《the art of debugging with gdb ddd and eclipse》书里讲解情景:是在调试gu
2015-11-24 19:58:15
3135
转载 linux链接自己编写的动态库
Shared libraries with GCC on LinuxBy anduril462Libraries are an indispensable tool for any programmer. They are pre-existing code that is compiled and ready for you to use. They often provide ge
2015-11-19 15:00:06
457
原创 简单实现服务程序的一些问题
上个月按项目业务功能的新需求,需要实现一个简单的服务程序,对接前台客户端和后台的业务处理端。之前存在一个windows平台对接端,使用IOCP通信模型来实现。而现在的需求是要在Linux服务器上进行实现,所以采用的是epoll模型。这次的的实现周期大概是一个月的时间,主要是采用模仿的方式来做,因为在此之前对于网络编程这块不是太擅长,重新设计的风险太高,而且不能保证能够按时的完成项目计划。所
2015-11-14 16:44:09
345
原创 od指令的简单实现
2015-09-29od指令的简单实现od以八进制或其他进制导出显示文件内容。1.第一列显示的是文件的位移2.默认每行显示16个字节3.当显示多个文件时,会将多个文件合并显示4.当连续的多行相同时,相同的第二行会显示为星号(*),之后的相同行将不会显示,直到遇到新的不同行 intdo_od( int fd, unsigned long
2015-09-29 19:44:00
1543
原创 uptime指令的简单实现
2015-09-24uptime指令的简单实现报告当前时间;系统已运行多久;当前登录的用户数量;最近1分钟,5分钟和15分钟的平均负载。1.当前系统时间通过time(NULL)获取2.系统运行的时间,记录在/proc/uptime文件里面第1数值就是系统启动到现在的时间,第2数值是系统空闲的时间3.当前登录的用户数量,记录在u
2015-09-24 17:12:03
1486
原创 linux下32位汇编hello, world!
SECTION .data ; section containing initialized data HelMsg: db "Hello World!",10 HelLen: equ $-HelMsgSECTION .bss ; section containing uninitialized dataSECTION .text
2015-09-23 11:07:00
1078
原创 生成pci设备树的简单实现
2015-09-16系统的所有pci设备记录在/sys/bus/pci/devices目录下面:而如果pci地址下连接有其他子设备的话,可以在对应的目录下找到其他的pci地址:可以看到0000:00:11.0下连接有0000:02:00.0, 0000:02:01.0, 0000:02:02.0, 0000:02:03.0四个设备。所以,通过分析/sys/b
2015-09-16 19:50:16
2769
原创 ac指令的简单实现
2015-09-14ac指令通过分析/var/log/wtmp日志文件,统计登陆和退出记录,得出用户的连接时间。1.第一步是读取wtmp文件wtmp文件和utmp文件的记录格式是一样的,可以使用struct utmp结构体,将wtmp的记录逐条的都出来。inttravel_wtmp( st_link_node **stppLink ){ int fd
2015-09-14 22:19:41
934
原创 pwd指令的简单实现
pwd指令的简单实现2015-08-23pwd以绝对路径打印当前的工作目录。因为整个系统的文件组织是树形的,所以,可以从当前目录逐层向根目录进行查找,当找到根目录,即可得到完全路径。1.如何逐层查找?系统通过inode节点来管理文件,所以每个文件会有一个inode号。目录是比较特殊的文件,通过<inode, name>的列表组织目录下的文件。每个目录下有
2015-08-23 23:47:29
1833
原创 Libvirt之vfio pci的passthrough
libvirt之vfio pci的passthrough2015-08-18一、准备1.开机启动项 /etc/default/grub文件在GRUB_CMDLINE_LINUX参数加入intel_iommu=on2.加载模块modprobe vfiomodprobe vfio-pci3.准备一台虚拟机e.g 一台虚拟机vfio_test 二、
2015-08-18 19:29:34
15714
1
原创 cp指令的简单实现
一、复制的三种情况:将文件复制成另外一个文件;intcopy_file2file( char *cpSrcPath,char *cpDstPath ){ int iFdSrc = 0; int iFdDst = 0; int iRdNum = 0; int iWrNum = 0; char caLine[ LI
2015-08-14 23:49:21
1712
原创 shell计算日期之间的天数
2015-08-05 成都1. 利用date将日期转化为秒数$(date +%s -d "$date")2.计算日期之间的差值,除以一天的秒数,得到相差的天数-------------------caldays.sh#!/bin/sh. ./error.sh####### DESC: caculate the days between two specific dat
2015-08-05 20:05:05
1822
原创 more指令的简单实现
2015-07-29 晴 成都more指令的简单实现遇到的问题和我的处理1. 问题:换行时,“--more()--”提示输入指令这行会多次不停的向屏幕上方移动。 处理:每次都从进行满屏输出,不管是翻页还是换行,总是将“--more--”挤到屏幕的最下方。 iCurrentLine=iCurrentLine-(sliPageLen-1)+reply; 等式
2015-07-29 13:44:52
796
原创 OS之子进程简单模拟shell解释环境
(1)每次主进程在接收指令进行解释之前,调用waitpid(-1,NULL, WNOHANG);释放可能存在的执行完毕的子进程资源(不会等待);(2)当输入一条指令后,将指令拆分成独立的符号;(3)如果指令的最后一个符号是’&’,则(5)子进程执行指令的时候,父进程将不会wait()子进程执行完毕,继续接收下一条指令进行解释;(4)History指令由主程序使用循环队列进行维护,最多只
2015-01-30 21:03:20
548
原创 OS之Windows API创建子进程(C VS 2008)
调用Windows API创建创建子进程,CreateProcess命令行参数不能直接使用字符串(貌似更高版本的VS没这方面的烦恼)。#include#include#includeintmain(void){ STARTUPINFO si; PROCESS_INFORMATION pi; TCHAR scommand[] = TEXT("C:\\WINDOWS\\syste
2015-01-15 19:58:49
955
原创 OS之内核简单链表
昨天看完操作系统教材的第二章,今天抽了一点空余时间做一做课后的编程习题。主要是简单练习一下Linux内核数据结构的链表。问题非常简单,就是在模块加载的时候生成包含5个节点的双链表,然后,在模块卸载的时候,遍历5个节点,然后释放。但是之前没怎么接触这类问题,刚开始的时候还是僵持了一下。好在链表管理的接口函数能够找见,对于解决问题真是帮助不小。/usr/src/linux-2.6.39
2015-01-09 20:34:31
517
原创 Ubuntu使用日志2015-01-05
2015年01月04日 晴今天入手了一台Linux(Ubuntu 12.04)系统的笔记本,打算工作之外进行消遣。之前一直用的是Windows下的虚拟机,都是用来练习shell脚本和C程序的编写,也没想过用来做其他的事儿。今天陡然一上手,真是麻烦不少。1. 上手的第一件事,想试一试C语言的’hello world’。写测试代码的时候,发现没有vim,果断的想安装一
2015-01-09 19:52:12
439
原创 读书记之《linux命令行与shell脚本编程大全》
英文名:《Linux Command Line and Shell Scripting Bible》(2th)作者:Richard Blum, Christine Bresnahan出版社:人民邮电出版社快到年底,项目也进入了比较关键的阶段,不知不觉加班也多了起来。半个月才能休息一天,双休已经变得比较困难。难得晚上不用加班,不过却不太想走,随意地躺在靠椅上,心里默默地扒着手指头数数,原
2014-12-01 14:56:06
1110
原创 读书记之《Unix&Linux大学教程》
英文名:《Harley Hahn's Guide to Unix and Linux》作者:Harley Hahn出版社:清华大学出版社从2014年8月20日到2014年11月8日,用了将近3个月的时间终于将这本书给简单看了一遍。读完之后,我想说我很喜欢这本书。喜欢作者的幽默。作者写书的语言很幽默,读起来不晦涩,相当有意思。对于我这样一个刚从Windows环境转到Linux
2014-11-24 09:31:47
2840
原创 读书记之《Beginning Linux Programming》
英文名:《Beginning Linux Programming》(4th)作者:Neil Matthew, Richard Stones出版社:WROX PR/PEER INFORMATION INC从2014年5月20日开始买这本书,大约8月份的时候才把这本书简单看了一遍。期间由于惰性和工作的原因,停过半个月左右,差点就让它一直停在哪儿了,因为书后面的内容充斥着一大堆的库函数,让我
2014-11-24 09:28:00
1465
原创 读书记之《C Primer Plus》
英文名:《C Primer Plus》(5th)作者:Stephen Parta出版社:Sams新公司的第一个月,重心放在了解项目组的基本情况,另外,通过配合前辈们做些简单的测试工作,学习一些工作上的知识和技能。一个偶然的机会,看到同组的同事在案头放了一本《C Primer Plus》,好奇心的驱使下,向同事借阅了一下,由于时间比较短,当时只看了一下目录和某一章的一小节,然后,决定买一
2014-11-24 09:20:24
1368
原创 Oracle之to_char()小碰撞
2014/11/6,今天在练习存储过程的时候,to_char()函数和我小小的闹腾了一把。/* PROCEDURE RaceInfo** Join tables: BoatCrew,Boat and Person,** to get the information:** BoatCategory, BowNumber, Position, LastName, FirstN
2014-11-06 20:59:14
700
原创 Shell遍历文件内容
2014年6月11日星期三 --- 晴 北京新的环境总是慢慢从陌生变得熟悉,陌生的同事,陌生的工作环境,和陌生的领导。刚开始的工作也就是查查数据,测一测功能的实现,另外再熟悉一下新的业务。测试功能的时候需要将数据库表名和文件名拼接成命令语句,执行测试。由于涉及的表和文件名比较多,所以第一次测的时候,很是花了一些时间,同时,把头给弄晕了。所以,不得不使用不太熟悉的shell脚本来
2014-06-11 19:38:33
3426
转载 C#使用DataTime类
DateTime.Now.ToShortTimeString() DateTime dt = DateTime.Now; dt.ToString();//2005-11-5 13:21:25 dt.ToFileTime().ToString();//127756416859912816 dt.ToFileTimeUtc().ToString();//1277567048599128
2014-05-15 14:37:18
853
转载 C#WinForms窗体无边框拖动
界面上有很多别的控件,PANEL,LABEL等等。。如果只给FORM绑定事件的话,鼠标放在别的控件上会没有效果,难道我要每一个控件都绑定事件
2014-05-14 16:28:05
818
原创 数据结构与GDI+的碰撞(C# VS 2008)之Sequence
2014年5月4日星期日上次将数据结构Bag呈现了一下,后面又学了一个和Bag类似的结构Sequence。1) 不同于Bag的随意,Sequence有一个current属性指向当前要操作的位置,如果没有current属性不可用的话,将current属性和used属性置成一样;2) 插入是,分为insert()方法和attach()方法。Insert()方法是将元素插入到curr
2014-05-04 22:02:09
842
原创 数据结构与GDI+的碰撞(C# VS 2008)之Bag
最近学习数据结构和GDI+,试着将两者结合在一起做练习,希望能够将数据结构图形化,而不是控制台的。1. 编写基本的数据结构类文件DataStructure_Bag.cs,使用数组来实现,可以进行增、删、查、统计、排序等操作。//FILE://DataStructure_Bag.cs// CLASS IMPLMENT: class Bag// // CONSTRUCTO
2014-04-27 20:13:16
1164
1
linux Kernel module简单模拟ps指令输出
2016-01-19
linux kernel module简单模拟ps指令
2016-01-19
linux kernel module打印指定进程栈信息
2016-01-19
opengl简单视频教程Lesson12-Lesson20
2015-12-30
opengl简单视频教程Lesson10-Lesson11
2015-12-29
opengl简单视频教程Lesson6-Lesson9
2015-12-29
opengl简单视频教程Lesson1-Lesson5
2015-12-29
opengl简单教程Lesson1-Lesson5(video)
2015-12-29
opengl简单教程Lesson1-Lesson5(src)
2015-12-29
gdb调试和执行窗口分离
2015-11-25
gdb调试和执行分离-示例程序
2015-11-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人