• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

计算机科学精彩帖子收集 [CNT]关于自己的一个小小的slab内存分配器 Linux系 ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

inux源码

LXR 源自“the Linux Cross Referencer”,中间的“X”形象地代表了“Cross”。与 Source Navigator 类似,它也是分析阅读源代码的好工具。不同的是,它将源代码借助浏览器展示出来,文件间的跳转过程成了我熟悉的点击超链接动作。

http://lxr.linux.no/   LXR安装过程简介

linux手册

http://linux.die.net/man/

 

Linux每周新闻

http://lwn.net/

 

MIT的64位Centos6.5下载镜像

http://mirrors.mit.edu/centos/6.5/isos/x86_64/

 

xinu

http://www.xinu.cs.purdue.edu/

 

Nginx源码

http://lxr.evanmiller.org/http/source/

 

src/lib/libc/源码(如果只是看libc而不局限与Linux,可以到这里看)

http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libc/

GUN的libc源码下载

http://mirrors.ustc.edu.cn/gnu/libc/

www.sf.net  SF的C代码库(可以按编程语言等筛选)

http://sourceforge.net/directory/developmentstatus:production/language:c/os:linux/freshness:recently-updated/?q=C

xshell中文乱码

[文件]–>[打开]–>在打开的session中选择连接的那个,点击[属性] -> [终端], 编码选择为:Unicode(UTF-8),然后重新连接服务器即可。也可以在Xshell的工具栏里面点击“编码 ”按钮,选择Unicode(UTF-8)编码即可。

Makefile:2: *** 遗漏分隔符 。停止


   在 cc 或者gcc之前一定有一个table键。

罗列linux所有安装包:#pkg-config --list-all

 

 

代码阅读--Source Insight

http://www.sourceinsight.com/index.html

SI3US-205035-36448

 

在sourceInSight中看代码时,中文注释显示有问题,因为它不支持utf8编码
方法是:用记事本打开含有中文的文件,然后另存为ANSI编码

 

代码来源--acme

http://www.acme.com/software/

 

正则:

http://www.regexper.com/

http://www.debuggex.com/

例如:html链接的正则

<a\shref=\"(https?://[^"]+)\"[^>]*>([^<]+)<\/a>

==========================

汇编语言

Linux 汇编语言开发指南

X86汇编语言学习手记(1)

汇编代码开始的andl $-16,%esp

LINUX汇编(汇编语言程序设计读书笔记)

反推函数调用栈

函数调用栈详解(good)

链接与加载(上) — 静态链接

链接与加载(下) — 动态链接

常量、指针和变量的实现机制

==========================

计算机组成

上海交通大学师生制作的一个关于cache映射功能、命中率计算的教学演示程序 [很好,可以点击看目录更精彩]

7个示例科普CPU Cache

============================

Linux

#uname -a 内核信息

------------------------

#man  -k   函数         
#man  返回的数字  函数
#man -k file | grep umask

---------------------------

抓指定端口

#tcpdump -i eth0 port 80

---------------------------

#netstat -a 查看开启了哪些端口,常用netstat -an 
#netstat -n 查看端口的网络连接情况,常用netstat -an 
#netstat -v 查看正在进行的工作 
#netstat -p 协议名 例:netstat -p tcq/ip 查看某协议使用情况(查看tcp/ip协议使用情况) 
#netstat -s 查看正在使用的所有协议使用情况

------------------------------

lsof的功能很多,特別提醒大家, -c,-g,-p,-u,这四个参数最有用。更详细的资料请参看:man lsof

# lsof abc.txt 显示开启文件abc.txt的进程

#lsof -p pid   查看侦听端口,lsof 常见的用法是查找应用程序打开的文件的名称和数目
# lsof -i :80 知道80端口现在运行什么程序
# lsof -c nsd 显示nsd进程现在打开的文件
# lsof -g gid 显示归属gid的进程情况
# lsof +d /usr/local/ 显示/usr/local目录下被进程开启的文件
# lsof +D /usr/local/ 同上,但是会搜索目录下的目录,时间较长
# lsof -d 4 显示使用fd为4的进程
# lsof -i [i] 用以显示符合条件的进程情况

#lsof -i @192.168.1.10    显示了搜索与 192.168.1.10 之间的所有连接。

--------------------------------

#cat /proc/interrupts 显示中断信息

#cat /proc/2452/fd/7

#cat /proc/net/sockstat   网络套接字使用统计

#cat /proc/sys/fs/file-max   所有运行的程序同时能打开的文件总数

------------------------------------

将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar
# tar -cvf /tmp/etc.tar /etc <==仅打包,不压缩!
# tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩
# tar -jcvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩

