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

news2024/11/24 18:58:15
内核开发环境 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.coloradmin.cn/o/1626236.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Druid高性能数据库连接池?SpringBoot整合MyBatis整合SpringMVC整合Druid

文章目录 Druid高性能数据库连接池?SpringBoot整合MyBatis整合SpringMVC整合Druid异常记录spring-boot-starter-parent作用Druid介绍什么是数据库连接池?为什么选择Druid数据库连接池整合SpringBoot,MyBatis,SpringMVC,Druid到Maven项目的真个流程pom文件…

为什么 React 比 Vue 难?你不知道的前端简史!

CSDN里有一个女粉问我,为什么都在说 React 比 Vue 难? 事实上,我不知道这个说法算是客观事实呢,还是“思想钢印”。 但是我第一反应就是盲猜一手,“React 比 Vue 难”这个说法可能源于后端攻城狮的主观评价,因为传统…

华为Pura 70系列,一种关于世界之美的可能

1874年,莫奈创作了《印象日出》的油画,在艺术界掀起了一场革命。当时的主流艺术,是追求细节写实,追求场面宏大的学院派。他们称莫奈等人是“印象派”,认为莫奈的画追求光影表达,追求描绘抽象的意境&#xf…

Oracle正則匹配練習一

1.使用分割符號 select regexp_substr(A_B_C, [^_], 1, 2) FROM DUAL 2.練習2 SELECT SUBSTR(path_string, INSTR(path_string, \, -1, 2) 1, INSTR(path_string, \, -1) - INSTR(path_string, \, -1, 2) - 1) AS extracted_string FROM (SELECT D:\SKY Image\A0-BOTC8…

一个VUE3的页面demo

样子是这样的 目录是这样的 index.vue文件内容 <template><div class"app-container"><div class"content"><div class"form" v-show"showSearch"><el-formref"queryRef":inline"true&qu…

C语言笔试题之找出数组的最大公约数

找出数组的最大公约数 实例要求 1、给定一个整数数组 &#xff0c;返回数组中最大数和最小数的最大公约数&#xff1b;2、两个数的最大公约数是能够被两个数整除的最大正整数&#xff1b;示例&#xff1a; 实例分析 1、要找到数组中最大数和最小数的最大公约数&#xff1b…

Python3.11修改并运行oneforall

遇到的问题 使用python3.11默认无法运行oneforall脚本&#xff0c;出现如下报错 # 解决方案 修改 /usr/local/lib/python3.11/dist-packages/exrex.py exrex.py具体文件路径报错中会显示 vim /usr/local/lib/python3.11/dist-packages/exrex.py# 修改前 from re import sre…

02_c/c++开源库ZeroMQ

1.安装 C库 libzmq sudo apt install libzmq3-dev 实例: https://zeromq.org/get-started/?languagec&librarylibzmq# 编译依赖: pkg-config --cflags --libs libzmq or cat /usr/lib/x86_64-linux-gnu/pkgconfig/libzmq.pc -isystem /usr/include/mit-krb5 -I/usr/in…

Magnet for Mac:高效窗口管理工具

Magnet for Mac是一款专为Mac用户设计的窗口管理工具&#xff0c;旨在帮助用户更高效地管理和布局多个应用程序窗口&#xff0c;提升工作效率。 Magnet for Mac v2.14.0中文免激活版下载 这款软件拥有直观易用的界面和丰富的功能&#xff0c;支持用户将屏幕分割成多个区域&…

低代码将干掉65%软件开发工作:留给码农的时间不多了

IDC预测&#xff0c;到2024年&#xff0c;约有65%的应用软件将通过低代码开发方式实现&#xff0c;同样&#xff0c;Gartner也曾发布过类似的预测&#xff0c;结果与IDC的预测大致相符。 低代码领域的知名公司Mendix之前发布的一份调研报告指出&#xff1a; “在中国&#xf…

基于Python实现的推箱子小游戏

Python贪吃蛇小游戏实现: 推箱子曾经在我们的童年给我们带来了很多乐趣。推箱子这款游戏现在基本上没人玩了&#xff0c;甚至在新一代人的印象中都已毫无记忆了。。。但是&#xff0c;这款游戏可以在一定程度上锻炼自己的编程能力。 运行效果如图所示&#xff1a; 游戏关卡有点…

C# 生成图形验证码

目录 应用场景 开发运行环境 设计 生成内容 生成图片 实现 核心代码 调用示例 小结 应用场景 我们当用户登录系统时经常会用到图形验证码技术&#xff0c;要求用户识别图片中的内容&#xff0c;并正确输入&#xff0c;方可尝试登录。类似的场景还有用户注册或者涉及…

探秘MySQL主从复制的多种实现方式

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 探秘MySQL主从复制的多种实现方式 前言基于语句的复制原理实现方法应用场景及优缺点应用场景优点缺点 基于行的复制原理实现方法优势和适用性优势适用性 基于混合模式的复制混合模式复制的工作原理混合…

【stomp 实战】Spring websocket使用详解和基本原理

spring框架对websocket有很好的支持&#xff0c;stomp协议作为websocket的子协议&#xff0c;Spring也做了很多封装&#xff0c;让我们在开发中易于使用。 学习使用Spring的Websocket模块&#xff0c;当然最好的办法就是看官网说明了。本篇文章对官网做一些简述和个人的理解。 …

链游:未来游戏发展的新风向

链游&#xff0c;即区块链游戏的一种&#xff0c;是一种将区块链技术与游戏玩法相结合的创新型游戏。它利用区块链技术的特性&#xff0c;如去中心化、可追溯性和安全性&#xff0c;为玩家提供了一种全新的游戏体验。链游通常采用智能合约来实现游戏的规则和交易系统&#xff0…

按现价和不变价计算与公布的统计指标主要有哪些

在经济统计和分析工作中 , 有些指标可以直接用实物量表示 , 如粮食和工业品产量等&#xff1b;而有些指标则是用价值量表示的 , 如全国居民人均可支配收入、社会消费品零售总额、商品房销售额等。在计算价值量指标时&#xff0c;一般均要考虑采用什么价格来计算。统计上常用的价…

新媒体运营-----短视频运营-----PR视频剪辑----PR特效

新媒体运营-----短视频运营-----PR视频剪辑-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/138079659 文章目录 1. 混合和对比度1. 滤色2. 对比度 2. 3d和属性粘贴3. 参考线和锚点 1. 混合和对比度 1. 滤色 混合是PS&#xff…

【数据结构(邓俊辉)学习笔记】绪论04——算法分析

文章目录 0. 前言1. 算法分析2.级数2.1基本形式2.2 收敛级数 3.循环 vs 级数4.示例 0. 前言 通过以基本计算模型作为参照&#xff0c;并且以大O记号的形式在上面添加适当刻度&#xff0c;已经建立一套对DSA进行分析的完整工具和体系。不清楚的可以看看复杂度度量 、复杂度分析…

Kafka 生产者应用解析

目录 1、生产者消息发送流程 1.1、发送原理 2、异步发送 API 2.1、普通异步发送 2.2、带回调函数的异步发送 3、同步发送 API 4、生产者分区 4.1、分区的优势 4.2、生产者发送消息的分区策略 示例1&#xff1a;将数据发往指定 partition 示例2&#xff1a;有 key 的…

Python浅谈清朝秋海棠叶版图

1、清朝疆域概述&#xff1a; 清朝是我国最后一个封建王朝&#xff0c;其始于1616年建州女真部努尔哈赤建立后金&#xff0c;此后统一女真各部、东北地区。后又降服漠南蒙古&#xff0c;1644年入关打败农民起义军、灭南明&#xff0c;削三藩&#xff0c;复台湾。后又收外蒙&am…