
LINUX/UNIX
uefi_artisan
这个作者很懒,什么都没留下…
展开
-
申请分配物理页面的操作
#define __get_free_page(gfp_mask) \ __get_free_pages((gfp_mask),0)/* * Common helper functions. */unsigned long __get_free_pages(int gfp_mask, unsigned long order){ struct page * page; page = alloc_pages(gfp_mask, order); if (!page) return .原创 2021-10-30 16:12:45 · 1263 阅读 · 0 评论 -
可执行文件的内部长啥样
在linux里面,不管是用户空间的应用程序还是各种库,包括内核本身也是ELF格式的。layout以及结构每一个section里面都放着相关文件的各种信息,比如,符号表,以及实际的二进制代码,还有一些固定值的内容,像字符串,程序中用到的常量。我们可以用readelf来分析ELF文件的结构。我们用上面这个程序来阐明可执行文件是怎样生成的。root@ubuntu:/home/max# gcc test.c -o testroot@ubuntu:/home/max# ...原创 2021-03-14 19:32:25 · 1771 阅读 · 0 评论 -
进程的诞生
进程是Linux 内核最基本的抽象之一,它是处于执行期的程序,或者说“进程=程序+运行”。 但是进程并不仅局限于一段可执行代码(代体段), 它还包括进程需要的其他资源,例如打开的文件,挂起信号量、内存管理、处理器状态、一个或者多个执行线和和数据段。Linux 内核通常把进程叫作是任务(task), 因此进程控制块(processing control block, PCB) 也被命名为 struc...转载 2018-09-03 21:14:11 · 296 阅读 · 0 评论 -
中断管理
注册中断 当一个外设中断发生后,内核会执行一个函数来响应该中断,这个函数通常被称为中断处理程序(interrupt handler) 或者中断服务例程。中断处理程序是内核用于响应中断的,并且它运行在中断上下文中。中断处理程序最基本的工作是通知硬件设备中断已经被接收,不同的理件设备中断处理程序是不同的,有的常常需要做很多的处理工作,这也是Linux内核把中断处理程序分成...原创 2018-09-09 08:55:23 · 538 阅读 · 0 评论 -
SoftIRQ 软中断
软中断是Linux 内核很早引入的机制,最早可以追溯到Linux2.3 开发期间,软中断是预留给系统中对时间要求最为严格和最重要的下半部使用的,而且目前驱动中只有块设备和网络子系统使用了软中断。系统静态定义了苦干种软件中断类型,并且Linux内核开发者不希望用户再扩充软中断类型,如有需要,建议使用tasklet 机制。已经定义好的软件中断类型如下:/* PLE...原创 2018-09-09 22:37:49 · 666 阅读 · 0 评论 -
Linux 信号
如前所述,信号(signal) , 亦称软中断,是在软件层次上对中断的一种模拟,从概念上说,一个进程接收到一个信号与一个处理器接收到一个中断请求是一样的,而一个进程可以向另一个进程发送信号,也跟在多处理器系统中一个处理器可以向其他处理器发出中断请求一样,当然,对一个处理器的中断请求不一定来自其他处理器,也可以来自各种中断源,甚至来自处理器本身。相应地,信号也不一定者来自其他进程,也可来自不同的来源...转载 2018-10-19 22:22:11 · 223 阅读 · 0 评论 -
给ubuntu 系统更换“心脏”
1. 实验目的学会如何给linux 系统更换最新版本的Linux内核 学习如何编译和安装Linux 内核2.实验步骤在编译linux 内核之前, 需要安装如下软件包sudo apt-get install libncurses-dev libssl-dev build-essential openssl到Linux 内核的官方网站中下载最新的版本可...转载 2019-04-20 18:58:10 · 274 阅读 · 0 评论 -
malloc
malloc() 函数是C语言中内存分配函数,malloc() 函数就C函数库封装的一个核心函数,C函数库会做一些处理后调用 Linux内核系统去调用brk, 所以大家并不太熟悉brk 的系统调用,原因在于很少有人会直接使用系统调用brk 向系统申请内存,而总是通过malloc() 之类的C函数库的API 函数。如果把malloc() 想像成零售,那么brk 就是代理商。malloc 函数...转载 2018-09-08 21:28:32 · 406 阅读 · 0 评论 -
CFS 调度器
Linux 内核作为一个通用操作系统,需要兼顾各种各样类型的进程,包括实时进程、交互式进程、批处理进程等。每种类型进程都有其特别的形为特征,总结如下:交互式进程: 与人机交互的进程,和鼠标、键盘、触摸屏等相关的应用,例如 VIM 编辑器等,它们一直在睡眠同时等待用户召唤它们。这类进程的特点是系统响应时间越快越好,否则用户就会抱怨系统卡顿。 秕处理进程:此类进程默默地工作和付出,可能会...转载 2018-09-04 23:02:16 · 358 阅读 · 0 评论 -
xv6 一个简单的,类unix适于教学的操作系统
Contents0 操作系统接口1 第一个进程2 页表3 陷阱(traps), 中断,以及驱动4 锁5 调试 (scheduling)6 文件系统A PC 硬件B boot loaderindex前言以及致谢这个是为操作系统课程写的草稿,它通过一个叫xv6的内核来解释操作系统中的主要概念,xv6 重新实现的Dennis Ritchi原创 2014-02-18 12:31:49 · 5871 阅读 · 0 评论 -
Interfupt Handling
Although some devices can be controlled using nothing but neither I/O regions, most real devices are a bit more complicated than that. Devices have to deal with the external world. Which often include转载 2013-05-11 20:29:02 · 817 阅读 · 0 评论