一、什么是嵌入式linux?
Linux从1991年问世到现在,短短的十几年时间已经发展成为功能强大、设计完善的操作系统之一,不仅可以与各种传统的商业操作系统分庭抗争,在新兴的嵌入式操作系统领域内也获得了飞速发展。嵌入式Linux(Embedded Linux)是指对标准Linux经过小型化裁剪处理之后,能够固化在容量只有几K或者几M字节的存储器芯片或者单片机中,适合于特定嵌入式应用场合的专用Linux操作系统。嵌入式Linux既继承了intelnet上无限的开放原代码资源,又具有嵌入式操作系统的特性。
二、为什么要使用linux
linux系统有很多的优点:
1.稳定性,说起稳定性,使用Windows难免会遇到蓝屏的情况,Windows蓝屏在个人电脑上非常常见,可以想象一下正当你在编辑Word文档的时候突然蓝屏,却没有保存,心里估计肯定不好受,而Linux系统则不会出现这种情况,这就是为什么很多服务器使用Linux系统的原因,有些安装Linux系统的服务器甚至好几年都能正常稳定的运行
2.系统收费问题,使用Windows的用户往往对这个词比较收悉--激活,Windows是闭源软件,要想使用正版Windows就必须要购买微软的激活秘钥,而Linux是开源软件,往往只需要支付费用或者免费使用Linux操作系统,这里给大家推荐一下国产的Deepin系统,美观,易用,且免费!
3.系统安全问题,Windows经常会因为病毒或漏洞而导致无法正常使用,从而影响工作和学习,反之,Linux有着非常严格的文件控制策略,并且Linux是开源软件,源码公开,从而更容易发现漏洞,及时的修复漏洞,从而使Linux系统更加安全。
三、嵌入式工程师都应该会哪些linux系统的技能?
1、文件管理类命令
文件管理类命令我们需要掌握cat、chmod、chown、chgrp、diff、file、find、grep、git、ln、cut、less、mdir、mv、cp、rm、touch、umask、read等命令
2、文档编辑类命令
文档编辑类命令我们需要掌握comm、csplit、ed、ex、join、look、sed、sort、spell、wc、let等命令
3、文件传输类命令
文件传输类命令我们需要掌握lpr、bye、ftp、uuto、tftp、ncftp等命令
4、磁盘管理类命令
磁盘管理类命令我们需要掌握cd、df、dirs、du、mcd、mmd、mkdir、mrd、mzip、pwd、mount、rmdir、rmt、ls、umount、stat、tree、lndir等命令
5、网络通信类命令
网络通信类命令我们需要掌握cfdisk、dd、ext2ed、fsck、fsconf、sync、fdisk、mkfs、sfdisk等命令
6、系统管理类命令
系统管理类命令我们需要掌握chfn、date、exit、sleep、groupmod、groupdel、halt、kill、last、lastb、login、logout、ps、nice、top、reboot、rsh、shutdown、sudo、gitps、swatch、tload、uname、chsh、userdel、usermod、vlock、who、whoami、whois、renice、su、skill、w、id、groupadd、free
7、系统设置类命令
系统设置类命令我们需要掌握reset、clear、alias、bind、chroot、clock、declare、depmod、dmesg、enable、eval、export、rpm、lilo、lsmod、minfo、set、ntsysv、passwd、rdate、resize、rmmod、time、setup、sndconfig、setenv、timeconfig、ulimit、unset、apmd、hwclock、fbset、unalias、gpasswd
8、备份压缩类命令
备份压缩类命令我们需要掌握ar、bunzip2、bzip2、gunzip、cpio、dump、gzexre、gzip、lha、tar、unzip、uudecode、zip、zipinfo等命令
9、设备管理类命令
设备管理类命令我们需要掌握setleds、loadkeys、rdev、dumpkeys、poweroff等命令
四、嵌入式工程师都需要懂些驱动常识
linux的分层是这样的:应用程序调用库函数接口,库函数接口调用内核接口,内核接口调用驱动程序,驱动程序调用硬件设备。
驱动程序完全隐藏了设备工作的细节. 用户的活动通过一套标准化的调用来进行,这些调用与特别的驱动是独立的; 设备驱动的角色就是将这些调用映射到作用于实际硬件的和设备相关的操作上.
驱动应当做到使硬件可用, 将所有关于如何使用硬件的事情留给应用程序. 一个驱动,如果它提供了对硬件能力的存取, 没有增加约束,就是灵活的。
linux可以在运行时扩展由内核提供的特性的能力,也就是说,你可以在系统运行的时候增加或者删除内核的功能。每块可以在运行时添加的代码,被称为模块。包括但不限于设备驱动,每个模块由目标代码组成没有连接成一个完整的可执行文件,可以动态连接到运行的内核中,通过insmod、和rmmod来实现连接和去除连接。