<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[weixin_49356927的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/oNelson123</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; oNelson123]]></copyright><item><title><![CDATA[virtualbox启动虚拟机时报错：Error relaunching VirtualBox VM process:5....]]></title><link>https://blog.youkuaiyun.com/oNelson123/article/details/129896786</link><guid>https://blog.youkuaiyun.com/oNelson123/article/details/129896786</guid><author>oNelson123</author><pubDate>Sat, 01 Apr 2023 14:21:01 +0800</pubDate><description><![CDATA[否则：\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Vboxsup，将start的类型：由1改为2：（原理是将1启动时加载服务更改为2由服务控制管理器自动加载）解决方法：打开安装目录→  drivers/vboxsup/→ 选中.inf文件 右键安装，安装好后屏幕会刷新一下→ 安装完成后卸载软件，删除下图两个文件后重新安装→ 打开注册表→。但这种可能会遇到没有这个路径的情况，后来进一步查资料发现需要重新安装驱动。]]></description><category></category></item><item><title><![CDATA[【安装SSH服务】ubuntu安装ssh以及开启root用户ssh登录]]></title><link>https://blog.youkuaiyun.com/oNelson123/article/details/125417939</link><guid>https://blog.youkuaiyun.com/oNelson123/article/details/125417939</guid><author>oNelson123</author><pubDate>Wed, 22 Jun 2022 22:40:30 +0800</pubDate><description><![CDATA[一般Ubuntu都会默认安装openssh-client,但是没有安装openssh-server一、安装sshsudo apt install openssh-client
sudo apt install openssh-server
sudo service ssh start检查是否启动成功： 
或者
查看ssh是否启动: 二、root用户密码修改
设置root密码
执行命令后，依次输入当前登录用户密码，要设置的root密码，确认root密码
三、开启root用户ssh登录
输入root账户的用户名]]></description><category></category></item><item><title><![CDATA[VirtualBox四种网络模式特点]]></title><link>https://blog.youkuaiyun.com/oNelson123/article/details/125417890</link><guid>https://blog.youkuaiyun.com/oNelson123/article/details/125417890</guid><author>oNelson123</author><pubDate>Wed, 22 Jun 2022 22:26:37 +0800</pubDate><description><![CDATA[virtualbox集中网络简介模式特点：VirtualBox四种网络模式仅主机模式、NAT模式、桥接网络和内部网络模式介绍
https://blog.youkuaiyun.com/qq_28513801/article/details/90138491]]></description><category></category></item><item><title><![CDATA[【Linux】Ubuntu20.04配置静态固定IP地址]]></title><link>https://blog.youkuaiyun.com/oNelson123/article/details/125417115</link><guid>https://blog.youkuaiyun.com/oNelson123/article/details/125417115</guid><author>oNelson123</author><pubDate>Wed, 22 Jun 2022 22:23:36 +0800</pubDate><description><![CDATA[Ubuntu20.04.2配置静态固定IP地址Ubuntu从17.10开始，放弃在/etc/network/interfaces里面配置IP，改为在/etc/netplan/XX-installer-config.yaml的yaml文件中配置IP地址。
查看网络配置信息
在Ubuntu20.04中，默认没有安装ifconfig，因此使用ip addr命令拓展：
可以使用  命令查看网关或者使用nmcli 查看，需要执行安装sudo apt install network-manager修改配置文件
使用熟悉]]></description><category></category></item><item><title><![CDATA[【samba】Ubuntu20.04安装并配置Samba服务]]></title><link>https://blog.youkuaiyun.com/oNelson123/article/details/125414617</link><guid>https://blog.youkuaiyun.com/oNelson123/article/details/125414617</guid><author>oNelson123</author><pubDate>Wed, 22 Jun 2022 21:12:36 +0800</pubDate><description><![CDATA[查看当前Ubuntu 的版本号
检查是否成功安装samba服务：samba -V   （如果出现下面版本号说明已经安装了samba服务器）

如果安装失败，请检查你的网络，确认linux可以访问互联网，若可以联网请尝试更换ubuntu镜像源，桌面版直接在软件和更新中配置，服务器版百度上很多此步骤可选   我直接把整个工作目录设置为共享文件夹添加samba用户，用于其他人或设备认证，这里添加的用户需要在系统账号中存在，否则添加失败可选
创建用户名映射文件并配置（根据配置文件来定义）拓展：