#tar -zxvf /tmp/etc.tar.gz   解压

---------------------------------------

#vmstat 2  第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数。主要通过收集VMSTAT的信息来展现服务器状况。

-----------------------内核----------------------------

内核之旅

http://linuxtoy.org/    [哈工大linux站]

Linux 系统内核的调试 [IBM文档库]

IBM Linux文档库

一种解读linux内核源码的入门方法

深入理解SetUID

Linux下缓冲区溢出攻击的原理及对策 [IBM文档库]

使您的软件运行起来: 防止缓冲区溢出 [IBM文档库]

struct rlimit介绍

防止内存泄露 Linux下用Valgrind做检查

内存调试 - MEMWATCH

Linux内核怎样获取进程任务结构

《Linux 核心》原著: David A Rusling翻译: Banyan & fifa

《Linux 核心》原著: David A Rusling翻译: 胡宁宁 毕昕 仲盛 赵振平周笑波 李群 陈怀临

Linux Used内存到底哪里去了?

从free到page cache

Linux内核引导参数简介

Linux (0.11版) 重新组装

Linux 内核源代码各个版本和一些工具

也谈Linux Kernel Hacking – 内核配置、编译与安装

如何加入Linux内核开发社区(1)

Linux Crontab 定时任务 命令详解

ubunttu下配置内核linux-3.6.7

使用 /proc 文件系统来访问 Linux 内核的内容  [IBM文档库]

使用异步 I/O 大大提高应用程序的性能

linux内核PID管理 [很好]

linux内核hlist分析

Linux内核spin_lock与spin_lock_irq分析

如何调试Linux内核

printk内核调试

linux上使用strace查看C语言级别的php源码【查看最终系统调用】

Linux下高并发socket最大连接数所受的各种限制  [很好]

完全用Linux工作

关于patch的总结,希望对不太了解的朋友有用

摘录:Linux打Patch的方法    [很好]

Linux性能监控(1)  [总结全面]    linux系统性能监控常用命令  [全面]

系统调用的实现原理  [很好]

--------------------------内存管理-------------------------------

内存映射文件原理探索 [很好]

Linux内存管理大图(第三稿) 

简析堆内存

Linux slab 分配器剖析 [IBM文档库]

Linux Slub分配器(一)--概述 [很好]

Linux伙伴系统(一)--伙伴系统的概述 [很好]

Linux物理内存概述

[CNT]关于自己的一个小小的slab内存分配器  [很好]

[Pthread] Linux中的内存管理(一)--Paging

[Pthread] Linux中的内存管理(二)--Layout

[Pthread] Linux中的内存管理(三)--Stack

[Pthread] Linux中的内存管理(四)--Heap(brk()和mmap())   [很好]

分段和分页  [形象]

第十讲分段与分页 (图文并茂形象)

广东工大操作系统课件  [很好]

分页存储管理  [很好]

分段存储管理  [很好]

内存管理内幕  [IBM文档库]

内存分配原理  [转帖存档]

【百度分享】频繁分配释放内存导致的性能问题的分析   [写的非常好]

内存分配的原理__进程分配内存有两种方式,分别由两个系统调用完成:brk和mmap(不考虑共享内存)

malloc()_分配内存,会用到brk(用于小内存申请<=128kb,在堆上)或mmap2(用于大内存申请,一般是堆和栈中间)系统调用

内存分配的原理__Linux虚拟内存管理(glibc)_Linux的虚拟内存管理有几个关键概念_Linux 虚拟地址空间如何分布_malloc和free是如何分配和释放内存_如何查看堆内内存的碎片情况_既然堆内内存brk和sbrk不能直接释放,为什么不全部使用 mmap 来分配,munmap直接释放呢

频繁分配释放内存导致的性能问题的分析___1、缺页中断的执行过程;2、内存分配释放的原理__brk,mmap,为什么会产生内存碎片等原因

mmap内存占用问题

Linux系统调用-- mmap/munmap函数详解

Linux中brk(),sbrk(),mmap(),malloc(),calloc()的异同

-----------------------进程----------------------------

linux进程创建过程与原理

Linux启动新进程的几种方法及比较  linux编程-守护进程编写

使用ptrace跟踪进程   0号进程->1号内核进程->1号内核线程->1号用户进程(init进程)->getty进程->shell进程

linux进程创建:fork、vfork和clone联系与区别

在Linux下的进程资源的限制(struct rlimit)详解

Linux下如何知道文件被那个进程写

Linux进程地址空间

Linux系统调用--getrlimit()与setrlimit()函数详解

