日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

嵌入式linux 面试题

發布時間:2023/12/10 linux 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 嵌入式linux 面试题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

嵌入式linux開機啟動流程

上電–>固化boot–>uboot–>kernel–>file system–>app

uboot一般不使用mmu

uboot cmdline–>kernel

新版本kernel 設備樹,代替platform文件

linux特殊進程

idle進程(PID = 0), init進程(PID = 1)和kthreadd(PID = 2)

  • idle進程由系統自動創建, 運行在內核態

idle進程其pid=0,其前身是系統創建的第一個進程,也是唯一一個沒有通過fork或者kernel_thread產生的進程。完成加載系統后,演變為進程調度、交換

  • init進程由idle通過kernel_thread創建,在內核空間完成初始化后, 加載init程序, 并最終用戶空間

由0進程創建,完成系統的初始化. 是系統中所有其它用戶進程的祖先進程
Linux中的所有進程都是由init進程創建并運行的。首先Linux內核啟動,然后在用戶空間中啟動init進程,再啟動其他系統進程。在系統啟動完成完成后,init將變為守護進程監視系統其他進程。

  • kthreadd進程由idle通過kernel_thread創建,并始終運行在內核空間, 負責所有內核線程的調度和管理

它的任務就是管理和調度其他內核線程kernel_thread, 會循環執行一個kthread的函數,該函數的作用就是運行kthread_create_list全局鏈表中維護的kthread, 當我們調用kernel_thread創建的內核線程會被加入到此鏈表中,因此所有的內核線程都是直接或者間接的以kthreadd為父進程

UART、I2C、SPI的優缺點和區別

協議UARTI2CSPI
硬件連接RX、TX、GNDVCC、GND、SCL、SDACS、CLK、MOSI、MISO
異/同步異步同步同步
全/半雙工全雙工半雙工全雙工
主從靠軟件事先約定主從地址片選

CAN總線是一個廣播類型的總線,采用硬件仲裁。

kernel申請內存

kmalloc():地址連續的小內存

kzalloc():同kmalloc 申請內存后清零

vmalloc():地址不連續

更大塊內存:通過設置 kernel cmdline mem參數,保留系統內存,這部分內存用kernel接口申請不到。

  • ? 在應用層 操作mem設備進行這塊訪問 mmap

  • ? 在kernel層 ioremap

linux進程通信方式

共享內存、管道、消息隊列、socket

歡迎關注微信公眾號:LinuxRos

長期分享程序猿技術(linux shell腳本、應用、驅動、c、c++、機器人ROS、python、算法……)

總結

以上是生活随笔為你收集整理的嵌入式linux 面试题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。