1-内核开发环境ubuntu+virtualbox+mobaXterm搭建

内核开发环境 ubuntu+virtualbox+mobaXterm搭建

目录

内核开发环境 ubuntu+virtualbox+mobaXterm搭建

1.virtualbox 安装

2.ubuntu 安装

3.网络设置

4.虚拟机安装ssh 服务,更新ubuntu 源安装基本软件

5.mobaXterm 个人免费版本安装

6.总结


本课程教程从0-1开始教你如何入门Linux内核模块开发

课程名称:Linux内核开发入门


课程简介:
Linux内核开发入门是一门旨在帮助学习者从最基本的知识开始学习Linux内核开发的入门课程。该课程旨在为对Linux内核开发感兴趣的初学者提供一个扎实的基础,让他们能够理解和参与到Linux内核的开发过程中。

课程特点:
1. 入门级别:该课程专注于为初学者提供Linux内核开发的入门知识。无论你是否具有编程或操作系统的背景,该课程都将从最基本的概念和技术开始,逐步引导学习者深入了解Linux内核开发的核心原理。

2. 系统化学习:课程内容经过系统化的安排,涵盖了Linux内核的基础知识、内核模块编程、设备驱动程序开发等关键主题。学习者将逐步了解Linux内核的结构、功能和工作原理,并学习如何编写和调试内核模块和设备驱动程序。

3. 实践导向:该课程强调实践,通过丰富的实例和编程练习,帮助学习者将理论知识应用到实际的Linux内核开发中。学习者将有机会编写简单的内核模块和设备驱动程序,并通过实际的测试和调试来加深对Linux内核开发的理解。

4. 配套资源:为了帮助学习者更好地掌握课程内容,该课程提供了丰富的配套资源,包括教学文档、示例代码、实验指导和参考资料等。学习者可以根据自己的学习进度和需求,灵活地利用这些资源进行学习和实践。

无论你是计算机科学专业的学生、软件工程师还是对Linux内核开发感兴趣的爱好者,Linux内核开发入门课程都将为你提供一个扎实的学习平台,帮助你掌握Linux内核开发的基础知识,为进一步深入研究和应用Linux内核打下坚实的基础。

本章是课程的第一课,首先我们先进行环境安装吧。这门课程目前选择的开发宿主机为 Window 10.其他Linux ,Mac OS环境切换过去理论也不是很困难。

1.virtualbox 安装

到官方网站下载 获取最新版本的安装包,假设在环境windwos 进行实验

官方下载地址:https://download.virtualbox.org

安装包直接下载地址:https://download.virtualbox.org/virtualbox/7.0.12/VirtualBox-7.0.12-159484-Win.exe

下载后,直接下一步安装即可。

2.ubuntu 安装

这里推荐到清华tuna镜像网站上下载 ,下载速度会快很多(当然你也可以选择其他国内大学,企业资源镜像网站进行下载)

官方地址:https://mirrors.tuna.tsinghua.edu.cn/

选择20.04.1-Ubuntu 安装包 ,进入左侧:常用发行版 iso 和应用工具安装包直接下载。获取下载链接:

  • https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/focal/ubuntu-20.04.6-desktop-amd64.iso

这个版本的进行下载。下载后,保存到本地 ubuntu-20.04.6-desktop-amd64.iso。

开始进行Ubuntu 安装。具体步骤如下图。

新建虚拟机叫ubuntu ,保存目录:D:\ProgramData\testvm\ubuntu\

进入专家模式,硬盘选择20g,内存2g即可

然后选择设置,设置到加载当前下载的虚拟镜像iso 文件

选择后保存设置。

然后在virutalbox 主界面点击刚才创建的虚拟机 ubuntu ,右键---启动---正常启动,就进入安装环节了。

选择 install 模式

选择安装的时候,不进行“download updates while installing Ubuntu” 更新,这样安装会更快

中途会让你设置用户名,密码,设置好后,就进入漫长的安装环境,等待即可

等待安装完成,然后安装提示进行重启

重启后,一般进入系统页面,如果发现进入的还是安装界面,需要先卸载掉安装媒介。然后重启虚拟机就会进入系统。

进入页面后,打开terminal应用,输入ping www.baidu.com 看虚拟机是否可以连接外网?

显示当前是可以连接外网的。检查当前virtual box 网络设置模式,当前只设置了网卡1,并且模式是网络地址转换NAT 模式。

当前采用的完全是virtualbox 为我们进行默认设置。

检测下宿主windows机器 ip 与虚拟机IP 地址

执行ping 看宿主机是否可以ping 虚拟机

C:\Users\Administrator>ping 10.0.2.15正在 Ping 10.0.2.15 具有 32 字节的数据:
请求超时。

