在之前我们团队发布了TiDB基于X86和ARM混合部署架构的文章:TiDB 5.0 异步事务特性体验——基于X86和ARM混合部署架构,最近有朋友问到离线模式下如何对混合部署的TiDB集群进行升级,因此用本文来做一个梳理总结。
https://time.geekbang.org/column/article/70602
Cpufetch是一款功能强大的CPU架构信息获取工具,该工具支持x86、x86_64(Intel和AMD)以及ARM架构的CPU。Cpufetch支持在Linux、Windows和macOS操作系统上运行,但我们建议广大用户在Linux操作系统上使用Cpufetch。
近日,国外一名 16 岁的开发者发布了一则视频,展示自己为一台已经无法正常使用的 iPhone 7 成功移植了 Ubuntu 20.04,并将其作为服务器来使用。
作者 | 米开朗基杨 来源 | https://mp.weixin.qq.com/s/u5MmNcKdM37JhGuyPTIZLQ 近日,国外一名 16 岁的开发者发布了一则视频,展示自己为一台已经无法正常使用的 iPhone 7 成功移植了 Ubuntu 20.04,并将其作为服务器来使用。 发布视频的开发者网名为 Daniel Rodriguez[1],是一名在校高中生。据 Daniel 介绍,他使用的 iPhone7 来自他的外婆,这台手机的屏幕、电源等硬件设备基本上保存完好,但由于 NVMe NA
今天给大家介绍的是一款名叫Findomain的工具,这是一款能够帮助我们快速枚举/搜索子域名的跨平台工具。
在项目中,有时候有一些比较重要的对象经常被当作参数传来传去,和C语言的值传递不同,java语言的传递都是引用传递,在任何一个地方修改了这个对象的值,就会导致这个对象在内存中的值被彻底改变。但是很多时候我们并不想去真正的改变这个对象,只是使用它的某些属性,却因为不小心改变后忘记了恢复,或者被团队中不知情的别人给改变了。这样的话,后果将是不可预料的,可能会花上很久也发现不了自己的对象在哪被改了,尤其在大型项目中,很多人都在操作同一个对象,一旦有人在对象的主人不知情的情况下,修改了这个对象的值,那么很有可能在系统上线时也发现不了这个隐藏的bug。举个小例子,我定义了一个Person对象,里面有个age属性,然后有人在我不知道的情况下,想看看我的age加上10后是多少,那么他在自己也不知道后果的情况下执行了person.age+=10,后来,我在任何使用age的地方,都发现age值被修改了,并且不知道在哪被谁修改的。 事实情况中,要比例子上严重的多,有一些复杂的对象的某些属性值被改变后很难被注意到,那么这些都是系统的极大隐患。我们有一些对象是压根不想让别人去修改的,只想让别人去看看,别人的任何操作都不应该改变这个对象原本的值。当然我们可以采取优秀的封装来实现属性的隐藏,但很多情况下我们不得不公开一些改变对象属性的方法,那么如果想完全的封装自己的对象,我们可以采用克隆一份完全一样的对象。然后把这个克隆出来的对象公开给别人访问,这样保证了目标对象的封装和它的不可改变。那么怎么去克隆一个对象呢? 首先举一个简单的对象克隆例子,有一个Person对象,它有三个属性: public class Person { private int age; private String name; private String sex; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } } 复制代码 然后定义一个它的对象 public class Test { public static void main(String[] args) { Person person = new Person(); person.setAge(10); person.setName("wolf"); person.setSex("man"); } } 复制代码 现在我们拥有了一个person对象了,它具备上面的几个属性。该怎样去创建另一个和它所有属性一模一样的Person对象呢? 在我的经历中,碰到过很多人是这样做的 Person anotherPerson = new Person(); anotherPerson = person; 他们认为new了一个新的Person,然后将已经有值的person赋给这个new出来的Person就ok了,这样内存中就有两个互不干扰的Person对象了。对此我只能说,你去修改一下anotherPerson的值,看看person的值是否跟着变了。具体为什么这种做法是错的,我就不提了,我只说对的。那就是下面这种写法: public class Test { public static void main(String[] args) { Person person = new Person(); person.setAge(10); person.setName("wolf"); person.setSex("man"); Person anotherPerson = new Person(); anotherPerson.setAge(person.getAge()); anotherPerson.setName(person.getName()); anotherPerson.setSex(person.getSex()); System.out.println(anotherPerson.getAge()); System.out.println(anotherPerson.getName()); System.out.println(anotherPers
Apache TVM is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
上面介绍的编译模块是和内核一起编译的,这种编译方式比较耗时。在Linux3.x 以后的版本才引入了设备树,有了设备树之后,只需要一次编译内核,编译内核的时候会生成的dtc 工具,利用dtc工具就可以完成驱动的编译。我们这里只是简单介绍如何编译设备树、加载设备树,关于设备树,后面会有更加详细的解释。
raspberry使用MCSManager搭建Minecraft私服,带WEB管理面板
高颜值的第三方网易云播放器,使用网易云账号同步(个人的library),无任何社交,简洁纯净,自动替换变灰歌曲链接。
ROPgadget是一款可以在二进制文件中搜索Gadget的强大工具,本质上来说,ROPgadget 是一个小工具查找程序和自动操作程序。在该工具的帮助下,广大研究人员可以在二进制文件中搜索Gadget,以方便我们实现对 ROP 的利用。ROPgadget 支持 x86,x64,ARM,PowerPC,SPARC 和 MIPS 体系结构,并支持 ELF / PE / Mach-O 格式。
通过对编译代码进行处理来改变现有应用程序的行为,在恶意软件分析、软件逆向工程以及更广泛的安全研究领域中,其实并不少见。而Patching是一款针对IDAPro的交互式源码处理工具,该工具能够扩展IDA Pro反汇编工具的功能,以创建一个功能更加强大的交互式源码处理工作流。
2021 年 11 月,我们决定评估 arm64 架构在 Uber 的可行性。我们的大多数服务是用 Go 或 Java 编写的,但我们的构建系统只能编译成 x86_64。现在,得益于开源合作,Uber 拥有了一个独立于系统的构建工具链,可以无缝地支持多种架构。我们使用这个工具链来引导 arm64 主机。本文将分享我们是如何着手去做这件事情的,以及我们早期的想法、遇到的问题、达成的一些成就和未来的方向。
在不久之前我看到了腾讯云社区发布了一条文章,里面写着 QQ 重构? 我就点去看看用的啥技术结果是 Electron 这个我见到过一直想玩玩桌面应用,
项目里包含的一些库或者一些模块是存在了别的仓库,可以用递归来克隆回来。一次性就能解决所有的依赖模块,这里就选择这个命令参数来clone
不久前,腾讯云的双十二活动已经开始啦,各位大佬们有没有抢购自己心仪的商品呢?跟风剁手的大佬们有没有不知道干啥的烦恼呢?今天博主继续给大家带来腾讯云轻量应用服务器的玩法,我一直都会整理自己的各种图片、照片,现在的网盘也可以很方便的整理照片,但是还是有不少人想要一个属于自己的照片管理程序,我们开始吧!
编译 Android 版本的 ijkplayer 时 , 执行 init-android.sh 脚本 , 报如下错误 ;
Cobalt Strike 4.1于2020年6月25日发布,该版本引入了一种能够运行Beacon对象文件的功能,即能够Beacon中执行代码、解析参数、调用一些Win32 API、报告输出和退出。自那时起,BOF变得非常流行,因此也衍生出了在Cobalt Strike的Beacon之外的其他环境中启动或执行BOF的需求。
上一篇博客《conan入门(七):将自己的项目生成conan包》中我们以jsonlib为例说明了如何将自己的模块封装成conan提供给第三方使用。
B(l)utter是一款针对Flutter移动端应用程序的逆向工程分析工具,当前版本的B(l)utter仅支持Android libapp.so(ARM64),可以帮助广大研究人员对基于Flutter开发的移动端应用程序进行逆向工程分析。
Voltron是一款功能强大的可扩展调试器UI工具包,该工具基于Python开发,旨在通过引入程序视图来提升和改善各种调试器(LLDB、GDB、VDB和WinDbg)的用户体验。Voltron可以通过调试器来获取和显示数据,并通过在其他TTY中运行这些视图来帮助构建一个定制的调试器用户界面,以满足广大安全测试人员的需求。
关于什么是protobuf,网上搜搜一大堆,很多人用的都还是json,以为json是多种语言传输数据是万能的,看完了protobuf的实现,就明白了简单高效才是王道。
上一篇博客《conan入门(八):交叉编译自己的conan包项目》中我们以jsonlib为例说明了如何将交叉编译自己封装成conan的模块。但是使用的DS-5 ARM的交叉编译器(arm-linux-gnueabihf)并不常见,也不方便读者实际操作。
在上一篇博客《conan入门(四):conan 引用第三方库示例》中我们以cJSON为例说明了如何在项目中引用一个conan 包。那是比较简单的一种编译本机目标代码的应用场景(编译环境是Windows,目标代码也是Windows平台)。在物联应用的大背景下,C/C++开发中跨平台交叉编译的应用是非常广泛的。在使用conan来管理C/C++包(制品库)的环境下,如何实现对交叉编译的支持呢?因为我的工作涉及不少嵌入式平台的开发,conan对交叉编译的支持是我最关心的部分。
本篇主要是记录将LVGL移植到百问网STM32MP157开发板上,并且仅是跑一下LVGL的一些例程。
本文档主要介绍,在python环境下,如何开发嵌入式应用程序,以STM32H43板卡为例介绍. 从系统环境搭建,到编译,到用python实现硬件控制。可作为入门教程。
参考 https://github.com/bilibili/ijkplayer 项目的编译过程 ;
②选择自定义配置——计费模式为“按量付费”——地域选择“北京”——可用区选择“随机可用区”——网络选择“默认”即可
Gogs是一款极易搭建的自助Git服务,使用Go语言开发,只要Go语言支持的平台它都支持,包括Linux、Mac OS X、Windows以及ARM平台。Gogs对系统硬件要求极低,你甚至可以在树莓派上搭建它。
NetBeauty2是一个开源的.NET依赖库整理工具,它的主要作用是在.NET项目独立发布时,对输出目录进行整理和优化。通过NetBeauty2,开发者可以轻松地将.NET运行时和依赖的dll文件移动到指定的目录,使得项目的输出目录更加清晰、易于管理。
大部分开发者,可能都使用Linux作为服务器,但是有些情况,也需要Linux桌面环境,方便进行更为仿真的测开、测试等。那么,输入法就是一个问题了。
使用这类软件包管理系统,能帮助用户快速编译、安装软件(如:vim、wget等)、卸载软件等。而Homebrew,其实广泛运用在macOS上,但是其实Homebrew也可以安装在Linux上,作用和apt、yum等一样。
DDexec是一种能够在Linux上使用无文件技术和隐秘技术运行二进制文件的方法,它可以使用dd工具来将Shell替换为其他进程。
Coqui 文本转语音(Text-to-Speech,TTS)是新一代基于深度学习的低资源零样本文本转语音模型,具有合成多种语言语音的能力。该模型能够利用共同学习技术,从各语言的训练资料集转换知识,来有效降低需要的训练资料量。
Neovim最近几年的热度十分高,甚至我这个Vim用户,都开始转向使用Neovim了。相比之前使用Vim(尤其是Vim7.x之前,还未使用异步任务时),Neovim明显更快。同时Neovim使用Lua脚本化语言进行配置,确实更加方便。
要参加微信课堂以及日常技术交流,请给我们发微信(微信号:markpah),请注明加入以下哪个群:
Azure Stack是我们实现DevOps的重要利器,而要实现DevOps,离不开容器编排平台Kubernetes的支持。本文将介绍如何在Azure Stack ASDK环境里部署Kubernetes,在AKS for Azure Stack Mooncake正式发布之前,可以让我们更方便地进行测试。
综合资料百度云:https://pan.baidu.com/s/1kJdJ6xc12Yg4rPby_MatDA 提取码:4u7d
0×00前言 在上一篇文章《WebView域控不严格读取内部私有文件实验》中,对webview跨域访问进行了简单的实验,后续决定深入挖掘一下APP克隆,之前文章中讲过的这里也将不再赘述。 0×01实验
Linux 诞生于 1991 年,距今已经 30 年了。虽然它一开始只是 Linus 的一个个人项目,而非出于要开发一个新操作系统的伟大梦想,但如今的 Linux 早已无处不在。
由于最近研究InlineHook(内联钩子),发现了一个不错的框架,Dobby(原名:HOOKZz)。这家伙是一个全平台的inlineHook框架,它用起来就和fishhook一样,我们先看一下如何使用。
Azure Stack是我们实现混合云DevOps的重要利器,而要实现DevOps,离不开容器编排平台Kubernetes的支持。本文将介绍如何在Azure Stack ASDK环境里部署Kubernetes,在AKS for Azure Stack Mooncake正式发布之前,可以让我们更方便地进行测试。
Gorsair是一款功能强大的针对Docker容器的安全分析和渗透测试工具,可以帮助广大研究人员检查目标Docker容器中潜在的安全问题,并发现和访问目标Docker容器的API。一旦成功访问了目标Docker守护进程,就可以使用Gorsair直接在远程容器上执行命令了。
Arbitrium是一款跨平台并且完全无法被检测到的远程访问木马,可以帮助广大研究人员控制Android、Windows和Linux操作系统,而且完全不需要配置任何额外的防火墙规则或端口转发规则。该工具可以提供本地网络的访问权,我们可以将目标设备当作一个HTTP代理来使用,并访问目标网络中的路由器、发现本地IP或扫描目标端口等等。
NoseyParker是一款功能强大的命令行工具,该工具可以帮助广大研究人员在文本数据中寻找敏感信息,可以用于网络安全攻防两端的安全测试过程中。
内容一览:TVM 共有三种安装方法:从源码安装、使用 Docker 镜像安装和 NNPACK Contrib 安装。本文讲解如何通过 Docker 镜像 和 NNPACK Contrib 安装。
kconfig-hardened-check是一款功能强大的安全检测工具,可以帮助广大研究人员检测Linux内核中的安全增强选项。
领取专属 10元无门槛券
手把手带您无忧上云