Linux 中的信号处理流程
前言 信号处理是操作系统很重要的工作之一,信号是一种异步软中断,在进程间通信中有着很大的应用。 例如,你在运行一个程序,它陷入了死循环,无法对其
前言 信号处理是操作系统很重要的工作之一,信号是一种异步软中断,在进程间通信中有着很大的应用。 例如,你在运行一个程序,它陷入了死循环,无法对其
前言 在上一篇文章中介绍了 kvmtool 的 run 命令的初始化流程,其中涉及多个子模块的初始化,包括 cpu、内存已经外设等。这些都是正式启动系统构建的虚拟硬件环
前言 在 kvm 学习的前一篇文章 kvmtool 中的数据结构 介绍了 kvmtool 中常用的数据结构。接下来这篇文章介绍在 kvmtool 是如何初始化这些数据结构,并搭建一个基本的虚拟化硬件环
前言 最近遇到一个 Linux 无法启动的问题,没有任何输出信息。为了摸清到底是 卡在哪儿了,需要查看 Linux 的启动消息。正常情况下,Linux 的 printk 函数是基于 console 的
准备工作 Bbusybox 提供了一系列可以直接运行的小程序集合,因此将 busybox 编译后的产物作为 rootfs 的工具再好不过了。这里需要说明的是,交叉编译器要和处理器架构一致。
前言 所谓学以致用,学习的目的就是为了使用。那么相反的,好用可以反过来督促进一步深入学习。本文是 linux kvm 虚拟化子系统的开篇,主要讲如何搭建一个基础
Thread_info 在 Linux 中的任务结构体 task_struct 中包含特定于体系结构的信息以及通用的信息, thread_info 结构体则是描述进程特定于体系结构的信息字段。而在 thread_info 中也包含指向 task_struct 的指针,这
编译环境 这里选择轻量级的 Lubuntu,版本为19.10。 oslab环境搭建 感谢 Wangzhike提供开源的一键配置环境。 安装包下载 git clone https://github.com/Wangzhike/HIT-Linux-0.11.git 环
虚拟文件系统作为内核子系统,为用户空间程序提供文件和文件系统相关操作的接口。系统中各文件系统依赖虚拟文件系统共存并协同工作。通过 vfs , 用户空间
内核的内存分配相比用户空间来说相对较为困难,主要是因为内核本身不能奢侈的使用内存,而且一般不能睡眠,处理内存分配错误也比较棘手。 页 内核将物理
内核中有很多基于时间驱动的函数,如调度程序中运行队列进行平衡调整或对屏幕进行刷新等。时间管理中需注意相对时间和绝对时间的差别以及周期性事件和
在进行多线程编程时,我们要特意留意共享数据的保护,防止并发访问时多个线程同时操作 导致的结果不一致性。 Linux 2.0 开始内核开始支持 SMP. 所以内核可以在同一
内核为处理中断提供了中断处理程序机制,这是内核必不可少的一部分。但仍然存在一些局 限: 中断程序异步执行,可能打断其它重要代码的执行;因此中断处
本章节的内容是一些数据结构,没甚么可说的。随便记记笔记吧。内容包括链表、队列、映 射、二叉树。 链表 这是 linux 中最简单的数据结构,是一种存放客可变数
三个作用 为用户空间提供硬件抽象接口 保证系统稳定和安全 使每个用户程序运行在虚拟系统中 系统调用 定义一个系统调用(以 getpid() 为例): SYSCALL_DEFINE0(getpid) { return task_tgid_vnr(current); // return current->tgid } SYSCALL_DEFINE0 是
进程调度 进程是程序的运行态的表现形式 进程调用是确保程序有效工作的内核子系统 多任务 并发交互的执行多个进程的操作系统 抢占式 : 由调度程序决定什么时
Table of Contens 常用快健键 一般快捷键 编辑器相关 历史命令 路径相关 少用但非常有用的命令 管理相关 使用别名 同步配置 脚本相关 善用文档 分屏管理 远程登录 杂项 常用快健
Table of Contens 什么命令行 让命令行人性化 基础命令 私人神器zsh 熟悉环境 帮助命令 编辑命令 重定向 通配符 任务管理工具 远程登录 文件管理工具 网络管理工具 版本控制
Table of Contens Linux shell 基本知识 shell 工作流程 shell 实现 可执行程序该有的样子 一探循环体究竟 解剖循环体 总结 参考 Linux shell 基本知识 目前市场上主要有三大主流操作系统,除了 windows 系
Table of Contens 安装准备 系统镜像 虚拟软件 启动系统 配置网络 准备磁盘 创建分区 创建文件系统 挂载根分区 安装 stage3 配置编译选项 基本系统 镜像站点 复制 DNS 信息 挂载必要的文