首页 文章 精选 留言 我的

精选列表

搜索[三大系统],共10000篇文章
优秀的个人博客,低调大师

通过javaAPI上传文件到HDFS文件系统

import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.InputStream; import java.io.OutputStream; import java.net.URI; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IOUtils; import org.apache.hadoop.util.Progressable; public class UploadFile { public static void main(String[] args) { try { String localSrc = "E://Temp/117227.jpg"; String dst = "hdfs://ip:8020/tmp/hadoop-xiaohu/117227.jpg"; InputStream in = new BufferedInputStream(new FileInputStream(localSrc)); Configuration conf = new Configuration(); FileSystem fs = FileSystem.get(URI.create(dst), conf); OutputStream out = fs.create(new Path(dst), new Progressable() { public void progress() { System.out.print("."); } }); IOUtils.copyBytes(in, out, 4096, true); System.out.println("success"); } catch (Exception e) { e.printStackTrace(); } } } 上传成功后通过浏览器打开50070查看,选择 Browse Directory 文件列表就显示出来了 本文转自 ChinaUnicom110 51CTO博客,原文链接:http://blog.51cto.com/xingyue2011/1904018

优秀的个人博客,低调大师

Zigbee在.Net Micro Framework系统中的应用

Zigbee是IEEE 802.15.4协议的代名词。根据这个协议规定的技术是一种短距离、低功耗的无线通信技术。这一名称来源于蜜蜂的八字舞,由于蜜蜂(bee)是靠飞翔和“嗡嗡”(zig)地抖动翅膀的“舞蹈”来与同伴传递花粉所在方位信息,也就是说蜜蜂依靠这样的方式构成了群体中的通信网络。其特点是近距离、低复杂度、自组织、低功耗、低数据速率、低成本。主要适合用于自动控制和远程控制领域,可以嵌入各种设备。简而言之,ZigBee就是一种便宜的,低功耗的近距离无线组网通讯技术。详情请参见百度百科《Zigbee》。 而.NET Micro Framework对存储器和处理器的要求很低,开发人员可以在低功耗、低成本的ARM7、ARM9、Blackfin和Cortex-M3处理器上使用该框架(不需要MMU支持),所开发出来的软件仅需要几百Kbytes的RAM或Flash/ROM存储空间。而Windows Embedded CE的托管代码环境需要约10~12Mbytes的存储空间,基于.NET的应用编程设备只需要较少的存储空间,降低了产品成本。详情请参见《.Net Micro Framework 快速入门》。 两者都是低复杂度,低功耗,低成本(.Net MF开源且免费)的解决方案,二者结合对构建物联网无线方案来说,真是珠联璧合。 目前Zigbee有如下两种方案供最终用户使用,一是Zigbee芯片(扩展阅读《Zigbee芯片厂家对比》),如Ti提供的芯片CC2420、CC2430及CC2530,其中CC2430和CC2530片上集成了C8051内核,并提供了Zigbee协议栈,通过SPI、I2C或串口和CPU通信;二是Zigbee模块,如周立功公司的ZICM2410模块(美国CEL公司的MeshConnectTM模块,集成语音编码解码器)和赫立讯公司的IP-Link1223模块,模块集成C8051内核,支持多路GPIO/AD,通过串口或SPI和外围设备通信,使用虽然简单,但价格较高,大概是前者的3~5倍。 目前.Net Micro Framework V4.0的源码中已经提供了CC2420的驱动程序(源码在\framework\core\drivers\802_15_4\stack\physical\cc2420),硬件通过SPI方式访问CC2420芯片,在酒窖存储监控中已有相关应用,有兴趣的朋友可以参考一下。 芯片级方案由于没有合适的开发板,所以暂且不作介绍,我今天仅介绍模块级解决方案,其平台是赫立讯公司的IP-Link1223模块。 IP-Link1223模块提供三种组网模式:线性网络、全Mesh网络、星型拓扑,其中全Mesh网络最为常用。三种指令模式:AT指令模式、透传模式、二进制模式,AT指令模式只能本地配置;透传模式虽然好用,但是多点通信时并不灵活;二进制模式不仅本地可以配置,也可以透过网络远程配置,并且可以获取路由表及相关链路通信质量。 软件配置界面: 目前已经编写出支持全部的二进制模式指令Helicomm_IPLink1223类,相关指令如下,详细通信协议请参见赫立讯公司相关的说明文档。 privatestaticbyteCMD_ReadADC=0x81;//读模拟通道值 privatestaticbyteCMD_ReadADC=0x81;//读模拟通道值 privatestaticbyteCMD_ReadRSSI=0x82;//读发射频率 privatestaticbyteCMD_ReadTemperature=0x83;//读温度 privatestaticbyteCMD_ReadSRegister=0x86;//读S寄存器值 privatestaticbyteCMD_WriteSRegister=0x87;//写S寄存器值 privatestaticbyteCMD_ReadMAC=0x8B;//读MAC地址 privatestaticbyteCMD_ReadVer=0x8C;//读内核版本 privatestaticbyteCMD_BatterySavingMode=0x8D;//节电(停机) privatestaticbyteCMD_Hibernation=0x8E;//休眠 privatestaticbyteCMD_SoftReboot=0x8F;//软重启 privatestaticbyteCMD_HardwareReboot=0xC0;//硬重启 privatestaticbyteCMD_Reset=0x90;//恢复出厂设置 privatestaticbyteCMD_ReadRoute=0x95;//读取路由表 privatestaticbyteCMD_ReadBlacklist=0x9C;//读取黑名单 privatestaticbyteCMD_WriteBlacklist=0x9D;//写黑名单 privatestaticbyteCMD_TrackerRoute=0xAA;//跟踪路由 privatestaticbyteCMD_TrackerLQIRoute=0xBB;//带信号强度的跟踪路由 privatestaticbyteCMD_ReadIO=0xAC;//读IO状态 privatestaticbyteCMD_WriteIO=0xAD;//写IO状态 privatestaticbyteCMD_ScanNeighbour=0xBC;//扫描邻居列表 privatestaticbyteCMD_ReadDeviceType=0xC3;//获得设备类型 privatestaticbyteCMD_LocalHibernation=0xB1;//本地休眠 privatestaticbyteCMD_LocalAwaikening=0xB2;//本地唤醒 本文转自yefanqiu51CTO博客,原文链接:http://blog.51cto.com/yfsoft/321206,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android系统的开机画面显示过程分析(4)

