一、前言 当在CMD/SHELL中输入 $ java Main<CR><LF> 后,Main程序就开始运行了,但在运行之前总得先把Main.class及其所依赖的类加载到JVM中吧!本篇将记录这些日子对类加载机制的学习心得,以便日后查阅。若有纰漏请大家指正,谢谢! 以下内容均基于JDK7和HotSpot VM。 二、执行java的那刻 大家都知道通过java命令来启动JVM和运行应用程序,
继上周介绍了稳定性三大故障之一的ANR类故障后,本章继续介绍第二大类故障Crash/Tombstone及其分析定位方法。
Glide 加载图片使用到的两个记录 Glide 加载图片保存至本地指定路径 /** * Glide 加载图片保存到本地 * * imgUrl 图片地址 * imgName 图片名称 */ Glide.with(context).load(imgUrl).asBitmap().toBytes().into(new SimpleTarget<byte[] () { @Override public void onResource
这里主要是关于TCP的,TCP的特点什么的相关介绍在我另一篇博文里,所以这里直接动手吧。
在学校的时候泛泛读过一遍 apue,其中的部分知识只是有个大概印象,其实我个人对底层技术还是有热情和追求的 哈哈,打算把经典的书籍结合遇到的场景重读一遍,先拿 Linux 文件系统练习下。代码参考的是Linux早期的代码,没有现代内核的高级特性,VFS这部分只有介绍。
1、单例:单例模式是一种使用广泛而又比较简单的设计模式,他的定义我就不多介绍了,大家上网一查就知道了,基本都能理解。在游戏开发中,会有很多单件,所以封装一个单例类供后面的开发使用。
很早之前就有网友建议写一篇关于Linux驱动的文章。之所以拖到现在才写,原因之一是我之前没有在工作中遇到需要自己手动去写驱动的需求,主要是现在Linux内核驱动的支持已经比较完善了,另外一个原因是自己水平实在有限,不敢写驱动这个话题,Linux驱动里涉及到的东西太多了,很多年前专门买过驱动相关的书籍,厚厚的,看的云里雾里。借此机会,在这里给大家做个非常非常入门级的介绍,希望对大家有所帮助。
我们知道读取HDFS的数据需要通过DataNode。当客户端找DataNode读取数据时,DataNode会首先从磁盘中读取文件,然后通过TCP socket将数据传送给客户端。短回路(short-circuit)数据可以绕过DataNode,从而允许客户端直接读取文件。所以当客户端和数据在同一个节点时,短回路(short-circuit)可以明显为很多应用程序提升性能。
昨天大半夜装一个RH5+Oracle版本,期间碰到了几件事情,陈述如下,以此为据。
eBPF(扩展的伯克利数据包过滤器)是 Linux 内核中的一个强大功能,可以在无需更改内核源代码或重启内核的情况下,运行、加载和更新用户定义的代码。这种功能让 eBPF 在网络和系统性能分析、数据包过滤、安全策略等方面有了广泛的应用。
默认情况下,访问Redis服务器是不需要密码的,为了增加安全性,设置Redis服务器的访问密码,取消requirepass前的注释#,并设置密码
最近在研究ARM cpu 32 bit转码 64bit的事情,以用于在64bit的服务器上可以更快的运行32bit的Android ELF文件。
本章介绍所有的关于模块和内核编程的关键概念,通过一个 hello world 模块来认识驱动加载的流程及相关细节。
gcc 版本 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC)
一、BMP图片顺时针180°镜像 1.1 原图片 image.png 1.2 编译运行过程 [wbyq@wbyq linux_c]$ gcc app.c [wbyq@wbyq linux_c]$ ls 1.bmp 1.c 2.c 666.bmp 888.bmp a.out app.c test.c [wbyq@wbyq linux_c]$ ./a.out 传入的参数格式: ./a.out <原图片的名称> <新图片的名称> [wbyq@wbyq linux_c]$ ./a.out 888
一、课程介绍 UNIX/Linux环境C语言,借助学习操作系统的接口的方法来学习、理解操作系统的 运行机制以及一些网络协议 C/C++、数据结构和算法 与平台无关,重点是算法逻辑 Uinx/Linux/Android/IOS 平台相关,系统接口 嵌入式/驱动/移植 硬件相关,硬件接口
信号量的概念参见这里。 与消息队列和共享内存一样,信号量集也有自己的数据结构: struct semid_ds { struct ipc_perm sem_perm; /* Ownership a
注:与本系列博客同时同步的还有后面需要学习和研究的FreeRTOS和linux0.11-linux1.0内核代码VV的Linux操作系统内核笔记系列,即使笔者已经自己写了个操作系统了,但是为了能够使博客能读懂,笔者需要把每一个lab和代码打出来做出解释同时笔者也有自己繁重的学习和工作(本科狗),所以进度会非常非常慢
实现滑块拼图验证码功能之前已经写过一篇了,上一篇使用的是自定义控件的方式实现这个功能,主要还是想让童鞋们知其然更知其所以然,还没看的童鞋可以先看看Android实现滑块拼图验证码功能这篇。
运动控制(Motion Control)通常是指在复杂条件下,将预定的控制方案、规划指令转变成期望的机械运动,实现机械运动精确的位置控制、速度控制、加速度控制、转矩或力的控制。
SFML (Simple and Fast Multimedia Library) 是一个开源的、跨平台的C++多媒体库,它提供了一系列简单易用的接口和工具,可以方便地创建各种图形、音频、视频等应用程序。SFML 支持 Windows, Linux, macOS 和 Android 四种操作系统。
最近2周比较忙,没有抽出时间来写Blog,不过在这段时间里面把整个思路理了一遍,梳理了一下大纲,以后会多抽时间来写Blog。
函数原型:int semop(int semid, struct sembuf *sops, unsigned nsops);
本教程是通过PaddlePaddle的PaddleSeg实现的,该开源库的地址为:http://github.com/PaddlPaddle/PaddleSeg ,使用开源库提供的预训练模型实现人物的图像语义分割,最终部署到Android应用上。关于如何在Android应用上使用PaddlePaddle模型,可以参考笔者的这篇文章《基于Paddle Lite在Android手机上实现图像分类》。
主要由进程调度(SCHED)、内存管理(MM)、虚拟文件系统(VFS)、网络接口(NET)和进程间通信(IPC)等5个子系统组成。
也算是一个小任务吧!基本要求,Linux下Tcp服务端,Windows,MFCTcp客户端。
项目中经常遇到这样一种情况,新打开的界面需要加载数据,存在多种状态的结果,需要根据不同结果展示界面,这个过程归纳起来可以分为五种状态:初始状态、请求状态、空数据状态、网络错误状态、成功请求状态。 如果多个界面都存在这个流程,那么封装整个过程的调用就很有必要了,既可以简化调用过程,又可以很方便的管理整个流程。
本文主要介绍内核开发中常用的模块传参手段,通过模块参数传递可以通过用户态来获取内核的一些信息,也可以通过用户态写入一些值来控制内核相关行为。一般内核开发者很喜欢使用模块传参来调试内核功能,如damon模块(数据访问监控器)。
SMART是一种磁盘自我分析检测技术,早在90年代末就基本得到了普及 每一块硬盘(包括IDE、SCSI)在运行的时候,都会将自身的若干参数记录下来 这些参数包括型号、容量、温度、密度、扇区、寻道时间、传输、误码率等 硬盘运行了几千小时后,很多内在的物理参数都会发生变化 某一参数超过报警阈值,则说明硬盘接近损坏 此时硬盘依然在工作,如果用户不理睬这个报警继续使用 那么硬盘将变得非常不可靠,随时可能故障
之前接到的一个小项目,好像不能算。win10下的串口通信,不需要界面,排除了Qt,MFC只剩C++ 底层了,调用WindowsApi来实现。翻了翻网上资料大致写出来了。
Glide默认开启磁盘缓存和内存缓存,当然也可以对单张图片进行设置特定的缓存策略。 设置图片不加入到内存缓存
最近使用uni-app开发项目时遇到了一个bug,需求是需要在两个平台之间切换,A平台登录后要选择身份,选完后带着token进入另外一个平台B的个人空间,点击个人空间顶部的个人信息区域又可以切换到A平台的身份选择。 这样子就产生了一个问题,点击身份的时候会生成新的token,但是页面是允许返回的所以url地址栏中的历史token还在,所以就会基于这个token触发请求导致接口报了Token验证失败的错误,一番搜索之后终于找到了解决办法。
一、时间类型。Linux下常用的时间类型有4个:time_t,struct timeb, struct timeval,struct timespec,clock_t, struct tm. (1) time_t是一个长整型,一般用来表示用1970年以来的秒数. 该类型定义在<sys/time.h>中. 一般通过 time_t time = time(NULL); 获取. (2) struct timeb结构: 主要有两个成员, 一个是秒, 另一个是毫秒, 精确度为毫秒. 1 struct timeb 2
我们在看有些应用在引入h5的时候经常会有一个进度条在转,显示加载的意思,那么这个东西其实一般是我们android端做的事(不要把所有的事都推给h5~~~),其实实现起来很简单,
本篇将介绍使用nmap扫描器和dig来得到DNS Zone Transfer记录。
之前通过读取/proc/pid/mem的方法读取某个进程的内存数据,mem内部是用copy_from_user实现的,是对虚拟地址进行的操作。但是在某一时刻,该进程的所有内存页不一定都已经被加载到内存。由于虚拟内存的存在,只有那页代码被访问到时(copy_from_user()会判断缺页的情况),才会产生缺页中断,将该页代码加载到内存。这种方式并不够理想,理想的方法是判断哪些数据页已加载到内存中,然后对其进行度量。
3。1 module编程 module可以说是 Linux 的一大革新。有了 module 之后,写 device driver 不再是一项恶梦,修改 kernel 也不再是一件痛苦的事了。因为你不需要每次要测试 driver 就重新 compile kernel 一次。那简直是会累死人。Module 可以允许我们动态的改变 kernel,加载 device driver,而且它也能缩短我们driver development 的时间。在这篇文章里,我将要跟各位介绍一下 module 的原理,以及如何写一个 module。
已经有大约半年的时间没有碰C语言了,当时学习的时候记录了很多的笔记,但是都是特别混乱,后悔那个时候,不懂得写博客,这里凭借记忆和零零散散的笔记记录,尝试系统性地复习一下C语言。
在Linux SoC开发中,实现SoC启动时执行特定脚本的方法主要取决于你使用的启动加载程序(Bootloader)以及Linux内核的配置。
先说添加ovirt节点最近遇到了添加失败,ovirt engine上会显示installfailed,查看日志后发现,有下述信息
本次实验利用UDP协议, 语言环境为 C/C++ 利用套接字Socket编程,实现Server/CLient 之间简单的通讯。 结果应为类似所示: 下面贴上代码(参考参考...) Server 部分:
描述:系统启动和服务器守护进程管理器,负责在系统启动或运行时激活系统资源,并且管理服务器进程和其它进程,可以说他是Linux的小伙伴系统启动时候最先都是运行的systemd;
二值信号灯:值为0或1的信号灯。资源如果被锁住就是0,如果可用为1 计数信号灯:值在0到某个限制值之间的信号灯。信号灯的值就是可用资源数
首先是具体的布局设计: https://blog.csdn.net/qq_43377749/article/details/84260348 效果图:
FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,可以非常方便我们开发字体显示相关的程序功能。它支持单色位图、反走样位图的渲染。FreeType库是高度模块化的程序库,虽然它是使用ANSI C开发,但是采用面向对象的思想,因此,FreeType的用户可以灵活地对它进行裁剪。关于freetype的详细信息可以参考freetype的官方网站:https://www.freetype.org/来获取更多相关的信息。
环境: Red Hat Enterprise Linux Server release 6.2 (Santiago) 内核: 2.6.32-220.el6.x86_64 PHP版本: php-5.3.10 Mysql版本:mysql-5.1.62 Apache版本:httpd-2.4.1 PHP的安装路径:/lamp/php 安装文件存放位置:/home/software/lamp 支持库的安装: [root@A12 lamp]# ]# yum install –y libjpeg freetype libpng gd curl libiconv zlib-devel linxml2-devel libjpeg-devel freetype-devel libpng-devel gd-devel curl-devel libxslt-devel libiconv的安装: [root@A12 lamp]# tar zcxf libiconv-1.14.tar.gz [root@A12 lamp]# cd libiconv-1.14 [root@A12 libiconv-1.14]# ./configure --prefix=/usr/local/libiconv [root@A12 libiconv-1.14]# make && make install
近期偶然间看到一个开源项目minimp3 Minimalistic MP3 decoder single header library 项目地址: https://github.com/lieff/minimp3 单文件头的最小mp3解码器。 一直很想抽时间好好看上一看。 最好的学习方式就是写个实用性的工程项目。 例如实现mp3转wav格式。 嗯,这篇博文就是这么来的。 阅读了下minimp3的源码,有一两处小bug, 这个解码算法可以进一步提速优化的地方还有不少。 后面有时间,再好好庖丁解牛。 基于这个库
对于进程间通信,想必管道大家再熟悉不过了,对于管道这种通信方式,其实是对底层代码的一种复用,linux工程师借助类似文件缓冲区的内存空间实现了管道,其实也算偷了一个小懒,随着linux的发展,linux正式推出了System V来专门进行进程间通信,它和管道的本质都是一样的,都是让不同的进程看到同一份资源。
Google在今年的I/O上发布了一个移植跨界应用 名为App Runtime for Chrome(Beta)这个东西可以让Android系统的App运行于ChromeOS下
领取专属 10元无门槛券
手把手带您无忧上云