【生意多】-免费发布分类信息
当前位置: 首页 » 新闻 » 教程 » 正文

Unix式图形化操作系统开发笔记1:环境搭建

放大字体  缩小字体 发布日期:2020-06-15 07:59:08    浏览次数:12
导读

  为了让读者可以方便地编译运行本教程的代码,笔者将在此介绍如何搭建开发环境,使用统一的linux操作系统和编译器。因为笔者使用的是mac os,所以一直到安装虚拟机之前都会在mac os下操作。  vagrant是一款管理virtualbox里的虚拟机的软件,写几行脚本代码就能让它帮你下载好指定操作系统的虚拟机,非常方便。我个人使

  为了让读者可以方便地编译运行本教程的代码,笔者将在此介绍如何搭建开发环境,使用统一的linux操作系统和编译器。因为笔者使用的是mac os,所以一直到安装虚拟机之前都会在mac os下操作。

  vagrant是一款管理virtualbox里的虚拟机的软件,写几行脚本代码就能让它帮你下载好指定操作系统的虚拟机,非常方便。我个人使用vagrant是因为比较喜欢可以通过命令行登入虚拟机,在全命令行的环境下写代码。(读者如果不适应可以直接用Virtualbox进入虚拟机的图形界面,请确保您的虚拟机是ubuntu14.04 32位版本)。 Vagrant同样有各种平台的版本,下载地址

  vagrant会根据你写的Vagrantfile来下载,安装指定的虚拟机。Vagrantfile是用ruby编写的脚本代码,所以请确保您的电脑上已安装最新版本的ruby。此处我们使用Ubuntu 14.04 32位,内存就给2g吧。这样子Vagrantfile大概看起来是这样的

  意思大概就是,我想下载安装个ubuntu虚拟机,32位的,内存就2个G吧,但是我好懒,小威(vagrant谐音)你去帮我搞定吧。

  在命令行窗口输入vagrant up,这个时候vagrant就开始下载和安装虚拟机了,要等好一会儿呢。

  我的天,写个操作系统真麻烦,搭个开发环境得搭半天!好终于结束了,下课了,回家撸撸,哦不 洗洗睡吧。

  本章开头说过,我们的目的是建立一个统一的开发环境,使得本教程中的代码和脚本可以复用,不致于很多人实际编译和运行的时候出现各种奇奇怪怪的bug。使用交叉编译器完美的符合我们的要求。所谓交叉编译器就是说,这个编译器只会生成目标平台和格式的可执行文件。打个比方说,你想让你的操作系统在intel i386的平台上跑,可执行文件的格式为ELF(ELF是一种可执行文件的 代码/数据组织的格式,规定了一个可执行文件代码应该放哪,数据应该放哪),那么你需要一个专门只能产生”i386平台,elf格式可执行文件” 的编译器。如此,不管你是在ubuntu还是在red hat linux上编译,只要你用的是同一款交叉编译器,产生的可执行文件的代码都是一模一样的。

  由于构造一个交叉编译器的过程略麻烦,很多人都跳过这一步,通过各种神奇的gcc flags来生成自己想要的格式,结果就是会出现各种奇怪的bug。

  这个命令会下载关于当前最新ubuntu下软件的下载地址等信息,这样apt-get才能神奇地帮你自动化安装这些软件!

  1 binutils, 与二进制文件相关的工具,例如链接器,汇编器,都在这个叫做binutils的工具包里面。

  请务必注意不要像某个傻瓜一样,下载了2.9.1版本的binutils还以为是最新最酷炫的binutils版本

  每次编译gcc我都很无奈,这到底是多少代码,得编译半个多小时。。于是情不自禁地点开了费玉清段子视频。。

  BOCHS也是计算机硬件的模拟器,但是它直接模拟硬件,而不是去翻译每一条机器指令,用软件虚拟出硬件,再用这个硬件跑代码,自然比QEMU慢了很多,所以我个人比较喜欢用QEMU。但是有时候同一份代码在不同的模拟器和实体机上跑的结果可能会不一样,所以最好两者都安装一下。

  本教程演示了安装ubuntu虚拟机和构建交叉编译器,为后面的内容搭建了基础,尤其是交叉编译器的构建省去了后面很多不必要的麻烦。

  平时我们在写代码时,需要针对不同情况处理不同的业务逻辑,用得最多的就是if和else。 但是如果情况太多,就会出现一大堆的“if else”,这就是为什么很多遗留系统中,一个函数可能出现上千行的代码。当然你说可以通过抽取方法或者类来实现,每一个情况交给一个方法或者对应一个类来处理,但是这样做只是看起来代码整洁了一些,还是有大量的”if else,后面有新的逻辑时,又要添加更多的“if else,没有从根本上解决问题。...

  在互联网公司里面,基本大大小小所有的服务器端应用程序都是部署在 Linux 服务器上面。由于之前在外企工作,

  的应用程序需要依赖于 Windows 的 API,因此程序都是部署在 Windows Server 上面,导致自己对 Linux 也是只知道皮毛。所以就趁这段时间系统的学习一下 Linux

  的基础知识。不求精通,但求能在工作上能够熟练操作,例如编写一些 Shell 脚本,配置一些......

  虽然大公司并不是人人都能进,但我仍建议还未毕业的同学,尽力地通过校招向大公司挤,但凡挤进去,你这一生会容易很多。大公司哪里好?没能进大公司怎么办?答案都在这里了,记得帮我点赞哦。目录:技术氛围 内部晋升与跳槽 啥也没学会,公司倒闭了? 不同的人脉圈,注定会有不同的结果 没能去大厂怎么办?一、技术氛围纵观整个程序员技术领域,哪个在行业有所名气的大牛,不是在大厂?而且众所......

  都不是安装在真实机上,而是安装在VMWare中的。SUSE:欧洲发行量第一的Linux版本,界面极其华丽,相比Windows XP也毫不逊色,重点推荐; Mandriva:界面豪华,操作简单,是最适合于初学者上手的Linux版本;Fedora Core 4:RedHat系列的后续最新版本,目前在世界范围内有最主泛的用户群;Ma...

 
关键词: unix系统界面
(文/小编)
打赏
免责声明
• 
本文为小编原创作品,作者: 小编。欢迎转载,转载请注明原文出处:http://www.31duo.com/news/show-272816.html 。本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们。
 

(c)2016-2019 31DUO.COM All Rights Reserved浙ICP备19001410号-4

浙ICP备19001410号-4