7、备份 smb.]]></description><category></category></item><item><title><![CDATA[Oracle Virtual Box 安装及黑屏踩坑记录 以及ubuntu中文目录的问题]]></title><link>https://blog.youkuaiyun.com/oNelson123/article/details/123616919</link><guid>https://blog.youkuaiyun.com/oNelson123/article/details/123616919</guid><author>oNelson123</author><pubDate>Sun, 20 Mar 2022 18:11:47 +0800</pubDate><description><![CDATA[安装方法
查看 https://zhuanlan.zhihu.com/p/111567471
安装过程遇到的问题
中间遇到安装过程下一步的按钮显示不全的问题

解决方法简单粗暴：
Alt+鼠标左键 （16.04版本亲测有效，18.04版本亲测无效）
或者
Win+鼠标左键 （18.04版本亲测有效）
拖动安装界面，即可显示内容。
这个设计真是让人无力吐槽啊！
安装过后黑屏问题或者无法开机的问题
首先也是尝试了网上的很多方法：
cmd管理员身份运行：netsh winsock reset 【网上大多是这个，但]]></description><category></category></item><item><title><![CDATA[树莓派上创建个人用户]]></title><link>https://blog.youkuaiyun.com/oNelson123/article/details/115310810</link><guid>https://blog.youkuaiyun.com/oNelson123/article/details/115310810</guid><author>oNelson123</author><pubDate>Mon, 29 Mar 2021 20:42:38 +0800</pubDate><description><![CDATA[自从安装好了以后，树莓派的使用一直用的是默认账户。出于折腾的心理，打算创建一个个人的用户。

在公司使用各种权限受限的电脑，我不是很想让自己创建的用户束手束脚。为此想直接创建一个权限等同于pi的用户。

获取pi的权限很简单，groups查看一下pi的用户组即可。接下来使用下面的命令创建我自己的用户：



sudo useradd -m xxxx -G pi adm dialout cdrom sudo audio video plugdev games u...]]></description><category></category></item><item><title><![CDATA[设计模式之工厂模式]]></title><link>https://blog.youkuaiyun.com/oNelson123/article/details/110939987</link><guid>https://blog.youkuaiyun.com/oNelson123/article/details/110939987</guid><author>oNelson123</author><pubDate>Wed, 09 Dec 2020 20:27:50 +0800</pubDate><description><![CDATA[什么是工厂模式

工厂模式是最常用的设计模式之一，这种类型的设计模式属于创建型模式，它提供了一种创建对象的最佳方式。在工厂模式中，我们创建对象不会对客户端暴露创建逻辑，并且是通过使用一个共同的接口来指向新创建的对象。

工厂模式的实现

cat.c(文件名)


#include "animal.h"

void catEat()
{
	printf("eat fish\n");
	return;
}
void catBeat()
{
	printf("zhua\n");
	return;
}

struc]]></description><category></category></item><item><title><![CDATA[软件设计模式]]></title><link>https://blog.youkuaiyun.com/oNelson123/article/details/110915768</link><guid>https://blog.youkuaiyun.com/oNelson123/article/details/110915768</guid><author>oNelson123</author><pubDate>Wed, 09 Dec 2020 17:31:08 +0800</pubDate><description><![CDATA[软件设计模式

软件设计模式（Design pattern），又称设计模式，是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。总的来说：就是代码设计经验的总结，能够让代码稳定，拓展性更强，一系列编程的思想。设计模式有23种，代码容易被他人理解，保证代码可靠性，程序的重用性，要慢慢的积累。

算法：

算法不是设计模式，因为算法致力于解决问题而非设计问题。设计模式通常描述了一组相互紧密作用的类与对象。
百科讲]]></description><category></category></item><item><title><![CDATA[虚拟内存（虚拟地址， 页表，换页...)]]></title><link>https://blog.youkuaiyun.com/oNelson123/article/details/110729016</link><guid>https://blog.youkuaiyun.com/oNelson123/article/details/110729016</guid><author>oNelson123</author><pubDate>Sat, 05 Dec 2020 23:10:01 +0800</pubDate><description><![CDATA[第一阶段：没有内存抽象

没有内存抽象对于内存的管理通常非常简单，除去操作系统所用的内存之外，全部给用户程序使用。或是在内存中多留一片区域给驱动程序使用，如图1所示。



图1. 没有内存抽象时，对内存的使用

第一种情况操作系统存于RAM中，放在内存的低地址，第二种情况操作系统存在于ROM中，存在内存的高地址，一般老式的手机操作系统是这么设计的。

如果这种情况下，想要操作系统可以执行多进程的话，

