Linux内核
Leo丶Fun
这个作者很懒,什么都没留下…
展开
-
学习linux内核,都看哪些书?
1. 了解操作系统基本概念。如果不会,可以学习《操作系统:设计与实现》Andrew S.Tanenbaum 写的那本。以MINIX为例子讲解操作系统的概念。非常推荐。2. 有了操作系统的基本概念以后,可以了解Linux的机制了。推荐《Linux内核设计与实现》Robert Love 写的。这本书从概念上讲解了Linux有什么,他们是怎么运行的。这本书要反复认真看透。3. 有了Lin转载 2018-02-01 11:14:08 · 550 阅读 · 0 评论 -
内核kconfig语法介绍
https://blog.csdn.net/jianwen_hi/article/details/53398141转载 2019-02-05 20:29:29 · 348 阅读 · 0 评论 -
19年linux驱动笔记
1.管道(pipe)是一种用来连接两个进程的虚拟文件,当进程A欲向进程B发送数据时,它把管道文件视作输出文件,向其中写数据,进程B则可将管道文件视作输入文件,从中读数据。于是,进程A和B之间的通信很像普通文件的读写。2.MINIX中进程的存储空间分为三部分:正文段(即代码段),数据段(即变量),和堆栈段。3.MINIX中一个简单的系统调用getpid返回调用进程的进程标识号,注意在调用fo...原创 2019-01-31 16:35:22 · 663 阅读 · 0 评论 -
linux内核源码之main函数解析
这几天一直在纠结:main函数是程序的入口,一个程序启动后,经过bootloader的初始化就该经main函数进入C语言的世界,但是linux中每个应用程序的开始都是从main函数开始的。linux下有多个应用程序,岂不是有很多个main。那bootloader会知道跳到哪个main?多个main编译怎么不冲突?在网上搜索了很久,渐渐的有些明白了:1、main函数是C语言的入口,...原创 2019-01-31 14:05:44 · 7777 阅读 · 1 评论 -
Linux内存管理(二)——slab层
原创 2018-05-16 18:44:12 · 354 阅读 · 0 评论 -
Linux内存管理(一)
背景本篇博客试图通过linux内核源码分析linux的内存管理机制,并且对比内核提供的几个分配内存的接口函数。然后聊下slab层的用法以及接口函数。内核分配内存与用户态分配内存内核分配内存与用户态分配内存显然是不同的,内核不可以像用户态那样奢侈的使用内存,内核使用内存一定是谨小慎微的。并且,在用户态如果出现内存溢出因为有内存保护机制,可能只是一个报错或警告,而在内核态若出现内存溢出后果就会严重的多...转载 2018-05-16 17:03:58 · 265 阅读 · 0 评论 -
What's QEMU-KVM
从前面的介绍可知,KVM负责cpu虚拟化+内存虚拟化,实现了cpu和内存的虚拟化,但kvm并不能模拟其他设备,还必须有个运行在用户空间的工具才行。KVM的开发者选择了比较成熟的开源虚拟化软件QEMU来作为这个工具,QEMU模拟IO设备(网卡,磁盘等),对其进行了修改,最后形成了QEMU-KVM。在QEMU-KVM中,KVM运行在内核空间,QEMU运行在用户空间,实际模拟创建、管理各种虚拟硬件,QE...转载 2018-05-27 14:52:30 · 164 阅读 · 0 评论 -
用Qemu运行/调试arm linux
用Qemu运行/调试arm linux用Qemu运行/调试arm linux,这事情干过好几次了,久了就忘记了,每次都要重新去查资料,浪费不少时间。这次把整个过程弄成个脚本,放到github上,需要是拿下来运行一下即可,方便自己也方便有需要的朋友。这里解释一下脚本的内容(运行系统Ubuntu 16.04 LTS):1. 设置一些环境变量,可以根据自己需要修改。export ARCH=armexp...转载 2018-05-14 20:04:06 · 388 阅读 · 0 评论 -
内核编译
转载 2018-05-04 22:01:37 · 129 阅读 · 0 评论 -
内核中没有内存保护机制
原创 2018-05-04 21:45:37 · 707 阅读 · 0 评论 -
内核不能使用printf函数的原因——无法调用C库函数
原创 2018-05-04 21:18:01 · 1948 阅读 · 0 评论 -
Linux内核之时钟中断
原创 2018-05-10 21:15:25 · 730 阅读 · 0 评论 -
Linux系统调用过程
Linux系统通过软中断方式通知内核需要执行系统调用,通过引发一个异常来促使系统切换到内核态去处理异常程序,这个异常程序就是系统调用。原创 2018-05-10 16:48:18 · 1218 阅读 · 1 评论 -
利用 qemu 模拟嵌入式系统制作全过程
这篇文章,将介绍如何用qemu来搭建一个基于ARM的嵌入式linux系统。通过该文章,你可以学习到如何配置kernel,如何交叉编译kernel,如何配置busybox并编译,如何制作initramfs,如何制作根文件系统,如何定制自己的uboot,如何通过uboot向kernel传递参数等。开始干活!1 环境搭建在实现我们的目标之前,我们需要搭建自己的工作环境。在这里,假设你的主机上已经有 gc...转载 2018-04-30 14:38:52 · 2958 阅读 · 0 评论 -
内核工程师必备技能——无开发板调试工具Qemu
为什么会有这篇文章早在2011年的时候,跟当时同事一起讨论,做Linux系统开发正处于整个Linux开发中间层,没有上层的C/C++业务和数据库的开发经验,也没有底层的内核和驱动开发经验,到底路该如何走……基于对Linux系统开发的理解和内核的兴趣,认为选择Linux内核开发更适合自己。于是到淘宝上买了块三星s3c2440(arm 9)开发板,学起内核开发。没有过多久,机缘巧合,正式加入了公司的内...转载 2018-04-30 14:30:49 · 686 阅读 · 1 评论 -
Linux内核的整体架构简介
1. 前言 本文是“Linux内核分析”系列文章的第一篇,会以内核的核心功能为出发点,描述Linux内核的整体架构,以及架构之下主要的软件子系统。之后,会介绍Linux内核源文件的目录结构,并和各个软件子系统对应。注:本文和其它的“Linux内核分析”文章都基于如下约定: a) 内核版本为Linux 3.10.29(该版本是一个long term的版本,会被Linux社区转载 2018-02-01 13:04:18 · 315 阅读 · 0 评论 -
linux内核下载地址
http://www.kernel.org/pub/linux/kernel/原创 2018-02-01 11:43:38 · 777 阅读 · 0 评论 -
内核调试 /proc/kmsg 和 dmesg
dmesg 打印内核启动过程的所有信息,/proc/kmsg也是打印内核的信息, 但是与dmesg 有不同, 第一次执行/proc/kmsg 打印到目前位置的所有内核信息,再次执行/proc/kmsg,不打印打印过了的信息,打印第一次执行之后的信息,下面举个例子:第一次执行dmesg打印:ABC第一次执行/proc/kmsg打印:ABC第二次执行dmes...转载 2019-08-09 14:54:53 · 2071 阅读 · 0 评论