本人普通本科学生,浑浑噩噩度过大学三年时间。直到临近离校实习,才发现自己学到的知识微不足道。既不满足于现状,又不愿意花费高昂学费进培训机构,只好在秋招前的这段时间补补书籍,看看网课,为改变自己的命运再努力一把。在接下来的时间里,我会把自己的学习笔记进行整理上传,加深对技术的理解,避免遗忘。
为什么要学习linux操作系统?
事实上,ARM通常都是用来做比较复杂的系统的,而且一般都是多任务系统的,当任务比较多,程序比较大的时候,只用汇编和C恐怕难以胜任,所以我们应该给ARM配一个操作系统,用来管理这些任务,那么对于ARM,我们可以作使用哪些操作系统呢?嵌入式操作系统通常有VxWorks,WinCE,uC\FreeRTOS,Linux/ucLinux等。而uC\FreeRTOS、Linux因为其免费,而且开源,深受学习者和小公司的欢迎。
uCOS操作系统内核很小,特别适合初学,而且它是占先式内核,是一个实时的操作系统,特别适合实时性要求较高的场合,其内核很小当然其功能当然也就没有linux强大,而且uCOS的图形用户界面(GUI)还是刚有雏形,没有linux的GUI好,而它的GUI是收费的。这样的话只是linux是最好了,但是linux本身不是实时的操作系统,不适合实时性高的场合,于是ucLinux产生了,ucLinux是一个实时操作系统(RTOS),因此学习ARM+ucLinux的人较多。
所以,如果只搞uCOS+ARM,那就可以不学linux了,如果想学习ARM+ucLinux,要在ARM上移植linux,那么移植后,这个装有linux的ARM处理器,当然只能运行linux环境下编译出来的应用程序(这里还有一个交叉编译的概念需要正确理解),所以理所当然要学linux。我在学时,曾对开发板跑RTOS产生兴趣,还专门询问过不少老师和学长,他们大致认为,uCOS虽然更易于学习,但最终工作开发的方向也会转向Linux开发,所以还是先学好Linux操作系统再回来看RTOS吧。通常小红帽Linux、ubuntu Linux 使用比较广泛,那么不能在Windows下开发ARM+ucLinux吗?其实倒是可以在Windows使用虚拟机软件VMware装一个linux。
嵌入式 Linux 最主要的工作是让目标板能启动 Linux 系统,启动 Linux 系统的核心工作就是启动 Linux 内核,启动 Linux 内核的核心工作就是让这个 Linux 内核能支持你这个设备,Linux 内核能支持你这个设备的前提就是 Linux 内核经过你的改进后确实能启动,你改进内核的前提就是你会 Linux 内核。
Linux文件系统是一个树形的分层组织结构。
文件系统层次结构标准FHS(Filesystem Hierarchy Standardÿ