【从头开始写操作系统系列】实现一个-GDT(1)
技术博客

【从头开始写操作系统系列】实现一个-GDT(1)

11875 40

在这篇文章中我们完成了以下内容: 介绍 GDT介绍段描述符实现一个段描述符 介绍 GDT GDT 是什么? GDT(Global Descriptor Table)是一种数据结构,用来提供段式存储机制,这种机制是通过段寄存器和 GDT 中的描述符共同提供的。 在保护模式下,虽然现在的寄存器已经有32位的,但是我们依旧采用『段:偏移』的形式来寻址,只不过『段』的...

【从头开始写操作系统系列】实现一个-GDT(2)
技术博客

【从头开始写操作系统系列】实现一个-GDT(2)

13790 6

在这篇文章我们将要做: 介绍选择子实现一个选择子结构 选择子是什么? 在上篇文章中我们介绍了段描述符以及段描述符表,这篇文章我们复习一下段、段描述符、段描述符表的功能,并且介绍一下段选择子以及段描述符表。 段(Segment):在80X86中,我们知道分段机制将内存空间分为了多个线性区域,我们把这些线性区域称为段。由于我们要将这些段区分开来,于是我们对段赋予3个...

浅析 Linux 系统调用
技术博客

浅析 Linux 系统调用

14588 25

浅析 Linux 系统调用 用户态、内核态以及中断 具有高执行级别的程序可以执行特权指令intel X86 CPU 具有4种级别:0 ~ 3Linux 只用了0和3(0表示内核态,3表示用户态)特权级的表示:使用 CS 寄存器的低2位内核态逻辑地址空间:0xc0000000以上 用户态逻辑地址空间:0x00000000 ~ 0xbfffffff中断是从用户态到内核...

无人驾驶 感知模块的几个要点
技术博客

无人驾驶 感知模块的几个要点

17718 34

本文章来自: Apollo开发者社区     原创:阿波君          1、卷积神经网络 卷积神经网络CNN是一种人工神经网络,它对感知问题特别有效,CNN接受多维输入包括定义大多数传感器数据的二维和三维形状。如果使用标准神经网络对图像进行分类,则需要通过一种方法将图像连接到网络的第一层,这属于一维。 标准做法是通过将图像矩阵重塑为一个矢量,并在一个大行中连接所...

机器学习算法 综述(入门2)
技术博客

机器学习算法 综述(入门2)

15492 29

学习了一个学期机器学习算法,从什么都不懂到对十个机器学习算法有一定的了解,下面总结一下十大机器学习算法,从算法的概念、原理、优点、缺点、应用等方面来总结,如果有错误的地方,欢迎指出。 这里续之前没写完的:   6、K近邻算法 给一个新的数据时,离它最近的 k 个点中,哪个类别多,这个数据就属于哪一类。 例子:要区分“猫”和“狗”,通过“claws”和“sound”两...

2019年Java大厂面试题讲解(周阳) 之Linux诊断原因(面试加分项)
技术博客

2019年Java大厂面试题讲解(周阳) 之Linux诊断原因(面试加分项)

13056 52

Linux诊断原因 前言命令集合整机:top,查看整机系统新能CPU:vmstat内存:free硬盘:df网络IO:ifstat 生产环境服务器变慢,诊断思路和性能评估总结 前言 在招聘Java开发工程师的时候,在招聘要求上的最后总会看到熟练使用Linux优先等字样。随着就业压力越来越大,对Java工程师的要求也相对的越来越高。会Linux操作...

关于Java你不知道的那些事之Spring源码讲解
技术博客

关于Java你不知道的那些事之Spring源码讲解

14559 26

Spring源码讲解 前言谈谈你对Spring的理解Spring上下文Spring初始化SpringBean的生命周期普通类的实例化Spring Bean实例化过程 前言 Spring源码方面的知识 Spring bean的生命周期Spring 工厂,Spring容器,上下文Spring BeanPostprocessorSpring 和 ...

【从头开始写操作系统系列】环境搭建以及第一个Hello World
技术博客

【从头开始写操作系统系列】环境搭建以及第一个Hello World

16493 60

写在最前 笔者在动手写此操作系统时是一名大学本科大二的学生,可能文章中会有好多地方我没有解释清楚,可能也会有许多地方出现错误,我恳请各位读者能提出质疑和纠正我的错误,谢谢! 参考书籍: 《30天自制操作系统》川合秀实《ORANGE’S:一个操作系统的实现》 开发环境 笔者采用以下开发环境 Apple Macbook AirUbuntu 12.04 ...

