2016年8月10日

Linux内核解析:进程间通信:管道

摘要: 管道的定义管道的用途管道的操作管道非法read与write内核实现解析管道通信原理及其亲戚通信解析父子进程通信解析亲缘关系的进程管道通信解析管道的注意事项及其性质管道有以下三条性质shell管道的实现与shell命令进行通信system函数与popen函数区别 管道的定义 管道是第一个广泛应用的进程间通信手段。日常在终端执行shell命令时,会大量用到管道。但管道的缺陷在于只能在有亲缘关系(... 阅读全文

posted @ 2016-08-10 00:29 笨拙的菜鸟 阅读(9806) 评论(2) 推荐(2) 编辑

2016年7月17日

Linux内核之网络

摘要: 应用层:套接字将Unix一切都是内核的概念应用到网络连接中,内核跟用户空间套接字之间的接口实现在c的标准库中,使用了socketcall系统调用.socketcall充当了一个多路分解器,将各种任务分配到不同的过程执行,比如打开一个套接字,绑定或发送数据.对于程序使用的套接字来说,都对应一个socket结构和sock的实例,二者充当向下(内核)跟向上(用户)接口socket定义:struct so... 阅读全文

posted @ 2016-07-17 18:52 笨拙的菜鸟 阅读(684) 评论(0) 推荐(0) 编辑

从反汇编看待C++ new

摘要: 首先来看最简单的new操作int main(){ int *temp = new int; delete temp;}反汇编结果:调用了operator new00311C9E push 4 00311CA0 call operator new (0311438h) 00311CA5 add esp,4 进入operator new中查看vo... 阅读全文

posted @ 2016-07-17 18:51 笨拙的菜鸟 阅读(503) 评论(0) 推荐(0) 编辑

反汇编角度->C++ const

摘要: #include#includeusing namespace std;const int &add( const int &a,const int &b){ return a+b;}int main(){ const int &result = add(5,8); add(11, 8);//重复使用栈.排除虽然栈回收.但值没变的可能性 add(5, 8); add(5,8); ... 阅读全文

posted @ 2016-07-17 18:50 笨拙的菜鸟 阅读(468) 评论(0) 推荐(0) 编辑

反汇编->C++虚函数深度分析

摘要: 先来查看一简单例子#includeusing namespace std;class Base{public: virtual void f() { cout << "base f()被call"<<endl; } virtual void g() { cout << "父类虚函数G被call" << endl; }};class Derive : public Base{public: virt... 阅读全文

posted @ 2016-07-17 18:50 笨拙的菜鸟 阅读(492) 评论(0) 推荐(0) 编辑

反汇编->C++内联

摘要: C/C++提供了内联函数机制内联函数就是向编译器建议:编译这个函数的时候.直接把函数展开,而不是进行函数调用call.当然编译器并不接受这个建议.仍然把他当做普通函数进行编译使用内联函数的优点:减少函数调用的操作.也就是免去了保存堆栈现场,返回地址,参数进栈.分配栈空间,跳转.回收栈空间.恢复堆栈现场,虽然使用宏函数可以实现其效果.但是宏函数不能在编译阶段提供类型检查,为bug留下隐患,内联函数在... 阅读全文

posted @ 2016-07-17 18:49 笨拙的菜鸟 阅读(442) 评论(0) 推荐(0) 编辑

反汇编->C++引用与指针

摘要: 先看一段最简单代码#include#includeusing namespace std;int main(){ int temp = 10; int *point = &temp; int &ref = temp; system("pause");}反汇编结果 int temp = 10;012718E8 mov dword ptr [temp],0Ah int *poin... 阅读全文

posted @ 2016-07-17 18:48 笨拙的菜鸟 阅读(402) 评论(0) 推荐(0) 编辑

数据库初步认识

摘要: 重点,难点数据库,数据库系统,数据库管理系统?熟悉表的相关要素及术语熟悉数据系统的构成(工作环境)了解数据库管理系统的功能:从用户跟系统的角度来看-------------------------------------------------------------------------------------------------------------------------------... 阅读全文

posted @ 2016-07-17 18:47 笨拙的菜鸟 阅读(618) 评论(0) 推荐(0) 编辑

数据库系统的结构抽象与演变

摘要: 内容:数据库系统的标准结构数据模型数据库系统的演变与发展DBMS管理数据的三个层次外部层次(用户层次)某一个用户能够看到与处理的数据,全局数据的某一个部分全局层次,概念层次,逻辑层次 全局角度理解/管理的数据,含相应的关联约束内部层次/物理层次存储在介质上的数据,存储方式,索引方式,存储路径等数据/数据的结构-模式模式对数据库中数据所进行的一个结构性的描述视图/数据某一种表现形式下表现出来的数据库... 阅读全文

posted @ 2016-07-17 18:42 笨拙的菜鸟 阅读(927) 评论(0) 推荐(0) 编辑

2016年5月22日

写一简单kernel心得

摘要: 当人按下笔记本开机键时.cpu的cs寄存器(基址)跟ip(偏移量)寄存器加电.被强制初始化为(jmp xxx:xxx) 跳转到bios所在的地址. 接着bios开机自检(这个不需要了解,只需了解最后跳转到0x7c00处即可.对于写kernel的人来说也是透明的.除非你是写bios的).它将自动从0盘 阅读全文

posted @ 2016-05-22 16:11 笨拙的菜鸟 阅读(931) 评论(0) 推荐(0) 编辑

导航