解决 Ubuntu 虚拟机网卡消失无法上网问题
通过 VMware 打开 Ubuntu 虚拟机后,偶尔会发生识别不到网卡,进而无法上网问题。ifconfig
命令也查不到网口,只查到一个 lo
本地环回网络,之前的 ens33
网口信息消失不见了。网上一系列教程都是让该 VMware 网络配置之类的,根本没用,浪费时间和精力。
终极解决方法非常简单,只是一条设置 DHCP 自动获取 IP 的命令:
1 | sudo dhclient ens33 |
glibc 竟然也是一个可执行文件
查看系统下 glibc 版本号时,发现了一个有趣的事情,就是 glibc 竟然可以当作可执行文件进行./
运行。虽然运行起来后,只是打印了一下版本号就退出了。抱着从张银奎老师那里学到的 “格物” 态度,通过 gdb 调试一下,查看究竟。
通过 qemu 在 x86 上实现全系统模拟 PowerPC
某软件开发过程中,需要参考 PowerPC 架构代码,但并没有 ppc 架构的机器环境,VMware 只能模拟同架构的 OS,而想要模拟不同架构,进行跨架构开发的话只能通过 qemu 进行模拟。本文记录了在 Linux 和 Windows 两种环境下实现过程:在 Windows 通过 VMware 建立 Ubuntu18.04 虚拟机,然后在 Ubuntu18.04 下用 qemu 实现全系统模拟 PowerPC;或者直接在 Windows 下用 win-64bits 的 qemu 来实现,两种方法都可行。
解决 gcc 编译报错 - Werror=missing-attributes
交叉编译 gcc 工具链时,遇到了 [-Werror=missing-attributes]
报错,这是一个把警告当错误的情况,应该是由于高版本 gcc 编译低版本 gcc 时报的错误。然而修改了 configure 命令,在后面跟上了 --disable-werror
选项,并没有用。最终通过设置 CFLAGS
和 CXXFLAGS
才解决了。
x86 环境下交叉编译 binutils
下载 binutils 源码
binutils-2.31.tar.gz:https://ftp.gnu.org/gnu/binutils/binutils-2.31.tar.gz
交叉编译:aarch64-to-ppc
- 编译环境:x86
- 运行环境:aarch64
- 可执行文件架构:ppc
通过仓库源安装 glibc 符号来实现 gdb 调试
《Linux 平台高级调试和优化(杭州站)》培训笔记
第一天上午:大局观和 linux 内核源码
内核版本介绍
linux4.19 LTS 版本使用率比较高,发的 GDK8 的盒子就是该版本。linux6.1 LTS 版本将会是下一代主流版本,预测生命力至少 5-10 年。
在网站 https://kernel.org/ 里能看到内核版本分支,mainline 主线分支由 Linus Torvalds 维护,stable 稳定分支由 Greg Kroah-Hartman 维护。
程序中的 fall-through 行为分析
最近移指 dyninst 的时候,发现指令解析模块涉及到 fall-through 概念,查了些英文资料后,初步了解了这个概念。