分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

试玩UML(User Mode Linux)

转载时请注明出处:http://blog.csdn.net/absurd/

这里的UML并非指统一建模语言,而指用户模式的linux。顾名思义,就是让linux系统作为一个用户进程运行。为什么要这样做呢?大家都知道调试linux 内核是件麻烦的事情,虽然可以使用kdb、gdb或者虚拟机来调试内核,但这些本身方法都有一些限制,而且我总感觉使用很麻烦,几次尝试失败后,没有再去调试过linux内核。

Linux内核对调试支持力度不够,并非是因为实现起来很困难,而是因为他们认为调试器有害软件的健康。这是有道理的,软件的质量是认认真真的设计出来的,扎扎实实的写出来的,而不是靠辛辛苦苦调试出来的。使用调试器常常导致一种不彻底的BUG修改,治标不治本,让BUG长时间潜伏在代码中,从长远利害关系来看,它会造成更严重的损害。

调试器只是一种工具,用得好不好或者恰不恰当,是我们自己的事,不能因为自己的过错而责怪工具。实际上,调试器对于我们研究内核代码,是很有帮助,运行内核代码的,观察它的效果,远远比只看代码印象更深刻。

UML为研究linux内核代码提供一种便利的方式,整个linux系统完全是一个用户进程,你可以像调试普通用户进程一样调试它。UML的实现也比较巧妙,linux内核把不同平台称之一个ARCH(architectur),每个ARCH实现依赖于特定硬件平台的功能,UML作为一个ARCH来实现,用软件模拟了硬件功能。

Linux内核2.6以及后续版本已经集成了UML,但我试了几个版本都编译不过去,直到在linux-2.6.16上尝试才成功。使用UML要先选择一个好的内核版本,否则会浪费不少时间。使用UML的具体过程如下:

1.         解开内核源码包。

[root@localhost src]# tar zxvf /mnt/hgfs/linux/linux-2.6.16.tar.gz

 

2.         编译内核。

[root@localhost linux-2.6.16]# make ARCH=um defconfig

[root@localhost linux-2.6.16]# make ARCH=um menuconfig

[root@localhost linux-2.6.16]# make ARCH=um

 

3.         安装内核。

[root@localhost linux-2.6.16]# cp linux /usr/local/bin/

4.         制作根文件系统。

[root@localhost cvs]# dd if=/dev/zero of=root_fs seek=500 count=1 bs=1M

[root@localhost um]# mkfs.ext2 ./root_fs

[root@localhost um]# mkdir /mnt/rootfs

[root@localhost um]# mount -o loop root_fs /mnt/rootfs/

(拷贝你需要的文件:因为只是研究内核,拷贝一些基本的运行库、可执行文件和配置文件就行了)

[root@localhost um]# umount /mnt/rootfs/

网上有很多制作好的根文件系统,如果目的只是研究内核,从网上下载根文件系统最方便的选择。

5.         制作交换分区

[root@localhost um]# dd if=/dev/zero of=swap_fs seek=500 count=1 bs=1M

[root@localhost um]# mkswap ./swap_fs

 

6.         正常运行。

[root@localhost um]# linux ubd0=root_fs ubd1=swap_fs

 

7.         调试运行。

gdb linux

(gdb) b start_kernel

(gdb) r ubd0=root_fs ubd1=swap_fs

~~end~~

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

