首页 文章 精选 留言 我的

精选列表

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

在tiny4412源码下编写全系统编译执行脚本

今天心血来潮,想把之前做的开发板环境配置以及编译的东西重新整理一下,毕竟最近在搞开发,所以有必要温故而知新。 以下是我整个Android-5.0的工程目录列表: 其中build_4412_img.sh、copyimage_to_window_system.sh是我自己写的快速编译拷贝脚本。 book@book-virtual-machine:/work/android-5.0.2$ ls abi build_4412_img.sh development gen-img.sh Makefile prebuilts tools art copyimage_to_window_sysetm.sh device hardware ndk rodev vendor bionic cts docs kernel out sdk bootable dalvik external libcore packages setenv build developers frameworks libnativehelper pdk system 首先来看看build_4412_img.sh这个脚本,脚本对应的代码如下: #build system IMG #build system img and copy img to window share #Y.X.YANG #date:2016.12.22 cd /work/android-5.0.2/kernel/ #首先切换到工程的kernel主目录 make -j4 #开始编译内核 echo $? if test $? -eq 0 #判断编译是否出错,出错直接退出,编译成功将生成的zImage拷贝至window共享目录 then echo "build 4412 kernel-img success!" cp /work/android-5.0.2/kernel/arch/arm/boot/zImage /mnt/hgfs/share/images/ else echo "build 4412 kernel-img fair!" exit 0 fi cd /work/android-5.0.2/ #kernel编译完成后接下来编译Android源码 . setenv #先设置编译环境,下面有setenv的源码 lunch full_tiny4412-eng #选择我们要编译的产品,我们这里选择4412的工程版本 make -j4 #编译 ./gen-img.sh #生成对应产品的img ./copyimage_to_window_sysetm.sh #将img拷贝到window共享目录 接下来这个就是setenv的源码: #!/bin/bash CPU_JOB_NUM=$(grep processor /proc/cpuinfo | awk '{field=$NF};END{print field+1}') # java OPENJDK7_DIR=/usr/lib/jvm/java-7-openjdk-amd64 java_version_str=`java -version 2>&1 | grep '^java .*[ "]1\.7[\. "$$]'` if [ "x$java_version_str" = "x" ]; then export PATH=${OPENJDK7_DIR}/bin:$PATH fi PRODUCT='full_tiny4412' #这里是对应的产品 source build/envsetup.sh #和大多数安卓编译的方式一样的,这里只是把souce build/envsetup.sh放到setenv这个脚本里面来了 TARGET_PRODUCT=$PRODUCT TARGET_SIMULATOR=false TARGET_BUILD_TYPE=release TARGET_BUILD_VARIANT=eng export PATH TARGET_PRODUCT TARGET_SIMULATOR TARGET_BUILD_TYPE TARGET_BUILD_VARIANT #这里是对应的外部环境变量引用 # settitle COMBO4FA=${TARGET_PRODUCT}-${TARGET_BUILD_VARIANT} #设置标题 export PROMPT_COMMAND="echo -ne \"\033]0;[${COMBO4FA}] ${USER}@${HOSTNAME}: ${PWD}\007\"" 接下来这个是gen-img.sh,作用是将生成在out目录下的img拷贝到源码的根目录下: #!/bin/bash OUTDIR=out/target/product/tiny4412 #这里就是out生成img的路径 AHOSTBIN=out/host/linux-x86/bin #选择对应的工具 # install vendor files #安装供应商文件 if [ -d vendor/friendly-arm/tiny4412/rootdir/system/ ]; then cp -af vendor/friendly-arm/tiny4412/rootdir/system/* ${OUTDIR}/system/ fi if [ -d vendor/friendly-arm/tiny4412/rootdir/data/ ]; then cp -af vendor/friendly-arm/tiny4412/rootdir/data/* ${OUTDIR}/data/ fi # make images #生成img LOPTS="-T -1 -S ${OUTDIR}/root/file_contexts" ${AHOSTBIN}/make_ext4fs -s ${LOPTS} -l 629145600 -a system system.img ${OUTDIR}/system # eMMC Size | UserData partition Size #------------------------------------------------ # 4G | 2149580800 (2G) 2050*1024*1024 # 8G | 4299161600 (4G) # 16G | 10747904000 (10G) 10250*1024*1024 #------------------------------------------------ ${AHOSTBIN}/make_ext4fs -s ${LOPTS} -l 2149580800 -a data userdata-4g.img ${OUTDIR}/data ${AHOSTBIN}/make_ext4fs -s ${LOPTS} -l 4299161600 -a data userdata-8g.img ${OUTDIR}/data ${AHOSTBIN}/make_ext4fs -s ${LOPTS} -l 10485760000 -a data userdata-16g.img ${OUTDIR}/data cp userdata-4g.img userdata.img #拷贝对应的img # ramdisk ${AHOSTBIN}/mkbootfs ${OUTDIR}/root | ${AHOSTBIN}/minigzip > ${OUTDIR}/ramdisk.img mkimage -A arm -O linux -T ramdisk -C none -a 0x40800000 -n "ramdisk" \ -d ${OUTDIR}/ramdisk.img ramdisk-u.img # minitools support #minitool 工具支持 MINITOOLS_PATH=/opt/MiniTools/tiny4412/images/Android5.0 if [ -d ${MINITOOLS_PATH} ]; then cp -f ramdisk-u.img ${MINITOOLS_PATH}/ cp -f system.img ${MINITOOLS_PATH}/ cp -f userdata*.img ${MINITOOLS_PATH}/ ls -l ${MINITOOLS_PATH}/ramdisk-u.img ls -l ${MINITOOLS_PATH}/system.img ls -l ${MINITOOLS_PATH}/userdata*.img fi 接下来这个是copyimage_to_window_system.sh,作用是将生成的img拷贝到window共享目录 sudo mv userdata-16g.img userdata-4g.img userdata-8g.img userdata.img system.img ramdisk-u.img /mnt/hgfs/share/images/ 往后的文章会介绍如何修改4412上的配置文件,会做成sdk修改记录,欢迎大家有空来学习。

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

