linux58
码龄13年
关注
提问 私信
  • 博客:62,866
    社区:851
    63,717
    总访问量
  • 8
    原创
  • 1,680,148
    排名
  • 6
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2012-06-09
博客简介:

linux58的专栏

查看详细资料
个人成就
  • 获得10次点赞
  • 内容获得1次评论
  • 获得31次收藏
创作历程
  • 31篇
    2017年
  • 4篇
    2014年
  • 21篇
    2012年
兴趣领域 设置
  • 数据结构与算法
    排序算法
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

357人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Linux Highmem的使用

http://blog.csdn.net/kickxxx/article/details/8595189Linux kernel zone有如下类型:ZONE_DMA, ZONE_NORMAL和ZONE_HIGHMEM。每一种zone类型适合不同的使用类型:ZONE_DMA是低端物理内存范围适合于ISA设备的请求,ZONE_DMA的物理页框映射到kernel线性
转载
发布博客 2017.09.07 ·
1248 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Linux中slab的使用方法实例

下面的代码片断展示了创建新 slab 缓存、从缓存中分配和释放对象然后销毁缓存的过程。首先,必须要定义一个 kmem_cache 对象,然后对其进行初始化static struct kmem_cache *idr_layer_cache;void __init idr_init_cache(void){ idr_layer_cache = kmem_cache_create("idr_l
原创
发布博客 2017.08.24 ·
854 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

gcc attribute weak & alias应用

1          gcc attribute weak & alias应用alias ("target")The alias attribute causesthe declaration to be emitted as an alias for another symbol, which must bespecified. For instance,    
转载
发布博客 2017.08.17 ·
374 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

linux 用宏区分函数的一个常用技巧

头文件中如此定义:#ifdef CONFIG_MMUextern void __init vmalloc_init(void);#elsestatic inline void vmalloc_init(void){}#endif另外一个文件中实现实体void __init vmalloc_init(void){struct vmap_area *va
原创
发布博客 2017.08.16 ·
335 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

linux CPU hotplug中断迁移

找到当前CPU上的中断,通过cpu_online_mask和affinity找到新的CPU,通过desc->chip->set_affinity进行迁移和route#ifdef CONFIG_HOTPLUG_CPUstatic void route_irq(struct irq_desc *desc, unsigned int irq, unsigned int cpu)
原创
发布博客 2017.08.16 ·
2067 阅读 ·
0 点赞 ·
1 评论 ·
2 收藏

__asm__ __volatile__内嵌汇编用法简述

__asm__ __volatile__内嵌汇编用法简述 在阅读C/C++原码时经常会遇到内联汇编的情况,下面简要介绍下__asm__ __volatile__内嵌汇编用法。带有C/C++表达式的内联汇编格式为:__asm__ __volatile__("Instruction List" : Output : Input : Clobber/Modify);其中每项的概念
转载
发布博客 2017.08.15 ·
276 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

ARM嵌入式开发中的GCC内联汇编简介

http://blog.csdn.net/ce123_zhouwei/article/details/8209702ARM嵌入式开发中的GCC内联汇编简介在针对ARM体系结构的编程中,一般很难直接使用C语言产生操作协处理器的相关代码,因此使用汇编语言来实现就成为了唯一的选择。但如果完全通过汇编代码实现,又会过于复杂、难以调试。因此,c语言内嵌汇编的方式倒是一个不错的
转载
发布博客 2017.08.15 ·
391 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Linux CPU mask含义

CPU mask 信息 解释cpu_possible_mask系统内可以setup的CPU位图cpu_online_mask系统内已经setup的CPU中,正在使用的CPU位图cpu_present_mask系统内已经setup的CPU位图cpu_active_mask系统内处于可工作状态CPU位图,处于联机状态且可以迁移的CPU
原创
发布博客 2017.08.14 ·
4321 阅读 ·
1 点赞 ·
0 评论 ·
5 收藏

Linux内存管理--基本概念

版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]1. Linux物理内存三级架构     对于内存管理,Linux采用了与具体体系架构不相关的设计模型,实现了良好的可伸缩性。它主要由内存节点node、内存区域zone和物理页框page三级架构组成。    • 内存节点node       内存节点node是计算机系统中对物理内存的
转载
发布博客 2017.08.10 ·
286 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Understanding Caching(深入理解cache)

http://www.linuxjournal.com/article/7105Since the earliest days of microprocessors, system designers have been plagued by a problem in which the speed of the CPU's operation exceeded the bandwid
转载
发布博客 2017.08.10 ·
579 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

cache 浅析

http://blog.chinaunix.net/uid-26817832-id-3244916.html1.CacheCache一词来源于法语,其原意是“藏匿处,隐秘的地方”,而自从被应用于计算机科学之后,就已经成为了英语中的一个计算机体系结构专有名词。Sun Microsystems的前首席科学家Billy Joy,作为BSD unix,csh,vi,NFS,java,TCP
转载
发布博客 2017.08.09 ·
320 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

计算机科学基础知识(一):The Memory Hierarchy

http://www.wowotech.net/basic_subject/memory-hierarchy.html一、前言最近一个问题经常萦绕在我的脑海:一个学习电子工程的机械师如何称为优秀的程序员?(注:本文作者本科学习机械设计,研究生转到电子工程系学习,毕业后却选择了系统程序员这样的职业)。经过思考,我认为阻挡我称为一个优秀程序员的障碍是计算机科学的理论知识。自然辩证法
转载
发布博客 2017.08.09 ·
3476 阅读 ·
4 点赞 ·
0 评论 ·
9 收藏

ARM MMU页表框架

http://blog.csdn.net/xiaojsj111/article/details/11065717ARM MMU页表框架先上一张arm mmu的页表结构的通用框图(以下的论述都由该图来逐渐展开):以上是arm的页表框图的典型结构:即是二级页表结构:其中第一级页表(L1)是由虚拟地址的高12bit(bits[31:20])组成,所以第一级
转载
发布博客 2017.08.08 ·
1453 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

linux arm的存储分布那些事

http://blog.csdn.net/xiaojsj111/article/details/11724081linux arm 内存分布总览上图是linux的arm的虚拟地址分布总览,我们按从低地址到高地址的顺序逐个描述,每项的描述包括如下的内容的组和:地址范围大小,虚拟转物理的接口函数,各个区域对应的分配函数,该区域有什么作用,使用
转载
发布博客 2017.08.08 ·
785 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

内核地址空间的划分

整个内核地址空间的划分请参见下图:图中PAGE_OFFSET=0xc0000000,TEXT_OFFSET=0x00008000在arch/arm/makefile中指定,swapper_pg_dir=0x00004000在head.S中指定。    地址空间的第一段用于将系统的所有物理内存页映射到内核的虚拟地址空间中。由于内核地址空间从偏移量0xc000000
转载
发布博客 2017.08.07 ·
1610 阅读 ·
2 点赞 ·
0 评论 ·
1 收藏

什么是write-allocate policy?

在有cache的单机系统中,通常有两种写策略:write through和write back。这两种写策略都是针对写命中(write hit)情况而言的:write through是既写cache也写main memory;write back是只写cache,并使用dirty标志位记录cache的修改,直到被修改的cache 块被替换时,才把修改的内容写回main memory。那么在写失效(
转载
发布博客 2017.08.07 ·
1343 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

arm CP15 c1 Control Register

http://blog.csdn.net/panfengsoftware/article/details/7915605The Control Register provides control and configuration of:memory alignment, endianness, protection, and fault behavio
转载
发布博客 2017.08.07 ·
654 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

setup_arch()函数分析4--cpu_init

http://blog.csdn.net/boarmy/article/details/8652768arch/arm/kernel/setup.cstruct stack {    u32 irq[3];    u32 abt[3];    u32 und[3];} ____cacheline_aligned;/* * cpu_init - initi
转载
发布博客 2017.08.03 ·
334 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

BITS_TO_LONGS宏的作用

[Linux-3.0]BITS_TO_LONGS定义在:include/linux/bitops.h#define BITS_PER_BYTE        8#define BITS_TO_LONGS(nr)    DIV_ROUND_UP(nr, BITS_PER_BYTE * sizeof(long))DIV_ROUND_UP定义在:inclu
转载
发布博客 2017.08.03 ·
407 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

关于kmalloc、vmalloc及kmap

http://blog.csdn.net/gxfan/article/details/27234551、  kmalloc()是内核中最常见的内存分配方式,它最终调用伙伴系统的__get_free_pages()函数分配,根据传递给这个函数的flags参数,决定这个函数的分配适合什么场合,如果标志是GFP_KERNEL则仅仅可以用于进程上下文中,如果标志GFP_ATOMIC则可以用于中断上
转载
发布博客 2017.08.02 ·
430 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多