Spring扩展点总结
技术博客

Spring扩展点总结

13055 24

spring中bean的扩展点 经历了一系列复杂的spring应用后,你的项目可能已经用上注解,也用上了xxx.properties,你对这神奇的用法感到欣喜,但你不知道他是怎么被实现的,现在就让我们来揭开这些神秘的面纱。 BeanDefinition与BeanFactory扩展 在Spring生成bean的过程这篇文章中,我们了解了spring在生成bean前会先...

【从头开始写操作系统系列】一致代码段与非一致代码段
技术博客

【从头开始写操作系统系列】一致代码段与非一致代码段

15461 18

上几篇文章,我们一直在讨论的都是 GDT 相关的一些问题,现在我们知道在系统在从实模式向保护模式跳转时,GDT 是必须要准备的结构。在介绍这一跳转之前,这篇文章我们来介绍两个概念:一致代码段和非一致代码段。 首先,我们先来看几个问题: 一致代码段和非一致代码段是什么?为什么要有一致代码段和非一致代码段?系统提供怎样的机制来使用户程序访问内核数据?程序如何在...

几种基本汇编指令详解
技术博客

几种基本汇编指令详解

16492 11

几种基本汇编指令详解 常见寄存器 寄存器16位32位64位累加寄存器AXEAXRAX基址寄存器BXEBXRBX计数寄存器CXECXRCX数据寄存器DXEDXRDX堆栈基指针BPEBPRBP变址寄存器SIESIRSI堆栈顶指针SPESPRSP指令寄存器IPEIPRIP 汇编指令 mov movb(8位)、movw(16位)、movl(32位)、movq(64位)...

用 Arduino Uno 给 Arduino Mini(Pro)烧录程序
技术博客

用 Arduino Uno 给 Arduino Mini(Pro)烧录程序

19070 52

用 Arduino Uno 给 Arduino Mini(Pro)烧录程序 准备 Arduino UnoArduino Mini(Pro)杜邦线若干 接线 首先去掉 Arduino 上的芯片ATMEGA328P 接线 Uno —– Mini 0(RX) – 0(RX) 1(TX) – 1(TX) VCC —- VCC GND —- GND RESE...

(重温)JavaWeb--Servlet技术(一)(JavaWeb 的三大组件之一)
技术博客

(重温)JavaWeb--Servlet技术(一)(JavaWeb 的三大组件之一)

11851 62

1.Servlet 技术 a)什么是 Servlet Servlet 是 JavaEE 规范之一。规范就是接口Servlet 就 JavaWeb 三大组件之一。三大组件分别是:Servlet 程序、Filter 过滤器、Listener 监听器。Servlet 是运行在服务器上的一个 java 小程序,它可以接收客户端发送过来的请求,并响应数据给客户端。 b)手动实现 S...

不瞒你说,我最近跟Java源码杠上了
技术博客

不瞒你说,我最近跟Java源码杠上了

13762 51

为什么要读JDK源码 当然不是为了装,毕竟谁没事找事虐自己 ... 1、面试跑不掉。现在只要面试Java相关的岗位,肯定或多或少会会涉及JDK源码相关的问题。 2、弄懂原理才不慌。我们作为JDK的使用者,虽然说天天用得很开心,但是有时候遇到问题还是得跟到底层源码去看看,才能帮助我们更好的弄懂原理, 3、学习优秀的代码、思想和模式。JDK毕竟是一个优秀的代码库,我们...

高效开发:IntelliJ IDEA天天用,这些Debug技巧你都知道?
技术博客

高效开发:IntelliJ IDEA天天用,这些Debug技巧你都知道?

16492 60

在软件开发的过程中,可以说调试是一项基本技能。调试的英文单词为 debug ,顾名思义,就是去除 bug 的意思。俗话说的好,编程就是制造 bug 的过程,所以 debug 的重要性毋庸置疑,如果能熟练掌握调试技能,也就可以很快的定位出代码中的 bug。要知道,看的懂代码不一定写的出代码,写的出代码不一定能调试好代码,为了能写出没有 bug 的代码,我们必须得掌握一些基...

(小技巧)IDEA在service窗口中显示多个服务
技术博客