【运维必读】在云计算时代,这是系统运维都需要的产品!

云计算时代到来了,大家都习惯了通过在线购买服务器或数据库的方式来构建公司的整个互联网服务或者IT服务,大家很轻松的便通过云计算服务商的控制面板,很容易的就获得了最终服务器的访问权,可以很容易的对虚拟服务器,数据库等计算节点方便的操作。 但是这往往也隐藏着很多管理上的危险,即公司中每个人可能都是通过互联网在管理服务器的,作为管理者的你可能并不知道管理员是来自哪里,是不是真的是公司的成员。其次,每个人到底在服务器上做了什么操作,哪些操作可能是危险操作,包括是否有人可能正将服务器中的重要数据向外搬运,你也不知道。 这个时候,碉堡云这款产品就是每一个使用云计算公司所必须的产品了。 首先,这一款Saas化的产品,其设计和传统的软件相比,最大的特点就是简单易用。但简单易用并不意味着功能弱。实际上这是一款非常强大的软件。碉堡云可以支持Linux,Windows及Mysql的操作审计,远程监控等功能,你无须特别的管理工具,仍然可以通过对应的软件客户端来操作服务器或数据库如SSHClient或Mysql的各种客户端,同时针对数据库,还有特别强大的误操作阻断功能。比如当DBA在连接到数据库执行一个删除命令的时候,忘记加上了判断条件,如“Delete from User”,一个回车下去,数据就没有了,相信不少人有这样惨痛的经历,但是使用碉堡云就不会了,碉堡云会主动Block相应的命令,使得误操作无法直接执行。 大家可能对碉堡云本身的安全还有疑惑,实际上碉堡云的执行核心是直接安装到你自己的一台服务器上的,而只需要该服务器可以连接到碉堡云的中心云中就可以实现对一个网段下的服务器或数据库的管理,这是非常安全的,也就意味着碉堡云本身也无法连接到需要管理的机器。 以阿里云的VPC部署举例,在一个vpc下的ECS和RDS都可以不开放外网IP,或者拥有外网IP的服务器不需要开放任何管理的监听端口。然后找一台具有互联网访问的服务器安装成为该VPC下的堡垒机(同样不用开放端口),然后通过扫描或者手动添加的方式,就可以通过碉堡云来管理这个网络下的所有对象了。同时可以将不同的对象分配给公司中的其他成员,他们就可以通过碉堡云的管理界面来管理了,非常方便。 如果是数据库对象,可以将生产的连接在代码中配置为直接连接到数据库,而DBA们则要求通过碉堡云来管理数据库,这样危险的SQL操作就会在DBA的日常操作中被阻挡,而DBA们执行危险的操作则可以在碉堡云上发起SQL申请,才可以最终执行诸如删除,数据更新等命令,保证了安全。 所有的在碉堡云上的操作都会被记录下来,每个成员都可以快速查询其自身对象下的所有操作记录,而管理员还可以查看所有的人的操作记录。设想一下,当一个重要文件被删除的时候,只需要查询一下当时谁执行了“rm”操作就可以知道是谁闯的货。 另外,我们经常还会遇到个别问题公司内部解决不了,需要远程专家帮忙看一看的情况,利用碉堡云可以像网盘的文件外链一样发送一个临时连接给到外部的人员,他无须知道服务器的密码就可以操作服务器,同时作为发起者的你还可监控对方的一举一动,如果有任何危险的行为,都可以直接中断对方的操作。 最后,还有一个很强大的功能,也是驻云实际在使用的功能,就是可以把一组网络共享给碉堡云中的其他组织,让他们帮助你进行管理。有了这个你还有什么担心把云上服务器的运维工作交给信任的第三方呢?第三方所有的一举一动都可以被审计,同时大家在操作失误或管理上的问题也可以有据可查。 看了这些内容,你是不是觉得碉堡云是你的企业现在正需要的一个产品呢?重要的事情还没说,这就是这么强大的一款产品,要不要收费呢?碉堡云对于一个管理网络是免费的,而如果你的网络非常复杂的话,也只需要收取很少的费用,作为一个公共云服务,碉堡云是驻云公司为了提升云时代用户体验的一款福利性的产品。所以,如果你是你们公司负责运维的老大,赶紧试试吧。 好啦 ~ ~ ~ 本文到这里也就结束啦 ~ 如果还希望了解更多相关知识的话,就赶紧订阅我们吧~每天新鲜干货送上呦 ~

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