窥探 kernel --- 浅析do_exit [有图很好]

------------------进程间通信----------------------

Linux环境进程间通信(二): 信号(上)

Linux环境进程间通信(二): 信号(下)

Linux环境进程间通信(四)信号灯

Linux环境进程间通信(三)消息队列

Linux环境进程间通信(一)管道及有名管道

Linux环境进程间通信(五): 共享内存(上)

Linux环境进程间通信(五): 共享内存(下)

Linux 环境进程间通信(六)套接口

Linux 实时信号程序中锁的探索

UNIX 共享内存应用中的问题及解决方法

对话 UNIX: 通过共享内存进行进程间通信

在 Linux 中使用共享对象 让共享内存为您服务,而不是为您制造麻烦

Posix线程编程指南(1)

Posix线程编程指南(2)

Posix线程编程指南(3)

Posix线程编程指南(4)

Posix线程编程指南(5)

Linux 上实现双向进程间通信管道

POSIX 线程详解 一种支持内存共享的简捷工具

POSIX 线程详解,第 2部分 称作互斥对象的小玩意

POSIX 线程详解,第 3 部分 使用条件变量提高效率

IPC通信陷阱之六万五千分之一

-------------------------线程-------------------------------

可重入、线程安全、异步信号安全小结

可重入函数与不可重入函数

abort()函数不是多线程安全的,但它是异步信号安全的

POSIX 线程详解

通用线程:POSIX 线程详解,第 2部分   [很好]

spinlock自旋锁的剖析与改进

spin_lock浅析

pthread_cond_signal和pthread_cond_wait简介

浅析pthread_cond_wait

Linux线程-互斥锁pthread_mutex_t

Linux线程-终止

Linux线程-创建

Linux线程-pthread_join

Linux线程-pthread_kill

生产者/消费者

 

Linux下C语言的多线程编程学习

Linux下的多线程编程

-----------------------信号----------------------------

Linux进程间通信——使用信号

linux后端服务程序之信号处理

等待队列实现代码浅析

linux中信号量的分析 好

Linux Signal实现代码分析

-----------------------时间----------------------------

Linux 下定时器的实现方式分析

浅析 Linux 中的时间编程和实现原理,第 1 部分: Linux 应用层的时间编程

浅析 Linux 中的时间编程和实现原理,第 2 部分: 硬件和 GLibC 库的细节

浅析 Linux 中的时间编程和实现原理,第 3 部分: Linux 内核的工作

浅析 Linux 中的时间编程和实现原理,第 4 部分: Linux 内核的工作

Linux的timerfd分析

Linux Posix Timer实现代码分析

-----------------------文件和锁----------------------------

硬盘分区备忘(主分区,扩展分区和逻辑分区)以及Linux硬盘分区工具parted 介绍

Linux文件IO__文件系统架构层次,IO调用链,一致性和安全性,性能问题,fclose,fflush,fsync的区别 [很好很好]

O_DIRECT初认识(直接写入磁盘)

linux open 函数O_DIRECT标志位使用说明  open的O_DIRECT选项 【注意事项】

Linux 中直接 I/O 机制的介绍[图文并茂]

学习 Linux,101: 硬盘布局

Linux进程同步之记录锁(fcntl) 

浅谈无缓存I/O操作和标准I/O文件操作区别 [极好]

简析文件操作【图文并茂】

文件操作的原子性

linux文件操作(一)(遇见0425的ChinaUnix博客) 

读写锁与记录上锁(遇见0425的ChinaUnix博客)  

互斥锁与条件变量(遇见0425的ChinaUnix博客)  

Linux文件系统十问,你知道吗?  

建议性锁和强制性锁

Linux 的 splice 和sendfile系统调用

LINUX UMASK详解  

Linux下的umask函数

dup and dup2的剖析

linux stat函数讲解

Linux 的 splice 和sendfile系统调用

逻辑卷管理

Linux设备文件简介

Write的奥秘

VirtualBox怎么共享文件夹

mmap详解 [很好]

linux mmap 内存映射mmap() vs read()/write()/lseek()   [很好]

Linux 文件系统剖析   [IBM文档库]

linux C之access函数

S_ISDIR()函数

强制把系统缓存写入文件sync和fsync函数,, fflush和fsync的联系和区别    (c库缓冲-----fflush---------〉内核缓冲--------fsync-----〉磁盘)

fflush和fsync的一些总结

Iowait的成因、对系统影响及对策  [很好很深]

linux中互斥锁的分析

Linux 2.6内核中新的锁机制--RCU  [IBM文档库]

AIO 简介

