在前面的文章中,我们探讨了容器底层 cgroup 的数据结构与代码实现,本期是 cgroup 系列的最后一篇文章,我们将继续探讨在 mount 成功后,我们如何使用 cgroup 来实现进程限制。在 mount 成功后,cgroup_root 已经存在了,也就是说 cgroup 层级结构已经搭建好了,接下来我们就可以使用 cgroup 了。测试环境版本与之前一致:1. cgroup 的 mkdir
转载
2024-06-13 12:35:48
48阅读
在介绍nginx和uwsgi的区别和作用之前我们先介绍一下几个概念 1.WSGI WSGI的全称是Web Server Gateway Interface(Web服务器网关接口),它不是服务器、python模块、框架、API或者任何软件,只是一种描述web服务器(如nginx,uWSGI等服务器)如何与web应用程序(如用Django、Flask框架写的程序)通信的规范、协议。 server和ap
redis下载:http://redis.io/download Redis是一个开源、基于C语言、基于内存亦可持久化的高性能NoSQL数据库,同时,它还提供了多种语言的API。近日,Redis 3.0在经过6个RC版本后,其正式版终于发布了。Redis 3.0的最重要特征是对Redis集群的支持,此外,该版本相对于2.8版本在性能、稳定性等方面都有了重大提高。Redis 3.0正式版相
转载
2024-10-08 10:45:56
0阅读
ARM架构中的程序执行与调用1. 几个名词ABI :可执行文件必须遵守的规范,以在特定执行环境中运行;单独产生的可重定址的文件必须遵守的规范,以用来链接和执行。EABI:
适用于嵌入式环境的ABI
PCS:
程序调用规范(Procedure Call Standard)
AAPCS:
PCS for ARM Architecture
AAPCS定义了单独编译、单独汇编的程序是如何一起工作的。
Ro
转载
2024-07-03 22:30:30
122阅读
1.什么是fastdfsFastDFS 是一个开源的高性能分布式文件系统(DFS)。 它的主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡。主要解决了海量数据存储问题,特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线服务。
FastDFS 系统有三个角色:跟踪服务器(Tracker Server)、存储服务器(Storage S
python3.6和3.7有哪些区别发布时间:2020-09-09 14:03:44阅读:95作者:小新这篇文章主要介绍了python3.6和3.7有哪些区别,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。Python 3.7 已经发布了,目前Python的用户,主要使用的版本 应该是 Python3.6 和 Python2.7 ,那么是
什么是交叉编译呢?在回答这个问题前,我们先解释两个概念:主 机:运行编译过程的计算机。目标机:运行编译结果(可执行文件)的计算机。------------------------------------------------------------------------------------- 一般情况下,主机和目标机是同一类型的计算机,这就是正常的编译,没有什么好
转载
2024-06-13 22:13:14
188阅读
cmpxchg是X86比较交换指令,这个指令在各大底层系统实现的原子操作和各种同步原语中都有广泛的使用,比如linux内核,JVM,GCC编译器等,cmpxchg就是比较交换指令,了解cmpxchg之前先了解原子操作。 intel P6以及最新系列处理器保证了以下操作是原子的:1.读写一个字节。2.读写16位对齐的字。3.读写32位对齐的双字。4.读写64位对
转载
2024-06-01 07:02:37
114阅读
文章目录前言1. 加载arm-ubuntu镜像2. 安装acl库3. 编译arm运行时4. 编译在x86运行在arm4.1 在x86的环境中构建arm的编译环境4.2 测试x86-ubuntu与arm-ubuntu能否ping通4.3 调用RPC4.4 ACL的使用5. arm版的tvm编译和运行时环境5.1 构建arm版的tvm编译和运行时环境5.2 关于ubuntu 18.04升级glibc
转载
2024-03-09 19:37:19
1278阅读
docker registry搭建私有dockerhub把本地镜像推送到私有库 docker search 查找镜像我们要用的regisotry[root@WIND ~]#docker search registry
[root@WIND ~]# docker pull registry拉好registry之后,创建一个docker registry仓库,这个仓库就是我的私有库,后面我们要存放私
介绍docker是一个应用容器,也可以简单的理解为一个轻量级的虚拟机(当然实现原理和vm有很大区别),是一个可以快速交付应用、运行应用的技术。启动和移除都可以通过一行命令来完成,很方便作用:解决在微服务上,各种配置和依赖不兼容的问题原理:docker将应用的函数库、依赖、配置和应用本身一起打包,形成可移植镜像。镜像中的应用程序运行起来后就是一个容器,通过沙箱机制与其他应用的容器隔离开来
转载
2024-08-12 12:32:45
145阅读
我们写的Objective-C代码,最终会被转换为机器代码 —— 由ARM处理器能识别的1和0组成。实际上,在机器代码之间,还有一门人类可以阅读的语言 —— 汇编语言。
了解汇编,可以深入到你的代码里面进行调试和优化的探索,并有助于你对Objective-C运行时(runtime)的理解,同时也能满足你内心的好奇!
&nbs
转载
2024-08-29 18:10:40
38阅读
# 使用 Docker 实现 ARM 和 x86 容器的指南
在这篇文章中,我们将探讨如何使用 Docker 创建和管理 ARM 和 x86 架构的容器。这不仅有助于你理解容器化技术的基本概念,还可以帮助你在不同平台间进行开发。
## 流程概述
首先,让我们看看整个开发流程。下面是一个简化的步骤表:
| 步骤 | 说明 |
|------|
一、各种类型的介绍armeabiv-v7a:第7代及以上的 ARM 处理器。2011年15月以后的生产的大部分Android设备都使用它.arm64-v8a:第8代、64位ARM处理器,很少设备,三星 Galaxy S6是其中之一。armeabi:第5代、第6代的ARM处理器,早期的手机用的比较多。x86:平板、模拟器用得比较多。x86_64:64位的平板。二、问题华为 Mate 8手机Andro
转载
2024-06-17 20:03:19
236阅读
先说方法:把VS自带的库目录全部删除,然后加上:$(LibraryPath)网上查了很多方法,对我都没有用。后来自己找到解决办法了,这里分享给大家。我想编译64位的程序,于是选择了debug + x64的编译环境。我报的错误是:msvcprtd.lib(MSVCP110D.dll) : fatal error LNK1112:模块计算机类型“X86”与目标计算机类型“X64”冲突。首先,产生这个问
目录前言在苹果 mac OS 系统上的实验在 Ubuntu 的系统上的实验结论前言一般来说,由于底层架构的不同,特别是指令集的不同,在 arm 机器上编译的程序放到 x86 机器上是不能执行的;同理,在 x86 机器上编译的程序放到 arm 机器上也是不能执行的。这也是我们一般的共同认知,但是今天却遇到了一个让我一度怀疑这个理论正确性的现象。在苹果 mac OS 系统上的实验今天突发奇想,打算验证
转载
2023-08-30 07:59:49
1124阅读
现在大部分手机cpu架构是ARM v7-A和ARMV8-A,,在ARM-v7A中常使用32位ARM指令集并且支持thumb指令集与arm的切换,而在ARMV8中使用的是64位ARM指令集且不再有thumb指令集状态的切换了。在调用函数时,会有常用的调用方式:BL和B,且分三种情况arm, thumb, aarch64,而对于BLX在arm64指令集中不再有。下面对这三种情况进行讨论。ARM:常见跳
转载
2024-05-24 22:19:36
506阅读
步骤:1、首先从http:\\www.kernel.org下载自己想要的linux内核源代码,这里面我以最新的linux-3.10.2版本的内核为例。2、将刚下载的内核源代码拷贝到linux系统的任意一个目录下,解压,tar xvf linux-3.10.2;我这里选择/home下,至于windows与linux之间如何共享,这里告诉大家我最长用的两种方法,一种是使用Vmwaretools工具安装
转载
2024-04-11 20:36:15
110阅读
我们知道RISC-V一个独特的特点是具有支持客户自定制的自定义指令集功能。不过就在刚刚,Arm也宣布推出了自定义指令功能!在圣何塞举行的年度TechCon大会上,Arm宣布了可以由客户定制的自定义指令,这是其Armv8-M架构用于嵌入式CPU的一项新功能,嵌入式和物联网应用程序。顾名思义,它使客户能够编写自己定制的自定义指令,以加速他们的嵌入式和物联网应用的特定用例。“我们已经有了增加加速度的方法
转载
2024-05-02 14:49:48
50阅读
ARM汇编程序特点:所有运算处理都是发生通用寄存器(一般是R0~R14)的之中.所有存储器空间(如C语言变量的本质就是一个存储器空间上的几个BYTE).的值的处理,都是要传送到通用寄存器来完成.因此代码中大量看到LDR,STR指令来传送值.ARM汇编语句中.当前语句很多时候要隐含的使用上一句的执行结果.而且上一句的执行结果,是放在CPSR寄存器里,(比如说进位,为0,为负…)CMP R0,R1BN
转载
2024-08-20 11:17:21
46阅读