转自--http://five.rdaili.com/sohu.com.php?u=Mq3EniVnae0axim7jkGhH0IhA9uho6CQso7R1aYomXWJ9UemfwUQYmKRc82H5yiImrEY&b=3 Linux Kernel 的穩定,有一部份可以歸功於它優良的記憶體管理機制,而探討該機制,有助於瞭解記憶體是如何被 Kernel 所使用,對開發 Linux Driver 的人來說,日後更有許多益處.最重要的是,Linux Kernel 之美是由此開始,優美的設計相當令…
Linux 用 ps 與 top 指令找出最耗費 CPU 與記憶體資源的程式 2016/12/220 Comments  ######### ps -eo pid,ppid,%mem,%cpu,cmd --sort=-%cpu | head   [root@localhost ~]# ps -eo pid,ppid,%mem,%cpu,cmd --sort=-%cpu | head PID PPID %MEM %CPU CMD11533 11358 1.1 70.1 mate-panel1156…
1. [Linux]釋放記憶體指令(cache) http://jeffreyy.pixnet.net/blog/post/84333764-%E3%80%90linux%E3%80%91%E9%87%8B%E6%94%BE%E8%A8%98%E6%86%B6%E9%AB%94%E6%8C%87%E4%BB%A4%28cache 2. Linux 手動回收 已經被 Cache 的記憶體 https://blog.longwin.com.tw/2010/10/linux-cached-memory…
解開32位元Win 7記憶體4GB限制: ReadyFor4GB 檔案下載:ReadyFor4GB https://sites.google.com/a/joytown.tw/bai-jia-zhi/Home/download/ReadyFor4GB.zip 1.右鍵點擊滑鼠,選擇以管理員身份執行「ReadyFor4GB.exe」.點擊程式下方的「應用」按鈕, 就開始了破解過程.接下來程式會詢問是否破解內核,當然是點擊「OK」啦! 2.上面步驟做完後,破解的過程完成了一半.此時系統有兩個內核檔案…
cat /proc/meminfo https://blog.longwin.com.tw/2013/05/linux-ram-memory-info-2013/…
kernel中使用net_device结构来描述网络设备,这个结构是网络驱动及接口层中最重要的结构.该结构不仅描述了接口方面的信息,还包括硬件信息,致使该结构很大很复杂.通过这个结构,内核在底层的网络驱动和网络层之间构建了一个网络接口核心层(这个叫法引自<TCP迁移报告>),这个中间层类似于文件子系统的VFS.这样底层的驱动程序就不需要过多地关注上层的网络协议,只需要通过内核提供的网络接口核心层就可以很方便将和网络层进行数据的交互.而网络层在向下发送数据时,只需要通过内核提供的这个中间层进行交…
1 Pages Page的概念来源为处理器Processor的部件MMU(Memory Management Unit),MMU通过设置好的页表(通过设置CR3寄存器,指向页目录所在的物理内存)对内存进行管理,管理操作包括: a) 建立线性内存地址与物理内存地址的对应关系,即pa()和va()函数: b) 管理哪些内存页驻存(Resident)于物理内存中,而哪些内存被交换到Swap文件中: c) 哪些内存页被映射到哪个进程的虚拟地址空间: d) 管理哪些内存页存储磁盘上(或者文件系统中)文件的…
http://loda.hala01.com/2011/12/linux-kernel-%E6%8E%92%E7%A8%8B%E6%A9%9F%E5%88%B6%E4%BB%8B%E7%B4%B9/ Linux Kernel 排程機制介紹 Linux Kernel 排程機制介紹 hlchou@mail2000.com.tw by loda. 2011/12/2 多核心架構儼然是目前智慧型手機方案的新趨勢,隨著省電與效能上的考量,多核心的架構各家方案也都有所差異.為能讓同一個Linux Kerne…
转自:https://zohead.com/archives/linux-kernel-learning-memory-management/ 本文同步自(如浏览不正常请点击跳转):https://zohead.com/archives/linux-kernel-learning-memory-management/ 接着之前的 Linux kernel 学习步伐,来到极其重要的内存管理部分,继续本文内容,需要先了解内存寻址的基础知识,见之前的 [内存寻址] 博文. 1.内存页及内存区域: 正如…
linux kernel 内存管理是个很大的话题,这里记录一点个人关于slab模块的一点思考总结. 有些书把slab介绍成高速缓存,这会让人和cache,特别是cpu cache混淆,造成误解.slab最开始的目的是解决频繁内存分配的效率问题,所以把频繁分配回收的对象,预先分配并初始化好,后面的对象分配回收主要就是对象管理数据的维护工作.linux kernel 通过把整个物理内存划分成以一个个page进行管理,管理器就是伙伴系统,它的最小分配单元就是page.但是对于小于page的内存分配,如…
转自:https://zohead.com/archives/linux-kernel-learning-memory-management/ 本文同步自(如浏览不正常请点击跳转):https://zohead.com/archives/linux-kernel-learning-memory-management/ 接着之前的 Linux kernel 学习步伐,来到极其重要的内存管理部分,继续本文内容,需要先了解内存寻址的基础知识,见之前的 [内存寻址] 博文. 1.内存页及内存区域: 正如…
void * kmalloc(size_t size, gfp_t gfp_mask); kmalloc()第一个参数是要分配的块的大小,第一个参数为分配标志,用于控制kmalloc()的行为. kmalloc()的底层依赖于__get_free_pages()来实现,分配标志的前缀GFP正好是这个底层函数的缩写. GFP_ATOMIC:在中断处理函数.底半部.tasklet.定时器处理函数以及URB完成函数中,在调用者持有自旋锁或读写锁时以及当驱动将current->state修改为非TASK…
http://blog.csdn.net/blizmax6/article/details/6747601 linux内核调试指南 一些前言 作者前言 知识从哪里来 为什么撰写本文档 为什么需要汇编级调试 ***第一部分:基础知识*** 总纲:内核世界的陷阱 源码阅读的陷阱 代码调试的陷阱 原理理解的陷阱 建立调试环境 发行版的选择和安装 安装交叉编译工具 bin工具集的使用 qemu的使用 initrd.img的原理与制作 x86虚拟调试环境的建立 arm虚拟调试环境的建立 arm开发板调试环…
    今天看到一转帖如下: Linux Kernel 2.6.28 以上有缺陷,在第208.5天自行重啟 https://access.redhat.com/knowledge/solutions/68466 sched_clock() overflow around 208.5 days in Linux Kernellast modified by Raghu Udiyar on 04/10/12 - 09:12Issue Linux Kernel panics when sched_cl…