日志模块的C语言实现 [很好]

fstat、stat和lstat 区别

-----------------------输入输出----------------------------

对STDOUT_FILENO和STDIN_FILENO的理解

-----------------------linux图形化----------------------

什么是x-window

----------------------小例子很好-------

Linux 常用C函数(用户组篇1)

Linux 常用C函数(用户组篇2)

Linux 常用C函数(文件内容操作篇1)

Linux 常用C函数(文件内容操作篇2)

Linux 常用C函数(文件操作篇)

Linux 常用C函数(内存控制篇)

Linux 常用C函数(内存及字符串操作篇1)

Linux 常用C函数(内存及字符串操作篇2)

Linux 常用C函数(字符转换篇)

Linux 常用C函数(终端控制篇)

Linux 常用C函数(环境变量篇)

Linux 常用C函数(接口处理篇1)

Linux 常用C函数(接口处理篇2)

Linux 常用C函数(时间日期篇)

Linux 常用C函数(时间日期篇2)

Linux 常用C函数(进程操作篇1)

Linux 常用C函数(进程操作篇2)

Linux 常用C函数(进程操作篇3)

-----------------------中断-------------------

中断和异常

-----------------------linux数据结构----------------------------

Kernel阅读手记之slab 

kernel阅读手记之内存池 

kernel阅读手记之vmalloc 

kernel阅读手记之kmalloc     

kernel阅读手记之页面分配和释放            

linux中的链表  

深入分析 Linux 内核链表  

struct stat结构体简介  

Linux slab 分配器剖析  

Linux 内存管理 -- 高端内存的映射方式

-----------------------链接与加载 动态库 静态库----------------------------

从程序员角度看ELF-译文

从程序员角度看ELF+objdump  

Linux 动态库剖析  

静态库  

Linux进程地址空间的一步步探究  

Linux下C程序进程地址空间布局  

Linux下静态库和共享库的制作方法  

Linux动态库(.so)搜索路径

LINUX动态链接库高级应用

LINUX系统中动态链接库的创建与使用

Linux下静态库_库的基本概念 [很好]

在Linux使用GCC编译C语言共享库  很好

-----------------------GCC和编译----------------------------

GCC "-fomit-frame-pointer"编译选项的含义  

Introduction to PIC - (Position Independent Code)  

编译GNU/Linux共享库, 为什么要用PIC编译?  

GCC编译优化指南  

Glibc Binutils GCC 安装指南  

深入理解软件包的配置、编译与安装  

gcc中-pthread和-lpthread的区别    

GCC 中的编译器堆栈保护技术  

GCC编译的背后( 预处理和编译 汇编和链接 )

----------------网络编程----------------------

socket阻塞与非阻塞,同步与异步、I/O模型 (很好)

socket编程原理   

大端模式与小端模式、网络字节顺序与主机字节顺序 (经典)   

(摘录)sockaddr与sockaddr_in,sockaddr_un结构体详细讲解   

[gcc编程] socket编程——sockaddr_in结构体操作   

套接字地址结构

accept非阻塞方式   

socket-accept

Linux/Unix网络编程指南(Socket 编程)

实现自己的http server    

自己动手写 HTTP Server   

六款小巧的HTTP Server[C语言]

Linux网络协议栈(一)——Socket入门(1)  

Linux网络协议栈(一)——Socket入门(2)

提高 Linux 上 socket 性能

高性能网络编程,第 1 部分: 最大程度地利用您的网络资源

高性能网络编程,第 2 部分: 加快客户机和服务器的处理速度

-------------------linux TCP/IP协议栈------------------------------------

tcp/ip协议栈研究-tcp数据包接收(1)

tcp_ip协议栈源码分析-ip数据包接收

linux tcp/ip协议栈研究--ip包的转发和本地传递

初探Linux网络协议栈

linux已经不存在惊群现象

了解 TCP 系统调用序列  [IBM文档库]

高性能网络编程(一)----accept建立连接

高性能网络编程2----TCP消息的发送

高性能网络编程3----TCP消息的接收

-----------------------------------------------------------------

 

LVS

LVS+Keepalived lvs+keepalived和haproxy+heartbeat区别

------------------ljianhui的专栏-------------------------

Linux 之 我最常用的20条命令

Linux数据管理——文件锁定

Linux 文件操作——系统调用和标准I/O库 

Linux进程间通信——使用消息队列

Linux进程间通信——使用流套接字

------------------------TCP/IP-------------------------

HTTP详解(1)-工作原理

HTTP详解(2)-请求、响应、缓存

Tcpcopy简介与实战

 网易wangbin(TCPcopy)

