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虚拟机界面方便多。

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

NineData即将亮相2024中国移动算力网络大会,创始人CEO叶正盛带来《生态软件加速数据库国产替代》主题演讲

2024年4月28-29日,NineData即将亮相2024中国移动算力网络大会,创始人&CEO叶正盛将在「云原生数据库专场」带来《生态软件加速数据库国产替代》主题演讲。届时将和众多院士专家、行业大咖、业界伙伴一起探讨,并帮助企业提升数据库研发协同…

进口透明可视耐腐蚀PFA进样管特氟龙圆底试管适配MC-ICP-MS

PFA进样管可适配Neptune plus多接收器等离子质谱仪(MC-ICP-MS),广泛应用于地球化学、核保障、环境科学、金属组学领域,在生物、物理、化学、材料等多个学科的交叉方向也有良好的应用前景。 外观半透明,便于观察管内情…

【Moveit2】使用moveit_setup_assistant配置自己的机械臂功能包

【Moveit2】使用moveit_setup_assistant配置自己的机械臂功能包 文章目录 【Moveit2】使用moveit_setup_assistant配置自己的机械臂功能包1.确保你已经安装了moveit2环境2.配置机械臂功能包Reference 环境信息: ubuntu 22.04ros2 humblemoveit2 1.确保你已经安装了…

《佩德罗·巴拉莫》炽热的科马拉土地上,游荡的亡魂诉说着一切!

《佩德罗巴拉莫》炽热的科马拉土地上,游荡的亡魂诉说着一切! 胡安鲁尔福(1917-1986),墨西哥作家,代表作有《佩德罗巴拉莫》《燃烧的原野》《金鸡》,和诺奥克塔维奥帕斯、卡洛斯弗恩特斯并称为墨…

Redisson - tryLock 函数参数分析

这里有三个参数: waitTime:等待时间leaseTime:超时施放时间TimeUnit:时间单位 等待时间 如果 ABC… 多个线程去抢夺一把锁,A 成功了,如果设置的是 -1,那么 BCD... 就不等待,直接返…

使用CNN实现新闻文本分类

一、实验目的: 理解卷积神经网络的基本概念和原理;了解卷积神经网络处理文本数据的基本方法;掌握卷积神经网络处理文本数据的实践方法,并实现新闻文本的分类任务。 实验要求: 使用Keras框架定义并训练卷积神经网络模…

防盗链在nginx中如何配置,简单演示403forbidden的效果

一、使用场景: 资源被其他网站无端盗用 服务器压力无端增加 二、实现方法 1.valid_referers指令可以检测被访问资源从哪个地址来 2.通过referer头字段判断 3.若为空,报403错误 nginx的准备工作: 可以看 虚拟机中使用LNMP模拟跨域并结合…

书籍推推荐之二--《生命的色彩》

史钧《生命的色彩》 在生活中,我们会注意到一个有趣的现象:每个人的头发颜色各不相同,有黑色、灰色、黄色、棕红色、银白色等,但就是没有绿色。对于生活在丛林中的早期人类来说,绿色的头发简直就是天然的迷彩服&#x…

基于arcpro3.0.2版的使用深度学习检测对象之椰子树

基于arcpro3.0.2版的使用深度学习检测对象之椰子树 GPU显卡Nivda 1080 训练模型图 (四)检测对象之椰子树 使用深度学习检测对象 打开 detect objects using deep learning,参数 输入栅格为要检测的影像 模型定位为上一步输出的.emd文件 cpu模式Max Overlap Ratio0.4 运行时间…

C++感受6-Hello World 交互版

变量、常量输入、输出、流getline() 函数读入整行输入Hello() 函数复习新定义函数 Input() 实现友好的人机交互还有 “痘痘” 为什么挤不到的分析…… 1. DRY 原则简介 上一节课,我们写了两版“问候”程序。第一版的最大问题是重复的内容比较多,每一次问…

今日arXiv最热大模型论文:大模型也来看球,还能判断是否犯规

在足球世界,裁判的哨声可谓“千金难买”,因为它能直接决定俱乐部的钱包是鼓是瘪。但球场变化莫测,非常考验裁判的水平。 2022年卡塔尔世界杯上,半自动越位识别技术(SAOT)闪亮登场,通过12台摄像…

高并发场景中DB和Cache的一致性新的方案感想

拜读了: 美团2面:如何保障 MySQL 和 Redis 数据一致性?这样答,虐爆面试官这篇文章后的感想 高并发场景中数据库和缓存的一致性和可用性的感想 1,先更新缓存,再更新数据库1.1,前提1.2,理由1.2.1&…

Echarts-知识图谱

Echarts-知识图谱 demo地址 打开CodePen 效果 思路 1. 生成根节点 2. 根据子节点距离与根节点的角度关系,生成子节点坐标,进而生成子节点 3. 从子节点上按角度生成对应的子节点 4. 递归将根节点与每一层级子节点连线核心代码 定义节点配置 functio…

目标检测——大规模商品数据集

引言 亲爱的读者们,您是否在寻找某个特定的数据集,用于研究或项目实践?欢迎您在评论区留言,或者通过公众号私信告诉我,您想要的数据集的类型主题。小编会竭尽全力为您寻找,并在找到后第一时间与您分享。 …

阿里云企业邮箱API的使用方法?调用限制?

阿里云企业邮箱API性能如何优化?配置邮箱API的优势? 阿里云企业邮箱以其稳定、高效和安全的特点,受到了众多企业的青睐。而阿里云企业邮箱API的开放,更是为企业提供了更加灵活、便捷的管理和操作方式。下面,我AokSend…

新标准日本语初下 课后练习作业

新版标准日本语初下 第二十五課 これは明日会議で使う資料です 第二十五課 これは明日会議で使う資料です 24-04-26 練習25-1-1 例…

uniapp中vue写微信小程序的生命周期差别

根据uniapp官网里的生命周期,感觉不太对劲,就自己测试了几个,发现有所差别。 红字数字 为 实际测试生命周期顺序。 因为需要页面传参 后再 初始化数据,而onLoad(option)接收参数后,就已经过了create()了,所…

绘制等值线地图——以气压等压线为例(Python版)

绘制等值线地图——以气压等压线为例(Python版) - 知乎 1.前期环境配置 本篇博客主要使用了basemap和netCDF4两个库,推荐使用conda新建虚拟环境并安装相关的包 可以参考笔者之前的博客1和博客2完成windows系统上conda的安装在conda完成安装后在anacond…

【牛客网】:链表的回文结构(提升)

🎁个人主页:我们的五年 🔍系列专栏:每日一练 🌷追光的人,终会万丈光芒 目录 🏝问题描述: 🏝问题分析: 步骤一:查找链表的中间节点 步骤二&am…

C++教学——从入门到精通 11.嵌套循环及数组

上次讲到了循环,这次来讲嵌套循环 如果一个人叫你用C来画一个10*10/2cm^2三角形会么? 这就要用到嵌套循环了 来看看结构: for(变量类型1 变量;条件1;返回值1){语句1;for(变量类型 变量2;条件2;返回值2){语句2;}语句3; } 语句1,2,3是依次…