- 如何从0开始写一个操作系统
c后端
本贴用来记录作者用c语言写一个操作系统,主要参考《操作系统真相还原》一书写的,同时也会对书里的代码和linux进行对比,尽量看一下现代操作系统中是如何实现的。原书的代码https://github.com/yifengyou/os-elephant/tree/master我会挑一些说说传统的操作系统课一般从内存,虚拟化等等方面讲起,因为是自己实现操作系统,肯定不能一上来就写开始写内存管理这种大活,
- 底软驱动 | Linux虚拟内存管理,MMU机制,原来如此
TrustZone_
#Linux内存linux内存Ubootarm开发
MMU现代操作系统普遍采用虚拟内存管理(VirtualMemoryManagement)机制,这需要处理器中的MMU(MemoryManagementUnit,内存管理单元)提供支持。首先引入PA和VA两个概念。PA如果处理器没有MMU,或者有MMU但没有启用,CPU执行单元发出的内存地址将直接传到芯片引脚上,被内存芯片(以下称为物理内存,以便与虚拟内存区分)接收,这称为PA(PhysicalAd
- HarmonyOS 与 iOS:架构与优势的深度剖析
汪子熙
计算机基础知识harmonyosios架构华为
在现代操作系统的版图中,HarmonyOS和iOS都占据着重要地位。它们代表了两种不同的发展方向:前者以分布式架构和多终端融合为核心,后者则以精细化的用户体验和封闭的生态系统见长。以下将通过多个维度剖析它们的本质区别与各自的优势。技术架构的不同HarmonyOS是由华为开发的一款基于微内核设计的分布式操作系统,强调跨设备的无缝协同。其微内核架构使系统的模块更加轻量化,并支持多样化设备的集成,从智能
- 从零开始!Jupyter Notebook的安装教程
109702008
人工智能编程#pythonjupyter人工智能
GPT-4o(OpenAI)安装JupyterNotebook是一个相对简单的过程,特别是在大多数现代操作系统(如Windows、macOS和Linux)上。以下是详细的步骤指南,从安装Python开始,到JupyterNotebook的使用。步骤1:安装PythonJupyterNotebook需要Python环境。你可以从[Python官网](https://www.python.org/do
- 线程共享和协作的CPU核心数,线程数,时间片轮转机制
榴月~
Javajava数据库jvm
在现代操作系统和编程中,线程共享和协作的机制涉及到多个概念和技术,包括CPU核心数、线程数和时间片轮转机制。下面我们详细解读这些概念。CPU核心数与线程数CPU核心数:核心:一个CPU核心是一个独立的处理单元,能够独立执行指令。多核处理器拥有多个核心,每个核心可以独立运行线程。多核处理器:现代处理器通常是多核的,这意味着它们有多个核心,可以同时处理多个任务。比如,双核处理器有两个核心,四核处理器有
- 超越传统:探索Visual Basic在操作系统插件开发的新境界
哎呦没
microsoft
标题:超越传统:探索VisualBasic在操作系统插件开发的新境界VisualBasic(VB),作为微软的老牌编程语言,以其简洁的语法和快速的开发能力在软件开发历史上占有一席之地。尽管VB并非现代操作系统插件或扩展开发的主流选择,但其在特定场景下仍具有一定的可行性。本文将探讨VisualBasic在开发操作系统插件或扩展时的应用潜力,并提供实际代码示例。1.VisualBasic简介Visua
- 深入理解C语言指针原理——深入底层机制
极客代码
玩转C语言开发语言c语言
概述在C语言中,指针是处理内存的核心工具。为了更好地理解指针如何工作,我们需要深入了解指针与底层硬件和操作系统之间的交互方式。本文将探讨指针的底层实现、内存布局、以及它们如何影响程序的行为。内存模型虚拟内存现代操作系统为每个进程提供了独立的虚拟地址空间。这个虚拟地址空间被划分为几个主要部分:代码段(CodeSegment):包含程序的可执行指令。数据段(DataSegment):存放已初始化的全局
- 进程间通信与线程间通信
liliansunshine
网络linux操作系统线程和进程通信方式区别与联系
序今天被问及进程间通信的问题,发现自己了解的并不够,所以,对此好好总结一番~操作系统的主要任务是管理计算机的软件、硬件资源。现代操作系统的主要特点是多用户和多任务,也就是程序的并行执行,windows如此linux也是如此。所以操作系统就借助于进程来管理计算机的软、硬件资源,支持多任务的并行执行。要并行执行就需要多进程、多线程。因此多进程和多线程间为了完成一定的任务,就需要进行一定的通信。而线程间
- 浅谈IO多路复用
威桑
C++计算机IO多路复用c++计算机
什么事IO多路复用?IO多路复用是一种同步IO模型,它可以让一个线程监视多个文件描述符(Socket)的就绪状态。当有一个或多个文件描述符就绪时,内核会通知应用程序,然后应用程序可以进行相应的读写操作。如果没有文件描述符就绪,线程就会阻塞,从而释放CPU资源。在现代操作系统中,实现IO多路复用的主要模型有三种:select:这是最早期的IO多路复用机制,定义在POSIX标准中。select函数允许
- [转载]Java8并发教程 - Thread和Executors
小小少年Boy
原文:Java8并发教程-Thread和Executors本教程分为三个部分,这是第一部分.在本教程中,我们大量使用了Java8中的lambda表达式.如果你对此不是很熟悉,请自行查阅资料来了解.当然,你也可以看这篇.1ThreadandRunnable现代操作系统,都支持通过进程和线程来实现并发.进程是程序的运行时的实例.程序是静态的,而进程是动态的.进程与进程之间,相互独立.例如,如果你运行一
- 计算机操作系统-笔记
C+ 安口木
计算机笔记microsoft
现代操作系统阅读笔记第一章引论1.操作系统定义操作系统是运行在内核态的软件,它执行两个基本上独立的任务。隐藏计算机底层硬件的实现,为用户及应用程序提供一个资源集的清晰抽象。管理计算机硬件资源。任何操作系统的核心是它可处理的系统调用集。这些系统调用集真实地说明了操作系统做的工作。2.计算机运行模式多数计算机有两种运行模式:内核态和用户态。软件中最基础的部分是操作系统,它运行在内核态。这内核态模式下,
- linux---内存管理
M.lee—CN
linux运维服务器
一虚拟内存即使是现代操作系统中,内存依然是计算机中很宝贵的资源,看看你电脑几个T固态硬盘,再看看内存大小就知道了。为了充分利用和管理系统内存资源,Linux采用虚拟内存管理技术,利用虚拟内存技术让每个进程都有4GB互不干涉的虚拟地址空间。进程初始化分配和操作的都是基于这个「虚拟地址」,只有当进程需要实际访问内存资源的时候才会建立虚拟地址和物理地址的映射,调入物理内存页。1.1虚拟地址的好处避免用户
- 操作系统——链接
有趣的杰克
计算机基础操作系统android链接
1.什么是链接链接是将代码和数据片段整合成一个可以被加载(复制)到内存中执行的文件。现代操作系统中,链接是由链接器自动执行的。链接最大的作用是分离编译,在编写大型应用程序时,不需要再编译出一个巨大的源文件,可以把代码编译成比较小的,单独的模块。文件修改时只需要重新编译单独的模块就可以了,不需要重新编译整个文件。2.静态链接流程下图为通过静态链接将两个C源文件编译成可执行目标文件的过程。静态链接:将
- Linux内核设计与实现 第十六章 页高速缓存与页回写
光电仪器设计者
《Linux内核设计与实现》阅读笔记linux服务器运维
页高速缓存(cache)是Linux内核实现磁盘缓存。它主要用来减少对磁盘的I/0操作。具体地讲,是通过把磁盘中的数据缓存到物理内存中,把对磁盘的访问变为对物理内存的访问。这一章将页回写:将页高速缓存中的变更数据刷新回磁盘的操作。磁盘高速缓存之所以在任何现代操作系统中尤为重要源自两个因素:第一,访问磁盘的速度要远远低于(差好几个数量级)访问内存的速度一ms和ns的差距,因此,从内存访问数据比从磁盘
- 页高速缓存
抱猫人
#Linux历程缓存linuxjava
高速缓存页高速缓存缓存手段读缓存写缓存缓存回收Linux页高速缓存address_space对象address_space操作操作页高速缓存的过程缓冲区高速缓存flusher线程页高速缓存页高速缓存是Linux内核实现的磁盘缓存,它主要的作用是用来减少磁盘IO操作。其实现原理是通过把磁盘中的数据缓存到物理内存中,把对磁盘的访问变为对物理内存的访问。磁盘高速缓存之所以在现代操作系统中尤为重要的原因有
- 高并发编程基础-02-线程基础知识说明
c0detrend
高并发编程javajvm数据结构
引言现在几乎所有操作系统都支持多任务执行,其中每个任务被视为一个进程。在每个进程内部,至少有一个线程在运行,线程也被称为轻量级进程。线程可以看作是程序执行的一条路径,每个线程都有自己的局部变量表、程序计数器(指向当前正在执行的指令)以及各自的生命周期。现代操作系统通常支持同时运行多个线程。例如,在启动Java虚拟机(JVM)时,操作系统会创建一个新的进程(即JVM进程),并在该进程中生成多个派生或
- 字符串和编码笔记
R7_Perfect
ASCII编码最早只有127个字符被编码到计算机里,也就是大小写英文字母、数字和一些符号大写字母A的编码是65,小写字母z的编码是122Unicode编码Unicode把所有语言都统一到一套编码里,解决不同语种的乱码问题。Unicode标准也在不断发展,但最常用的是用两个字节表示一个字符(如果要用到非常偏僻的字符,就需要4个字节)。现代操作系统和大多数编程语言都直接支持Unicode。现在,捋一捋
- 多线程生命周期与通信(一)生命周期
w_t_y_y
多线程编程java开发语言
一、线程的优先级1、多线程实现原理现代操作系统基本用时分的形式调度线程,将操作系统分成很多小片,然后分配给线程,线程用完了就发生线程调度,等待下次分配。线程分配到的时间片多少决定了线程使用处理器资源的多少,而线程优先级就是决定线程需要分配多或者少分配一些处理器资源的线程属性。2、线程优先级实现(1)决定线程分配时间片的数量;范围从1~10,默认为5,可通过setPriority(int)方法修改优
- Linux 互斥锁、读写锁、条件变量以及信号量
白小白的学习笔记
linux高并发服务器linuxjavajvm
互斥锁同步与互斥概述现代操作系统基本都是多任务操作系统,即同时有大量可调度实体在运行。在多任务操作系统中,同时运行的多个任务可能:都需要访问/使用同一种资源多个任务之间有依赖关系,某个任务的运行依赖于另一个任务这两种情形是多任务编程中遇到的最基本的问题,也是多任务编程中的核心问题,同步和互斥就是用于解决这两个问题的。互斥:是指散步在不同任务之间的若干程序片断,当某个任务运行其中一个程序片段时,其它
- 《操作系统真象还原》 第十四篇:定义并初始化TSS
lucky_goose
操作系统linux系统架构数据结构
第十四篇:定义并初始化TSS第十四篇:定义并初始化TSS任务状态段(TSS)的介绍TSS的定义TSS的初始化任务状态段(TSS)的介绍TSS由程序员提供,由CPU来维护。用于进程切换时,保存进程的上下文环境。在现代操作系统中,TSS仅用于为0特权级的任务提供栈指针当CPU由地特权级进入高特权级时,会自动从TSS中获取对应特权级的栈指针TSS结构如下:为了访问到TSS,需要在GDT中注册TSS描述符
- Linux 中断、抢占、锁之间的关系
chenyuping666
操作系统linux运维服务器
抢占(preempt)现代操作系统为了提高资源的利用率一般都支持多任务(这里不想纠结进程、线程、内核线程之间的关系所以使用任务一词),但是因为系统资源有限,系统中同一时间点能够运行的任务是有限的(单核的话只有一个,多核可能有多个)。为了解决这个冲突,操作系统不得不在任务之间不断的切换,让一些任务运行一段时间之后睡眠,然后从原来处于睡眠状态的任务中选出一些来继续运行。这种从一个运行的任务切换到另一个
- 共享内存
安吉小可爱的爹地
消息队列的读取和写入的过程,都会有发生用户态与内核态之间的消息拷贝过程。那共享内存的方式,就很好的解决了这一问题。现代操作系统,对于内存管理,采用的是虚拟内存技术,也就是每个进程都有自己独立的虚拟内存空间,不同进程的虚拟内存映射到不同的物理内存中。所以,即使进程A和进程B的虚拟地址是一样的,其实访问的是不同的物理内存地址,对于数据的增删查改互不影响。共享内存的机制,就是拿出一块虚拟地址空间来,映射
- 第十一学 linux内核——进程管理——进程是什么
lobbiy
Linux学习之旅LinuxLinuxKernel操作系统进程进程管理
我们前面提到过linux内核的几个子系统,他们分别是进程管理、虚拟文件系统(文件管理)、内存管理和网络接口管理(本来应该还有设备管理的,但是linux是以文件的方式管理硬件设备的,所以把它归为文件管理里边)。对于现代操作系统来说,进程是一个核心概念,它也是我们理解操作系统内核必须首先掌握的一个概念。所以,这节我们首先介绍进程的概念。我们从我们所熟悉的操作系统的操作开始:我们可以在一台PC上打开好多
- 电脑 文件夹内 显示是 文件在一起 ,实际存储硬盘的不同地方?
绀目澄清
windows电脑windows
是的,在电脑上,文件夹内显示在一起的文件可能实际上存储在硬盘的不同物理位置。这是因为现代操作系统使用的是文件系统来管理磁盘上的数据,常见的如NTFS(Windows)、HFS+(旧版Mac)或APFS(新版Mac)以及EXT4(Linux)等。文件系统将硬盘划分为一系列逻辑块,并通过分配表记录每个文件占用哪些块。当一个文件被创建或写入时,文件系统会根据其需要动态分配空间,这些空间可能是连续的,也可
- Linux C++ 进程管理器设计全攻略:通信、信息与架构深度解析
泡沫o0
C++项目设计:理论实践与创新linuxc++架构qtc语言开发语言程序人生
目录标题1.引言1.1进程管理器的作用1.2现代操作系统中的进程管理2.进程通信方式对比2.1.管道(Pipes)2.2.消息队列(MessageQueues)
- 操作系统的灵魂--MMU详解
linux大本营
linux内存管理MMUTLB
虚拟内存是现代操作系统中最伟大的发明之一。它为每个进程提供了一个一致的、私有的地址空间,让每个进程产生了一种自己在独享主存的错觉。为了讲清楚MMU是如何一步一步完成地址翻译,取出数据的,本篇文章在前4节中讲解了虚拟内存中一些重要的概念,比如,虚拟内存的作用,页命中,缺页异常处理,为什么需要TLB等等。最后,通过两个地址翻译的例子,详细解释了MMU地址翻译的过程。1.什么是虚拟内存?虚拟内存能够创建
- Python笔记12-多线程、网络编程、正则表达式
catch that elf
pythonpython多线程网络编程正则表达式
文章目录多线程网络编程正则表达式多线程现代操作系统比如MacOSX,UNIX,Linux,Windows等,都是支持“多任务”的操作系统。进程:就是一个程序,运行在系统之上,那么便称之这个程序为一个运行进程,并分配进程ID方便系统管理。线程:线程是归属于进程的,一个进程可以开启多个线程,执行不同的工作,是进程的实际工作最小单位。进程之间是内存隔离的,即不同的进程拥有各自的内存空间。线程之间是内存共
- 数据库安全-第一章 Mysql 安全基础-【web 环境搭建——LAMP-2】(LAMP——apache2环境搭建)
Full Stack-LLK
数据库安全mysql安全前端
文章目录相关知识apache2简介ubuntu18.04安装apache2apt命令apache2的开启,停止apache2配置文件目录解析apache2网站根目录变更apache2更换监听端口操作要求相关知识apache2简介ApacheHTTP服务器项目致力于为现代操作系统(包括UNIX和Windows)开发和维护开源HTTP服务器。该项目的目标是提供一个安全、高效且可扩展的服务器,该服务器提
- 一文搞懂 , Linux内核—— 同步管理(上)
极致Linux内核
因为现代操作系统是多处理器计算的架构,必然更容易遇到多个进程,多个线程访问共享数据的情况,如下图所示:图中每一种颜色代表一种竞态情况,主要归结为三类:进程与进程之间:单核上的抢占,多核上的SMP;进程与中断之间:中断又包含了上半部与下半部,中断总是能打断进程的执行流;中断与中断之间:外设的中断可以路由到不同的CPU上,它们之间也可能带来竞态;这时候就需要一种同步机制来保护并发访问的内存数据。本系列
- 操作系统-- Linux vs Windows
每天进步一......
操作系统学习记录linux运维服务器
一、内核内核是应用连接硬件设备的桥梁1.内核的能力现代操作系统,内核一般会提供4个基本能力:管理进程、线程,决定哪个进程、线程使用CPU,也就是进程调度的能力;管理内存,决定内存的分配和回收,也就是内存管理的能力;管理硬件设备,为进程与硬件设备之间提供通信能力,也就是硬件通信能力;提供系统调用,如果应用程序要运行更高权限运行的服务,那么就需要有系统调用,它是用户程序与操作系统之间的接口。2.内核如
- Dom
周华华
JavaScripthtml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml&q
- 【Spark九十六】RDD API之combineByKey
bit1129
spark
1. combineByKey函数的运行机制
RDD提供了很多针对元素类型为(K,V)的API,这些API封装在PairRDDFunctions类中,通过Scala隐式转换使用。这些API实现上是借助于combineByKey实现的。combineByKey函数本身也是RDD开放给Spark开发人员使用的API之一
首先看一下combineByKey的方法说明:
- msyql设置密码报错:ERROR 1372 (HY000): 解决方法详解
daizj
mysql设置密码
MySql给用户设置权限同时指定访问密码时,会提示如下错误:
ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number;
问题原因:你输入的密码是明文。不允许这么输入。
解决办法:用select password('你想输入的密码');查询出你的密码对应的字符串,
然后
- 路漫漫其修远兮 吾将上下而求索
周凡杨
学习 思索
王国维在他的《人间词话》中曾经概括了为学的三种境界古今之成大事业、大学问者,罔不经过三种之境界。“昨夜西风凋碧树。独上高楼,望尽天涯路。”此第一境界也。“衣带渐宽终不悔,为伊消得人憔悴。”此第二境界也。“众里寻他千百度,蓦然回首,那人却在灯火阑珊处。”此第三境界也。学习技术,这也是你必须经历的三种境界。第一层境界是说,学习的路是漫漫的,你必须做好充分的思想准备,如果半途而废还不如不要开始。这里,注
- Hadoop(二)对话单的操作
朱辉辉33
hadoop
Debug:
1、
A = LOAD '/user/hue/task.txt' USING PigStorage(' ')
AS (col1,col2,col3);
DUMP A;
//输出结果前几行示例:
(>ggsnPDPRecord(21),,)
(-->recordType(0),,)
(-->networkInitiation(1),,)
- web报表工具FineReport常用函数的用法总结(日期和时间函数)
老A不折腾
finereport报表工具web开发
web报表工具FineReport常用函数的用法总结(日期和时间函数)
说明:凡函数中以日期作为参数因子的,其中日期的形式都必须是yy/mm/dd。而且必须用英文环境下双引号(" ")引用。
DATE
DATE(year,month,day):返回一个表示某一特定日期的系列数。
Year:代表年,可为一到四位数。
Month:代表月份。
- c++ 宏定义中的##操作符
墙头上一根草
C++
#与##在宏定义中的--宏展开 #include <stdio.h> #define f(a,b) a##b #define g(a) #a #define h(a) g(a) int main() { &nbs
- 分析Spring源代码之,DI的实现
aijuans
springDI现源代码
(转)
分析Spring源代码之,DI的实现
2012/1/3 by tony
接着上次的讲,以下这个sample
[java]
view plain
copy
print
- for循环的进化
alxw4616
JavaScript
// for循环的进化
// 菜鸟
for (var i = 0; i < Things.length ; i++) {
// Things[i]
}
// 老鸟
for (var i = 0, len = Things.length; i < len; i++) {
// Things[i]
}
// 大师
for (var i = Things.le
- 网络编程Socket和ServerSocket简单的使用
百合不是茶
网络编程基础IP地址端口
网络编程;TCP/IP协议
网络:实现计算机之间的信息共享,数据资源的交换
协议:数据交换需要遵守的一种协议,按照约定的数据格式等写出去
端口:用于计算机之间的通信
每运行一个程序,系统会分配一个编号给该程序,作为和外界交换数据的唯一标识
0~65535
查看被使用的
- JDK1.5 生产消费者
bijian1013
javathread生产消费者java多线程
ArrayBlockingQueue:
一个由数组支持的有界阻塞队列。此队列按 FIFO(先进先出)原则对元素进行排序。队列的头部 是在队列中存在时间最长的元素。队列的尾部 是在队列中存在时间最短的元素。新元素插入到队列的尾部,队列检索操作则是从队列头部开始获得元素。
ArrayBlockingQueue的常用方法:
- JAVA版身份证获取性别、出生日期及年龄
bijian1013
java性别出生日期年龄
工作中需要根据身份证获取性别、出生日期及年龄,且要还要支持15位长度的身份证号码,网上搜索了一下,经过测试好像多少存在点问题,干脆自已写一个。
CertificateNo.java
package com.bijian.study;
import java.util.Calendar;
import
- 【Java范型六】范型与枚举
bit1129
java
首先,枚举类型的定义不能带有类型参数,所以,不能把枚举类型定义为范型枚举类,例如下面的枚举类定义是有编译错的
public enum EnumGenerics<T> { //编译错,提示枚举不能带有范型参数
OK, ERROR;
public <T> T get(T type) {
return null;
- 【Nginx五】Nginx常用日志格式含义
bit1129
nginx
1. log_format
1.1 log_format指令用于指定日志的格式,格式:
log_format name(格式名称) type(格式样式)
1.2 如下是一个常用的Nginx日志格式:
log_format main '[$time_local]|$request_time|$status|$body_bytes
- Lua 语言 15 分钟快速入门
ronin47
lua 基础
-
-
单行注释
-
-
[[
[多行注释]
-
-
]]
-
-
-
-
-
-
-
-
-
-
-
1.
变量 & 控制流
-
-
-
-
-
-
-
-
-
-
num
=
23
-
-
数字都是双精度
str
=
'aspythonstring'
- java-35.求一个矩阵中最大的二维矩阵 ( 元素和最大 )
bylijinnan
java
the idea is from:
http://blog.csdn.net/zhanxinhang/article/details/6731134
public class MaxSubMatrix {
/**see http://blog.csdn.net/zhanxinhang/article/details/6731134
* Q35
求一个矩阵中最大的二维
- mongoDB文档型数据库特点
开窍的石头
mongoDB文档型数据库特点
MongoDD: 文档型数据库存储的是Bson文档-->json的二进制
特点:内部是执行引擎是js解释器,把文档转成Bson结构,在查询时转换成js对象。
mongoDB传统型数据库对比
传统类型数据库:结构化数据,定好了表结构后每一个内容符合表结构的。也就是说每一行每一列的数据都是一样的
文档型数据库:不用定好数据结构,
- [毕业季节]欢迎广大毕业生加入JAVA程序员的行列
comsci
java
一年一度的毕业季来临了。。。。。。。。
正在投简历的学弟学妹们。。。如果觉得学校推荐的单位和公司不适合自己的兴趣和专业,可以考虑来我们软件行业,做一名职业程序员。。。
软件行业的开发工具中,对初学者最友好的就是JAVA语言了,网络上不仅仅有大量的
- PHP操作Excel – PHPExcel 基本用法详解
cuiyadll
PHPExcel
导出excel属性设置//Include classrequire_once('Classes/PHPExcel.php');require_once('Classes/PHPExcel/Writer/Excel2007.php');$objPHPExcel = new PHPExcel();//Set properties 设置文件属性$objPHPExcel->getProperties
- IBM Webshpere MQ Client User Issue (MCAUSER)
darrenzhu
IBMjmsuserMQMCAUSER
IBM MQ JMS Client去连接远端MQ Server的时候,需要提供User和Password吗?
答案是根据情况而定,取决于所定义的Channel里面的属性Message channel agent user identifier (MCAUSER)的设置。
http://stackoverflow.com/questions/20209429/how-mca-user-i
- 网线的接法
dcj3sjt126com
一、PC连HUB (直连线)A端:(标准568B):白橙,橙,白绿,蓝,白蓝,绿,白棕,棕。 B端:(标准568B):白橙,橙,白绿,蓝,白蓝,绿,白棕,棕。 二、PC连PC (交叉线)A端:(568A): 白绿,绿,白橙,蓝,白蓝,橙,白棕,棕; B端:(标准568B):白橙,橙,白绿,蓝,白蓝,绿,白棕,棕。 三、HUB连HUB&nb
- Vimium插件让键盘党像操作Vim一样操作Chrome
dcj3sjt126com
chromevim
什么是键盘党?
键盘党是指尽可能将所有电脑操作用键盘来完成,而不去动鼠标的人。鼠标应该说是新手们的最爱,很直观,指哪点哪,很听话!不过常常使用电脑的人,如果一直使用鼠标的话,手会发酸,因为操作鼠标的时候,手臂不是在一个自然的状态,臂肌会处于绷紧状态。而使用键盘则双手是放松状态,只有手指在动。而且尽量少的从鼠标移动到键盘来回操作,也省不少事。
在chrome里安装 vimium 插件
- MongoDB查询(2)——数组查询[六]
eksliang
mongodbMongoDB查询数组
MongoDB查询数组
转载请出自出处:http://eksliang.iteye.com/blog/2177292 一、概述
MongoDB查询数组与查询标量值是一样的,例如,有一个水果列表,如下所示:
> db.food.find()
{ "_id" : "001", "fruits" : [ "苹
- cordova读写文件(1)
gundumw100
JavaScriptCordova
使用cordova可以很方便的在手机sdcard中读写文件。
首先需要安装cordova插件:file
命令为:
cordova plugin add org.apache.cordova.file
然后就可以读写文件了,这里我先是写入一个文件,具体的JS代码为:
var datas=null;//datas need write
var directory=&
- HTML5 FormData 进行文件jquery ajax 上传 到又拍云
ileson
jqueryAjaxhtml5FormData
html5 新东西:FormData 可以提交二进制数据。
页面test.html
<!DOCTYPE>
<html>
<head>
<title> formdata file jquery ajax upload</title>
</head>
<body>
<
- swift appearanceWhenContainedIn:(version1.2 xcode6.4)
啸笑天
version
swift1.2中没有oc中对应的方法:
+ (instancetype)appearanceWhenContainedIn:(Class <UIAppearanceContainer>)ContainerClass, ... NS_REQUIRES_NIL_TERMINATION;
解决方法:
在swift项目中新建oc类如下:
#import &
- java实现SMTP邮件服务器
macroli
java编程
电子邮件传递可以由多种协议来实现。目前,在Internet 网上最流行的三种电子邮件协议是SMTP、POP3 和 IMAP,下面分别简单介绍。
◆ SMTP 协议
简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)是一个运行在TCP/IP之上的协议,用它发送和接收电子邮件。SMTP 服务器在默认端口25上监听。SMTP客户使用一组简单的、基于文本的
- mongodb group by having where 查询sql
qiaolevip
每天进步一点点学习永无止境mongo纵观千象
SELECT cust_id,
SUM(price) as total
FROM orders
WHERE status = 'A'
GROUP BY cust_id
HAVING total > 250
db.orders.aggregate( [
{ $match: { status: 'A' } },
{
$group: {
- Struts2 Pojo(六)
Luob.
POJOstrust2
注意:附件中有完整案例
1.采用POJO对象的方法进行赋值和传值
2.web配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee&q
- struts2步骤
wuai
struts
1、添加jar包
2、在web.xml中配置过滤器
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.st