最新 最热

多角度体会 Swift 方法派发

我们知道 Swift 有三种方法派发方式:静态派发(直接派发)、VTable 派发(函数表派发)、消息派发。下面我们分别从 SIL 中间语言,以及汇编的角度体会 Swift 的方法派发方式。...

2021-10-19
1

操作系统(4)实验0——准备知识、基本内联汇编、扩展内联汇编

建议在虚拟机中使用Ubuntu 16.04来做实验(其实用18或者更新的也行,但是我还是习惯16的Unity桌面)。

2021-10-15
0

操作系统(3)实验相关原理——bootloader启动uCore

CS部分后面又4个0,相当于是左移了4位。总之就是要让CS左移4位之后加上EIP来得到要跳转的地址。

2021-10-15
0

Linux 内核入口分析

从启动引导程序 bootloader(uboot)跳转到 Linux 内核后,Linux 内核开始启动,今天我们分析一下 Linux 内核启动入口。

2021-10-12
0

riscv gcc中添加custom自定义指令

在riscv的处理器开发过程中,各家处理器往往都会涉及到自定义指令功能的添加。在处理器设计上,添加一些特定功能的指令是十分正常的,一般处理办法本文会讲述,让其识别客户自定义的指令。从现有的解决办法上来看,第一种是可...

2021-10-09
0

内核调试技巧-逆向寻踪,揭开 LACP 协议流程的神秘面纱

作者:wqiangwang,腾讯 TEG 后台开发工程师 本文通过“Kni 映射到内核的接口未能发送 LACP 报文导致 bond 不能聚合”这个问题,来探索内核调试中,对于正在运行的内核,通过 systemtap 获取关键数据结构的值的通用方法。 背景...

2021-10-09
0

OC对象原理(一)

我们要探究一个对象,那么就要找到其属性或者方法等所对应的源码。首先,我来介绍三种探索源码(即定位源码位置)的方式。

2021-10-08
0

HSDIS工具在macbook M1电脑的安装

HSDIS可以查看java的汇编指令,在github上找不到相关的已经编译好的包,可以通过自己编译的方式运行: 首先下好jdk的源码:

2021-09-29
0

获取CPU型号和序列号

主要参考文章:关于CPU序列号的问题,以及如何获取×64下CPU的ProcessorID_fudong071234的博客-CSDN博客前几天经过查资料,得到网络上获取CPU序列号的方法是错误的,首先我找到了一篇论文,这篇论文里面是这么说的:这篇论文是错...

2021-09-27
0

给大家介绍一下实现Go并发同步原语的基石

Go是一门以并发编程见长的语言,它提供了一系列的同步原语方便开发者使用,例如sync包下的Mutex、RWMutex、WaitGroup、Once、Cond,以及抽象层级更高的Channel。但是,它们的实现基石是原子操作。需要记住的是:软件原子操作离...

2021-09-24
0