LXR | KVM | PM | Time | Interrupt | Systems Performance | Bootup Optimization

随笔分类 -  Linux相关学习总结

Linux RT补丁/分析/性能测试(@Ubuntu)
摘要:关键词:rt-tests,rt等等。 要去了解实时Linux,首先了解其背景,实时Linux的目标是什么?都采取了哪些措施? 然后需要准备测试环境,需要同一版本的两个内核作对比测试。 确定内核版本之后,针对两个版本的差异进行分析,详细了解这些差异是如何保证实时性的。 最后借助rt-tests和ltp 阅读全文

posted @ 2023-04-26 10:21 ArnoldLu 阅读(3570) 评论(0) 推荐(0) 编辑

QEMU搭建虚拟化开发环境(QEMU 5.2.0)
摘要:关键词:qemu、ninja等等。 环境:Ubuntu 20.04 + QEMU 5.2.0。 1. 安装qemu 1.1 通过工具安装 Ubuntu: apt-get install qemu RHEL/CentOS: yum install qemu-kvm 1.2 从源码安装 安装依赖包: a 阅读全文

posted @ 2021-01-12 00:00 ArnoldLu 阅读(4018) 评论(0) 推荐(0) 编辑

ARM PSCI在ATF和Linux kernel中的实现
摘要:Linux内核中cpu_ops的实现因架构而已,对于ARM64架构一般通过执行smc指令进入EL3异常,由ATF执行PSCI功能。然后将结果返回给Linux。 这中间涉及到【Linux kernel的cpu_ops、psci_ops】、【SMC/HVC】、【PSCI】、【ATF的PSCI】相关等等。 阅读全文

posted @ 2021-01-01 00:00 ArnoldLu 阅读(6726) 评论(0) 推荐(1) 编辑

简析Linux镜像生成过程
摘要:关键词:vmlinux、objcopy、nm、uboot、gzip等等。 Linux镜像原始输出为vmlinux,后续可能已Image、Image.gz、uImage形式输出。具体过程如下: 1. 通过link-vmlinux.sh生成vmlinux和System.map文件。 2. 通过objco 阅读全文

posted @ 2020-12-18 00:00 ArnoldLu 阅读(3132) 评论(0) 推荐(0) 编辑

简析进程地址空间的形成过程
摘要:关键词:fork、wait、execve、elf、ld.so、stack、heap等等。 本文着重分析一个进程从shell中输入,到执行起来后如何一步步形成maps地址空间的。 下面以Busybox为例,简单分析一个进程地址空间形成过程:从shell输入命令,到shell调用execve()进入内核 阅读全文

posted @ 2020-12-02 00:00 ArnoldLu 阅读(660) 评论(0) 推荐(0) 编辑

HugePage介绍、实现分析、配置和使用
摘要:关键词:TLB、hugetlb、hugetlbfs、mmap、shmget/shmat、nr_hugepages等等。 测试环境:Ubuntu 16.04+Linux 4.15.0-123-generic。 1. HugePage介绍 Linux内存管理采用“分页机制”,内存页面默认大小为4KB。但 阅读全文

posted @ 2020-11-29 00:00 ArnoldLu 阅读(11186) 评论(0) 推荐(1) 编辑

Busybox udhcpc:自动识别ip配置以及流程解析
摘要:关键词:udhcpc、DHCP、DNS、default.script、route、ifconfig等等。 udhcpc来自于Busybox,基于DHCP服务,达到自动配置IP的功能。 下面分别介绍如何配置udhcpc,以及udhcpc是如何达到自动配置IP功能的。 1. 配置udhcpc 1.1 配 阅读全文

posted @ 2020-08-23 00:00 ArnoldLu 阅读(16284) 评论(0) 推荐(3) 编辑

OverlayFS初识以及使用
摘要:关键词:OverlayFS、Whiteout等等。 测试环境:Linux al-B250-HD3 4.15.0-99-generic #100~16.04.1-Ubuntu SMP Wed Apr 22 23:56:30 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux 阅读全文

posted @ 2020-06-08 14:53 ArnoldLu 阅读(15688) 评论(0) 推荐(1) 编辑