发现ping 不通,这会给后面的mobaXterm 配置ssh 连接虚拟机带来问题。直接在virtualbox 虚拟机页面操作命令没有通过 ssh 方式的方便,所以我们要解决这个问题,详细看下面一节。

3.网络设置

首先virtual box 对于虚拟机网络设置位两个网卡模式,具体设置如下图

这里我们启用了网卡2,并且设置连接方式为:仅主机( Host-Only) 网络。

设置后保存再次启动ubuntu 虚拟机,查看虚拟机 网络ip 信息,发现另外一个网卡 enp0s3 已经获取到ip 地址信息 192.168.56.102

这里我们在宿主windows 机器上执行ping 192.168.56.102 就可以发现可以ping 通了。

记录此IP地址 192.168.56.102 后面配置ssh 使用

4.虚拟机安装ssh 服务,更新ubuntu 源安装基本软件
sudo apt update
sudo apt list --upgradable
sudo apt install net-tools
sudo apt install vim
sudo apt-get install openssh-server

最后一个是安装ssh server的,安装后,我们先检测ssh 服务是否启动

sudo systemctl status sshd 

命令查看 OpenSSH 服务端的状态 。输出:active running 可知 OpenSSH 服务端已经在运行

5.mobaXterm 个人免费版本安装

进入官网:MobaXterm free 下载mobaXterm。

选择 home edition   https://mobaxterm.mobatek.net/download-home-edition.html

下载,这时候可以选择     Download MobaXterm Home Edition (current version)

选择:Portable edition ,这样解压到本地磁盘就可以使用。当然你也可以选择installer edition 执行安装后在使用,但是我觉得完全没有必要。

安装好后,就是配置

