微博上一篇最新的关于“淘宝应对"双11"的技术架构分析”.数据产品的一个最大特点是数据的非实时写入.…
基于该分析llvm的libc++,代替gun的libstdc++,由于libstdc++的代码里太多宏了,看起来蛋疼. 在多线程编程中,有一个常见的情景是某个任务仅仅须要运行一次.在C++11中提供了非常方便的辅助类once_flag,call_once. 声明 首先来看一下once_flag和call_once的声明: struct once_flag { constexpr once_flag() noexcept; once_flag(const once_flag&) = delete;…
[版权所有,转载请注明出处.出处:http://www.cnblogs.com/joey-hua/p/5597818.html ] 据说安卓应用里通过fork子进程的方式可以防止应用被杀,大概原理就是子进程被杀会向父进程发送信号什么的,就不深究了. 首先fork()函数它是一个系统调用,在sys.h中: extern int sys_fork (); // 创建进程. (kernel/system_call.s, 208) // 系统调用函数指针表.用于系统调用中断处理程序(int 0x80),…
http://orbt.blog.163.com/     异常就是控制流中的突变,用来响应处理器状态中的某些变化.当处理器检测到有事件发生时,它就会通过一张叫做异常表的跳转表,进行一个间接过程调用,到一个专门设计用来处理这类事件的操作系统子程序,这张表即中断描述符表IDT.本文将针对Linux0.11代码进行分析和调试,来了解中断机制,主要分析以下三个问题: 1.  中断描述符表的建立. 2.  一般中断的处理过程,以0x3号中断为例. 3.  系统调用的处理过程,以fork系统调用为例. 中…
signup_with_phone模块的主要功能是允许用户用自己的手机号作为注册登录账号,这里会进行手机号码格式的严格检查,该模块依赖odoo自带的auth_signup注册模块. 该项目地址在https://github.com/odooaktiv/SignupWithPhone,不过目前是10.0版本的,稍微修改下也可以在11.0版本下使用.下面分析其具体原理. 第一部分是使用到的XML布局文件        1.auth_signup模块的auth_signup_login_templat…
[版权所有,转载请注明出处.出处:http://www.cnblogs.com/joey-hua/p/5570691.html ] Linux内核从启动到初始化也看了好些个源码文件了,这次看到kernel文件夹下的system_call.s,这个文件主要就是系统调用的过程.但说到系统调用,不只是这一个文件这么简单,里面牵扯到的内容太多,这里就做个笔记记录一下从建立中断到最终调用系统调用的完整机制. 假设就从write这个函数作为系统调用来解释. 系统调用的本质就是用户进程需要访问内核级别的代码,…
原文地址:http://kb.cnblogs.com/page/193670/ 双“11”最热门的话题是TB ,最近正好和阿里的一个朋友聊淘宝的技术架构,发现很多有意思的地方,分享一下他们的解析资料: 淘宝海量数据产品技术架构 数据产品的一个最大特点是数据的非实时写入,正因为如此,我们可以认为,在一定的时间段内,整个系统的数据是只读的.这为我们设计缓存奠定了非常重要的基础. 图1 淘宝海量数据产品技术架构 按照数据的流向来划分,我们把淘宝数据产品的技术架构分为五层(如图1所示),分别是数据源.计…
本来想把configure.ac和各种m4文件分析明白,发现有点困难,不过好在也能理解一些. 基本教程 首先要明白m4,参见这个教程,写得不错,不论怎么样m4替换来替换去的,还真是不那么容易懂,好在我们自己不用写,只要看懂大意而已- 然后我们还得去了解下 autoconf和automake,这本书不错 <Autotools: A Practioner's Guide to GNU Autoconf, Automake, and Libtool>,csdn有下载. 文件夹结构 当autoconf…
代码实例:点击打开链接 实现的功能是从uart口发送数据至另一个蓝牙串口,或是从蓝牙读取数据通过uart打印出数据. int main(void) { // Initialize leds_init(); timers_init(); buttons_init(); uart_init(); ble_stack_init(); gap_params_init(); services_init(); advertising_init(); conn_params_init(); sec_param…
首先来参考以下代码: #include <stdio.h> class Test { int mi; public: Test(int i) { mi = i; } Test() { Test(); } void print() { printf("mi = %d\n", mi); } }; int main() { Test t; t.print(); ; } 运行打印: mi = 从上面代码可以看到, 定义Test t时,想通过Test()构造函数去调用Test(0),…