小工具chmod设置权限解读
摘要:1. busybox中chmod chmod用于改变文件模式。 1.1 chmod模式解读 int FAST_FUNC bb_parse_mode(const char *s, unsigned current_mode) { static const mode_t who_mask[] = { S 阅读全文

posted @ 2020-05-16 00:00 ArnoldLu 阅读(971) 评论(0) 推荐(0) 编辑

/proc/<pid>/status简要分析
摘要:关键词:status、virtual memory、signal、capability、context switch等等。 每个进程/线程都有自己私有状态,在/proc/<pid>status中体现。 了解status中每项的含义,有助于问题定位时发现问题。 下面结合status在内中函数proc_ 阅读全文

posted @ 2020-01-12 00:00 ArnoldLu 阅读(11449) 评论(0) 推荐(1) 编辑

ulimit功能以及如何在内核中生效
摘要:关键词:ulimit、getrlimit、setrlimit、RLIMIT_CPU、RLIMIT_CORE等等。 内核资源限制通过ulimit进行读取和设置;ulimit进行资源设置之后,简单分析内核中是如何对系统行为进行限制的。 1. 了解ulimit(busybox) 以busybox中的uli 阅读全文

posted @ 2020-01-09 00:00 ArnoldLu 阅读(3466) 评论(0) 推荐(0) 编辑

一个std::thread()线程创建失败问题分析过程
摘要:关键词:std::thread()、pthread_create()、mmap()、ENOMEM、EAGAIN、TASK_UNMAPPED_BASE、TASK_SIZE等等。 本文描述一个进程出现Resource temporarily unavailable,然后逐步定位到std::thread( 阅读全文

posted @ 2020-01-07 00:00 ArnoldLu 阅读(6080) 评论(0) 推荐(0) 编辑

Linux安装包生成工具:checkinstall、makeself
摘要:关键词:checkinstall、dpkg、deb/rpm、makeself等等。 checkinstall记录make install安装的文件,生成相应的(Slackware/RPM/Debian)安装包;安装后加入系统包数据库中,方便从系统中移除以及发布。 checkinstall从源码编译, 阅读全文

posted @ 2019-11-30 00:00 ArnoldLu 阅读(3234) 评论(0) 推荐(0) 编辑

fstab是什么?被谁用?怎么写?
摘要:关键词:fstab、mount -a、fsck等等。 1. fstab是干什么的? fstab是file system table的意思,即文件系统表。 它在开机的时候告诉系统挂载哪些分区、挂载点是什么、以什么格式挂载、挂载的选项等等。 然后系统在开机的时候就根据fstab内容,执行挂载操作。在挂载 阅读全文

posted @ 2019-10-03 00:00 ArnoldLu 阅读(9617) 评论(0) 推荐(0) 编辑

hidraw设备简要分析
摘要:关键词:hid、hidraw、usbhid、hidp等等。 下面首先介绍hidraw设备主要用途,然后简要分析hidraw设备驱动(但是不涉及到相关USB/Bluwtooth驱动),最后分析用户空间接口并实例。 1. hidraw介绍 在内核Documentation/hid/hidraw.txt中 阅读全文

posted @ 2019-09-08 00:00 ArnoldLu 阅读(8062) 评论(0) 推荐(0) 编辑

一个版本烧录过程中记录:fdisk、mkfs.ext4、make_ext4fs、img2simg、simg2img
摘要:关键词:dd、fdisk、mkfs.ext4、make_ext4fs、img2simg、simg2img等等。 一个典型的嵌入式系统是由uboot+kernel+rootfs组成的,其中uboot和kernel都是二进制,rootfs存在文件系统。 二进制在烧录的时候比较简单,将二进制数据写入存储设 阅读全文

posted @ 2019-09-07 00:00 ArnoldLu 阅读(4809) 评论(0) 推荐(0) 编辑

bootrom/spl/uboot/linux逐级加载是如何实现的?
摘要:关键词:bootrom、spl、uboot、linux、mksheader、sb_header、mkimage、image_header_t等等。 首先看一个典型的bootrom->spl->uboot->linux流程log,主要分为4个部分,中间有3个衔接点。 # Hello DeepEye - 阅读全文

posted @ 2019-08-04 00:00 ArnoldLu 阅读(6163) 评论(1) 推荐(1) 编辑

Linux uevent分析、用户接收uevent以及mdev分析
摘要:关键词:uevent、netlink、ADD/REMOVE/CHANGE、uevent_helper、hotplug、usermode helper、mdev、mdev.conf等等。 本文从三方面了解uevent相关内容:内核中uevent如何传送、用户空间如何处理uevent、如何通过mdev实 阅读全文

posted @ 2019-07-28 00:00 ArnoldLu 阅读(11344) 评论(1) 推荐(1) 编辑

sched_yield()和nanosleep()对进程调度的影响
摘要:关键词:sched_yield()、nanosleep()等等。 sched_yield()主动放弃CPU执行权,nanosleep()是睡眠一段时间后再唤醒。 1. sched_yield()实现 sched_yield()会主动放弃当前CPU给其他进程使用;但是如果当前CPU上无其他进程等待执行 阅读全文

posted @ 2019-07-27 00:00 ArnoldLu 阅读(5529) 评论(1) 推荐(0) 编辑

向busybox中添加自己的applet
摘要:关键词:buysbox、applet等。 busybox常用于嵌入式环境,集成中断Linux命令和工具。这些工具简单高效。 下面从如下方面了解: 这些命令是一个软链接到busybox,那么是如何从软连接到busybox再到执行相应的功能的? 如何添加自己的applet命令,进而扩展busybox? 阅读全文

posted @ 2019-07-14 00:00 ArnoldLu 阅读(2004) 评论(0) 推荐(1) 编辑

导航