- 《自己动手写操作系统》第三章a/pmtest1.asm
谁不小心的
程序原理与操作系统汇编语言自己动手写操作系统自己动手写操作系统第三章保护模式
[html]viewplaincopy1;==========================================2;pmtest1.asm3;编译方法:nasmpmtest1.asm-opmtest1.com4;==========================================56%include"pm.inc";常量,宏,以及一些说明78org0100h9jmpL
- “自己动手写操作系统”学习笔记(一)
wangqiwei_1234
(一)1.在virtualbox内安装ubuntu12.04LTS版本,设定共享文件夹。virtualbox设置共享文件夹在ubuntu的/media文件夹下可见到共享的文件夹,以sf_共享名为文件夹名。ubuntu下可见的共享文件夹.JPG2.共享文件夹的用户和组都是root,复制时要使用sudo,将D盘下ainbed/os文件夹拷贝到用户当前目录sudocp-r/media/sf_D_DRIV
- 自己动手写操作系统 ----总计
逆羽飘扬
深入理解操作系统操作系统
2021.1.23开始写操作系统好奇心是动力的源泉,追究问题的本质是优秀黑客的必备素质,只有充分掌握了系统原理,才能在技术上游刃有余,才能有真正的创新和发展。中国需要更多真正的黑客,也希望更多的程序员能享受属于黑客的创造乐趣。创造·自由·开源实践–遇到问题–解决问题–再实践来自闲话Linux系统安全(一)——自主访问控制(DAC),挺好的一段话我们口中的操作系统,一般指的是:一个操作系统核心+各种
- 自己动手写操作系统读书笔记——第三章:保护模式(上)
三丑是只猫
自己动手写操作系统
自己动手写操作系统读书笔记——第三章:保护模式(上)准备环境关于CPU的一些说明保护模式段式内存管理全局描述符表(GDT)局部描述符表(LDT)描述符选择子进入保护模式进入保护模式A20地址线Cr0寄存器准备环境在测试本书源码的时候,我选择的环境是Vmware+IDA,当然也可以使用单纯的gdb调试器,但是IDA集成了源码分析,汇编等功能,使用起来较为方便。至于选择这个环境的原因在于Vmware使
- 《自己动手写操作系统》第四章——摆脱dos引导:boot &&Loader
谁不小心的
自己动手写操作系统自己动手写操作系统bootloader
摘要:在开机过程中,从BIOS中取得第一条指令到内核加载,操作系统的开机运行过程是这样的:“引导---加载内核进入内存——跳入保护模式——开始执行内核”。也就是说,内核执行之前,需要先加载进入内存,然后准备进入保护模式。引导扇区(里面有一定的程序)的512B是不够的,我们在引导扇区和内核之间加入一个模块——Loader,负责完成上述过程。即“引导扇区——Loader——kernel”。在前三章中,
- 自己动手写操作系统学习笔记1
会说话的小鱼
操作系统操作系统sharpui界面duigdi
序言首先,在自己动手写操作系统这本书中,很多图和章节都可以在IA的架构说明书中找到相应的原型,而且几乎是一模一样,有兴趣的可以去看看IA32架构的说明书手册,共有三册。不过,在这里,这本书作者把操作系统的相关东西组织得不错,说这些,只是让读这本书的人有一种平和的心态去学习操作系统。因为他没有我们想象的那么可怕,因为书中的大部分内容在网上都已查阅得到。当然要系统掌握好这些东西这要有良好的计算机系统知
- 《自己动手写操作系统》pmtest1运行基本步骤
开开开心果儿
笔记windows
1.命令nasmpmtest1.asm-opm1.com对pmtest1进行编译。’’-o’'选项:指定输出文件的文件名。2.借助bximage制作一个软盘,例如:check.img;插入虚拟机中并格式化,将刚刚编译生成的pmt1.com移入软盘。3.挂起虚拟机,打开Bochs,点击左上角changefirstfloppyadrive,改成刚刚在bximage制作的并且装有pmt1.com的软盘。
- 一篇自己动手写操作系统(转贴)
kayyyuan
程序点滴keyboard工作汇编磁盘任务语言
哈工大纯C论坛操作系统实验WhenDoWeWriteOurChineseOS?操作系统是计算机的核心,没有操作系统,一切计算机应用都免谈,但现在操作系统基本上被老外垄断,Windows就不说了,就算是Linux那也是泊来品,什么时候我们才能写出有中国特色的操作系统啊?在工大,我们每个人都学过操作系统,我也一样,但老师教的那真的只是理论,一个实际的系统原比老师教的要复杂上一千万倍!然而,我们基本上没
- 自己动手写操作系统(一)
525小白菜
操作系统设计与实现操作系统
本系列文章将一步步实现一个简单的操作系统。实验环境是在Linux系统下通过Bochs虚拟机运行我们自己写的操作系统。一、实验环境搭建1.Ubuntu的安装,Windows用户可以选择在虚拟机中安装Ubuntu,具体安装教程可自行搜索。2.Bochs虚拟机的安装在学习编写操作系统的过程中,我们需要一个虚拟机来模拟出一个虚拟的计算机硬件环境,比如cpu、内存、硬盘等,并且能够运行并且调试我们写的代码。
- 操作原理课设《CPU进入保护模式研究和编程实现》环境配置及编译示例程序
小赵de碎星采摘馆
linux操作系统ubuntufreedos
题目仔细阅读《自己动手写操作系统》的前三章,作者于渊,电子工业出版社。前三章,熟悉初启过程的程序开发环境,编程过程。熟悉实模式,保护模式的概念。理解保护模式、特权级、页式内存概念。逐个编译和测试第三章的全部9个示例程序(编号pmtest1.asm~pmtest9.asm)在完全读懂程序的基础上,给pmtest5.asm~pmtest9.asm中的任意一个程序的源代码中写上详细的注释。注释要求:1)
- 1 在Bochs上运行第一个OS
河职院杨浪
自己动手写操作系统
05年底就卖了第一版《自己动手写操作系统》,也将其陆陆续续读完。09年第二版《Orange’s一个操作系统的实现》出版后,也将其购入。随手翻来,发现云里雾里,几年前的理解早就抛光,重读已是困难重重。既然写代码要有注释,读书亦要有注释。1搭建OS开发环境第一步:安装Ubuntu10.04。具体安装过程可参考《鸟哥的Linux私房菜基础学习篇》第四章。第二步:安装GCC和NASM。在Ubuntu终端命
- 汇编调用C函数时的堆栈变化
坛中鱼
汇编call指令
先分析《自己动手写操作系统》中的部分程序//初始化中断向量表(见protect.c文件)init_idt_desc(INT_VECTOR_COPROC_ERR,DA_386IGate,copr_error,PRIVILEGE_KRNL);//INT_VECTOR_COPROC_ERR=16//中断处理函数的定义copr_error:push0xFFFFFFFFpush16jmpexception/
- 个人对操作系统的启动原理的理解
fanghailiang2016
汇编
于渊的《自己动手写操作系统》是一本不错的用代码记录,一步步完成一个小型的操作系统的书。下载地址:https://pan.baidu.com/s/1j1MfEFcfU_fFamkjovOMRA,提取码:bjwv。需要有汇编语言基础的读者阅读。计算机的启动过程如下:通电启动->执行BIOS程序(建立中断向量表)->加载指定磁盘第一个扇区(512字节)入内存->跳转到内存制定位置(07c00h),并将控
- 读《linux0.11 内核完全解析》的一点感受
jongwu3
linux编程
为了看懂《Linux内核完全剖析》决定动手写一个操作系统。从7月开始写,到今天才完成了从启动代码到main函数,以及中断处理。已经enable了时钟中断了键盘中断,可以在屏幕上打字母。接下里还要写文件系统,内存管理和进程管理。直到写出一个shell程序。这期间参考了《x86汇编-从实模式到保护模式》和《自己动手写操作系统》的代码,有些直接拿来抄了,在此对李忠等及于渊几位作者表示感谢。今天想跟记录的
- 写操作系统(一)执着 总述
Hou_Rj
操作系统任务工作扩展测试
本文的部分信息和理解从自:1.墨羽老师的专栏2.杨文博老师的主页3.《自己动手写操作系统》于渊老师著4.《使用开源软件自己动手写操作系统》杨文博老师著开始我们先从森林的角度看一下我们所要做的是什么工作。一般计算机的启动流程为:1.开电源,等待供电稳定;2.BIOS自检(POST)-,对象为内存,显卡等关键设备,由“嘀”的喇叭声表示自检结果;3.分别查找并执行显卡等关键设备的BIOS,进行初始化;4
- 自己动手写操作系统
李梓豪
通过学习操作系统的过程中对操作系统产生了浓厚的兴趣决定下定决心写一个属于自己的操作系统万事开头难我最开始使用的参考书《一步一步写嵌入式操作系统》但是里面介绍的skyeye在后面的实验中出现错误在网上我也找了很多解决方法但是一直没能解决(希望有解决的朋友私信我一下
[email protected])但在这途中我加了很多群去询问各种问题最后了解到一本书《自己动手写操作系统》我用的它的第二版《orange
- 自己动手写操作系统之1:bochs初步使用
木东居士
Linux
0x00前言自己动手写操作系统,自然需要一个承载程序的运行环境,这一章记录我使用bochs遇到的坑,凌晨十二点半才填完坑。这次记录的是使用bochs完整实现一个最简单的操作系统(其实根本不算操作系统,只是通过硬盘启动个mbr程序)。0x01bochs1.安装安装比较简单了,我没有使用源码安装,不想再折腾那个了,不然估计我就没戏能开始了。yuminstallbochsbochs-x-y需要装两个东东
- 读 自己动手写操作系统
干大腿啊
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow用一个月左右的时间读了《自己动手写操作系统》,这是一本让人读着很过瘾,却也特别累的一本书。http://ike.126.com对操作系统的兴趣由来已久,只是一直未能找到入门之径。操作系统教材是个令人生畏的东西,它可以告诉
- 自己动手写操作系统:4.模拟软盘的数据结构,加载指定软盘扇区中的数据
CordingOrSporting
自己制作操作系统
前面两节介绍了如何在系统加载的时候在屏幕上打印出HelloOS!我们是使用汇编直接对cpu进行操作,我们的数据容量只有启动扇区的512字节,这样的空间显然不够以后的开发使用。本节我们引入软盘的数据结构,对软盘的数据结构进行模拟,并加载软盘中指定扇区的内容。本节按照一下结构组织:1.介绍软盘的物理以及逻辑结构2.根据软盘逻辑结构,使用C语言创建软盘映像文件,并把数据写入软盘扇区3.介绍如何使用汇编读
- Orange's一个操作系统的实现---心得与体会
weixin_30622181
前言本科的时候,室友有一本《自己动手写操作系统》,曾拿来翻了一翻,觉得十分有趣,可惜当时要应付考研,没有时间好好看这本书。后来读研之后,马上入了一本,不过此时该书已经是第二版,叫《Orange’s一个操作系统的实现》,却因自己畏难和拖延不决,一直到今天,马上要毕业了从把此书匆匆过了一遍。不得不说,佩服作者的功力和心态,作者像是一个小孩,认真的为大家讲述他心爱的玩具是如何搭建的。在如今,实现一个这样
- 自己动手写操作系统(一)
wang_sun_1983
操作系统
操作系统一直是一个比较神秘的东西,程序员聊天,要是哪个GG说自己搞kernel的,那直接可以鄙视我们这些做app的好几条街。哈哈。我是做Android性能优化的,搞了这么多年上层,说实话,余地不大,基本都依赖于kernel的提升(文件系统,内存压缩)。所以只能硬着头皮开始学kernel。只是kernel的代码量比较大,看了几天还没搞出啥头绪。作为一个刚猛的程序员,怎么能忍受这样的挫折,所以决定自己
- 一周问题解决----《自己动手写操作系统》
leopardpals
自学<动手写操作系统>
1,DOS,PC_DOS,MS_DOS区别与分类:既然要从头写,就必须接触实模式,而现在操作系统在开机后会很快跨过实模式。当时学会汇编的时候可是在虚86模式下的。百度:可以认为MS-DOS和PC-DOS没有大的区别(都为磁盘操作系统)。事实上出品单位不一样,MS-DOS由世界软件大王--Microsoft(微软公司)出品,而PC-DOS则由世界电脑大王--国际商业机器公司(IBM)对MS-DOS略
- 全面剖析《自己动手写操作系统》第六章---进程
要饭真得好难
操作系统自己动手写操作系统
转载请标注:http://blog.csdn.net/zgh1988/article/details/7371754在一开始学习进程的时候,我们大概每个人都会遇到过这样的问题,下面就让我们带着这些问题来认识认识进程。1、进程是什么?2、什么是多进程?3、执行一个进程需要什么?4、多进程之间是如何调度的?5、进程的上下文环境是什么?6、如何创建一个新的进程?一、进程是什么?大家在面试时,有时候会被H
- 自己动手写操作系统(五)
wang_sun_1983
操作系统
这里开始就进入了core的启动流程(类似于linux的kernel)。core的入口函数是start_core,如何定义如何函数呢?我们这里通过编译指令就可以了。参看下面的配置文件:ENTRY(start_core)SECTIONS{.=0x100000;.text:{*(.text)}.rodataALIGN(0x1000):{*(.rodata)}.dataALIGN(0x1000):{*(.
- 《自己动手写操作系统》第六章:从系统内核到进程A ring0>>ring1(一)
谁不小心的
自己动手写操作系统
摘要:进程调度可谓是操作系统中最为重要的环节之一,在本文中,我们主要讲解进程模型、涉及的数据结构、如何从内核态转到用户进程?这一小节主要完成进程数据结构的分析,和从ring0>>ring1的进程开始阶段的内容。1.进程我们来盘点一下,完成进程切换需要哪些数据结构和程序模块:1)首先,一个进程必须有代码、数据(和堆栈):相关数据有LDT、段描述符、TSS等2)对于正在休息的进程,我们需要让它重新醒来
- 《自己动手写操作系统》第六章:进程调度
谁不小心的
自己动手写操作系统
摘要:进程和任务都有轻重缓急之分,如何让高优先级别的进程能够获得很好的CPU权限?进程调度方面有很多算法——时间片轮转算法、绝对优先级算法、动态有限级算法、短作业优先算法等。本文,我们将结合实践篇轮转算法实现一种绝对优先级算法。1.固定非等比例下的延迟我们来修改A、B、C三个进程的延迟:75*=====================================================
- 用 GRUB 引导自己的操作系统
liyuanbhu
操作系统应用
在PC机上捣鼓自己的操作系统遇到的第一个难题就是如何将内核加载到内存中执行。如果读过于渊写的《自己动手写操作系统》就会知道这部分的工作还是蛮繁琐的。而且实际上这部分工作和操作系统没太大的关系。好在随着linux等开源操作系统的发展,开源的引导加载程序也已经发展的很成熟了。我们可以利用前人的成果,将自己的操作系统改造成可以用现有引导加载程序引导的内核。引导加载程序(BootLoader)是系统加电后
- 自己动手写操作系统读书笔记系列 导引
littlehedgehog
OperatingSystem
自己动手写操作系统读书笔记系列导引刺猬@http://blog.csdn.net/littlehedgehog自己动手读书笔记系列本来只是些天之痕和我在这一个多月研究《自己动手写操作系统》时且看且记的小段笔记批注而已,文章里都是记录些环境搭建、编程所感的自娱自乐文字,没想过今天还会来整订成一个小系列。是时,天之痕还忙着添上他的《自己动手写操作系统环境配置》,呵呵,很感谢有天之痕这样的战友和我并肩战
- 自己动手写操作系统学习笔记(一)
laomai
操作系统引导扇区bochsnasm
早就想抽时间系统的学习一下于渊写的《自己动手写操作系统》,但始终没空,现在忙活一年,年底终于有点空闲,今天终于把书里的第一个例子在windows下搞成功.这里把实验步骤记录一下.实验全部在win7环境下进行,用到软件版本和下载地址为:Win64位Bochs下载地址:http://dl-sh-ctc-2.pchome.net/0f/1a/Bochs-2.6.8.rar?key=fd0adc6b939
- 《自己动手写操作系统》读书笔记(1)
chief1985
操作系统
导读:前几天和老板联系,说让我先学一些内核方面的知识,《ComputerArchitecture3rdEditon》也先不要读了,换读《Organization&DesignHardware/SofwareInterface》。谨从师命。以前读过内核,书用的是毛德操、胡希明的《Linux内核源代码情景分析》,可是读得云里雾里,身心受到了极大的摧残,这次不想重蹈覆辙了,要循序渐进,于是从于渊的《自己
- SQL的各种连接查询
xieke90
UNION ALLUNION外连接内连接JOIN
一、内连接
概念:内连接就是使用比较运算符根据每个表共有的列的值匹配两个表中的行。
内连接(join 或者inner join )
SQL语法:
select * fron
- java编程思想--复用类
百合不是茶
java继承代理组合final类
复用类看着标题都不知道是什么,再加上java编程思想翻译的比价难懂,所以知道现在才看这本软件界的奇书
一:组合语法:就是将对象的引用放到新类中即可
代码:
package com.wj.reuse;
/**
*
* @author Administrator 组
- [开源与生态系统]国产CPU的生态系统
comsci
cpu
计算机要从娃娃抓起...而孩子最喜欢玩游戏....
要让国产CPU在国内市场形成自己的生态系统和产业链,国家和企业就不能够忘记游戏这个非常关键的环节....
投入一些资金和资源,人力和政策,让游
- JVM内存区域划分Eden Space、Survivor Space、Tenured Gen,Perm Gen解释
商人shang
jvm内存
jvm区域总体分两类,heap区和非heap区。heap区又分:Eden Space(伊甸园)、Survivor Space(幸存者区)、Tenured Gen(老年代-养老区)。 非heap区又分:Code Cache(代码缓存区)、Perm Gen(永久代)、Jvm Stack(java虚拟机栈)、Local Method Statck(本地方法栈)。
HotSpot虚拟机GC算法采用分代收
- 页面上调用 QQ
oloz
qq
<A href="tencent://message/?uin=707321921&Site=有事Q我&Menu=yes">
<img style="border:0px;" src=http://wpa.qq.com/pa?p=1:707321921:1></a>
- 一些问题
文强chu
问题
1.eclipse 导出 doc 出现“The Javadoc command does not exist.” javadoc command 选择 jdk/bin/javadoc.exe 2.tomcate 配置 web 项目 .....
SQL:3.mysql * 必须得放前面 否则 select&nbs
- 生活没有安全感
小桔子
生活孤独安全感
圈子好小,身边朋友没几个,交心的更是少之又少。在深圳,除了男朋友,没几个亲密的人。不知不觉男朋友成了唯一的依靠,毫不夸张的说,业余生活的全部。现在感情好,也很幸福的。但是说不准难免人心会变嘛,不发生什么大家都乐融融,发生什么很难处理。我想说如果不幸被分手(无论原因如何),生活难免变化很大,在深圳,我没交心的朋友。明
- php 基础语法
aichenglong
php 基本语法
1 .1 php变量必须以$开头
<?php
$a=” b”;
echo
?>
1 .2 php基本数据库类型 Integer float/double Boolean string
1 .3 复合数据类型 数组array和对象 object
1 .4 特殊数据类型 null 资源类型(resource) $co
- mybatis tools 配置详解
AILIKES
mybatis
MyBatis Generator中文文档
MyBatis Generator中文文档地址:
http://generator.sturgeon.mopaas.com/
该中文文档由于尽可能和原文内容一致,所以有些地方如果不熟悉,看中文版的文档的也会有一定的障碍,所以本章根据该中文文档以及实际应用,使用通俗的语言来讲解详细的配置。
本文使用Markdown进行编辑,但是博客显示效
- 继承与多态的探讨
百合不是茶
JAVA面向对象 继承 对象
继承 extends 多态
继承是面向对象最经常使用的特征之一:继承语法是通过继承发、基类的域和方法 //继承就是从现有的类中生成一个新的类,这个新类拥有现有类的所有extends是使用继承的关键字:
在A类中定义属性和方法;
class A{
//定义属性
int age;
//定义方法
public void go
- JS的undefined与null的实例
bijian1013
JavaScriptJavaScript
<form name="theform" id="theform">
</form>
<script language="javascript">
var a
alert(typeof(b)); //这里提示undefined
if(theform.datas
- TDD实践(一)
bijian1013
java敏捷TDD
一.TDD概述
TDD:测试驱动开发,它的基本思想就是在开发功能代码之前,先编写测试代码。也就是说在明确要开发某个功能后,首先思考如何对这个功能进行测试,并完成测试代码的编写,然后编写相关的代码满足这些测试用例。然后循环进行添加其他功能,直到完全部功能的开发。
- [Maven学习笔记十]Maven Profile与资源文件过滤器
bit1129
maven
什么是Maven Profile
Maven Profile的含义是针对编译打包环境和编译打包目的配置定制,可以在不同的环境上选择相应的配置,例如DB信息,可以根据是为开发环境编译打包,还是为生产环境编译打包,动态的选择正确的DB配置信息
Profile的激活机制
1.Profile可以手工激活,比如在Intellij Idea的Maven Project视图中可以选择一个P
- 【Hive八】Hive用户自定义生成表函数(UDTF)
bit1129
hive
1. 什么是UDTF
UDTF,是User Defined Table-Generating Functions,一眼看上去,貌似是用户自定义生成表函数,这个生成表不应该理解为生成了一个HQL Table, 貌似更应该理解为生成了类似关系表的二维行数据集
2. 如何实现UDTF
继承org.apache.hadoop.hive.ql.udf.generic
- tfs restful api 加auth 2.0认计
ronin47
目前思考如何给tfs的ngx-tfs api增加安全性。有如下两点:
一是基于客户端的ip设置。这个比较容易实现。
二是基于OAuth2.0认证,这个需要lua,实现起来相对于一来说,有些难度。
现在重点介绍第二种方法实现思路。
前言:我们使用Nginx的Lua中间件建立了OAuth2认证和授权层。如果你也有此打算,阅读下面的文档,实现自动化并获得收益。SeatGe
- jdk环境变量配置
byalias
javajdk
进行java开发,首先要安装jdk,安装了jdk后还要进行环境变量配置:
1、下载jdk(http://java.sun.com/javase/downloads/index.jsp),我下载的版本是:jdk-7u79-windows-x64.exe
2、安装jdk-7u79-windows-x64.exe
3、配置环境变量:右击"计算机"-->&quo
- 《代码大全》表驱动法-Table Driven Approach-2
bylijinnan
java
package com.ljn.base;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.uti
- SQL 数值四舍五入 小数点后保留2位
chicony
四舍五入
1.round() 函数是四舍五入用,第一个参数是我们要被操作的数据,第二个参数是设置我们四舍五入之后小数点后显示几位。
2.numeric 函数的2个参数,第一个表示数据长度,第二个参数表示小数点后位数。
例如:
select cast(round(12.5,2) as numeric(5,2))  
- c++运算符重载
CrazyMizzz
C++
一、加+,减-,乘*,除/ 的运算符重载
Rational operator*(const Rational &x) const{
return Rational(x.a * this->a);
}
在这里只写乘法的,加减除的写法类似
二、<<输出,>>输入的运算符重载
&nb
- hive DDL语法汇总
daizj
hive修改列DDL修改表
hive DDL语法汇总
1、对表重命名
hive> ALTER TABLE table_name RENAME TO new_table_name;
2、修改表备注
hive> ALTER TABLE table_name SET TBLPROPERTIES ('comment' = new_comm
- jbox使用说明
dcj3sjt126com
Web
参考网址:http://www.kudystudio.com/jbox/jbox-demo.html jBox v2.3 beta [
点击下载]
技术交流QQGroup:172543951 100521167
[2011-11-11] jBox v2.3 正式版
- [调整&修复] IE6下有iframe或页面有active、applet控件
- UISegmentedControl 开发笔记
dcj3sjt126com
// typedef NS_ENUM(NSInteger, UISegmentedControlStyle) {
// UISegmentedControlStylePlain, // large plain
&
- Slick生成表映射文件
ekian
scala
Scala添加SLICK进行数据库操作,需在sbt文件上添加slick-codegen包
"com.typesafe.slick" %% "slick-codegen" % slickVersion
因为我是连接SQL Server数据库,还需添加slick-extensions,jtds包
"com.typesa
- ES-TEST
gengzg
test
package com.MarkNum;
import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.annotation
- 为何外键不再推荐使用
hugh.wang
mysqlDB
表的关联,是一种逻辑关系,并不需要进行物理上的“硬关联”,而且你所期望的关联,其实只是其数据上存在一定的联系而已,而这种联系实际上是在设计之初就定义好的固有逻辑。
在业务代码中实现的时候,只要按照设计之初的这种固有关联逻辑来处理数据即可,并不需要在数据库层面进行“硬关联”,因为在数据库层面通过使用外键的方式进行“硬关联”,会带来很多额外的资源消耗来进行一致性和完整性校验,即使很多时候我们并不
- 领域驱动设计
julyflame
VODAO设计模式DTOpo
概念:
VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。
DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对
- 单例设计模式
hm4123660
javaSingleton单例设计模式懒汉式饿汉式
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。
&nb
- logback
zhb8015
loglogback
一、logback的介绍
Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个 改良版本。此外logback-class
- 整合Kafka到Spark Streaming——代码示例和挑战
Stark_Summer
sparkstormzookeeperPARALLELISMprocessing
作者Michael G. Noll是瑞士的一位工程师和研究员,效力于Verisign,是Verisign实验室的大规模数据分析基础设施(基础Hadoop)的技术主管。本文,Michael详细的演示了如何将Kafka整合到Spark Streaming中。 期间, Michael还提到了将Kafka整合到 Spark Streaming中的一些现状,非常值得阅读,虽然有一些信息在Spark 1.2版
- spring-master-slave-commondao
王新春
DAOspringdataSourceslavemaster
互联网的web项目,都有个特点:请求的并发量高,其中请求最耗时的db操作,又是系统优化的重中之重。
为此,往往搭建 db的 一主多从库的 数据库架构。作为web的DAO层,要保证针对主库进行写操作,对多个从库进行读操作。当然在一些请求中,为了避免主从复制的延迟导致的数据不一致性,部分的读操作也要到主库上。(这种需求一般通过业务垂直分开,比如下单业务的代码所部署的机器,读去应该也要从主库读取数