让我们从计算机开聊。
当计算机启动时,它会运行一个叫init的程序,然后init会启动其他所需的程序:服务器、终端、窗口管理器等。
Init能做几件有趣的事情,例如让一个程序开机启动,隔一段时间运行一个程序,还有确保一个程序没有失败或者crash,如果有就重启它。
正在运行的程序可以看到这台机器上的所有东西:其它在运行的程序,所有的文件,以及网络。
多个进程同时跑在一台计算机上。
所有的进程可以自由的互相之间交互,或者与常规的资源交互。
通过将进程进行划分,程序员可以有一个愈加简单的模型来方便理解,所以创建命名空间(namespace)的工具也被开发出来了。
程序或者进程只能看到运行在同
2019/8/21 6:21:29 293KB 容器和Kubernetes的应用与开发
1
模仿数据链路层的gobackn协议/*该协议是搭载ack的回退n步协议*/#include#include"protocol.h"#definemax_seq7#defineflag126#defineESC100#definewait_time2700 //发送计时器等待的时间#defineack_wait_time280staticintphl_ready=0;unsignedcharbuf[max_seq+1][270];unsignedcharack[8];//发送空的ack帧unsignedcharin_buf[600],last_buf[520];//接收时的缓冲区;去掉冗余之后的缓冲区,为防备因误码两帧合并为一帧而定义了很大一个数组intnbuffered=0;//发送的帧数intbuf_size[max_seq+1];//记下以发送各帧的帧长intnext_frame_to_send=0;intframe_in_phl=0;//用于成帧intframe_expected=0;intack_expected=0;intbetween(inta,intb,intc){ if(((a<=b)&&(b<c))||((c<a)&&(a<=b))||((b<c)&&(c<a))) return1; elsereturn0;}//判断帧尾,防止出现误判escescflag为数据的情况intend_flag(intin_len){ intcount=0; inti; if(in_len=0;i--)//记录flag前的esc数目 count++; returncount%2;//若flag前的esc为偶数,则为帧尾}//成帧函数--数据帧voidsend_frame(char*my_buf,intlen){ intn; buf[frame_in_phl][0]=(frame_expected+max_seq)%(max_seq+1); //ack buf[frame_in_phl][1]=frame_in_phl; //发送帧的帧号 for(n=0;n<len;n++) buf[frame_in_phl][n+2]=my_buf[n]; //将处理过的新帧赋值到缓冲区中 len=len+2; *(unsignedint*)(buf[frame_in_phl]+len)=crc32(buf[frame_in_phl],len); //在原始帧的基础上加检验和 buf_size[frame_in_phl]=len+4; //记录当前帧的长度,包括3个帧头,4个检验和 nbuffered=nbuffered+1; //缓冲区占用数加一 frame_in_phl=(frame_in_phl+1)%(max_seq+1);}//成帧函数--ack帧voidsend_ack() //ack帧的处理{ ack[0]=(frame_expected+max_seq)%(max_seq+1); ack[1]=max_seq+10; //ack帧的序号位,使ack[1]==frame_expected恒不成立 *(unsignedint*)(ack+2)=crc32(ack,2); //在原始帧的基础上加检验和}//主函数intmain(intargc,char**argv){intevent,arg,n,m,i,j,len=0,in_len=0; unsignedcharmy_buf[260]; intphl_wait=0;//在物理层中还没有被发送的帧protocol_init(argc,argv);enable_network_layer();for(;;){event=wait_for_event(&arg);switch(event){caseNETWORK_LAYER_READY:
2019/7/26 21:18:43 425KB go back n gobackn
1
1.app为可运行包(动态库)2.Demo为源码3.演示.gif是演示效果/*******************************************************************************\类的名称:MainWindow功能描述:使用QCustomSlot范例次要函数:init-初始化realtimeDataSlot-qt实时刷新使用方法:直接作为主界面程序运行作者:杨炯QQ:21497936邮件:21497936@qq.com版本修改者日期备注V1.0杨炯2017年9月5日基本功能\*******************************************************************************/编译环境qt5.2编译器mingw48
2017/3/26 14:38:03 30.61MB QCustomPlot 二维表 监控 replot
1
收割者Reaper是一个小型C++测试引擎。
生成形态(主分支)服务系统编译器形态Ubuntu19.0464位GCC7.0Windows64位VisualStudio2017/2019年建立$gitsubmoduleupdate--init--recursive$cmake-H.-B./build$cmake--buildbuild
2021/5/2 10:08:13 27.76MB game windows linux game-engine
1
XZMTabbarExtensiontabBar工具条框架(顺应各种APP风格,集成只需几行代码,没有转换度)##动态工具条/**创建自定义tabbar*/XZMTabbarExtension*tabBar=[[XZMTabbarExtensionalloc]init];tabBar.backgroundColor=[UIColorwhiteColor];tabBar.frame=self.tabBar.bounds;/**传递模型数组*/tabBar.items=self.itemArray;[tabBarxzm_setShadeItemBackgroundColor:[UIColorcyanColor]];/**设置代理*/tabBar.delegate=self;[self.tabBarad
2019/9/19 6:32:53 549KB Objective-C
1
版本0.56的Coc集成安装:CocInstallhttps://github.com/rodrigore/coc-tailwind-intellisense或者,如果您是用户,请添加:Plug'rodrigore/coc-tailwind-intellisense',{'do':'npminstall'}在您的.vimrc或init.vim,然后重新启动或获取vimrc并运行:PlugInstall。
产品特点自动完成林亭悬停预览功能不起作用从0.42版开始,顺风就可以显示颜色装饰器。
在撰写本文时,vim/neovim/coc.nvim不支持装饰器。
设定值tailwindCSS.enable设置为false可禁用顺风智能感知服务器。
(默认为true)官方毛病排除阅读
2020/1/22 13:04:29 3.1MB vim neovim intellisense neovim-plugin
1
程序名称:飞思卡尔智能车舵机调试工具v1.1程序作者:LinX时间:2009-03-07联系方式:QQ:408111919Email:linhaiwz@163.com"&vbCrLf&vbCrLf&_〖 本程序为方便舵机调试而编写,错误在所难免,如有建议欢迎和我联系!〗角度转换为高电平时间角度-45045(anger/度)高电平时间100015002000(t/us)计算公式为:T=1000+(anger+45)*(1000/90)该程序可以通过串口与单片机进行通讯,实时改变舵机的角度。
通讯协议为:0xfe0xMM0xNN(其中0xfe为包头,0xMM为PWMDTYx高8位,0xN为PWMDTYx低8位)在串口中缀中分三次接收,在第二次接收时保存数据到temp0中,在第三次接收到数据时将PWMDTY01=((unsignedint)temp0<<8)|RxData就可以完成PWM改变输出了。
下位机程序如下:#include/*commondefinesandmacros*/#include/*derivativeinformation*/#pragmaLINK_INFODERIVATIVE"mc9s12xs128"unsignedcharRX=0,temp0;voiduart_putchar(unsignedcharch){if(ch=='\n'){while(!(SCI0SR1&0x80));SCI0DRL=0x0d;return;}while(!(SCI0SR1&0x80));SCI0DRL=ch;}staticvoidPWM_Init(void){//SB,Bforch2367//SA,Aforch0145PWMCTL_CON01=1; //0和1联合成16位PWM;
PWMCAE_CAE1=0; //选择输出模式为左对齐输出模式PWMCNT01=0; //计数器清零;
PWMPOL_PPOL1=1; //先输出高电平,计数到DTY时,反转电平PWMPRCLK=0X40;//clockA不分频,clockA=busclock=16MHz;CLKB16分频:1MhzPWMSCLA=8;//对clockSA进行2*8=16分频;
pwmclock=clockA/16=1MHz;PWMCLK_PCLK1=1;//选择clockSA做时钟源PWMPER01=20000;//周期20ms;
50Hz;(可以使用的范围:50-200hz)PWMDTY01=1500;//高电平时间为1.5ms;PWME_PWME1=1;}voidsetbusclock(void)//PLLsetting{CLKSEL=0X00;//disengagePLLtosystemPLLCTL_PLLON=1;//turnonPLLSYNR=1;REFDV=1;//pllclock=2*osc*(1+SYNR)/(1+REFDV)=32MHz;_asm(nop);//BUSCLOCK=16M_asm(nop);while(!(CRGFLG_LOCK==1));//whenpllissteady,thenuseit;CLKSEL_PLLSEL=1;//engagePLLtosystem;}staticvoidSCI_Init(void)//SCI{SCI0CR1=0x00;SCI0CR2=0x2c;//enableReceiveFullInterrupt,RXenab
2017/9/26 2:39:53 273KB 飞思卡尔 智能车 舵机 调试工具
1
Spring.NET是一个应用程序框架,其目的是协助开发人员创建企业级的.NET应用程序。
它提供了很多方面的功能,比如依赖注入、面向方面编程(AOP)、数据访问抽象及ASP.NET扩展等等。
Spring.NET以Java版的Spring框架为基础,将Spring.Java的核心概念与思想移植到了.NET平台上。
第一章序言第二章简介2.1.概述2.2.背景2.3.模块2.4.许可证信息2.5.支持第三章背景3.1.控制反转第一部分核心技术第四章对象、对象工厂和应用程序上下文4.1.简介4.2.IObjectFactory,IApplicationContext和IObjectDefinition接口引见4.2.1.TheIObjectFactory和IApplicationContext4.2.2.对象定义4.2.3.对象的创建4.2.3.1.通过构造器创建对象4.2.3.2.通过静态工厂方法创建对象4.2.3.3.通过实例工厂方法创建对象4.2.4.泛型类的对象创建4.2.4.1.通过构造器创建泛型类的对象4.2.4.2.通过静态工厂方法创建泛型类的对象4.2.4.3.通过实例工厂方法创建泛型类的对象4.2.5.对象标识符(id和name)4.2.6.Singleton和Prototype4.3.属性,协作对象,自动装配和依赖检查4.3.1.设置对象的属性和协作对象4.3.2.构造器参数解析4.3.2.1.根据参数类型匹配构造器参数4.3.2.2.根据参数索引匹配构造器参数4.3.2.3.根据名称匹配构造器参数4.3.3.详细讨论对象属性和构造器参数4.3.3.1.设置空值4.3.3.2.设置集合值4.3.3.3.设置泛型集合的值4.3.3.4.设置索引器属性4.3.3.5.内联对象定义4.3.3.6.idref节点4.3.3.7.引用协作对象4.3.3.8.value和ref节点的简短格式4.3.3.9.复合属性名4.3.4.方法注入4.3.4.1.查询方法注入4.3.4.2.替换任意方法4.3.5.引用其他对象或类型的成员4.3.5.1.使用对象或类的属性值进行注入4.3.5.2.使用字段值进行注入4.3.5.3.使用方法的返回值进行注入4.3.6.IFactoryObject接口的其它实现4.3.6.1.Log4Net4.3.7.使用depends-on4.3.8.自动装配协作对象4.3.9.检查依赖项4.4.类型转换4.4.1.枚举类型的转换4.4.2.内置的类型转换器4.4.3.自定义类型转换器4.4.3.1.使用CustomConverterConfigurer类4.5.自定义对象的行为4.5.生命周期接口4.5.1.1.IInitializingObject接口和init-method属性4.5.1.2.IDisposable接口和destroy-method属性4.5.2.让对象了解自己的容器4.5.2.1.IObjectFactoryAware接口4.5.2.2.IObjectNameAware接口4.5.3.IFactoryObject接口4.6.抽象与子对象定义4.7.与IObjectFactory接口交互4.7.1.获得IFactoryObject对象本身,而非其产品4.8.使用IObjectPostProcessor接口自定义对象4.9.使用IObjectFactoryPostProcessor定制对象工厂4.9.1.PropertyPlaceholderConfigurer类4.9.1.1.使用环境变量进行替换4.9.2.PropertyOverrideConfigurer类4.10.使用alias节点为对象添加别名4.11.IApplicationContext简介4.12.配置应用程序上下文4.12.1.注册自定义解析器4.12.2.创建自定义资源处理器4.12.3.配置类型别名4.12.4.注册类型转换器4.13.IApplicationContext接口的扩展功能4.13.1.上下文继承4.13.2.使用IMessageSource接口4.13.3.在Spring.NET内部使用资源4.13.4.松耦合事件模型4.13.5.IApplicationContext的事件通知4.14.定制IApplicationContex中对象的行为4.14.1.IApplicationContextAware标识接口4.14.2.IObjectPostProcessor接口4
2018/6/2 6:28:01 1.02MB spring.net 中文手册 在线版
1
该资源用于搭建最基础的SSM框架。
下载后直接导入工程,并可执行resource中的init.sql插入测试数据即可验证。
2021/3/26 16:12:37 31.28MB ssm 框架 基本框架 spring
1
Systemctl是systemd用于管理系统和管理服务的工具。
许多古代Linux发行版,如Ubuntu、Debian、Fedora、LinuxMint、OpenSuSE、Redhat都采用systemd作为默认的init系统。
2016/8/25 19:09:06 580KB Systemctl
1
共 99 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