试玩UML User Mode Linux相关推荐

  1. 试玩UML(User Mode Linux)

    转自  李先静  http://blog.csdn.net/absurd/article/details/1063889 试玩UML(User Mode Linux) 转载时请注明出处:http:// ...

  2. linux 桌面小部件,[试玩] FMXLinux (Firemonkey for Linux) Linux 桌面开发(第三方插件)...

    FMXLinux 是一个可以用来开发 Linux 桌面软件的第三方插件,它需要配合 Delphi 10.2 Toyko 使用方法:开启 FMX 工程,在工程项目上按鼠标右键加入 "Linux ...

  3. linux 商业游戏,Ubuntu下安装试玩原生Linux版商业游戏Braid

    这款原生Linux版商业游戏Braid国外出售价大约在80美元左右.每年在Linux平台上发布的原生商业游戏是屈指可数,而且这些游戏的质量也是参差不齐. 不过这款原生Linux版商业游戏Braid还是 ...

  4. ESP32开发 -- 试玩ESP32

    前文要测试网络调试助手,手头正好有个ESP32一直没有试过.这次正好拿来试玩一下. 一.ESP32官网查看 官网:ESP32官网 这款最小系统开发板搭载了乐鑫最新的系统级芯片 ESP32, 支持 Wi ...

  5. Xilinx HydraMini试玩教程

    Xilinx HydraMini试玩教程 前言 环境配置 基础知识 介绍 操作步骤 训练数据搜集 实体小车 模拟器 数据预处理加训练 模拟器测试模型 DNNDK量化编译 自动驾驶 调试优化 Tips ...

  6. 可生成高清视频的Stable Diffusion来了!分辨率提升4倍,超分算法来自腾讯,支持Colab在线试玩...

    明敏 发自 凹非寺 来源 | 量子位 QbitAI 免费玩的Stable diffusion,又出新变种了! 古典人像丝滑切换,还都是4倍超分辨率水平,细节也就多了亿点点吧,眉毛发丝都根根分明. 还能 ...

  7. 全志D1s/F133学习笔记(1)——MangoPi-MQ(芒果派麻雀)上手试玩

    一.资料 D1s是全志针对智能解码市场推出的高性价比AIoT芯片.它使用64bit RISC-V架构的阿里平头哥C906处理器,内置了64M DDR2,支持Linux系统,同时集成了大量自研的音视频编 ...

  8. 在线试玩,在体感游戏中打败泰森,这位小哥破解了任天堂「拳无虚发」

    视学算法报道 编辑:张倩.陈萍 加入体感控制,这位小哥破解了原版任天堂的拳击格斗游戏「拳无虚发」. 在经典红白机上玩拳击游戏是很多人的童年回忆,其中就包括任天堂 1987 年发布的拳击格斗游戏--「P ...

  9. 华人团队用Transformer做风格迁移,速度快、可试玩,网友却不买账

    视学算法报道 编辑:杜伟 利用神经网络进行风格迁移是一项非常常见的任务,方法也很多,比如基于优化和基于 RL 的方法.最近,来自百度 VIS 团队的研究者提出了一种基于 Transformer 的风格 ...

最新文章

  1. linux更改文件夹权限_Linux 一些重点知识,整理的很全面,有必要收藏
  2. 漫漫运维路——集群基础知识
  3. Asp.net MVC JsonResult 忽略属性
  4. 计算机视觉的前沿应用,学术报告:计算机视觉应用前沿
  5. Apache Commons Math3学习笔记(2) - 多项式曲线拟合(转)
  6. 树状数组求逆序对_区间和的个数(树状数组)
  7. web应用插件开发_Web应用程序的简单插件系统
  8. 蓝色起源成功完成“新谢泼德号”飞船第17次发射
  9. int main()和void main()的区别
  10. Django例子-出版社
  11. Black Hat | PE Tree:BlackBerry 发布PE文件开源逆向工具
  12. Chrome浏览器V43版本不支持silverlight 5.0的解决办法
  13. 信息化管理系统在企业的应用
  14. 为什么我严重不建议去培训机构参加SAP培训?
  15. c语言的Hello World
  16. 一级计算机页码居中,word中页码为何不能同时居中
  17. ETL自学之路-02(维度建模)
  18. 无线ap安全dhcp服务器,AC+AP时代——办公区内满足安全性又够人性化的WiFi漫游设置攻略...
  19. 【转】WPF自定义控件与样式(13)-自定义窗体Window 自适应内容大小消息框MessageBox...
  20. 华硕笔记本电脑计算机打不开,华硕笔记本电脑无线开关打不开怎么办

热门文章

  1. TCP/IP网络知识面试问题
  2. Hadoop+Kafka相关重点复习
  3. Kubernetes网络原理
  4. PHP的isset函数使用的坑
  5. 分享一个在微信上捞几万块的操作
  6. html顶部边距代码_如何在addHTML中设置上下边距
  7. Excel 搜索替换 软换行符
  8. Mysql进阶学习(四)分组函数与分组查询
  9. 驱动的安装和卸载工具 Pnputil的使用方法
  10. 详解:如何判断链表中是否有环?