Silver Bullet


  • 首页

  • 归档

使用ftrace过滤选择性跟踪父函数

发表于 2023-05-07

使用ftrace过滤选择性跟踪父函数

背景

以memory cgroup子系统里的代码为例, __memory_events_show函数有2处调用, 分别是memory_events_show和memory_events_local_show.

代码如下:

阅读全文 »

linux内核学习-其一

发表于 2021-12-05

全景

linux_kernel_map

阅读全文 »

在WSL中编译aarch64平台内核使用qemu启动

发表于 2021-09-12

编译busybox生成_install

安装编译依赖bison/flex

1
2
sudo apt-get install bison -y
sudo apt-get install flex -y
阅读全文 »

学习Arm-v8汇编-环境准备

发表于 2021-05-16 | 分类于 工程

环境准备

  • 安装编译调试组件
    • 由于手头只有带有WSL的x86环境,需要采用模拟执行的方式编译运行和调试arm程序
    • 参考这篇gist文章,可实现在x86环境上通过执行armv8程序,有以下几个步骤
      • 在WSL上安装
        • 交叉编译环境:sudo apt-get install libc6-dev-arm64-cross gcc-aarch64-linux-gnu
        • QEMU模拟环境:sudo apt-get install qemu qemu-system qemu-user
阅读全文 »

Arm-Linux中访问地址后的缺页过程

发表于 2021-02-21 | 分类于 工程

地址访问案例

以访问用户态虚拟地址0x0000007000003000为例,有如下代码。

1
2
3
4
5
6
7
8
9
10
11
#include <sys/mman.h>
#include <stdio.h>

int main()
{
unsigned long long *x = (unsigned long long)0x0000007000003000;
int *p = (int*)mmap(0x0000007000003000, sizeof(unsigned long long) * 10, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANONYMOUS, -1, 0);
printf("before write, x = %llu\n", *x);
*x = 1;
printf("after write, x = %llu\n", *x);
}

如果没有对用户态虚拟地址0x0000007000003000通过mmap提前进行映射并设置读写权限,会出现Segmentation fault (core dumped),原因是0x0000007000003000并未再进程的虚拟地址空间通过mmap或者brk分配vma(vitrual memory area)进行管理,此时该虚拟地址是无法访问的。编译后输出的结果如下。

1
2
before write, x = 0
after write, x = 1

可以看到成功向用户态虚拟地址0x0000007000003000写入了新的值。

阅读全文 »

KKBOX音乐的数据挖掘和知识发现

发表于 2019-06-21 | 分类于 课程

KKBOX是亚洲领先的音乐流媒体服务,拥有全球最全面的亚洲流行音乐库。本文在KKBOX提供给Kaggle社区的音乐数据集上进行了数据挖掘分析。通过对数据集进行初步的清洗的分析,我们提出了4个与数据挖掘相关的问题,分别为数据集中各特征的关联性分析、对歌曲的聚类、对用户的聚类以及预测某个用户一个月内是否会重复听某一首歌,然后选取合适的算法,例如 K-prototypes聚类算法、t-SNE高维数据可视化算法、LightGBM算法等来解决数据挖掘问题,最后给出相应的结论,从而实现在真实数据集上利用数据挖掘相关算法进行探索,将数据挖掘课堂上的知识转化为真正用得上的技术。

阅读全文 »

智能合约的形式化验证

发表于 2019-04-22 | 分类于 课程

智能合约是一种代码合约和算法合同,将成为未来数字社会的基础技术,它利用协议和用户接口,完成合约过程的所有步骤。本文总结了智能合约主要技术特点和现存的可信,安全等问题,提出将形式化方法应用于智能合约的建模,模型检测和模型验证过程,以支持规模化智能合约的生成。

阅读全文 »

人脸识别迁移学习

发表于 2019-04-03 | 分类于 课程