用Kibana+Logstash+Elasticsearch快速搭建实时日志查询、收集与分析系统

安装环境 先看看都需要安装什么软件包 ruby 运行Kibana 必须, rubygems 安装ruby扩展必须 bundler 功能类似于yum JDK 运行java程序必须 redis 用来处理日志队列 logstash 收集、过滤日志 ElasticSearch 全文搜索服务(logstash集成了一个) kibana 页面展示 192.168.18.240 logstash index,kibana,JDK 192.168.18.241 logstash agent,JDK 192.168.18.242 redis 192.168.18.243 ElasticSearch,JDK 先安装redis (192.168.18.242) # wget http://redis.googlecode.com/files/redis-2.6.12.tar.gz # tar zxvf redis-2.6.12.tar.gz # mv redis-2.6.12 redis # cd redis # make -j24 # make install # vi /root/soft/redis/redis.conf 修改level为 loglevel verbose # redis-server /root/soft/redis/redis.conf & 看看 redis服务的状态 # lsof-i:6379 安装 elasticsearch (192.168.18.243) elasticsearch会依赖于java # vi /etc/apt/sources.list deb http: //ftp.debian.org/debian/ squeeze main non-free deb-src http: //ftp.debian.org/debian/ squeeze main non-free # apt-get update # apt-cache search sun-java # apt-get install sun-java6-jdk sun-java6-jre # java -version # wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.20.6.zip # unzip elasticsearch-0.20.6.zip # mv elasticsearch-0.20.6 /usr/local/share/elasticsearch # cd /usr/local/share/elasticsearch/bin/ # ./elasticsearch -f 在 logstash index上安装基础的软件环境: (192.168.18.240) # vi /etc/apt/sources.list deb http: //ftp.debian.org/debian/ squeeze main non-free deb-src http: //ftp.debian.org/debian/ squeeze main non-free # apt-get update # apt-cache search sun-java # apt-get install sun-java6-jdk sun-java6-jre # java -version 开始安装logstash ( 其实logstash就是一个java脚本,不需要安装...下载即用 ) # wget https://logstash.objects.dreamhost.com/release/logstash-1.1.9-monolithic.jar # vi /root/soft/redis.conf input { redis { host => '192.168.18.242' data_type => 'list' port => "6379" key => 'logstash:redis' type => 'redis-input' } } output { elasticsearch { host => '192.168.18.243' port => "9300" } } # java -jar /root/soft/logstash-1.1.9-monolithic.jar agent -f /root/soft/redis.conf -- web --backend elasticsearch:///?local 现在可以通过浏览器访问一下 http://192.168.18.240:9292 看看logstash是的页面是个什么样子 配置logstash的agent (192.168.18.241) 安装sun-java6-jre sun-java6-jdk # wget https://logstash.objects.dreamhost.com/release/logstash-1.1.9-monolithic.jar # vi /root/soft/redis.conf input { stdin { type => "stdin-type" } file { type => "linux-syslog" # Wildcards work, here :) path => [ "/var/log/*.log", "/var/log/messages", "/var/log/syslog" ] } } output { redis { host => '192.168.18.242' data_type => 'list' key => 'logstash:redis' } } # java -jar /root/soft/logstash-1.1.9-monolithic.jar agent -f /root/soft/redis.conf & OK,最后就是 Kibana了 ,我把Kibana装在了 logstash index上面 下载地址为http://kibana.org/intro.html # apt-get install ruby rubygems # gem install bundler #bundleinstall ( /var/lib/gems/1.8/bin/bundle install ) 以上为ruby运行环境 wget https://github.com/rashidkpc/Kibana/archive/v0.2.0.tar.gz #tar zxvfKibana-0.2.0.tar.gz #cdKibana-0.2.0 直接安装就好了,非常简单,因为之前咱们已经安装好了bundle 编辑配置文件,指定elasticsearch的位置 [192.168.18.240 root@nodec:/soft/Kibana-0.2.0] #vimKibanaConfig.rb ..... Elasticsearch="192.168.18.243:9200" KibanaPort=5601 KibanaHost='0.0.0.0' ..... 主要是这几个参数 启动的话需要ruby [192.168.18.240 root@nodec:/soft/Kibana-0.2.0] #/usr/bin/rubykibana.rb& [192.168.18.240 root@nodec:/soft/Kibana-0.2.0] #==Sinatra/1.3.5hastakenthestageon5601fordevelopmentwithbackupfromThin >>Thinwebserver(v1.5.0codenameKnife) >>Maximumconnectionssetto1024 >>Listeningon0.0.0.0:5601,CTRL+Ctostop 如果ruby的东西都不缺的话,启动会很顺利,ok现在看看5601端口的状态 [192.168.233.128root@nodec:/soft/Kibana-0.2.0] #lsof-i:5601 COMMANDPIDUSERFDTYPEDEVICESIZENODENAME ruby3116root5uIPv428947TCP*:esmagent(LISTEN) 访问一下 试试看http://192.168.18.240:5601尝试搜索一下php的错误日志,比如mysql 呵呵,要的就是这个效果,日志会实时的汇总到 logstash index 上供我们查询,当然这只是开始使用logstash的第一步而已,更多的高级功能可以看看官方文档http://logstash.net/docs/1.1.9/

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