文章目录 关于linux内核中的__attribute__关键字 Linux kernel启动参数 gdt / ldt PCB 关于linux内核中的__attribute__关键字 part I: 原文出处:http://www.jollen.org/blog/2006/10/_gcc___attribute.html gcc 提供一種「定義函數屬性(attribute)」的語法,也就是前一篇日記我們所提到的 __attribute__標籤.__attribute__用來讓我們定義函數的行為,…
要講到事件傳播機制之前,首先要瞭解的是 什麼是事件? 事件,發生在靜態頁面與動態行為之間的交互行為.是JavaScript 和 HTML的交互是通过事件实现的.比如,按鈕的點擊,鼠標的滑過,鍵盤的輸入等由鍵盤,鼠標行為引起的一連串的“多米諾反應”.這一反應就形成了事件流. 事件流分兩部分: ①事件冒泡: 從具體的“div”對象到最外層不具體的Document等任意外層元素包涵體. ②事件捕獲; 捕獲,是從最外層元素一直追溯到具體的元素上,追本溯源的執著!! 那麼,完整的事件流就是事件捕獲+事件冒…
转载自:http://blog.csdn.net/dreamxu/article/details/6125545 http://www-900.ibm.com/developerWorks/cn/linux/kernel/l-kerconf/ 上面这篇文章针对的系统相对较老点. 后来又找到了一篇新的文章: http://blog.csdn.net/estate66/archive/2010/09/15/5886816.aspx   因为在2.6.36的内核中,已经没有config.in文件.取而…
============================================================================== 深入linux kernel内核配置选项 ============================================================================== 如果自己不亲自实践配置的话,你永远也体会不到内核的真实所在. 使用过linux的发行版之一gentoo的话,你应该知道这是一个彻头彻尾的自定义…
首先介绍一下背景吧,工作三个星期了.复习了一波u-boot,跟了一下事件上报,搞了下平台设备,扣了一个内存检查代码. 想想生活是不是有点无聊.对啊,真的很无聊!!!! 无聊也没有办法啊,所以找点方法去跟上生活的节奏. 第一天,就稍微讲一下linux  kernel 是干吗的吧. 前面介绍的u-boot做的不好我知道,但是慢慢来吧 kernel  是干嘛的,有很多人有这个疑问,在很久以前我也有这个疑问,我在很长一段时间都认为kernel 就是一堆驱动的集合,这个说是正确也是正确,但是不全面. 在现…
目录 . 引言 . Linux 中断的概念 . 中断处理流程 . Linux 中断相关的源代码分析 . Linux 硬件中断 . Linux 软中断 . 中断优先级 . CPU在关中断状态下编程要注意的事项 0. 引言 中断是现代计算机体系结构的重要组成部分,我们回顾历史,现代体系结构的基本输入输出方式有三种 . 程序查询: CPU周期性询问外部设备是否准备就绪.该方式的明显的缺点就是浪费CPU资源,效率低下.但是在特定的场景下这种"程序查询"的方式还有有它的用武之地的 例如,在网络驱…
参考资料: <ARM体系结构与编程> <嵌入式Linux应用开发完全手册> Linux_Memory_Address_Mapping http://www.chinaunix.net/old_jh/4/1021226.html 更多文档参见:http://pan.baidu.com/s/1mg3DbHQ 本文针对arm linux, 从kernel的第一条指令开始分析,一直分析到进入start_kernel()函数. 我们当前以linux-2.6.19内核版本作为范例来分析,本文中…
导读 今天,大神Linus Torvalds宣布了Linux 4.8分支的第四个候选版本,该候选版本在提供常规驱动更新.架构改善和部分KVM调整之外最大的新功能就是修复了英特尔Skylake电源管理BUG. Linus Torvalds在今天的声明中写道:“一切同往常一样,但是该版本比RC3要平静很多,所以我们非常希望接下来能够进入‘冷静’阶段.不管怎么说,该候选版本非常的小.” 如果不出意外,我们有望在下周看到RC5里程碑版本.在此之后只剩下两个候选版本,再接下来Linux Kernel 4.…
本文分为概述.历史.el7.2代码架构图解三部分. 解决的问题: a.Kernel调度发展过程: b.以架构图的方式,详解el7.2具体调度实现.内核线程模型.调度时间片计算,以及探究整个Kernel实际运行过程.   1.概述     现代操作系统,通过虚拟化CPU及内存,来达到最大化硬件能力的目的         a.内存虚拟化:             每个task都有自己独立的虚拟内存地址空间,然后映射到physical memory:实际内存总量是一定的,为了使多个程序同时.正常的运行…
了解完kernel启动以前的汇编之后我们来看看正式的c语言启动代码,也就是我们的start_kernel函数了.start_kernel相当大,里面每一个调用到的函数都足够我们伤脑筋了,我这里只是浅尝辄止的描述一下函数的功能,从而对kernel启动的过程有一个比较直观的了解.很多函数真正理解需要对linux相关体系有很深的了解,暂时没有时间深入,留待以后了. 说实话启动的代码看到现在唯一的感觉就是kernel的全局变量实在太多了,要了解一个过程跟踪一个变量的值的变化相当痛苦啊,不过耐心看下来,收…
  Linux下,I/O处理的层次可分为4层: 系统调用层,应用程序使用系统调用指定读写哪个文件,文件偏移是多少 文件系统层,写文件时将用户态中的buffer拷贝到内核态下,并由cache缓存该部分数据 块层,管理块设备I/O队列,对I/O请求进行合并.排序 设备层,通过DMA与内存直接交互,将数据写到磁盘 下图清晰地说明了Linux I/O层次结构: 写文件过程 写文件的过程包含了读的过程,文件先从磁盘载入内存,存到cache中,磁盘内容与物理内存页间建立起映射关系.用于写文件的write函数…