缺陷：多线程直接操作内存，会产生冲突。唯一的解决方案就是和硬盘搞交换，当一个进程执行到一定程度时，整个存]]></description><category></category></item><item><title><![CDATA[树莓派底层IO驱动开发示例（一个简单io口驱动的开发）]]></title><link>https://blog.youkuaiyun.com/oNelson123/article/details/110726961</link><guid>https://blog.youkuaiyun.com/oNelson123/article/details/110726961</guid><author>oNelson123</author><pubDate>Sat, 05 Dec 2020 23:02:27 +0800</pubDate><description><![CDATA[一、驱动代码的开发

1.树莓派寄存器的介绍

点击查看：树莓派（bcm2835芯片手册）



GPFSEL0 GPIO Function Select 0： 功能选择 输入/输出

GPSET0 GPIO Pin Output Set 0 ： 输出0
GPSET1 GPIO Pin Output Set 1 ： 输出1
0 = No effect
1 = Set GPIO pin n

GPCLR0 GPIO Pin Output Clear 0： 清零
0 = No effect
1 = Clear ]]></description><category></category></item><item><title><![CDATA[copy_from_user和copy_to_user]]></title><link>https://blog.youkuaiyun.com/oNelson123/article/details/110726939</link><guid>https://blog.youkuaiyun.com/oNelson123/article/details/110726939</guid><author>oNelson123</author><pubDate>Sat, 05 Dec 2020 20:59:51 +0800</pubDate><description><![CDATA[前言

copy_from_user和copy_to_user这两个函数相信做内核开发的人都非常熟悉，分别是将用户空间的数据拷贝到内核空间以及将内核空间中的数据拷贝到用户空间。这两个函数一般用于系统调用中，前者将用户空间参数拷贝到内核，后者将系统用的结果返回到用户空间。

用户空间和内核空间

Linux将地址空间分为用户空间和内核空间，内核文档Documentation/arm64/memory.txt中定义了内核地址空间和用户地址空间的范围，比如4K Page +4 level页表时，地址空间分布如下：]]></description><category></category></item><item><title><![CDATA[ioremap]]></title><link>https://blog.youkuaiyun.com/oNelson123/article/details/110726920</link><guid>https://blog.youkuaiyun.com/oNelson123/article/details/110726920</guid><author>oNelson123</author><pubDate>Sat, 05 Dec 2020 20:58:50 +0800</pubDate><description><![CDATA[1、一般我们的外设都是通过读写设备上的寄存器来进行的，通常包括控制寄存器、状态寄存器、数据寄存器三大类。外设的寄存器通常被连续编址，并且根据CPU的体系架构不同CPU对IO端口的编制方式有两种：


	IO映射方式（IO-mapped）：比较典型的有X86处理器为外设专门实现了一个单独的地址空间，称为“IO端口空间”或者“IO地址空间”，此时CPU可以通过专门的指令（比如X86的IN和OUT）来访问这个“IO端口空间”。
	
	
	内存映射方式（memory-mapped）：RISC指令系统的CPU一般只实]]></description><category></category></item><item><title><![CDATA[微机总线地址，物理地址 ，虚拟地址]]></title><link>https://blog.youkuaiyun.com/oNelson123/article/details/110688664</link><guid>https://blog.youkuaiyun.com/oNelson123/article/details/110688664</guid><author>oNelson123</author><pubDate>Sat, 05 Dec 2020 15:15:22 +0800</pubDate><description><![CDATA[总线地址
地址总线 (Address Bus；又称：位址总线) 属于一种电脑总线 （一部份），是由CPU 或有DMA 能力的单元，用来沟通这些单元想要存取（读取/写入）电脑内存元件/地方的实体位址。

自己理解：cpu能够访问内存的范围

现象：装了32位的win7系统，明明内存条8G，可系统只是别了3.8G ，装了64位才能识别到8G。

装了32位的操作系统CPU的访问范围是2^32 bit,就是4194304kbit，就是4096Mbit，等于4G，也就是说只有4G用来访问内存，另外的用于其他的用途。]]></description><category></category></item><item><title><![CDATA[基于驱动框架编写驱动代码]]></title><link>https://blog.youkuaiyun.com/oNelson123/article/details/110680290</link><guid>https://blog.youkuaiyun.com/oNelson123/article/details/110680290</guid><author>oNelson123</author><pubDate>Sat, 05 Dec 2020 14:10:02 +0800</pubDate><description><![CDATA[字符设备驱动框架


#include &lt;linux/fs.h&gt;		 //file_operations声明
#include &lt;linux/module.h&gt;    //module_init  module_exit声明
#include &lt;linux/init.h&gt;      //__init  __exit 宏定义声明
#include &lt;linux/device.h&gt;	 //class  devise声明
#include &lt;linux/uac]]></description><category></category></item><item><title><![CDATA[linux中.so、.ko、.a、.o文件区别]]></title><link>https://blog.youkuaiyun.com/oNelson123/article/details/110680346</link><guid>https://blog.youkuaiyun.com/oNelson123/article/details/110680346</guid><author>oNelson123</author><pubDate>Sat, 05 Dec 2020 14:04:18 +0800</pubDate><description><![CDATA[1、对于.so文件
.so文件是用户层的动态链接库，用于用户层的动态链接使用，内核态的代码同样不能直接访问。