人脸识别的研究历史比较悠久。Galton早在 1888 年和 1910 年就分别在《Nature》杂志发表了两篇关于利用人脸进行身份识别的文章,对人类自身的人脸识别能力进行了分析。但当时还不可能涉及到人脸的自动识别问题。近年来,人脸识别研究得到了诸多研究人员的青睐,涌现出了诸多技术方法。尤其是1990年以来,人脸识别更得到了长足的发展。几乎所有知名的理工科大学和主要IT产业公司都有研究组在从事相关研究。

初期,传统的人脸识别通常只是作为一个一般性的模式识别问题来研究,所采用的主要技术方案是基于人脸几何结构特征(Geometric feature based)的方法。这集中体现在人们对于剪影(Profile)的研究上,人们对面部剪影曲线的结构特征提取与分析方面进行了大量研究。随后,Eigen Face, Fisher Face和弹性图匹配等基于人脸表观的建模方法不断被提出。从1990年末期开始,大家开始关注面向真实条件的人脸识别问题,提出了不同的人脸空间模型,包括以线性判别分析为代表的线性建模方法,以Kernel方法为代表的非线性建模方法和基于3D信息的3D人脸识别方法。提出了新的特征表示,包括局部描述子(Gabor Face, LBP Face等)和深度学习方法。

2014年以来,深度学习+大数据(海量的有标注人脸数据)已经成为人脸识别领域的主流技术路线,其中VGGFace,DeepFace,FaceNet等深层神经网络不断被提出,人脸识别准确率也不断的提升。2014年,Facebook发表于CVPR14的工作DeepFace将大数据(400万人脸数据)与深度卷积网络相结合,在LFW数据集上逼近了人类的识别精度。Google发表于CVPR2015的工作FaceNet采用Triplet Loss损失函数在LFW数据集上超越了人类的识别精度。

阅读全文 »

网贷行业风险分析平台

发表于 2019-03-28 | 分类于 课程

本项目旨在完成P2P互联网金融行业的风险分析,建立标准化的风险测评维度和风险测评模型,识别高风险P2P互联网金融企业,最终生成自动化P2P互联网金融企业风险分析报告。

本项目选取了P2P互联网金融行业中八百余家代表性企业,基于这些企业多方面、多维度的海量历史数据,选取了恰当的风险测评维度,建立风险测评模型,分析这些P2P互联网金融企业目前所面临的风险,并对各个企业的整体风险状况及其不同领域的风险状况进行评估,生成P2P互联网金融企业风险报告,直观、准确地展示了企业各方面的风险数据、风险指标和风险等级,满足互联网金融监管需求,方便对于互联网金融企业进行风险监控。

阅读全文 »

区块链网络仿真

发表于 2019-03-19 | 分类于 课程

仿真内容分为3个部分

  • P2P网络仿真
    • 使⽤Mininet搭建不同拓扑的网络(如星型、环形、树形、网状)限制不用链路的带宽
    • 每个结点可以生成某种类型的数据,结点间进行通信,在本地建立数据库,记录不同节点的地址,以及各个结点的数据类型
    • 在不同的节点间传输数据(不同大小,多个数量)

  • 区块链仿真
    • 实现区块链网络的仿真
    • 模拟p2p网络的交易(区块)及其传播逻辑
    • 实现PoW算法模拟挖矿
    • 限制链路带宽,测试在不同区块大小及区块产生间隔的情况下的网络时延状况、分叉状况
    • 使⽤PBFT协议进行共识

  • 攻击仿真
    • 在仿真的比特币网络基础上进行实验
    • 进行仿真实验,记录不同的算力攻击下,攻击成功(可以产生更长的链使现有的某些区块无效)的概率
    • BGP劫持、Eclipse攻击

项目地址为https://github.com/131250106/bitcoin

阅读全文 »
12

Martin Zhao

15 日志
3 分类
27 标签
© 2023 Martin Zhao
由 Hexo 强力驱动
|
主题 — NexT.Muse v5.1.4