The page cache caches pages of files to optimize file I/O. The buffer cache caches disk blocks to optimize block I/O. Page Cache缓存文件内容以优化文件I/O,Buffer Cache缓存磁盘blocks以优化block I/O. 注释:Block 块是用来管理磁盘空间的,而Page 页是针对内存管理,从磁盘读出的数据就缓存在内存页中.当一个块被调入到内存中,它要被存储在…
https://www.ibm.com/developerworks/cn/linux/l-cache/ 1 前言 自从诞生以来,Linux 就被不断完善和普及,目前它已经成为主流通用操作系统之一,使用得非常广泛,它与 Windows.UNIX 一起占据了操作系统领域几乎所有的市场份额.特别是在高性能计算领域,Linux 已经成为一个占主导地位的操作系统,在2005年6月全球TOP500 计算机中,有 301 台部署的是 Linux 操作系统.因此,研究和使用 Linux 已经成为开发者的不可回…
Linux内核作用: The Linux kernel is the heart of the operating system. It is the layer between the user who works with Linux from a shell environment and the hardware that is available in the computer on which the user is working. The kernel is doing so b…
现在开源如此火爆.以至于张口闭口不提到都仿佛不是搞IT 的.那么怎样拥抱开源?本文适合刚開始学习的人,如有大神至此,goto exit ! 一.怎样增加开源 以Linux 为例,这么一个成功的开源项目须要做哪些工作?一个开源项目.研发人员都是时间以及空间上分散的,那么怎样联系怎样相互讨论成为一个非常重要非常重要的问题! Linux 或者说更早的开源都是基于邮件列表以及IRC 这两个核心的联系方式: 邮件列表(Mailing List)的起源能够追溯到1975年,是互联网上最早的社区形式之中的一个…
欢迎转载,转载时请保留作者信息,谢谢. 邮箱:tangzhongp@163.com 博客园地址:http://www.cnblogs.com/embedded-tzp Csdn博客地址:http://blog.csdn.net/xiayulewa     这篇文章写的很好:Linux中的内存管理   http://blog.chinaunix.net/uid-26611383-id-3761754.html     arm mmu硬件原理     由上图,arm分四种模式,section,大小页…