知识管理系统 WCP5.0.1 发布,全面重构支持AI工作流引擎编排

WCP5 提供了一套完整的企业级知识管理解决方案,让团队协作更智能、更高效! 核心模块重构一览 模块 说明 * 知识管理 支持 多格式知识创建与维护 * 智能搜索 基于 Apache Lucene + IK 分词的全文检索引擎 * AI 助手 集成大语言模型,支持智能问答与嵌入检索 * 工作流引擎 可视化 AI 流程编排(Vue Flow) *️ 分类体系 灵活的多级知识分类管理 * 文件管理 附件上传、预览、转码与存储管理 * 用户权限 基于 JWT + Spring Security 的 RBAC * 社交互动 评论、点赞、收藏等社区化功能 * 报表中心 数据报表导出(Excel / Word / PDF) v5.0.1版本功能优势 一是 AI 深度融合,不是简单调用大模型 API,而是围绕知识场景构建了完整的智能能力——从基于智能问答与嵌入检索,到可视化的 AI 工作流编排,AI 贯穿知识生产、检索、流转的全链路。 二是 企业级知识管理闭环,前后端均采用主流技术栈(Spring Boot 3.4 + Vue3 + TypeScript),配合 Apache Lucene + IK 分词实现毫秒级全文检索,支持富文本与多级分类体系,覆盖知识从创建、组织、检索到协作的完整生命周期。 三是 强大的文档与多媒体处理能力,集成 Apache POI、PDFBox、JODConverter 等组件,实现 Office / PDF 附件的在线预览与转码,配合视频转码和 Excel / Word / PDF 报表导出,满足企业级内容处理需求。

资源下载

更多资源
Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

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等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册