函数fb_show_logo_line也是实现在文件kernel/goldfish/drivers/video/fbmem.c中,如下所示: staticintfb_show_logo_line(structfb_info*info,introtate, conststructlinux_logo*logo,inty, unsignedintn) { u32*palette=NULL,*saved_pseudo_palette=NULL; unsignedchar*logo_new=NULL,*logo_rotate=NULL; structfb_imageimage; /*Returniftheframebufferisnotmappedorsuspended*/ if(logo==NULL||info->state!=FBINFO_STATE_RUNNING|| info->flags&FBINFO_MODULE) return0; image.depth=8; image.data=logo->data; if(fb_logo.needs_cmapreset) fb_set_logocmap(info,logo); if(fb_logo.needs_truepalette|| fb_logo.needs_directpalette){ palette=kmalloc(256*4,GFP_KERNEL); if(palette==NULL) return0; if(fb_logo.needs_truepalette) fb_set_logo_truepalette(info,logo,palette); else fb_set_logo_directpalette(info,logo,palette); saved_pseudo_palette=info->pseudo_palette; info->pseudo_palette=palette; } if(fb_logo.depth<=4){ logo_new=kmalloc(logo->width*logo->height,GFP_KERNEL); if(logo_new==NULL){ kfree(palette); if(saved_pseudo_palette) info->pseudo_palette=saved_pseudo_palette; return0; } image.data=logo_new; fb_set_logo(info,logo,logo_new,fb_logo.depth); } image.dx=0; image.dy=y; image.width=logo->width; image.height=logo->height; if(rotate){ logo_rotate=kmalloc(logo->width* logo->height,GFP_KERNEL); if(logo_rotate) fb_rotate_logo(info,logo_rotate,&image,rotate); } fb_do_show_logo(info,&image,rotate,n); kfree(palette); if(saved_pseudo_palette!=NULL) info->pseudo_palette=saved_pseudo_palette; kfree(logo_new); kfree(logo_rotate); returnlogo->height; } 参数logo指向了前面所准备的第一个开机画面的内容。这个函数首先根据参数logo的内容来构造一个fb_image结构体image,用来描述最终要显示的第一个开机画面。最后就调用函数fb_do_show_logo来真正执行渲染第一个开机画面的操作。函数fbcon_switch实现在文件kernel/goldfish/drivers/video/console/fbcon.c中,显示第一个开机画面的过程如下所示: staticvoidfb_do_show_logo(structfb_info*info,structfb_image*image, introtate,unsignedintnum) { unsignedintx; if(rotate==FB_ROTATE_UR){ for(x=0; x<num&&image->dx+image->width<=info->var.xres; x++){ info->fbops->fb_imageblit(info,image); image->dx+=image->width+8; } }elseif(rotate==FB_ROTATE_UD){ for(x=0;x<num&&image->dx>=0;x++){ info->fbops->fb_imageblit(info,image); image->dx-=image->width+8; } }elseif(rotate==FB_ROTATE_CW){ for(x=0; x<num&&image->dy+image->height<=info->var.yres; x++){ info->fbops->fb_imageblit(info,image); image->dy+=image->height+8; } }elseif(rotate==FB_ROTATE_CCW){ for(x=0;x<num&&image->dy>=0;x++){ info->fbops->fb_imageblit(info,image); image->dy-=image->height+8; } } } 参数rotate用来描述屏幕的当前旋转方向。屏幕旋转方向不同,第一个开机画面的渲染方式也有所不同。例如,当屏幕上下颠倒时(FB_ROTATE_UD),第一个开机画面的左右顺序就刚好调换过来,这时候就需要从右到左来渲染。其它三个方向FB_ROTATE_UR、FB_ROTATE_CW和FB_ROTATE_CCW分别表示没有旋转、顺时针旋转90度和逆时针旋转90度。 参数info用来描述要渲染的帧缓冲区硬件设备,它的成员变量fbops指向了一系列回调函数,用来操作帧缓冲区硬件设备,其中,回调函数fb_imageblit就是用来在指定的帧缓冲区硬件设备渲染指定的图像的。 至此,第一个开机画面的显示过程就分析完成了。 本文转自 Luoshengyang 51CTO博客,原文链接:http://blog.51cto.com/shyluo/967032,如需转载请自行联系原作者

