日记式的个人胡扯,没有一句话保证正确,谢谢围观,欢迎指正。。 通用与专用,没有好坏 首先举两个极端的例子:深度学习应用十分重要,因此人们愿意专门为它花钱设计新型专用芯片和硬件架构,甚至可能为了它的性能,没准以后会重新写了一个叫”DnnOS”(我自己瞎编的名字)操作系统;而Jc写的helloworld.py程序无论在Linux, Windows 95还是Win 10上怎么折腾,都是打印一行hello, world,没有任何区别的。 哪个更好的问题没有绝对的答案,也许深度学习的新型硬件没有键盘鼠标和显示器,DnnOS也只要实现一套新型硬件的驱动,复杂程度远远小于Linux和Windows。但是Jc的helloworld.py无论运行在多么复杂的系统上,都无法到一个好的深度学习模型所带来的价值;反过来说,即使这套新型深度学习工具再牛逼,可能都无法运行Jc的helloworld.py程序。 所以,废话就是,当然是各有利弊。 什么应用需要专用系统, 首先当然是嵌入式设备,有些嵌入式设备并没有操作系统,有些有经过精简的操作系统。为实际应用量身定做的硬件和软件,对权衡性能和成本应该是最有利的! 另一种是,在我看来,是专用服务器,比如一台专门的数据库服务器,那么首先它的硬件选型是很重要的,比如存储设备要选高端的,显卡就不要了;它的操作系统的很多东西就用不上了,比如DBMS通常会关掉OS的文件缓存page cache,甚至不用OS的文件系统,来自己管理缓存和裸块设备,包括很多多余的硬件驱动都是不必要的。 什么应用需要通用系统 最易想到应该使用通用系统的例子,就是每个人的手机还有个人电脑了,由于每个人的爱好和工作习惯不同,它们的任务多种多样,资源利用的特点也各不相同。80年代的PC、00年代的手机,都是以计数器、画图、记事本功能齐全作为卖点,后来随着系统的发展,甚至会搞出应用商店这种来增加系统的功能,这时,工作负载就更不唯一。这样,在为每个用户量身定做系统不现实的情况下,只有系统更通用才会更满足消费者的多样需求(比如有人爱拍照,有人爱打王者荣耀)。 另一种,可能是云,也就是各种虚拟化和分布式技术。原因很简单,租用云服务的用户所需要的不只是一种服务(可能是云主机、云数据库或者云存储),更重要的是负载也是无法预测的。最典型的例子是云虚拟机,这时,一个“需要通用”的操作系统运行在云上,那么这个云更通用,比通用OS还要通用。比如,一个可以称为“云操作系统”的系统,要保证计算、存储、内存的可伸缩性,这时一般OS是不提供的,还要保证运行和数据可靠,这都是通用(通用虚拟机)之外的通用(伸缩性、可靠性)。 通用也是专用 讨论了什么时候应该通用和专用,及其原因之后,突然觉得:通用也是专用,因为不管是通用的还是专用的。因为专用的本来就是专用的;而通用的,开发它们多数都是 专用 来赚钱的,不管是手机还是云。

连接 以电脑为终端,采用基于PL2302芯片的串口转USB线链接电脑和试验箱,MAC OS X系统需要安装芯片的驱动(文件名md_PL2303_MacOSX10_6_dmg_v1_4_0.zip)通过文件内说明文档进行相关设置,然后可以连接成功。 Mac终端下用screen命令实现试验箱终端功能. screen /dev/tty.usbserial 115200 >注意拔下USB时要用A(ctrl+A)+k命令退出screen,否则会导致OS X 死机(不明原因)。如果没有退出screen直接将终端窗口关闭了,用命令ps|grep tty查找相应进程进程ID然后结束掉它(kill PID),这样再拔出USB就不会死机了。 交叉编译 需要安装arm-none-linux-gnueabi-gcc,相当于linux的arm-linux-gcc。使用方法类似gcc. arm-none-linux-gnueabi-gcc test.c -o test ftp通信传输文件 通过以太网口连接试验箱和mac,终端修改试验箱ipconfig eth0 -i 192.168.1.101 -m 255.255.255.0 -g 192.168.1.1然后执service network restart、Mac自身网络偏好设置修改两者IP使其在同一区段(192.168.1.102) 在Mac终端下用ftp命令ftp 192.168.1.101登陆试验箱linux,用户名anonymous(匿名),密码任意。 put命令具体使用方法可以参考博文《Linux 终端访问 FTP 及 上传下载 文件》 上传文件put test test 在终端上执行程序 增加可权限chmod +x test 执行:./test