博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
我与Ubuntu的5年共成长
阅读量:4987 次
发布时间:2019-06-12

本文共 3570 字,大约阅读时间需要 11 分钟。

初次接触Ubuntu那还是2010年的初夏,那年大学二年级即将结束,为了增加计算机学院学生的技术能力和就业竞争力,学校组织了很多培训机构、公司企业来学校做技术宣讲、分享等

记得有一个企业是做Mp3 Mp4之类的嵌入式单片机开发的,大二那年也正好有《数电模电》的课,加上平时自己研究各种装操作系统的奇葩方法的经历,立刻产生了浓厚的兴趣,期间仔细的讯问了那位用笔记本给Mp4烧制rom的大叔,大叔操着一口浓重的陕普给大家介绍什么是“嵌入式”,其实我一点都不在意这个,而是瞅着他的笔记本操作系统十分好奇的看来看去,我一言不发地在人群中只是观察他的笔记本,等分享结束大家快走得没剩几个人的时候,大叔注意到我的“醉翁之意”,说道“哦,这个操作系统不是你们常用的windows,他是Linux,准确点是Ubuntu,这样吧,你有U盘的话拷给你,安装方法跟windows没啥区别,建议你用虚拟机装...”

我被大叔的洞察力惊倒了,于是就拿出随身携带的8G 金士顿U盘拷贝了那个几百兆的Ubuntu ISO镜像文件,大叔全程很和蔼,他非常仔细得跟我介绍他的工作以及行业,短短的几分钟,Linux、ssh、ROM、烧制、boot、嵌入式等等新的一些列概念飞入我的小宇宙,好了,我心满意足的带着U盘和大叔挥手告别,然后一路上思索着回到了宿舍

Ubuntu 10.04

当我用ISO烧制工具将镜像文件烧制到u盘时才清楚的在烧制工具里看到Ubuntu 10.04的字样,然后是一个高个子“企鹅”令我印象深刻。

紧接着我就尝试在我的Lenovo y460上安装Ubuntu了,那个时候我的操作系统只是也就只是停留在 usb boot 引导安装然后写入硬盘,等待展开并进入硬盘boot。

第一个大坑

装Ubuntu的时候看到这个界面,那时的我是一脸懵逼,完全摸不着北,来回试了多次,现在的我已经有了自己的理解

  • / 根挂载点是Linux操作系统的文件系统的根节点,可以用html或者xml那种dom结构来理解;
  • Linux操作系统里所有东西都被视为文件,目录也是文件;
  • / 节点下可以自定义很多挂载点,例如home,dev,等等
  • Linux的文件系统跟windows的格式不一样,我的理解是磁盘上的0 1 byte数据的布局不一样,进而导致二者在文件系统上的不一样处理,比如Linux就没有“磁盘分区”一说,你可以随意挂载已知的外设到你制定的dom节点上,也就是说Linux其实是可以识别windows的文件格式的,而相反windows去浏览Linux的磁盘文件就很吃力;
  • SWAP交换分区,相当于windows的虚拟内存,这个一般来讲如果你的内存小于4G你就设置为内存的2~2倍大小,内存大于4G就可以考虑等于或者略小于内存大小;
  • EFI,这个是2008年开始由几大硬件生产商以及微软等巨头共同协定的一套新的区别于BIOS的架构,我的理解是它首先是系统引导;其次,需要主板支持EFI;再次,多个操作系统可共用一块磁盘上的EFI区域。也就是说EFI是一种将所有操作系统共享同一台机器的新型BIOS;

第二个大坑

如果一切顺利,在输入玩用户名、密码、机器名之后你会迅速在一个拨浪鼓的声音中来到Ubuntu的桌面,是不是很惊呆?网卡、声卡、显卡都不用管就可以使用,不像windows那么坑;

  • 第一个快捷键:Ctrl+Alt+T可谓是最常用的了,呼出你的Terminal Console就可以随意挥洒Linux的命令行了,不过在敲命令行之前或许你需要学习一下Shell;shell的发展史也是很悠久的,目前Ubuntu上默认都是bash;系统的学习一下shell脚本会使你很多地方后知后觉。
  • 界面设置:点击桌面上的齿轮进入System Setting就可以设置很多类似windows上的诸如桌面壁纸、分辨率、主题、等等的配置了。
  • 安装java:或许其实根本不必安装,你在Terminal里试一下敲当初学java在windows dos窗口上敲过的指令就可以确认java有没有存在了。答案是必须的,ubuntu已经默认安装了Open JDK,当然不是最新的,但是如果你有强迫症你就没办法了,反正我就是强迫症,这里暂且记下这第二个大坑里的第一个小坑

好累,忙了半天终于装好Linux了,听会儿歌看个视频休息会儿吧,于是我打开FireFox(第一次接触这个浏览器)进入百度Mp3打算听会儿歌:

结果一脸蒙逼了,诶?明明音乐滚动条在走动,咋没声音呢?
一脸委屈的我看着这个陌生的操作系统感觉啥也不会了
好吧,还是去windows下听歌吧,于是点击关机键选择重新启动
坐等几分钟,待主板intel的log一闪而过之后发现整个世界都不好了,什么?oh no 我的win7呢?(⊙o⊙)尼玛 !逗我?
已经是晚上10点多了,11点就熄灯了,这可如何是好?
正在我捉急的时候宿舍一哥们儿说:windows还在呢,你现在得去手动编辑MBR引导,把windows的引导序列加上去

  • Windows MRB引导丢失:早期的Ubuntu安装过程中如果操作不对有非常大的几率重新覆盖掉已有的MBR信息,因此早期版本13.04之前在一台已经安装windows的机器上安装Ubuntu的时候经常要注意MBR写入问题,如果windows找不到了不要慌,在Ubuntu下手动编辑下即可,具体操作找度娘很多资料的,这里不再赘述;
  • 显卡驱动问题:自从在Ubuntu上装steam玩cs起,我变发觉显卡明明是独立的,为什么还是很卡,最终才找到Y460原来是独显集显可切换的,真是汗了一地,在早期版本中可以在SystemSettings -> Software&Updates的Addtional Drivers tab页中找到额外的驱动程序,当然咯,需要进入bios手动设置为独显模式,如果通过Ubuntu仍无法自动发现并安装显卡驱动,那么你可以查到你的电脑显卡的具体型号然后去官网上去下载linux的驱动源码,构建过程在对应显卡的官网上都是有说明的,我只记得经常用到service lightdm start&stop;
  • 蓝牙、WIFI驱动:如果也是发现不了那也可以采取如上同样的办法去下载源码进行编译,如今很多驱动都会托管在github上,基本上在readme的指引下就可以协助开发者进行编译并构建出可执行的安装包,具体怎么做度娘页不少,个人建议用google比较直截了当;

曾被人嘲笑坚持不了多久

  5年里曾经有很多android开发程序员看到我用ubuntu操作系统后不约而同的来一句“唉 也就是玩玩 看着吧,过几天你就再也不用了”;每次听到类似的话语我都是笑呵呵的回答“贵在坚持”!

  1. 为了掌握Ubuntu首先得必须能够正确得认识操作系统的原理,简单的安装系统以及多系统配置管理以及切换都是最基础的能力;
  2. 接下来就是系统化的清除Linux的发展历史,京东上随便买本Linux的指导书都可以得到所有需要的一切,文件系统、内核boot步骤、以及一系列Linux锁特有的属性,然后学会shell编程,至少学会如何用shell脚本完成Bash中通过手动输入才能执行的命令;
  3. 紧接着要掌握Linux的用户体系,经常见到有些新手一上来就是root用户,最后导致各种permmision的问题,要搞清楚chmod、chown这两个命令的用法;
  4. 学会修改hosts,github上很多,或者可以尝试有偿使用vpn的方式,为使用google做保障,为什么呢?因为我想表达“遇到问题要善于第一去查资料”
  5. 解决了问题要善于总结和存储,使用chrome浏览器可以同步你的浏览器大部分网上常用的账号密码、以及收藏,对收藏分门别类便于今后使用

  就这样,反复的摸爬滚打,反复的装Ubuntu系统保守估计有100多次了,有时候桌面不见了?有时候鼠标不见了、有时候缺少依赖的so,又或者32位库在64位机器上招不到等等问题,但都一一克服

总结 

  与Ubuntu共相随的这5年,从10.04到16.04,几乎每个版本我都有亲力亲为,遇到问题处理问题遇到不知所错的情况每每能够最终找到解决方案,这离不开google、stackoverflow、github、javaeye、cnblog、csdn等等很多互联网上的免费分享,得益于他人的“分享”我不断的自我强大,从不知所错一脸茫然到现在Ubuntu上各种比跟Windows玩得还6的样子,我在成长,它也在成长!

  曾经的我成长在别人的分享中,如今的我带着感恩的心成为乐于分享的一员

转载于:https://www.cnblogs.com/renhuihhh/p/5686836.html

你可能感兴趣的文章
[C#学习笔记]你真的理解拆箱装箱吗?
查看>>
CSS背景使用,引入、尺寸、平铺、定位、多重背景
查看>>
DB2 因版本问题 Reorg 出错 解决办法
查看>>
安卓 notes
查看>>
Session对象详解[源于网络]
查看>>
经历无数次失败,终于把kamailio装上了
查看>>
Android ListActivity实现遍历文件列表,查看文档类文件
查看>>
C++自定义NULLPTR
查看>>
Windows2003 IIS6完美实现WordPress伪静态的方法
查看>>
压缩感知学习之初识压缩感知
查看>>
define 中强制类型转换 && 浮点数后面带f
查看>>
sql server中分布式查询(链接远程服务器(sp_addlinkedserver)和远程登录映射
查看>>
(二)Solr——Solr界面介绍
查看>>
getLocation 需要在 app.json 中声明 Permission 字段
查看>>
基于opencv和mfc的摄像头采集代码(GOMFCTemplate2)持续更新
查看>>
终极优化字符串
查看>>
MD5工具类
查看>>
eclipse中如何打开工作空间里面已经有的项目
查看>>
游戏时区问题小解
查看>>
Linux下用户和用户组的创建(翻译)
查看>>