创建New session  session 选择ssh 名称可以自定义,host填写ubuntu 安装自动获取的ip 地址。port 选择输入 22 ,然后点击保存,保存好之后,双击左侧的quick connect 对应的session ,就可以进入虚拟机(前提是你的virutal box 对应的虚拟机目前是开启的状态

保存好后,双击此虚拟机的 session,进入登陆 

输入用户名,密码,即可登记ubuntu 机器了。

自此,我们的 Virtualbox + Ubuntu + mobaXter 开发环境已经配置好, 可以进行后续内核课程的学习开发。

6.总结

有了这个环境后,我们就可以进行开发了,当前已经配置好ssh 服务功能,相关命令的复制,copy 比直接操作virtualbox虚拟机界面方便多。

接下来就进行内核开发入门课程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/313826.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VS调试技巧

Hi~!这里是奋斗的小羊,很荣幸各位能阅读我的文章,诚请评论指点,关注收藏,欢迎欢迎~~ 💥个人主页:小羊在奋斗 💥所属专栏:C语言 本系列文章为个人学习笔记&#x…

GaN HEMT中短沟道效应的建模

来源:Modeling of Short-Channel Effects in GaN HEMTs(TED 20年) 摘要 在本文中,我们提出了一种用于估算GaN高电子迁移率晶体管(HEMT)器件中短沟道效应(SCEs)的显式和解析的基于电…

node.js egg.js

Egg 是 Node.js 社区广泛使用的框架,简洁且扩展性强,按照固定约定进行开发,低协作成本。 在Egg.js框架中,ctx 是一个非常核心且常用的对象,全称为 Context,它代表了当前 HTTP 请求的上下文。ctx 对象封装了…

Golang内存、指针逃逸、垃圾回收机制概览

最近看到了一篇文章是关于go的内存、指针逃逸和垃圾回收机制的,发现自己并未很细致的了解过这方面的内容,于是在翻阅各种文章的情况下,写出了这篇总结,参考文章放在文末,可自取 内存 Go 语言使用一个自带的垃圾收集器…

YOLOV5 TensorRT部署 BatchedNMS(engine模型推理)(下)

主要是在王新宇代码的基础上改进,引入对BatchedNMS的解码 文章目录 1. 修改yolov5.cpp2.修改yololayer.h1. 修改yolov5.cpp 首先增加全局变量,名字根据转onnx时修改的节点名字来,查看onnx文件可以看到,顺序不要弄错。 const char *INPUT_NAME = “images”; const char …

Aigtek:介电弹性体高压放大器在软体机器人研究中的应用

近年来软体机器人的研究成为目前机器人研究领域的热点,由于软体材料的自由度可以根据需求自由变化,因此软体机器人有着极高的灵活性,而且软体机器人因其材料的柔软性有着很好的人机交互性能和安全性。它的出现成功解决了传统的刚性机器人人机…

ArcGIS Pro专题地图系列教程

专题地图系列是ArcGIS Pro3.2的新功能。之前,如果要做8张相同区域的专题图,可能需要新建8个布局,分别进行排版,再导出。现在,一幅地图,一个布局,就可以完成这个流程。 原理是,根据单…

AI预测福彩3D第9套算法实战化测试第4弹2024年4月26日第4次测试

今天继续进行新算法的测试,今天是第4次测试。好了,废话不多说了,直接上图上结果。 2024年4月26日福彩3D预测结果 6码定位方案如下: 百位:4、5、7、8、3、9 十位:6、9、5、4、1、2 个位:7、8、5、…

PostgreSql-Install

PostgreSql源码安装 一、源代码下载二、操作系统配置三、编译安装四、启动数据库五、相关命令 PostgreSQL是一个强大的 开源对象关系数据库系统,它使用并扩展了SQL语言,并结合了许多功能,可以安全地存储和扩展最复杂的数据工作负载。 一、源…

npm install 卡在still idealTree buildDeps不动

前言 再使用npm install 安装包依赖时 发现一直卡住 停留在 观察node_cache下的_logs文件 发现一直在拉取包 37 silly idealTree buildDeps 38 silly fetch manifest riophae/vue-treeselect0.4.0尝试解决 尝试设置了taobao镜像源 依然如此 获取已经设置的镜像源 确实是ta…

高级数据结构—线段树(一)

学线段树的原因是因为cf的一道题目始终想不出来怎么优化,后来知道区间查询和修改要用到线段树。。。 原题:Iva & Pav 线段树的作用 区间最值查询:可以高效地找到给定区间内的最大值、最小值等。 区间和查询:可以高效地计算…

关于MCU核心板的一些常见问题

BGA植球与焊接(多涂焊油): 【BGA芯片是真麻烦,主要是植锡珠太麻烦了,拆一次就得重新植】https://www.bilibili.com/video/BV1vW4y1w7oNvd_source3cc3c07b09206097d0d8b0aefdf07958 / NC电容一般有两种含义&#xff1…

Python爱心代码

爱心效果图: 完整代码: import random from math import sin, cos, pi, log from tkinter import *# 定义画布尺寸和颜色 CANVAS_WIDTH 640 CANVAS_HEIGHT 480 CANVAS_CENTER_X CANVAS_WIDTH / 2 CANVAS_CENTER_Y CANVAS_HEIGHT / 2 IMAGE_ENLARG…

AI容器化部署开发尝试 (一)(Pycharm连接docker,并部署django测试)

目标:使用容器化技术快速部署AI应用进行开发。 注意:从 Docker 19.03 开始,Docker 引入了对 NVIDIA GPU 的原生支持,因此若AI要调用GPU算力的话docker版本也是有要求的,后面博客测试。 当然本篇博客还没设计到GPU的调…

微服务两种方式登录

目录 1.restTemplate方式 1.1页面 1.2消费者 1.3生产者 1.4效果 2.Feign方式 2.1Service 2.2生产者 三个生产者 一个消费者,三个生产者需要用mysqlmybatis 三个不同的数据库。 页面输入用户名和密码,提交到后端消费者,消费者传到生产…

vLLM-prefix浅析(System Prompt,大模型推理加速)

原文:vLLM-prefix浅析(System Prompt,大模型推理加速) 简介 本文浅析了在大模型推理加速方面一个非常优秀的项目 vLLM 的一个新特性 Prefix。在 Prompt 中有相同前缀时可以提高吞吐量降低延迟,换句话说可以省去这部分…

【C++】:构造函数和析构函数

目录 前言一,构造函数1.1 什么是构造函数1.2 构造函数的特性1.3 总结 二,析构函数2.1 什么是析构函数2.2 析构函数的特性2.3 总结 前言 如果一个类中什么成员都没有,简称为空类。 空类中真的什么都没有吗?并不是,任何…

JVM学习笔记(五)内存模型

目录 1、原子性 1.1 问题分析 1.2 解决方法 2、可见性 2.1 退不出的循环 2.2 解决办法 3、有序性 3.1 诡异的结果 3.2 解决办法 3.3 有序性理解 3.4 happens-before 4、CAS与原子类 4.1 CAS 4.2 乐观锁与悲观锁 4.3 原子操作类 5、synchronized 优化 5.1 轻量…

华为认证云计算前景如何

互联网/移动互联网经历了高速发展的二十年,我们有幸一起见证了华为、阿里、腾讯、百度、字节跳动、京东、滴滴、拼多多等互联网公司的崛起,让普通技术人实现逆袭拿到高薪,也让小镇做题家们有了阶层跨越的机会。 但机会都是留给有准备的人&…

记录一个hive中因没启yarn导致的spark引擎跑insert语句的报错

【背景说明】 刚在hive中配置了Spark引擎,在进行Hive on Spark测试时报错, 报错截图如下: [atguiguhadoop102 conf]$ hive which: no hbase in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/module/jdk1.8.0_212/bin:/opt/mod…