优秀的个人博客,低调大师

在Linux系统新增加一块硬盘

今天公司测试Linux服务器硬盘不够用了,主要是mysql数据文件太大了,买了个500G的硬盘回来,这里记录下新加硬盘的方法 PS 测试服务器的主板太差劲了,没有多余的电源接口,只能把光驱的电源拿出来,才能让硬盘使用。 把硬盘装好后,我们用 fdisk -l 查看下: 图中可以看出 /dev/sdb 是500G,新加的硬盘。 接下来我用命令 fdisk sdb 进行分区,输入 p 查看新硬盘分区,如图: 可以用m命令来看fdisk命令的内部命令;n命令创建一个新分区;d命令删除一个存在的分区;p命令显示分区列表;t命令修改分区的类型ID号;l命令显示分区ID号的列表;a命令指定启动分区;w命令是将对分区表的修改存盘让它发生作用。 我们这里是创建新分区,所以输入 n 然后 e 是扩展分区,p 是主分区,我们输入 p 接下来的块数什么的,都输入 1 ,最后选择大小,Last cylinder or +size or +sizeM or +sizeK (1-60801, default 60801): +500GB //我们输入这个意思是分区大小为500G 最后输入 w 保存,如图: 然后在/dev/目录下就可以看到 sdb1 存在了。 分区完了之后,我们需要进行格式化,使用 mkfs -t ext3 /dev/sdb1 命令进行对sdb1格式化。如图: 上图格式化,我还在进行中,大约进行了一半。 格式化完了之后,我们就可以进行挂载分区了,我们先创建一个目录叫 data 然后把 /dev/sdb1 挂载到 /data 目录下,命令如下 mkdir /data mount /dev/sdb1 /data 最后使用 df -h 命令进行查看,修改 /etc/fstab 来进行自动加载。如图: 保存后,重启服务器,一切OK。

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册