2、对于.ko文件
.ko文件是内核态的动态链接库，用于内核态的动态链接使用，可以用于内核之间的模块相互调用。用户态的代码不可直接调用内核态的代码，但是可以通过其他方式进行通信。

3、对于.a文件
.a文件是用于静态链接时，使用的静态库。

4、对于.o文件
.o文件是目标文件，编译生成，.a文件就是由.o文件打包生成的。
...]]></description><category></category></item><item><title><![CDATA[Linux驱动认知]]></title><link>https://blog.youkuaiyun.com/oNelson123/article/details/110680250</link><guid>https://blog.youkuaiyun.com/oNelson123/article/details/110680250</guid><author>oNelson123</author><pubDate>Sat, 05 Dec 2020 13:59:56 +0800</pubDate><description><![CDATA[用户态
App：cp指令，ftp的项目等等这就是App的开发。
App开发需要C的基础和C库，C库讲到文件，进程，进程间通信，线程，网络，界面（GTk）。
C库（是linux标准库一定有）：就是Clibary，提供了APP支配内核干活的接口，调用的open，read，write，fork，pthread，socket由此处封装实现，由写的应用程序调用，C库中的各种API调用的是内核态，支配内核干活

内核态
进程，内存，线程，网络，设备驱动不需要上层应用开发者关心，驱动在前面的学习是调用wringpi库实现]]></description><category></category></item><item><title><![CDATA[Linux内核结构介绍]]></title><link>https://blog.youkuaiyun.com/oNelson123/article/details/110680153</link><guid>https://blog.youkuaiyun.com/oNelson123/article/details/110680153</guid><author>oNelson123</author><pubDate>Sat, 05 Dec 2020 13:56:40 +0800</pubDate><description><![CDATA[内核结构框图


应用程序（基础C加C库）通过函数库（C库），
C库提供了应用程序支配内核干活的接口，虚拟文件系统和系统调用接口其实是重合的。下面我们以如何打开一个文件来说明具体的步骤——应用程序调用open，read，write这些函数（来自于C库），C库和系统调用接口打交道，系统调用接口可以操作底层的各种东西，可以做进程线程相关的东西，也可以访问各种不同的文件系统，我们在应用程序中调用open ，read ，write函数，在系统调用接口就会调用sys_open,sys_read ,sys_write,]]></description><category></category></item><item><title><![CDATA[文件系统认知]]></title><link>https://blog.youkuaiyun.com/oNelson123/article/details/110680100</link><guid>https://blog.youkuaiyun.com/oNelson123/article/details/110680100</guid><author>oNelson123</author><pubDate>Sat, 05 Dec 2020 13:46:20 +0800</pubDate><description><![CDATA[什么是文件系统?


常规认知是：linux根目录那些东西

百科：文件系统是操作系统用于明确存储设备组织文件的方法，操作系统中负责管理和存储文件信息的软件机构称为文件管理系统，简称文件系统。

以上说的方法：就是文件管理系统（程序），简称文件系统。

文件系统（文件管理系统的方法）的种类有哪些呢
FAT ,NTFS（windows） ,EXT1/2/3(linux常用的)，HFS VFAT …等

树莓派中查看文件系统的指令是：


df -T


如图：
其中可以看出来type（文件系统的类型）有：
V]]></description><category></category></item><item><title><![CDATA[Linux树莓派源码配置及编译镜像]]></title><link>https://blog.youkuaiyun.com/oNelson123/article/details/110633157</link><guid>https://blog.youkuaiyun.com/oNelson123/article/details/110633157</guid><author>oNelson123</author><pubDate>Fri, 04 Dec 2020 13:26:41 +0800</pubDate><description><![CDATA[驱动代码的编写需要一个提前编译好的内核，编译内核就必须配置，配置的最终目标会生成.config文件，该文件指导Makefile去把有用的东西组织成内核。如何生成.config文件：
第一种方式：
厂家配linux内核源码，比如说买了树莓派，现在要研发树莓派的底层，厂家会提供树莓派linux内核源码，直接cp  厂家.config  .config
第二种方式：
make menuconfig 一项项配置，通常是基于厂家的config来配置的。
第三种方式：
完全自己来

如何配置树莓派linux的内...]]></description><category></category></item></channel></rss>