- 操作系统学习记录I——Bochs安装和配置
E玖玖驷
1.概述相信不少对操作系统内核编程有兴趣的朋友或多或少都接触过于渊的《orange's一个操作系统的实现》,作为大三刚接触操作系统的笔者来说os内核无疑是神秘而充满吸引力的,因此在这里记录和分享一下对本书中实验操作的一些学习经历。博客内容大体就是原书中的内容,作者对各部分的介绍已经比较详细了,读者也可以自行查找资源学习。博客中会分享一些实验中遇到的问题,比如环境配置以及因为软硬件版本更新导致的一些
- 一次操作系统之旅
bazinga_dmc
前言题目取的有些诗意了,实际上这篇文章是我读完于渊的《一个操作系统的实现》后对该书的总结和评价。本人非科班出身(通信专业),对操作系统底层的工作原理一直有种执念,偶然的机会看到了这本书,花了两个月时间从头到尾读了一遍,我把书中的源码读完理解之后重写了一遍。如果你也想实现一个小的操作系统却又不知从何下手,这本书确实是一个不错的选择。这本书完全是从零开始搭建了一个可以通过软盘/硬盘引导的微内核操作系统
- 【OS课设日志】《Orange‘S:一个操作系统的实现》Ch5
叫北方
c语言linux开发语言ubuntu
【OS课设日志】《Orange‘S:一个操作系统的实现》第五章——内核雏形实验内容:在Linux下用汇编写Hello,World!;进一步,汇编和C同时使用;从loader到kernel内核,把kernel内核加载到内存;将控制权交给kernel内核;跳入保护模式,并显示内存的使用情况。5.1在Linux下用汇编写HelloWorld实验步骤①创建hello.asm文件②编译链接(每执行一步都用l
- Orange‘s:一个操作系统的实现学习笔记3
超大青花鱼
学习bashlinux
前面几期文章Orange‘s:一个操作系统的实现学习笔记1:https://blog.csdn.net/weixin_42193791/article/details/123144920Orange‘s:一个操作系统的实现学习笔记2:https://blog.csdn.net/weixin_42193791/article/details/123039173文章目录前面几期文章一、前言二、代码实现
- Orange‘s:一个操作系统的实现学习笔记2
超大青花鱼
学习
第三章第一节代码运行实录前言代码实现了什么操作流程代码+注释运行效果一些问题1.段描述符的结构2.段选择子的结构3.地址转换4.GDTR的结构5.打开A20地址线6.CR0寄存器的结构7."$"前言去年就开始学习Orange’s:一个操作系统的实现,今年记录并总结一下学习中遇到的一些问题,由于我汇编基础几乎为0,对计算机也不是很了解,所以写的这些注释和总结难免会有错误和纰漏,敬请原谅。此篇笔记抄的
- VMWare虚拟机启动img文件
我要出家当道士
开发环境搭建与使用自制操作系统img虚拟机
最近在学习制作操作系统,主要跟着《30天自制操作系统》、《Orange’S:一个操作系统的实现》这两本书进行学习,书中编译好的img文件写入软盘进行运行,相信绝大多数人都不用这玩意了,那怎么办呢?当然是用虚拟机呀,嘿嘿嘿。虚拟机也有很多种,看别人推荐的QEMU来运行,但要花时间熟悉命令行,不想把时间浪费在这。最后决定使用VMWare虚拟机。步骤如下:1、找一个已经存在的虚拟机,编辑虚拟机设置2、点
- 十分钟完成的操作系统at&t汇编版本-《一个操作系统的实现》
快给我饭吃
以前看了《一个操作系统的实现》这本书,使用了nasm汇编和bochs虚拟机来编写一个“操作系统”。做了清华大学ucore实验后,我感觉使用at&t汇编和qemu虚拟机来实现一个“操作系统”更加容易调试操作系统,因此改写了成at&t版本。at&t汇编版本代码如下:.code16.section.text.global_start_start:movw%cs,%axmovw%ax,%dsmovw%ax
- 【Linux内核分析】学习笔记1:保护模式
蝉鸣的夏天
Linux内核分析学习笔记
教材老师推荐的参考阅读书籍是:于渊.Orange’s:一个操作系统的实现,电子工业出版社,2009毛德操,胡希明.LINUX内核源代码情景分析(上册),浙江大学出版社,2001.09保护模式(ProtectedMode)实模式实地址模式(RealAddressMode)通过20位地址分段访问1MB地址空间程序可以直接访问BIOS中断和外设硬件层不支持任何内存保护或者多任务处理80286之后的所有x
- bochs虚拟机的安装 - 动手写一个最小的操作系统环境搭建
快给我饭吃
最近在研究操作系统,读了理论的书籍后,打算自己实现一遍,加深理解。因此选了于渊老师的书《Orange'S一个操作系统的实现》跟着书实战一遍。在安装bochs虚拟机过程中遇到一些问题并已解决,特记录在此。我的环境:宿主机为win10虚拟机为vagrant(底层是virtualbox),这里使用virtualbox,vmware都是可以的虚拟机中的系统为CentOS7,命令行版,无界面。当然,这里如果
- 《一个操作系统的实现》windows用vm安装CentOS——从bochs环境搭建到第一个demo跑通
喂-不吃素的熊宝宝
windowscentoslinux
vm安装CentOS虚拟机带有桌面的版本。su输入密码123456。更新yum-yupdate。一般已经安装好后面这2个工具:yuminstall-ynet-toolswget。看下ip地址ifconfig,然后本地终端连接
[email protected]输入密码即可,主要是为了复制网址方便些。大概率wgethttps://nchc.dl.sourceforge.net/projec
- 一个操作系统的实现-于渊
快给我饭吃
操作系统是处于硬件和软件之间的,所以开发操作系统其实就是按硬件的要求来实现自己的功能。即微软是按照Intel手册来做开发的。附Intel开发者手册官网:https://software.intel.com/en-us/articles/intel-sdmCPU手册:https://www.intel.com/content/www/us/en/architecture-and-technology
- Linux-0.11操作系统源码调试
chaoguo1234
linux运维服务器ubuntu
学习操作系统有比较好的两种方式,第一种是跟着别人写一个操作系统出来,《操作系统真相还原》、《Orange's:一个操作系统的实现》等书就是教学这个的;另一种方式就是调试操作系统源码,相比第一种方式,调试源码可以更能感受真实操作系统的实现机制。Linux-0.11是Linux最早期的代码,它包含现代操作系统的所有雏形,代码体量也不大,非常适合对操作系统进行源码学习。下面记录在Ubuntu22上面编译
- ubuntu下bochs的安装和配置
CattleyaQ
操作系统osubuntu虚拟机
《ORANGE’S:一个操作系统的实现》一书中选择使用虚拟计算机Bochs进行仿真。Bochs是一个x86硬件平台的开源模拟器。它可以模拟各种硬件的配置。Bochs模拟的是整个PC平台,包括I/O设备、内存和BIOS。甚至可以不使用PC硬件来运行Bochs。事实上,它可以在任何编译运行Bochs的平台上模拟x86硬件。通过改变配置,可以指定使用的CPU(386、486或者586),以及内存大小等。
- 【从头开始写操作系统系列】环境搭建以及第一个Hello World
ly72809
笔者在动手写此操作系统时是一名大学本科大二的学生,可能文章中会有好多地方我没有解释清楚,可能也会有许多地方出现错误,我恳请各位读者能提出质疑和纠正我的错误,谢谢!参考书籍:《30天自制操作系统》川合秀实《ORANGE’S:一个操作系统的实现》##开发环境笔者采用以下开发环境AppleMacbookAirUbuntu12.04LTS(32bit)##读者准备毕竟是动手写一个操作系统,对读者的要求也会
- OrangeS操作系统笔记1_环境的配置与第一个系统
新奥尔良乳猪
前言开始学习Orange’s:一个操作系统的实现,记录并总结一下学习中遇到的一些问题,由于我汇编基础几乎为0,对计算机也不是很了解,所以写的这些注释和总结难免会有错误和纰漏,敬请原谅。此篇笔记参考了很多文章,如果笔记有侵权的地方,请联系我我会删除。环境的配置主要是nasm和bochs的安装我用的VMware12和Ubuntu20.02软件安装sudoapt-getinstallnasmsudoap
- 【日拱一卒行而不辍20220919】自制操作系统
明天已在HiaHia
LinuxOS开发语言linux
打开A20地址线-初次运行参照《ORANGE’S:一个操作系统的实现》以下是pm.inc1DA_32EQU4000h;32位段23DA_DPL0EQU00h;DPL=04DA_DPL1EQU20h;DPL=15DA_DPL2EQU40h;DPL=26DA_DPL3EQU60h;DPL=378;存储段描述符类型9DA_DREQU90h;存在的只读数据段类型值10DA_DRWEQU92h;存在的可读写
- 【日拱一卒行而不辍20220916】自制操作系统
明天已在HiaHia
LinuxOSjava数据库开发语言
Windows下利用QEMU实现HelloOS参照《ORANGE’S:一个操作系统的实现》汇编源码如下:boot.asmorg07c00h;wherethecodewillberunningmovax,csmovds,axmoves,axcallDispStr;let'sdisplayastringjmp$;andloopforeverDispStr:movax,BootMessagemovbp,
- Bochs源码安装及运行调试
weiwei22844
Linux相关系统相关
最近在读《Orange's一个操作系统的实现》,开始部分介绍了虚拟机Bochs的安装及调试,本文把折腾过程做下记录。操作系统:Ubuntu10.04(最新的版本老是有问题)软件版本:bochs2.3.5(和书中保持一致)1更新Ubuntu由于ubuntu10.04是很老的版本,早在2016年已停止了更新支持,直接sudoapt-getupdate会失败,好在ubuntu提供了old-release
- 调用BIOS中断显示Hello World
xiaominthere
自己动手写操作系统之旅
今天又回过头去把第一个显示“Hello,OSworld”的程序看了一遍,所谓温故而知新嘛,虽然简单但是也很重要。参考资料:《一个操作系统的实现》,《Linux内核设计的艺术》(新设计团队著,也推荐一下这本书,写的是关于linux内核讲解的书,写的很好,被翻译成了繁体和英语)好的,关于下面的代码进行一下解释,虽然比较简,但是写下来,以后想不起来也可以翻出来看。1.电脑的启动:电脑加电以后通过硬件逻的
- 1 在Bochs上运行第一个OS
河职院杨浪
自己动手写操作系统
05年底就卖了第一版《自己动手写操作系统》,也将其陆陆续续读完。09年第二版《Orange’s一个操作系统的实现》出版后,也将其购入。随手翻来,发现云里雾里,几年前的理解早就抛光,重读已是困难重重。既然写代码要有注释,读书亦要有注释。1搭建OS开发环境第一步:安装Ubuntu10.04。具体安装过程可参考《鸟哥的Linux私房菜基础学习篇》第四章。第二步:安装GCC和NASM。在Ubuntu终端命
- bochs 2.4.2 ubuntu 安装运行问题《orange's 一个操作系统的实现》第二章 调试篇
evil_darker
Linux编程
用源码安装完后会遇到的问题:《1》运行可能碰到如下问题:Eventtype:PANICDevice:[]Message:dlopenfailedformodule'x':filenotfound这是由于在安装的时候,少安装了个bochs-x包这个包可以在http://packages.ubuntu.com/dapper/misc/bochs-x找到也可以在terminal下面输入sudoapt-g
- 如何在64位的linux系统上使用汇编和C语言混合编程
csid_502
最近在看于渊的一个操作系统的实现,在第五章的时候汇编和C同时使用时碰到了问题:代码如下foo.s1externchoose23;;;;;thedataarea4num1stdd35num2nddd467global_start8globalmyprint91011_start:1213pushdword[num1st]14pushdword[num2nd]1516callchoose17addes
- 笔记:一个操作系统的实现第一章boot.asm文件分析
weixin_33786077
2019独角兽企业重金招聘Python工程师标准>>>分析在后面,刚学习汇编。源代码如下:org07c00hmovax,csmovds,axmoves,axcallDispStrjmp$DispStr:movax,BootMessagemovbp,axmovcx,16movax,01301hmovbx,000chmovdl,0int10hretBootMessage:db"Hello,OSWorl
- 《一个操作系统的实现》读书笔记--第三章--保护模式
要饭真得好难
操作系统
pmtest1.asm;pmtest1.asm;编译方法:nasmpmtest1.asm-opmtest1.com;==========================================%include"pm.inc";常量,宏,以及一些说明org0100hjmpLABEL_BEGIN[SECTION.gdt];GDT;段基址,段界限,属性LABEL_GDT:Descriptor0,
- 《一个操作系统的实现》笔记(7)--输入/输出系统(I/O)
Felixabcd
操作系统
键盘很简单,只要设置8259A芯片的键盘端口的handler处理函数就可以了。键盘敲击的过程键盘编码器,用于监视键盘的输入,并把适当的数据传送给计算机。键盘控制器,用来接受和解码来自键盘的数据,并与8259A以及软件等通信。敲击键盘包含两个含义:动作和内容。敲击键盘所产生的编码被称作扫描码。当8048检测到一个键的动作后,会把相应的扫描码发送给8042,8042会把它转换成相应的Scancode1
- ORANGE’S:一个操作系统的实现-chap4之:软盘结构(磁头号和起始扇区的计算方法)
花火后的天空
linux
;----------------------------------------------------------------------------;函数名:ReadSector;----------------------------------------------------------------------------;作用:;从第ax个Sector开始,将cl个Sector读入
- 操作系统内核Hack:(三)引导程序制作
weixin_30293079
操作系统内核Hack:(三)引导程序制作关于本文涉及到的完整源码请参考MiniOS的v1_bootloader分支。1.制作方法现在我们已经了解了关于BootLoader的一切知识,让我们开始动手做一个BootLoader吧!但真正开始之前,我们还要做出一个选择,在之前的讨论中我们曾说过,有两种学习和制作引导程序和操作系统内核的路线:1)《Orange’s:一个操作系统的实现》书中的路线;2)Li
- 《Orange'S:一个操作系统的实现》学习笔记(三)--bochs
stepbystep
操作系统
由于命令直接安装的bochs可能没有调试功能,所以需要下载bochs源码并编译安装。下载地址:http://sourceforge.net/projects/bochs/files/bochs/下载最新的2.6版本的bochs进行编译安装:$cd~/bochs-2.6/$./configure--enable-debugger--enable-disasm$make$sudomakeinstall
- oranges一个操作系统的实现笔记二
xf807989
orange一个操作系统的实现
第二章节保护模式继续鉴于实模式下只有1M的寻址能力,所以要在保护模式下验证他能否读写大内存的地址。1.跳出保护模式:具体步骤如下:1.先把各个寄存器设置到一个适合回到实模式的值。2.置位cr0的PE位为0.3.跳回到实模式。4.恢复实模式下各个寄存器包括sp的值。5.关闭A20地址线。6.开中断。7.回到dos。具体怎么读写大内存地址,我就不说了,反正是可以的,也不难。LDT:要注意的地方:1.申
- Orange's:一个操作系统的实现 Descriptor 3宏详解
依然笨拙
一个操作系统的实现
补充:关于GDT/LDT、段选择子和段描述符的解释GDT/LDT:GDT/LDT是段描述符表,里面定义了每个段的段描述符的界限和属性,而段描述符的基址是在代码段中初始化的。其中,LDT是局部描述符表,LDT在GDT中也有段描述符,LDT还有其对应的选择子,除此以外,LDT的功能和GDT一样。段选择子:段选择子是用来寻址段描述符的,即段描述符定义在GDT中,由段选择子将其赋值给段寄存器。如果TI被置
- 算法 单链的创建与删除
换个号韩国红果果
c算法
先创建结构体
struct student {
int data;
//int tag;//标记这是第几个
struct student *next;
};
// addone 用于将一个数插入已从小到大排好序的链中
struct student *addone(struct student *h,int x){
if(h==NULL) //??????
- 《大型网站系统与Java中间件实践》第2章读后感
白糖_
java中间件
断断续续花了两天时间试读了《大型网站系统与Java中间件实践》的第2章,这章总述了从一个小型单机构建的网站发展到大型网站的演化过程---整个过程会遇到很多困难,但每一个屏障都会有解决方案,最终就是依靠这些个解决方案汇聚到一起组成了一个健壮稳定高效的大型系统。
看完整章内容,
- zeus持久层spring事务单元测试
deng520159
javaDAOspringjdbc
今天把zeus事务单元测试放出来,让大家指出他的毛病,
1.ZeusTransactionTest.java 单元测试
package com.dengliang.zeus.webdemo.test;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import
- Rss 订阅 开发
周凡杨
htmlxml订阅rss规范
RSS是 Really Simple Syndication的缩写(对rss2.0而言,是这三个词的缩写,对rss1.0而言则是RDF Site Summary的缩写,1.0与2.0走的是两个体系)。
RSS
- 分页查询实现
g21121
分页查询
在查询列表时我们常常会用到分页,分页的好处就是减少数据交换,每次查询一定数量减少数据库压力等等。
按实现形式分前台分页和服务器分页:
前台分页就是一次查询出所有记录,在页面中用js进行虚拟分页,这种形式在数据量较小时优势比较明显,一次加载就不必再访问服务器了,但当数据量较大时会对页面造成压力,传输速度也会大幅下降。
服务器分页就是每次请求相同数量记录,按一定规则排序,每次取一定序号直接的数据
- spring jms异步消息处理
510888780
jms
spring JMS对于异步消息处理基本上只需配置下就能进行高效的处理。其核心就是消息侦听器容器,常用的类就是DefaultMessageListenerContainer。该容器可配置侦听器的并发数量,以及配合MessageListenerAdapter使用消息驱动POJO进行消息处理。且消息驱动POJO是放入TaskExecutor中进行处理,进一步提高性能,减少侦听器的阻塞。具体配置如下:
- highCharts柱状图
布衣凌宇
hightCharts柱图
第一步:导入 exporting.js,grid.js,highcharts.js;第二步:写controller
@Controller@RequestMapping(value="${adminPath}/statistick")public class StatistickController { private UserServi
- 我的spring学习笔记2-IoC(反向控制 依赖注入)
aijuans
springmvcSpring 教程spring3 教程Spring 入门
IoC(反向控制 依赖注入)这是Spring提出来了,这也是Spring一大特色。这里我不用多说,我们看Spring教程就可以了解。当然我们不用Spring也可以用IoC,下面我将介绍不用Spring的IoC。
IoC不是框架,她是java的技术,如今大多数轻量级的容器都会用到IoC技术。这里我就用一个例子来说明:
如:程序中有 Mysql.calss 、Oracle.class 、SqlSe
- TLS java简单实现
antlove
javasslkeystoretlssecure
1. SSLServer.java
package ssl;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.security.KeyStore;
import
- Zip解压压缩文件
百合不是茶
Zip格式解压Zip流的使用文件解压
ZIP文件的解压缩实质上就是从输入流中读取数据。Java.util.zip包提供了类ZipInputStream来读取ZIP文件,下面的代码段创建了一个输入流来读取ZIP格式的文件;
ZipInputStream in = new ZipInputStream(new FileInputStream(zipFileName));
&n
- underscore.js 学习(一)
bijian1013
JavaScriptunderscore
工作中需要用到underscore.js,发现这是一个包括了很多基本功能函数的js库,里面有很多实用的函数。而且它没有扩展 javascript的原生对象。主要涉及对Collection、Object、Array、Function的操作。 学
- java jvm常用命令工具——jstatd命令(Java Statistics Monitoring Daemon)
bijian1013
javajvmjstatd
1.介绍
jstatd是一个基于RMI(Remove Method Invocation)的服务程序,它用于监控基于HotSpot的JVM中资源的创建及销毁,并且提供了一个远程接口允许远程的监控工具连接到本地的JVM执行命令。
jstatd是基于RMI的,所以在运行jstatd的服务
- 【Spring框架三】Spring常用注解之Transactional
bit1129
transactional
Spring可以通过注解@Transactional来为业务逻辑层的方法(调用DAO完成持久化动作)添加事务能力,如下是@Transactional注解的定义:
/*
* Copyright 2002-2010 the original author or authors.
*
* Licensed under the Apache License, Version
- 我(程序员)的前进方向
bitray
程序员
作为一个普通的程序员,我一直游走在java语言中,java也确实让我有了很多的体会.不过随着学习的深入,java语言的新技术产生的越来越多,从最初期的javase,我逐渐开始转变到ssh,ssi,这种主流的码农,.过了几天为了解决新问题,webservice的大旗也被我祭出来了,又过了些日子jms架构的activemq也开始必须学习了.再后来开始了一系列技术学习,osgi,restful.....
- nginx lua开发经验总结
ronin47
使用nginx lua已经两三个月了,项目接开发完毕了,这几天准备上线并且跟高德地图对接。回顾下来lua在项目中占得必中还是比较大的,跟PHP的占比差不多持平了,因此在开发中遇到一些问题备忘一下 1:content_by_lua中代码容量有限制,一般不要写太多代码,正常编写代码一般在100行左右(具体容量没有细心测哈哈,在4kb左右),如果超出了则重启nginx的时候会报 too long pa
- java-66-用递归颠倒一个栈。例如输入栈{1,2,3,4,5},1在栈顶。颠倒之后的栈为{5,4,3,2,1},5处在栈顶
bylijinnan
java
import java.util.Stack;
public class ReverseStackRecursive {
/**
* Q 66.颠倒栈。
* 题目:用递归颠倒一个栈。例如输入栈{1,2,3,4,5},1在栈顶。
* 颠倒之后的栈为{5,4,3,2,1},5处在栈顶。
*1. Pop the top element
*2. Revers
- 正确理解Linux内存占用过高的问题
cfyme
linux
Linux开机后,使用top命令查看,4G物理内存发现已使用的多大3.2G,占用率高达80%以上:
Mem: 3889836k total, 3341868k used, 547968k free, 286044k buffers
Swap: 6127608k total,&nb
- [JWFD开源工作流]当前流程引擎设计的一个急需解决的问题
comsci
工作流
当我们的流程引擎进入IRC阶段的时候,当循环反馈模型出现之后,每次循环都会导致一大堆节点内存数据残留在系统内存中,循环的次数越多,这些残留数据将导致系统内存溢出,并使得引擎崩溃。。。。。。
而解决办法就是利用汇编语言或者其它系统编程语言,在引擎运行时,把这些残留数据清除掉。
- 自定义类的equals函数
dai_lm
equals
仅作笔记使用
public class VectorQueue {
private final Vector<VectorItem> queue;
private class VectorItem {
private final Object item;
private final int quantity;
public VectorI
- Linux下安装R语言
datageek
R语言 linux
命令如下:sudo gedit /etc/apt/sources.list1、deb http://mirrors.ustc.edu.cn/CRAN/bin/linux/ubuntu/ precise/ 2、deb http://dk.archive.ubuntu.com/ubuntu hardy universesudo apt-key adv --keyserver ke
- 如何修改mysql 并发数(连接数)最大值
dcj3sjt126com
mysql
MySQL的连接数最大值跟MySQL没关系,主要看系统和业务逻辑了
方法一:进入MYSQL安装目录 打开MYSQL配置文件 my.ini 或 my.cnf查找 max_connections=100 修改为 max_connections=1000 服务里重起MYSQL即可
方法二:MySQL的最大连接数默认是100客户端登录:mysql -uusername -ppass
- 单一功能原则
dcj3sjt126com
面向对象的程序设计软件设计编程原则
单一功能原则[
编辑]
SOLID 原则
单一功能原则
开闭原则
Liskov代换原则
接口隔离原则
依赖反转原则
查
论
编
在面向对象编程领域中,单一功能原则(Single responsibility principle)规定每个类都应该有
- POJO、VO和JavaBean区别和联系
fanmingxing
VOPOJOjavabean
POJO和JavaBean是我们常见的两个关键字,一般容易混淆,POJO全称是Plain Ordinary Java Object / Plain Old Java Object,中文可以翻译成:普通Java类,具有一部分getter/setter方法的那种类就可以称作POJO,但是JavaBean则比POJO复杂很多,JavaBean是一种组件技术,就好像你做了一个扳子,而这个扳子会在很多地方被
- SpringSecurity3.X--LDAP:AD配置
hanqunfeng
SpringSecurity
前面介绍过基于本地数据库验证的方式,参考http://hanqunfeng.iteye.com/blog/1155226,这里说一下如何修改为使用AD进行身份验证【只对用户名和密码进行验证,权限依旧存储在本地数据库中】。
将配置文件中的如下部分删除:
<!-- 认证管理器,使用自定义的UserDetailsService,并对密码采用md5加密-->
- mac mysql 修改密码
IXHONG
mysql
$ sudo /usr/local/mysql/bin/mysqld_safe –user=root & //启动MySQL(也可以通过偏好设置面板来启动)$ sudo /usr/local/mysql/bin/mysqladmin -uroot password yourpassword //设置MySQL密码(注意,这是第一次MySQL密码为空的时候的设置命令,如果是修改密码,还需在-
- 设计模式--抽象工厂模式
kerryg
设计模式
抽象工厂模式:
工厂模式有一个问题就是,类的创建依赖于工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则。我们采用抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。
总结:这个模式的好处就是,如果想增加一个功能,就需要做一个实现类,
- 评"高中女生军训期跳楼”
nannan408
首先,先抛出我的观点,各位看官少点砖头。那就是,中国的差异化教育必须做起来。
孔圣人有云:有教无类。不同类型的人,都应该有对应的教育方法。目前中国的一体化教育,不知道已经扼杀了多少创造性人才。我们出不了爱迪生,出不了爱因斯坦,很大原因,是我们的培养思路错了,我们是第一要“顺从”。如果不顺从,我们的学校,就会用各种方法,罚站,罚写作业,各种罚。军
- scala如何读取和写入文件内容?
qindongliang1922
javajvmscala
直接看如下代码:
package file
import java.io.RandomAccessFile
import java.nio.charset.Charset
import scala.io.Source
import scala.reflect.io.{File, Path}
/**
* Created by qindongliang on 2015/
- C语言算法之百元买百鸡
qiufeihu
c算法
中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱买百鸡问题”,鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁,母,雏各几何?
代码如下:
#include <stdio.h>
int main()
{
int cock,hen,chick; /*定义变量为基本整型*/
for(coc
- Hadoop集群安全性:Hadoop中Namenode单点故障的解决方案及详细介绍AvatarNode
wyz2009107220
NameNode
正如大家所知,NameNode在Hadoop系统中存在单点故障问题,这个对于标榜高可用性的Hadoop来说一直是个软肋。本文讨论一下为了解决这个问题而存在的几个solution。
1. Secondary NameNode
原理:Secondary NN会定期的从NN中读取editlog,与自己存储的Image进行合并形成新的metadata image
优点:Hadoop较早的版本都自带,