TCP/IP 协议分析(整理+转帖)

TCP_NODELAY详解

Linux内核: 修改TCP/IP调优参数

浅谈TCP/IP网络编程中socket的行为

tcp协议丢包的问题  TCP 仍会掉包

浅谈TCP优化 [很好]

socket编程基础3(和TCP/IP的关系)

socket编程基础2(socket API函数介绍)

----------------select和poll----------------------

select系统调用与FD_SET,FD_ISSET,FD_ZERO

linux socket的select函数例子

select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET

FD_SET,FD_ISSET

FD_ISSET read 后程序被阻塞

Linux 内核的排队自旋锁(FIFO Ticket Spinlock  Ticket spinlocks

linux-3.4.2之poll机制分析

按键驱动程序之poll机制实现

Poll机制分析(转韦东山)

--------------------------------------

epoll

Linux2.6内核epoll介绍(0.1版本)  [很好]

使用多线程还是用IO复用select/epoll? epoll 或者 kqueue 的原理是什么?

linux 网络编程【五】 非阻塞通信epoll

epoll使用详解(精髓)

如何使用 epoll? 一个 C 语言实例

网络编程--IO模型示例

socket阻塞与非阻塞,同步与异步、I/O模型

我读过的最好的epoll讲解

Linux Epoll介绍和程序实例

linux epoll用法

学习写epoll的示例代码

file-max与ulimit的关系与差别  /proc/sys/fs/file-max

epoll_create, epoll_ctl和epoll_wait

使用epoll进行高性能网络编程[翻译]

高并发的epoll+线程池,业务在线程池内

多线程epoll

epoll和select I/O模型研究

linux下的常用I/O模型

多进程服务器中,epoll的创建应该在创建子进程之后

epoll+多进程实现简单的服务器端

Linux网络编程一步一步学-epoll同时处理海量连接的代码

EPOLL+FIFO多进程通信简单示例

epoll精髓

一个epoll/aio/eventfd结合使用的简单例子

linux下epoll模型accept并发问题

linux AIO (异步IO) 那点事儿 [转]

----------tcpdump-------------------

基于tcpdump实例讲解TCP/IP协议

Linux tcpdump命令详解

TCP三次握手及四次挥手详细图解

tcpdump抓包分析详解(转载)

---------------------------------------------------

监控

Linux下Nagios的安装与配置

CentOS上安装Zabbix

企业应用监控利器-ZABBIX

使用Cacti监控你的网络(二)- Cacti的安装

==========================

算法和数据结构

一致性哈希算法及其在分布式系统中的应用

一致性哈希PHP实现flexihash版 [很好]

海量数据处理算法—Bit-Map

数据结构多媒体演示

使用SquirrelMQ打造一个千万级数据更新量的应用

B树的实现

由浅入深探究mysql索引结构原理、性能分析与优化

How browsers work--Behind the scenes of modern web browsers (前端必读)

跨越千年的RSA算法

伸展树的点点滴滴

动态规划那些事

线性时间排序算法

算法系列---回溯算法

扔鸡蛋问题详解(Egg Dropping Puzzle)

MySQL索引背后的数据结构及算法原理

跳跃表(数据结构)

SkipList跳表基本原理

跳表(Skip List)的介绍以及查找插入删除等操作

Skip List(跳跃表)原理详解与实现

SkipList 跳表

Win32 环境下的堆栈

海量存储系列之七

关于位图索引

位图索引(Bitmap Index)——索引共用 [很好]

堆的相关操作-最大堆,最小堆,堆排序,优先队列等

Oracle编程高手箴言:位图索引(Bitmap Index)的故事

教你如何迅速秒杀掉:99%的海量数据处理面试题[很好]

字符串相关算法问题 [很好]

C语言单链表实现19个功能完全详解[还可以]

Unique索引优化实践

位运算符及其应用

海量数据处理 算法总结

海量数据处理算法—Bit-Map

海量数据处理算法—Bloom Filter

Trie树:应用于统计和排序

白话经典算法系列之六 快速排序 快速搞定

=============================

C语言

 

编写你的第一个垃圾收集器

ldd命令原理与使用

FastCGI开发者套件

C调用C++静态库

C和C++之间库的互相调用

C如何调用C++的库

为什么不常见include .c文件 [如果是include .c文件 在make文件中不能包含被include文件了否则编译不过去]

C/C++数组名与指针区别深入探索  [很好]


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Lua循环中变相实现continue的功能:用repeatuntil或goto?发布时间:2022-07-22
下一篇:
Mac OS 上Sublime Text 2配置lua环境发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap