logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

linux内核分析之system_call.s

1. 系统调用处理底层程序,通过int 0x80进行系统调用2. 时钟,硬盘,软盘中断处理程序信号,子进程结束SIG_CHLD = 17定义了从系统调用返回时各个寄存器在堆栈中的偏移值(ret_from_sys_call)EAX  = 0x00EBX  = 0x04ECX  = 0x08EDX  = 0x0CFS  = 0x10ES  = 0x14DS  = 0x18EIP  = 0x

Linux Buddy系统算法源码解析

在Linux引导起来之后,伙伴系统分配算法是和物理内存最底层的接口。所有内存分配函数,比如vmalloc/kmalloc最后都是通过伙伴算法对内存进行分配的。接下来我们将解读一下伙伴系统的分配和回收算法。伙伴系统模块提供了两个主要的接口给上层程序,他们是:1.         页面请求函数struct page * fastcall __alloc_pages(gfp_t gfp_ma

#算法#linux#list
linux 2.6 互斥锁的实现-源码分析

看了看linux 2.6 kernel的源码,下面结合代码来分析一下在X86体系结构下,互斥锁的实现原理。代码分析1. 首先介绍一下互斥锁所使用的数据结构:struct mutex { 引用计数器 1: 所可以利用。  小于等于0:该锁已被获取,需要等待 atomic_t  count;  自旋锁类型,保证多cpu下,对等待队列访问是安全的。 spinlock_t  wait_lock; 

#linux#list#数据结构
分析linux共享内存的实现

Linux对共享内存的实现,在2.6采用了内存映射技术。对于内存共享,主要集中在三个内核函数,他们是do_shmat,sys_shmat和sys_shmdt。其中,sys_shmat调用了do_shmat最终实现了共享内存的attach。sys_shmdt实现了共享内存的detach和destroy。下面我主要对这三个函数的源码进行分析。在分析之前,首先介绍共享内存实现原理。 原理: 

#linux#数据结构
linux内核之trap.c文件分析

该程序主要定义和实现了asm.s中所引用的各个硬件异常中断处理程序#include #include #include #include #include #include #include 取给定段以及偏移处的一个字节输出寄存器eax,输入寄存器eax,内存地址addr#define get_seg_byte(seg,addr) ({ /register char __res; /__a

linux内核分析之sys.c

#include #include #include #include #include #include #include 这个文件中包含了绝大部分系统调用函数的实现,如果系统调用在该内核版本中没实现,就直接返回ENOSYSint sys_ftime(){ return -ENOSYS;}int sys_break(){ return -ENOSYS;}int sys_ptrac

#数据结构#linux
linux内核分析之system_call.s

1. 系统调用处理底层程序,通过int 0x80进行系统调用2. 时钟,硬盘,软盘中断处理程序信号,子进程结束SIG_CHLD = 17定义了从系统调用返回时各个寄存器在堆栈中的偏移值(ret_from_sys_call)EAX  = 0x00EBX  = 0x04ECX  = 0x08EDX  = 0x0CFS  = 0x10ES  = 0x14DS  = 0x18EIP  = 0x

分布式本地缓存的一种实现

源代码JavaSDK:https://github.com/gilbertwang1981/string_local_cache.gitC++ Agent:https://github.com/gilbertwang1981/binary_log_agent.gitC++公共库:https://github.com/gilbertwang1981/commonlib4...

#分布式#缓存#java
ElasticSearch计算文本相似度的算法总结

TF-IDF算法,向量空间模型,布尔模型;

#elasticsearch#算法#大数据
到底了