-
为什么计算机的学生要学习Linux开源技术
2019-07-07 01:28:32为什么计算机的学生要学习Linux开源技术背景说明研究平台专业视野工作机会课程实践 背景说明 笔者在 2006 年参与创建兰大开源社区,从大学到毕业工作,一直从事 Linux 相关的学习、研究和工作,十多年来的观察发现,...背景说明
笔者在 2006 年参与创建兰大开源社区,从大学到毕业工作,一直从事 Linux 相关的学习、研究和工作,十多年来的观察发现,最近数十年的大学课程完全跟不上时代,现在各大领域几乎都被 Linux 以及相关的开源技术覆盖了,包括服务器、消费电子(手机)、IoT,大部分都在用 Linux 以及相关的周边开源技术。而我们的大学课程还停留在 Windows, SQLserver, NASM 等上个世纪的完全闭源的东西,都停留在“应用”和使用能力而不是“研究”和创造能力的培养上。学生都只能看到表象,而无法透过源码细究背后的本质原理。另外一个是,课程所学跟企业需求差了七万八千里,课程配套的实验软件和工具,企业根本是另外一套。
在课程不改造的当前情况下,学生自学 Linux 以及周边的开源技术就变得迫在眉睫。2013 年,为了鼓励开源社区的同学积极学习 Linux,笔者从研究平台、专业视野、工作机会、课程实践几个方面做了细致地分析,欢迎学习参考,下面摘录几点,更多详实内容(含实践步骤)请移步原文:为什么计算机的学生要学习Linux开源技术。
研究平台
因为开源的优势,有很多开放文案可以参考,有很多有趣的点子可以拿来做深入的研究。任何一个点挖进去都是一片天地。
专业视野
藉由那些开源项目,可以通过[邮件列表][30]、[Patchwork][31]、[Github][32]、[Linkedin][2]、Google Group 接触到来自全球各地的天才,不仅可以提升英文读写能力,认识国际友人,还可以把握领域前沿,甚至还有机会得到大佬们的指点迷津。
工作机会
就像 2004 年左右,笔者在学校毅然而然地选择转到 Linux 平台一样,现在有同样的预感,Linux 以及相关的开源技术因为它包含了人类的共赢理念(Open, Free, Share),融合了全球众多企业和天才的智慧,以及它不断更新换代地自我革新,她将持续繁荣下去。
目前的 Linux 人才看似很多,刚从学校毕业没什么编码经验的学生也可以很快写个小驱动,看似门槛很低,但是真正能够从系统层面解决问题,做了工作不用别人搽屁股的高端人才很少。如果从大学开始抓取,毕业时就多了四年的使用经验和思维培养。对于后续的研究和工作来说,都会是非常重要的竞争力。
课程实践
几乎从硬件到软件,Linux 平台能够自下而上提供各类触及“灵魂”的学习案例,让所有课程从纸上谈兵转变成沙场实战,会极大地提升工程实践的效率和技能。
-
初识Linux shell(学习Linux内核、GNU工具、Linux桌面环境)
2019-04-08 11:58:481、什么是Linux ...说到Linux,不得不提的一个人——Linus Torvalds,Linus在赫尔辛基大学上学时就开发了第一版Linux内核。Linux系统的核心是内核,内核控制着计算机系统上所有软件和硬件,在必要时分...1、什么是Linux
在学习如何使用Linux命令行和shell之前,我们先来学习一下什么是Linux。
Linux可划分为以下四个部分:- Linux内核
- GNU工具
- 图形化桌面环境
- 应用软件
说到Linux,不得不提的一个人——Linus Torvalds,Linus在赫尔辛基大学上学时就开发了第一版Linux内核。Linux系统的核心是内核,内核控制着计算机系统上所有软件和硬件,在必要时分配硬件,并根据需要执行软件。
2、Linux内核
内核的四种功能:- 系统内存管理
- 软件程序管理
- 硬件设备管理
- 文件系统管理
(1)系统内存管理
内核不仅管理服务器上的可用物理内存,还可以创建和管理虚拟内存。内核通过硬盘上的存储空间来实现虚拟内存,这块区域成为交换空间(swap space),内核不断地在交换空间和物理内存之间反复交换虚拟内存中的内容,这使得系统拥有更多的可用内存。
内存存储单元划分为许多块,称为页,内核会维护内存页面表,指明那些页面位于物理内存,那些被换到了磁盘上。内核还会记录那些页面正在使用,并把一段时间未访问的页面复制到交换空间,称为换出。当进程要访问已被换出的内存页面时,内核会从交换空间将请求的内存页面换到物理内存,称为换入。(2)软件程序管理
Linux系统将运行中的程序成为进程(进程可以看为程序的一次执行过程),进程可以在前台运行,将输出显示在屏幕上,也可以在后台运行,内核控制着Linux系统如何管理运行在系统上的所有进程。
内核创建了第一个进程(init进程)来启动系统上所有其他进程。一些Linux发行版本使用一个表来管理系统在开机时要自启动的进程,这个表通常位于/etc/inittab中。另一些则采用/etc/init.d目录,将开机时启动或停止的某个应用的脚本放在这个目录下(笔者使用的是red hat linux)。这些脚本通过/etc/rcX.d目录下的入口启动,这里X代表优先级。
(3)硬件设备管理
任何Linux系统需要与之通信的设备,都需要在内核代码中加入其驱动程序代码,驱动程序代码相当于应用程序和硬件设备的中间人,允许内核与设备间交换数据。在Linux内核中有两种方法用于插入设备程序驱动代码:- 编译进内核的设备驱动代码
- 可插入内核的设备驱动模块
以前,插入设备驱动代码的唯一途径是重新编译内核,其过程很低效,不过好在开发人员设计了更好的方法:内核模块,它允许将驱动代码插入到运行的内核而无需重新编译内核,同时,设备不用时也可以将内核模块移走。
Linux将硬件设备当成特殊的文件,称为设备文件,有三种分类:
- 字符型设备文件
- 块设备文件
- 网络设备文件
(4)文件系统管理
Linux内核支持通过不同类型的文件系统从硬盘中读写数据。
Linux内核采用虚拟文件系统(VFS)作为和每个文件系统交互的接口。3、GNU工具
GNU组织开发了一套完整的Unix工具,但没有运行它们的内核系统,Linus将Linux内核和GNU操作系统工具整合起来,产生了一款完整的操作系统。GNU/Linux shell是一种特殊的交互式工具,它为用户提供了启动程序、管理文件系统中的文件以及运行在Linux系统上的进程的途径。shell的核心是命令行提示符,命令行提示符是shell负责交互的部分,它允许用户输入文本命令,然后解释命令,并在内核中执行。shell包含了一组内部命令,如复制文件、移动文件、显示和终止进程等。你也可以将多个shell命令放入文件中作为程序执行,这些文件被称为shell脚本。
Linux系统上,通常有好几种shell可用,默认的Shell是bash shell。
4、Linux桌面环境
Linux早期,只有一个简单的操作系统文本界面,但随着Microsoft Windows的普及,电脑用户已经不再满足对着文本界面工作了,这推动了更多的开发活动,Linux图形化桌面环境应运而生。
GNOME(GNU网络对象模型环境)便是一款流行的Linux桌面环境,其于1999年首次发布,现已是许多Linux发行版本默认的桌面环境,如Red Hat Linux。 -
linux为什么u盘挂不上_我是如何接触并喜欢上Linux系统的
2020-12-04 04:02:36那时候系上给我们安排的必修课程中有一门非常难学的课程,就是大家都打趣说自学起来简直就是“自不量力”的量子力学。那门课程带领我体验了一个全新的物理世界,同时也是因为它我逐渐地开始认识...小编并非CS专业,也不是程序员。我和Linux的缘分在时间上起始于大二上学期的期末。从那个时候开始我对Linux的认识从无到有。我也逐渐喜欢上了Linux带给我的不同体验。
初识
2016年冬,我的大学生涯来到了大二上学期。那时候系上给我们安排的必修课程中有一门非常难学的课程,就是大家都打趣说自学起来简直就是“自不量力”的量子力学。
那门课程带领我体验了一个全新的物理世界,同时也是因为它我逐渐地开始认识了Linux系统。起因是源于一款名叫SIESTA的第一性原理从头算计算程序软件的安装和使用。
那个秋冬的某一天上午最后一节课下课后,我和任课老师以及助教一起走在路上,当时我在请教他们关于固体能带与分子的电子能态的一些问题。然后老师们提到能带可以通过软件计算出来。当时就吸引了我的注意,然后就知道了VASP这款软件,不过由于其是收费的程序,我也就在老师们的建议下换了SIESTA来进行尝试。而SIESTA官方只提供源码,需要自己在Linux系统下进行编译才能使用。于是乎,我从此踏上了Linux的大家庭。
尽管我爱Linux,但是还是想说刚开始使用Linux真是让人头疼!首先第一步就是系统的安装和初始使用,我选择的第一个Linux系统是Ubuntu,它的安装界面还算比较人性化,我很快安装上了,不过让人很伤的是,居然不能正常使用WiFi!好吧,我系统上没有安装博通的网卡驱动,这可咋办。
我坐在图书管理望着我这台与世界隔离开来的电脑,心里流淌的不是热血而是淡淡的忧伤。机智如我突然想到可以先用手机USB共享网络给电脑使用(该功能平时应该不怎么被用到,当时可是给我帮了大忙!),然后上网四处寻找解决方案,终于在launchpad.net下载到了适用于博通802.11无线网卡的bcmwl驱动的deb包(Debian系统的软件包格式),然后用dpkg本地安装成功。很高兴以后我和世界打招呼的时候,不用每次都考一个数据线中间隔着爪机了。
学期结束,回到家以后,我开始陷入N次编译程序失败的泥潭。虽然现在看来大多是用户环境变量设置以及软件编译参数设置等问题,只要正确设置了都可以完成,但是对于当时刚从Windows转过来的我,还是造成了不小的困扰。好在现在已经渐渐没了这反面的困扰。
然后我就开始了长期的Ubuntu系统的使用,体验到了 敲打键盘带来的快感,直到后来我切换到了另一款非常棒的Linux系统Archlinux。
切换到Archlinux
说起我转到Archlinux的经历,完全是出于无聊吧。当时正在忙着写毕业论文,然后某天晚上,我写累了,想找女朋友聊天,结果没有被搭理,我便对我电脑上残存的Ubuntu产生了恶意,没错我要消灭它,然后取到了听闻已久的安装过程不人性化的Arch系统官网,下载iso镜像,只需要五六百Mb,当时是把我给惊讶到了。很快下载完毕,并被我dd到了U盘中,关机,从U盘启动,很快我就按照强大的Arch维基上的提示安装好了系统。中途遇到一点小问题,就是我创建用户的时候由于之前为了挂在一块自己用来存储数据的分区,就提前创建了该用户的家目录文件名,导致后来useradd 使用了-m参数也没有为我创建正确的家目录需要的那些文件,然后gnome桌面系统就无法正常进入。不过其实只要你有一定的Linux使用经验,遇到很多问题都是可以解决的,再加上网上很多文章也有分享许多宝贵的经验来帮助你,还是很棒的。
虽然是无意切换到Archlinux,不过使用之后我就爱上了这款系统,它的软件体系真的好丰富,包管理很不错,AUR软件仓库真的能找到好多 东西,虽然曾有爆出过存在漏洞和恶意软件的问题,但还是大可以放心使用的。
结语
上面其实是我对我为什么要使用Ubuntu以及Archlinux的简单口语化描述。喜欢上使用Linux其实是一个慢慢深入的过程,你会体验到以往在Windows下简单地点击鼠标所不能带来的命令行带来的快感,以及得到在使用过程中逐渐加深对系统的认识的机会。纵然,现在的Linux桌面系统的生态环境还不及Windows和Mac OS那样对用户友好,但它和开源界前进的脚步却一直没有停下。最后,小编以后将会致力于多写一些关于Linux日常使用的一些闲散文章推荐一些不错的学习资源,有兴趣的朋友们可以关注支持一下!
-
为什么你对Linux没有感觉?
2019-03-01 09:47:21最近发现自己对Linux很上心,原因是 有点钱了想搞个私有网盘,例如群晖系统。自己也曾浅尝辄止过Docker,群晖的系统...然后就觉得很亲切,这是大学时候学Linux没有过的感觉。 就像最近想换笔记本电脑,找了一星期...最近发现自己对Linux很上心,原因是 有点钱了想搞个私有网盘,例如群晖系统。自己也曾浅尝辄止过Docker,群晖的系统配合Docker实现很多牛逼的功能,可惜我这菜鸟根本玩不来,处处碰壁。
再加上多年来对“当站长”和“当博主”的强烈执念,群里的100来号的动漫兴趣同胞们,我决定学习Linux了。然后就觉得很亲切,这是大学时候学Linux没有过的感觉。
就像最近想换笔记本电脑,找了一星期最后发现还是得回到苹果上,因为使用流畅,安装和使用软件稳定。想想当年之所有省吃俭用买MacBook Pro就是因为Windows下各种烦人的广告弹窗,动不动就木马病毒,还有各种全家桶,时不时的蓝个屏,我本科重装系统至少10次,每次放假必重装,艹!
刚开始用MacBook Pro的时候也没觉得怎么好,只是觉得安装java是真的舒服,比Windows牛逼多了。使用起来从来不崩溃。随着用的时间越来越长,发现了很多好用的软件:
图二
可以说舒服的要死,大大提升了效率,避免了无畏的浪费时间。
总之一句话:没感觉是因为没有需求,时候未到,不要强求
-
为什么学完一门编程语言却干不了什么?
2020-07-11 17:06:17就以C语言为例(其他的都大同小异),很多大学生的第一门编程语言就是C语言,很多刚学编程小伙可能都觉得为什么都只是讲解什么各种类似于数学问题的求解之类的问题,还有运行的程序也是黑乎乎的,看起来都很low... -
学习linux决心书
2016-08-08 20:36:43一、我为什么努力学习?1、我是一名应届毕业生,高中还好,大学可以说在学业上我荒废了四年,没有让人眼前一亮的成绩单,没有英语四级证,这样普通的我只能去应聘工资低没前途的化工厂,或者回家乡从一名普通的销售... -
linux C编程学习过程
2021-02-04 14:17:47Linux C编程,就是怎么在linux操作系统下进行C编程。 学习难的是开头,即如何入门和确定方向,对于小白来说,看了很多别人的学习过程(知乎、CSDN等等),但是还是不知道该怎么学。... 为什么学Linux C编程,说... -
Linux学习记录--初识linux
2013-12-10 13:28:09我在写这些内容时参考了一本名为:大学生攻克Linux系统教程的书籍。一位在校大学生整理的教程,献给每一位要征服Linux的学习者。同时我也上传上来了,可以在我的资源列表中找到。 ---什么是linux? 相信大家都对... -
Linux之父的成功学就是:只为好玩
2019-09-30 04:31:16你了解Linux之父林纳斯•托瓦兹(Linus Torvalds)吗?如果你和我一样,在大学...整本书除了揭秘林纳斯究竟是怎么样成长为一个大神之外,还解决了我个人的一个困惑:为什么芬兰总是不紧不慢,不急不缓地交出一款款让互... -
为Linux技术学习推荐看的书籍—《Linux就该这么学》
2019-09-19 13:43:36在这短短的三年,却在我的人生中弥足珍贵,在脑海中记忆犹新,在这大学三年里,我从一个莽撞少年成长为一名合格的大学生,从一无所知到见多识广。再回头想想自己在过去的三年里学到了什么,得到了什么成长。在... -
Linux云计算学习计划
2020-09-26 10:35:37Linux云计算学习计划 PS:第一次写博客,还请海涵!...薪资也涨到的13+,岗位也从最开始的存储售后工程师到现在售前经理,但是不知道为什么从19年开始就时不时的觉得很虚,觉得自己现在已经没有什么 -
关于Linux学习(一)
2019-07-08 15:24:13由于意识到Linux的重要性,我还是再次认真的学习一下这个操作系统,为什么说再次学习一次呢,因为大学是有学习Linux的,但是因为是选修然后大家都比较容易的通过了这门课程,所以。。。好吧废话有多多余接下来进入... -
Linux学习:环境搭建(一)
2020-11-28 18:32:02为什么要学Linux? 在服务器端,在开发领域linux倒是越来越受欢迎,很多程序员都觉得不懂点linux都觉得不好意思,linux在开源社区的地位依然岿然不动。尤其是作为一个后端程序员,是必须要掌握Linux的,因为这都... -
我国中小学生linux启蒙教育起步了吗?
2018-10-19 10:07:07我们中小学机房(恐怕也包括绝大多数大学机房)里的电脑,装的操作系统恐怕都是Windows,这对于普及Linux启蒙教育简直就是灾难! ...我只是从教育者的角度,谈谈为什么我认为要搞Linux启蒙教育.一.... -
什么人学python最好_哪些人更适合学习Python?为什么?
2020-11-29 18:57:07随着人工智能和大数据时代的到来,作为首选的编程语言Python,身边想要学习的朋友越来越多了,但是又不知道自己适合不适合,总是担心自己学不好或者学不会,今天老师就和大家说说哪些人适合学习Python?原因是什么?1... -
Linux学习路线图(从入门到上岗,带自学路线
2020-05-28 07:23:18在学习一样东西前首先要做到就是知道它是什么,有什么用处,为什么要去学习,最后才是怎样去学习,而不是盲目的看到别人学,我也去学,其实自己都不知道学它的用处何在,这是在浪费时间,还不如用这个时间去做更多有... -
不懂的linux
2015-11-18 23:00:31在大学的时候自己和学校对linux都不够重视,总以为linux是一个过时的东西,且不安全的系统。...出来社会后,发现很多大企业都会用linux,因为开源,因为免费吗,不懂为什么,即日起开始自己的探索之旅吧··· -
Linux学习路线图(从入门到上岗,带自学路线图)
2020-05-28 10:50:37在学习一样东西前首先要做到就是知道它是什么,有什么用处,为什么要去学习,最后才是怎样去学习,而不是盲目的看到别人学,我也去学,其实自己都不知道学它的用处何在,这是在浪费时间,还不如用这个时间去做更多有... -
【Linux是什么】Torvalds的Linux开发
2015-02-23 11:44:22MinixTorvalds大学期间通过开源的Minix学习到了很多内核程序设计的设计概念。对386硬件的多任务测试多任务即为CPU在不同的任务之间快速切换,而人感觉不出切换的时间。正是这个原因,同时开两个文件可以比先后开两个... -
嵌入式开发学习历程(一)——Linux系统入门
2019-07-17 18:15:02本人普通本科学生,浑浑噩噩度过大学三年时间。直到临近离校实习,才发现自己学到的知识微不足道。...为什么要学习linux操作系统? 事实上,ARM通常都是用来做比较复杂的系统的,而且一般都是多任务系统的,当...