运行在PC机上的嵌入式linux——Alpine virt

运行在PC机上的嵌入式linux——Alpine virt 嵌入式这个行业做了20年不知不觉已来到人生的第54个年头从现在已很少人用的c51单片机到stm32单片机到低成本的AT32单片机到嵌入式linux系统均为工作主要内容。从嵌入式linux起很少再接触硬件设计一是有专人负责硬件设计了二是嵌入式linux的硬件核心是CPU及周边的内存nand flash或emmc flash的设计一般小公司基本不会投入资金进行研发多是采购现有的核心板。各种型号的嵌入式linux的核心板对程序员来说都是linux下的编程。而由于linux的非实时性特点程序员们通常用的就是串口网口usb模拟串口或usb hid的通信而其它的什么I2C,SPI接口则不多见此类接口通常对实时性要求较高即使有通常也在linux的驱动层完成了。对于应用层的编写其实是可以不在真实的嵌入式linux上来进行调试的。选择哪种CPU的嵌入式硬件通常是硬件工程师的事情。随着嵌入式linux的CPU越来越强大内存越来越大1G的内存很普遍512M的就算很小了很多对业务的处理慢慢移到了嵌入式linux上来处理。因此嵌入式linux程序也越来越需要处理业务逻辑业务处理总是变化很大今天要加这个明天要做那个调试变得非常重要而纯粹的业务处理基本都是硬件无关的此时如有一个跑在pc机上的嵌入式linux会方便很多。想过用tiny linux但其基于不再更新不适用。近日发现了lpine这个迷你的linux,用起来之后发现它的主要核心基于busybox基本可以当做嵌入式linux来用。而且其一直在更新维护最迷你的版本是Alpine virt。稍大些的是Alpine standard还有一个带图形界面的版本我认为不适用于嵌入式linux未再做研究。为方便嵌入式开发当然是用虚拟机了。virtual box因其开源特点自然是最佳选择。我首先做了一个vbox的Alpine virt虚拟机(name:root,pwd:iamlij)然后是做了一个ubuntu24.04的vbox虚拟机(name:lij,pwd:123456)并安装了vbox的增工具可以方便的在windows下进行剪粘板的复制拷贝安装了嵌入式linux开发常用的NFS服务器可在Alpine virt虚拟机进行nfs挂载(挂载目录是/home/nfs)方便程序的调试开发。因为Alpine的编译器并非gnu gcc而是musl gcc所以在ubuntu上安装了musl gcc的编译工具集。为方便写代码在ubuntu上安装了qt5.14.2并配好工作环境使编好的代码可以在gnu gcc和musl gcc之间切换编译等同于在实际的嵌入式linux开发中在gnu gcc和嵌入式专用的gcc之间切换进行交叉编译或桌面编译。 作为C程序员桌面软件的开发肯定也是要做的我主要用过vs2019,QT5有感于QT5做为开发环境所带来的方便强烈推荐。在这个虚拟机在/home/lij/work_space下有一个web socket的演示程序简单采集cpu占用率内存占用率cpu温度,以测试编译器是否正常是否能把lpine当嵌入式linux来用。这个小程序从网页到程序本身全部来自于豆包AI。实际使用时将musl gcc编译生成的ws_demo和web_page目录放到Alpine的某个目录下运行。在浏览器上输入https://ip:8000其中ip是lpine虚拟机的IP。最后欢迎大家交流探讨。我的邮箱:ylzh2000sohu.com,为防骚扰电话就不留了。最后放上百度盘上的共享链接ubntun24.04: 链接: https://pan.baidu.com/s/1RZTnNX0gvdUxzzfhnR48AA 提取码: 1234Alpine virt:链接: https://pan.baidu.com/s/17RmwgiHHglO1rkbZpi7buA 提取码: 1234