- 博客(200)
- 收藏
- 关注
转载 do{...}while(0)的意义和用法
转自:http://www.spongeliu.com/415.htmllinux内核和其他一些开源的代码中,经常会遇到这样的代码:do{ ...}while(0)这样的代码一看就不是一个循环,do..while表面上在这里一点意义都没有,那么为什么要这么用呢?实际上,do{...}while(0)的作用远大于美化你的代码。查了些资料,总
2017-09-24 15:52:33
538
原创 常用逆向工具小结(1)
1. strings命令:这个命令可以用于扫描ELF文件(可执行程序、动态链接库、编译产生的目标文件)中可打印的字符串。如果不加任何命令行参数,strings将输出ELF文件头中,位于.data段、.rodata段以及符号表中的常量字符串。如果添加-a,将对整个ELF文件进行扫描,输出全部字符串,包括段名,比如.data、.bss等字符串。2. file命令:这个命令可以用于确
2017-09-03 18:50:47
1279
原创 Valgrind总结(2) —— 命令行参数详解
一、输出信息重定向:默认情况下,valgrind输出的信息会重定向到标准错误输出流(stderr,fd=2)。但有时我们往往需要将输出信息重定向到指定文件,有以下几种方式:1. --log-fd=N: 通过这种方式直接将输出信息重定向到fd=N的文件中。2. --log-file=filename: 将输出重定向到filename指向的文件。3. --log-s
2017-09-03 16:15:52
10579
1
转载 CMake快速入门教程:实战
转自http://blog.youkuaiyun.com/ljt20061908/article/details/11736713 0. 前言 一个多月前,由于工程项目的需要,匆匆的学习了一下cmake的使用方法,现在有时间拿出来整理一下。本文假设你已经学会了cmake的使用方法,如果你还不会使用cmake,请参考相关资料之后再继续向下看。 本文中介绍的是生成可执行程序的方
2017-08-17 22:28:49
478
原创 Valgrind总结(1) —— 概述
一、前言:对于Linux开发,valgrind的重要性是不言而喻的。尤其在memory error、memory leak的问题定位和排查方面,发挥着极其重要的作用。记得刚毕业那会儿,部门领导曾经反复强调valgrind重要性。曾经在开发过程中,虽然也有使用valgrind,但是从来没有对valgrind这个工具做过完整总结。近期决定对valgrind做一个总结,也算是偿还以前欠下的技
2017-05-20 22:18:48
828
转载 Linux中mprotect()函数的用法
转自:http://www.linuxdiyf.com/linux/14382.html在Linux中,mprotect()函数可以用来修改一段指定内存区域的保护属性。函数原型如下:#include #include int mprotect(const void *start, size_t len, int prot); mp
2017-03-27 21:57:46
973
转载 Hello, JIT World: The Joy of Simple JITs
转自:http://blog.reverberate.org/2012/12/hello-jit-world-joy-of-simple-jits.htmlThis is a demonstration of how simple and enjoyable small JITs (just-in-time compilers) can be. The word “JIT” tends
2017-03-15 20:32:39
916
转载 Lua中的userdata
转自:http://www.jellythink.com/archives/587话从这里说起在我发表《Lua中的类型与值》这篇文章时,就有读者给我留言了,说:你应该好好总结一下Lua中的function和userdata类型。现在是时候总结了。对于function,我在《Lua中的函数》这篇文章中进行了总结,而这篇文章将会对Lua中的userdata进行仔细的总结。对于文
2017-02-22 14:05:55
14323
转载 C++对象绑定到Lua
转自:http://blog.youkuaiyun.com/kenkao/article/details/8252573游戏中的使用脚本语言已经成为了一个标准应用。脚本语言能够在游戏开发中扮演一个重要的角色,并且让数据结构化,计划事件,测试和调试这些工作更加容易。脚本语言也能够允许像美术,策划这些非程序专家通过一个高层的抽象脚本来为游戏编写代码。这个抽象层的一部分也能够允许提供给玩家来定制整个游戏
2017-02-22 13:59:48
655
转载 Light User Data
转自:http://lua-users.org/wiki/LightUserDataLight userdata, like heavy userdata, are a form of userdata, which is one of the basic data types in Lua [1]. Light userdata are characterized by the foll
2017-02-18 20:53:49
711
转载 Lua 与C/C++ 交互系列:注册枚举enum到Lua Code中
转自:http://blog.youkuaiyun.com/sunning9001/article/details/46659163在Lua Code中注册C/C++的枚举非常容易,就像注册全局变量一样。我们使用枚举名称作为命名空间,来避免注册的枚举发生冲突。注册的枚举存储在全局环境(线程环境)中。当在Lua Code中访问枚举时,通过名称来访问对应的值。sample_
2017-02-18 20:45:07
1331
转载 Lua FFI 实战
转自:http://blog.youkuaiyun.com/weiwangchao_/article/details/16880401[+]May 19, 2013由来FFI库,是LuaJIT中最重要的一个扩展库。它允许从纯Lua代码调用外部C函数,使用C数据结构。有了它,就不用再像Lua标准math库一样,编写Lua扩展库。把开发者从开发Lua扩展C库(语
2017-02-12 22:27:50
944
转载 luajit笔记---编译成静态库以及FFI绑定宿主程序函数
转自:http://blog.youkuaiyun.com/fg5823820/article/details/8888207本以为可以像lua一样把代码丢进去直接编译就好了,结果发现luajit有一堆汇编代码,不知道怎么处理,后来一搜索才知道luajit本身提高的批处理也可以编译成静态库,就是在后面加个static,郁闷到了。http://blog.youkuaiyun.com/whitehack/arti
2017-02-12 22:26:17
814
转载 Lua Metatables Tutorial
转自:http://nova-fusion.com/2011/06/30/lua-metatables-tutorial/In this tutorial I'll be covering a very important concept in Lua: metatables. Knowledge of how to use metatables will allow you
2016-12-07 19:50:43
428
转载 柔性可用——移动互联网时代的一秒响应秘诀
转自:http://www.cnblogs.com/Kevin-Zhao/articles/4896936.html移动互联网海量服务有2大特点:每用户收益远低于金融业;业务流量毛刺更加突出,瞬间百倍的业务冲击经常发生。柔性可用将从安民告示、产品设计、技术实现三个方面讨论如何深刻理解业务特点、充分考虑突发和故障,精心设计柔性场景,用低成本提供优雅的海量移动互联网服务。
2016-11-25 11:25:20
1564
转载 Let’s Hook a Library Function
转载:http://opensourceforu.com/2011/08/lets-hook-a-library-function/If you are a developer, and want to change the way a library function works, this article will give you a basic idea of how to g
2016-11-25 08:46:46
554
转载 协程及libco介绍
转自:http://www.tuicool.com/articles/NJNrAnlibco 是腾讯开源的一个协程库,主要应用于微信后台RPC框架,下面我们从为什么使用协程、如何实现协程、libco使用等方面了解协程和libco。why协程为什么使用协程,我们先从server框架的实现说起,对于client-server的架构,server最简单的实现:whil
2016-11-25 08:38:08
687
转载 微服务(Microservice)那点事
转自:https://yq.aliyun.com/articles/2764摘要: 微服务架构被提出很短的时间内,就被越来越多的开发人员推崇,简单来说其主要的目的是有效的拆分应用,实现敏捷开发和部署 。本分享即尝试介绍微服务架构的一些实施细节和要求,探询微服务架构的由来,并最终提供我们团队内部的一些实践总结,希望对大家有帮助。WHAT - 什么是微服务微服务简介
2016-11-25 08:36:12
508
转载 架构案例丨微信Android客户端架构演进之路
转自:http://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=402023042&idx=1&sn=0c64c9db380410e58c097ee65708ff11&scene=21#wechat_redirect拓荒微信1.0 for Android的测试版本于2011年1月发布。这是微信Android客户端的
2016-11-25 08:22:21
1601
转载 微信朋友圈技术之道:三个人的后台团队与每日十亿的发布量
转自:http://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=401735823&idx=1&sn=7a4df58c22d9d3145e0692dd580f6a3d&scene=21#wechat_redirect概述截止到2015年7月,微信每月活跃用户约5.49亿,朋友圈每天的发表量(包括赞和评论)超过10亿,浏览量超过
2016-11-25 08:21:16
628
转载 从0到1:微信后台系统的演进之路
转自:http://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=402340325&idx=1&sn=5b7bf6025b1a83a0e529e630fc95ae28&scene=21#wechat_redirect“2个月的开发时间,微信后台系统经历了从0到1的过程。从小步慢跑到快速成长,经历了平台化到走出国门,微信交出的这份优异答卷,
2016-11-20 11:17:28
657
转载 百万并发量苹果官网准备好了吗?——一分钟学会服务器压力测试
转自:http://blog.youkuaiyun.com/wetest_tencent/article/details/52596374作者:Oliver,腾讯服务器性能测试团队产品经理 商业转载请联系腾讯WeTest授权,非商业转载请注明出处。目前腾讯WeTest服务器性能测试已经正式对外开放,点击链接:http://wetest.qq.com/gaps/立即体验!WeTe
2016-11-19 23:09:31
853
转载 服务器过载保护(下篇)——过载处理新方案
转自:http://blog.youkuaiyun.com/wetest_tencent/article/details/51206578本文由腾讯WeTest团队提供,更多资讯可直接戳链接查看:http://wetest.qq.com/lab/ 微信号:TencentWeTest文/iven1 前言世界上不存在绝对完美的系统,我们不是上帝,出现问题是
2016-11-19 22:40:12
944
转载 服务器过载保护(上篇)——过载介绍
转自:http://blog.youkuaiyun.com/wetest_tencent/article/details/51206530 本文由腾讯WeTest团队提供,更多资讯可直接戳链接查看:http://wetest.qq.com/lab/ 微信号:TencentWeTest1 何为过载“过载”一词,在海量服务的后台开发中,基本都会遇到。何为过载,即当前负载已经超
2016-11-19 22:38:42
875
转载 浅谈过载保护
转自:http://djt.qq.com/article/view/156雪球:对于时延敏感的服务,当外部请求超过系统处理能力,如果系统没有做相应保护,可能导致历史累计的超时请求达到一定规模,像雪球一样形成恶性循环。由于系统处理的每个请求都因为超时而无效,系统对外呈现的服务能力为0,且这种情况下不能自动恢复。作者bison,腾讯后台开发技术总监。 过载保护,看似简
2016-11-19 21:59:45
413
转载 万亿级调用系统:微信序列号生成器架构设计及演变
“每天万亿级调用的重量级系统,每次申请序列号平时调用耗时1ms,99.9%的调用耗时小于3ms,服务部署于数百台4核CPU服务器上!老司机介绍曾钦松,微信高级工程师,目前负责微信后台基础服务、朋友圈后台等开发优化,致力于高可用高性能后台系统的设计与研发。2011年毕业于西安电子科技大学,早先曾在腾讯搜搜从事检索架构、分布式数据库方面的工作。微信在立项之初,就已确立了利用
2016-11-19 18:02:38
459
转载 Linux 2.6 Completely Fair Scheduler 内幕
转自:http://www.ibm.com/developerworks/cn/linux/l-completely-fair-scheduler/index.html?ca=drs-cn-0125自 2.6.23 起提供对 CPU 的出色访问任务调度器是任何操作系统的关键部分,Linux 在此领域中不断发展和创新。在内核 2.6.23 中,推出了 Co
2016-11-13 23:11:14
602
转载 Linux进程调度策略的发展和演变--Linux进程的管理与调度(十六)
转自:http://blog.youkuaiyun.com/gatieme/article/details/51701149日期内核版本架构作者GitHub优快云2016-06-14Linux-4.6X86 & armgatiemeLinuxDeviceDriversLinux进程
2016-11-13 23:09:56
1010
原创 VisualGDB相关问题整理
1. Visual Studio 输出窗口存在中文乱码:解决方案:【工程】-->【VisualGDB Project Properties】-->【Makefile settings】-->【Customize】然后添加Additional environment —— LANGUAGE=en_US2. 默认情况下,在VisualGDB工程里,文件编辑窗口无法显示当前文件名、路
2016-11-09 16:53:27
3171
转载 gcc选项-g与-rdynamic的异同
转自:http://www.lenky.info/archives/2013/01/2190gcc的-g,应该没有人不知道它是一个调试选项,因此在一般需要进行程序调试的场景下,我们都会加上该选项,并且根据调试工具的不同,还能直接选择更有针对性的说明,比如-ggdb。-g是一个编译选项,即在源代码编译的过程中起作用,让gcc把更多调试信息(也就包括符号信息)收集起来并将存放到最终的可执行
2016-11-09 11:15:34
2172
转载 【内核】进程切换 switch_to 与 __switch_to
转自:http://www.cnblogs.com/visayafan/archive/2011/12/10/2283660.html#define switch_to(prev, next, last) \do { \/* \ * Context-switching clobbers(彻底击败) all registers, so we clo
2016-11-06 22:36:27
1125
转载 CPU私有变量(per-CPU变量)
转自:http://blog.chinaunix.net/uid-24148050-id-300576.html一、简介2.6内核上一个新的特性就是per-CPU变量。顾名思义,就是每个处理器上有此变量的一个副本。per-CPU的最大优点就是,对它的访问几乎不需要锁,因为每个CPU都在自己的副本上工作。tasklet、timer_list等机制都使用了per-CPU技术。
2016-10-30 17:24:30
466
翻译 Per-CPU variables
转自:https://0xax.gitbooks.io/linux-insides/content/Concepts/per-cpu.htmlPer-CPU variables are one of the kernel features. You can understand the meaning of this feature by reading its name. We can
2016-10-30 17:23:28
805
转载 Linux cpumask分析
转自:http://blog.youkuaiyun.com/nirenxiaoxiao/article/details/21462053首先我们来分析一下定义在cpumask.h中 结构体cpumask_t[cpp] view plain copy typedef struct cpumask { DECLARE_BITMAP(bits, N
2016-10-30 15:54:37
1452
转载 Linux进程调度(1):CFS调度器的设计框架
转自:http://blog.youkuaiyun.com/zhoudaxia/article/details/7375668 1. 概述 对于分时操作系统而言,表面上看起来是多个进程同时在执行,而在系统内部则进行着从一个进程到另一个进程的切换动作。这样的进程并发执行涉及到进程切换(process switch)和进程调度(process scheduling)两大问题。其中进程调度是操作系统
2016-10-30 15:44:01
660
转载 Linux 2.6内核中新的锁机制--RCU
转自:http://www.ibm.com/developerworks/cn/linux/l-rcu/一、 引言众所周知,为了保护共享数据,需要一些同步机制,如自旋锁(spinlock),读写锁(rwlock),它们使用起来非常简单,而且是一种很有效的同步机制,在UNIX系统和Linux系统中得到了广泛的使用。但是随着计算机硬件的快速发展,获得这种锁的开销相对于CPU的速
2016-10-29 23:15:05
413
转载 文件描述符fd和文件指针fp之间的相互转换
转自:http://blog.youkuaiyun.com/embedded_sky/article/details/45064123 Linux/Unix下使用open函数(系统调用)打开文件会得到文件描述符fd(int型变量),而使用C库中的fopen函数打开文件则会得到文件描述符fp(FILE*型变量),二者之间是可以相互转换的,下面是两个example。1.fd转换为
2016-10-29 23:10:43
724
转载 Linux内核中的fastcall和asmlinkage宏
转自:http://www.linuxidc.com/Linux/2012-12/77127.htm在linux内核中我们都会经常见到FASTCALL和armlinkage,它们各有什么不同呢?下面我们来具体分析一下。在标准C系中函数的形参在实际传入参数的时候会涉及到参数存放的问题,那么这些参数存放在哪里呢?对x86比较了解的话,应该知道这些函数参数和函数内部局部变量一起被分配
2016-10-29 23:09:57
474
转载 Linux 2.6内核中新的锁机制--RCU
转自:http://www.ibm.com/developerworks/cn/linux/l-rcu/一、 引言众所周知,为了保护共享数据,需要一些同步机制,如自旋锁(spinlock),读写锁(rwlock),它们使用起来非常简单,而且是一种很有效的同步机制,在UNIX系统和Linux系统中得到了广泛的使用。但是随着计算机硬件的快速发展,获得这种锁的开销相对于CPU的速
2016-10-28 13:36:54
410
转载 Linux性能及调优指南(翻译)之Linux内存架构
本文为IBM RedBook的Linux Performanceand Tuning Guidelines的1.2节的翻译原文地址:http://www.redbooks.ibm.com/redpapers/pdfs/redp4285.pdf原文作者:Eduardo Ciliendo, Takechika Kunimasa, Byron Braswell译文如下:
2016-10-23 22:39:47
380
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人