(小技巧)IDEA在service窗口中显示多个服务

19069 33

idea在service窗口中显示多个服务如下: .idea 目录下面 workspace.xml 中找到 RunDashboard 替换成如下 <component name="RunDashboard"> <option name="configurationTypes"> <set> <option value="SpringBootApplicationC...

在Eclipse中安装StatET插件
技术博客

在Eclipse中安装StatET插件

11335 23

在Eclipse中安装StatET插件 1.概述 众所周知,很多人进行数据挖掘最喜欢使用的语言是R语言,而可以选择的IDE确有很多种,例如Emacs + ESS,RStudio等等。 今天,我所写的是使用Eclipse + StatET来搭建R语言环境。 2.安装Eclipse 我使用的是Ubuntu13.10的系统,在  ht...

Maven学习总结(二)——Maven项目构建过程练习
技术博客

Maven学习总结(二)——Maven项目构建过程练习

11849 67

上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven高度自动化构建项目的过程 一、创建Maven项目 1.1、建立Hello项目   1、首先建立Hello项目,同时建立Maven约定的目录结构和pom.xml文件 Hello | --src | -----main | ----------java | ----------resou...

Maven学习总结(五)——聚合与继承
技术博客

Maven学习总结(五)——聚合与继承

17677 13

一、聚合   如果我们想一次构建多个项目模块,那我们就需要对多个项目模块进行聚合 1.1、聚合配置代码 1 <modules> 2 <module>模块一</module> 3 <module>模块二</module> 4 <module>模块三</module> 5 </modules>   例如:对项目的Hello、HelloFriend、MakeFriends这...

Dagger2——DI依赖注入——IOC原则的实现者
技术博客

Dagger2——DI依赖注入——IOC原则的实现者

11848 10

《如何获得完全松耦合的程序设计》 IoC原则、DIP原则、DI设计模式可以帮助我们获得完全松耦合的程序设计。而Dagger2则是实现了依赖注入(DI)设计模式的框架,也就是它实现了IoC原则。 简而言之,Dagger2在遵循IoC原则下帮助我们创建依赖对象。我大概讲一下DI设计模式:比说A类依赖B类,那么我们通过在A类外面创建B类的对象,再将其注入A类。需要有个第三方...

Flutter使用Dialog
技术博客

Flutter使用Dialog

14554 15

import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; class MyDialogApp extends StatelessWidget { @override Widget build(BuildContext context) { return Ma...

Windows  下搭建  Apache Http Server 文件系统(详细)
技术博客

Windows 下搭建 Apache Http Server 文件系统(详细)

15455 38

一、下载Apache Http Sever 2.4 (1)https://httpd.apache.org/download.cgi#apache24 (2)在 Apache 2.4 server binaries 栏选择 合适版本进行下载   二、安装与配置Apache Http Sever 2.4 (1)解压压缩包,得到下图所示的文件。一个是安装说明...

Spring-Cloud学习笔记(二)RestTemplate和Feign的使用方式以及部分注解的使用
技术博客

Spring-Cloud学习笔记(二)RestTemplate和Feign的使用方式以及部分注解的使用

19063 55

通常,我们在搭建springcloud微服务架构时,会把我们的服务注册到高可用eureka服务注册发现中心上面,各个服务之间的通信就是无可避免的,此时我们就需要用到RestTemplate 或者Feign去进行各个服务之间的通信调用。                                    RestTemplate的三种使用方式 1、直接只用RestTemp...

Docker学习笔记(一)docker的介绍和安装
技术博客

Docker学习笔记(一)docker的介绍和安装

11332 41

docker的介绍和安装 一.docker 介绍  docker 可以粗糙的理解为虚拟机,但是确实不是真正的虚拟机,通常形容它是一个开挂的chroot   二.在linux下安装 docker  第二句命令的含义是修改  centos 的普通用户imooc到 docker 组里面,这...

linux操作系统下 实现java调用so文件
技术博客

linux操作系统下 实现java调用so文件

13757 53

最近公司在做农机自动驾驶业务,里面的有些算法是c++代码实现,需要对接到java平台。因此我们可以用强大的jna很简单的就可以实现调用so文件库。 在linux下使用jna调用本地方法的时候,需要将C写成的程序编译为so文件。 1.首先编写一个test.c文件 #include<stdio.h> int add(int a,int b); int add(int a,in...