1. 程式人生 > >基於Linux核心定製X86平臺的微作業系統

基於Linux核心定製X86平臺的微作業系統

基於Linux核心定製X86平臺的微作業系統

王林強

(河南大學物理與電子學院通訊專業,河南 開封,475004

摘 要:

Linux是一種自由和開放C語言和組合語言寫成,並符合POSIX標準的類Unix作業系統。並且由於其可定製、可裁剪的特性,不僅在桌面作業系統中有重要的地位,而且在手機、平板電腦、路由器和視訊遊戲控制檯等嵌入式裝置有其巨大的優勢。

為了更好、更深入的瞭解及掌握Linux系統。本文詳細的講述並實踐,如何從Linux核心原始碼,經過定製、裁剪、編譯、製作檔案系統、核心引導,iso光碟製作到最終完整的基於Linux核心定製的微作業系統。

通過基於Linux核心定製的微作業系統的製作,深入的理解

Linux核心的工作原理、檔案系統結構、核心引導等,從而精通嵌入式開發。

關鍵詞:

Linux;定製;嵌入式;微系統

An implementation of micro-operating system

based on the x86 platform Linux kernel customization

Wang Lin-qiang

(School of Physics and Electronics, Henan University, Henan Kaifeng 475004, China)

Abstract:

Linux is a free and open, and POSIX-compliant Unix-like operating system written in C and assembly language. And can be cut because of its customizable features, not only in the desktop operating system in an important position, and its huge advantage in the embedded devices, mobile phones, tablet PCs, routers, and video game consoles.

In order to better and deeper understanding of and master Linux system. This article tells in detail and practice, from the Linux kernel source code has been customized, cutting, compiling, production file system, kernel boot iso CD-ROM production to the final complete custom micro-operating system based on Linux kernel.

In-depth understanding of the Linux kernel works through the production of custom micro-operating system based on Linux kernel, file system structure, core guidance, so proficient in embedded development.

Key words:

Linux; customizableembedded development; micro-operating system

0 前言

Linux可安裝在各種計算機硬體裝置中,從手機、平板電腦、路由器和視訊遊戲控制檯,到臺式計算機、大型機和超級計算機。Linux是一個領先的作業系統,世界上運算最快的10臺超級計算機執行的都是Linux作業系統。由於其免費、開源、可定製、可裁剪等特性使其在嵌入式領域獲得巨大的發展,並佔據大部分市場,深入的瞭解、掌握Linux的裁剪、定製、移植,對嵌入式更好的開發起著至關重要的作用,基於火熱的嵌入式開發,未來市場中將需要更多精於Linux移植開發的工程師。

0.1 Linux系統簡介

Linux作業系統是一種自由和開放原始碼的類UNIX作業系統的一種克隆系統。它誕生於1991 年的10 5 日(這是第一次正式向外公佈的時間)。 以後藉助於Internet 網路,並經過全世界各地計算機愛好者的共同努力下,現已成為今天世界上使用最多的一種UNIX 類作業系統,並且使用人數還在迅猛增長,目前存在著許多不同的Linux,但它們都使用了Linux核心。  

Linux 作業系統的誕生、發展和成長過程始終依賴著以下五個重要支柱:UNIX 作業系統、MINIX 作業系統、GNU 計劃、POSIX 標準和Internet 網路。  

  目前,Linux的發行版有很多,如UbuntuRedHatDebianFedora等等。

0.2 Linux的基本思想

Linux的基本思想有兩點:第一,一切都是檔案;第二,每個軟體都有確定的用途。其中第一條詳細來講就是系統中的所有都歸結為一個檔案,包括命令、硬體和軟體裝置、作業系統、程序等等對於作業系統核心而言,都被視為擁有各自特性或型別的檔案。至於說Linux是基於Unix的,很大程度上也是因為這兩者的基本思想十分相近

0.3 Linux核心

Linux是最受歡迎的自由電腦作業系統核心。它是一個用C語言和組合語言寫成,符合POSIX標準的類Unix作業系統。Linux最早是由芬蘭黑客林納斯.託瓦茲(Linus B. Torvalds)為嘗試在英特爾x86架構上提供自由免費的類Unix作業系統而開發的。

該計劃開始於1991,在計劃的早期有一些Minix黑客提供了協助,而今天全球無數程式設計師正在為該計劃無償提供幫助。  

技術上說Linux是一個核心。核心指的是一個提供硬體抽象層、磁碟及檔案系統控制、多工等功能的系統軟體。一個核心不是一套完整的作業系統。一套基於Linux核心的完整作業系統叫作Linux作業系統,或是GNU/Linux

0.4 Linux核心版本命名

A大幅度轉變的核心。這是很少發生變化,只有當發生重大變化的程式碼和核心發生才會發生。在歷史上曾改變兩次的核心:1994年的1.01996年的2.0。  

B是指一些重大修改的核心。核心使用了傳統的奇數次要版本號碼的軟體號碼系統(用偶數的次要版本號碼來表示穩定版本)。  

C是指輕微修訂的核心。這個數字當有安全補丁,bug修復,新的功能或驅動程式,核心便會有變化。  

2.6.0(200312月)釋出後,人們認識到,更短的釋出週期將是有益的。自那時起,版本的格式為A.B.C.D,其中A,B,C,D代表:  

AB是無關緊要的,C是核心的版本,D是安全補丁

0.5 Linux檔案系統

Linux繼承了Unix作業系統結構清晰的特點。在linux下的檔案結構非常有條理。

/ 根目錄  

|————————/bin 存放二進位制檔案。

|————————/boot 存放Linux的核心及引導系統程式

|————————/cdrom 掛載光碟機檔案系統。

|————————/dev 存放使用的外部裝置。

|————————/etc 存放各種配置檔案和子目錄。

|————————/home 存放使用者的主目錄。

|————————/lib 存放系統動態連線共享庫。

|————————/lost+found 存放意外崩潰和意外資訊。

|————————/mnt 存放掛載儲存裝置的掛載目錄。

|————————/media 掛載usb介面的行動硬碟

|————————/opt 存放可選的程式。

|————————/proc 存放系統資訊 。

|————————/root 超級許可權使用者root的家目錄。

|————————/sbin 存放系統管理員的系統管理程式。

|————————/srv 服務啟動後,所需訪問的資料目錄

|————————/sys 一種虛擬的基於記憶體的檔案系統 。

|————————/tmp   臨時檔案目錄 。

|————————/usr 存放使用者應用程式和檔案。

|————————/var 存放系統日誌。

0.6Linux核心引導

LILOLInux LOader)LILO代表Linux載入程式。LILO是一個在系統啟動時執行的程式,它允許選擇用於引導計算機的作業系統。  

GNU GRUB(簡稱“GRUB”)是一個來自GNU專案的多作業系統啟動程式。GRUB是多啟動規範的實現,它允許使用者可以在計算機內同時擁有多個作業系統,並在計算機啟動時選擇希望執行的作業系統。GRUB可用於選擇作業系統分割槽上的不同核心,也可用於向這些核心傳遞啟動引數。

0.7Linux系統組成

載入程式+Linux核心+檔案系統=Linux作業系統

1 平臺的搭建

Linux定製平臺的正確選擇、配置、安裝、除錯將為下面的系統製作提供有力的保證。並減少製作過程中問題發生的機率。

1.1 硬體平臺

處理器:Intel® AtomCPU N450 @ 1.66GHz × 2

內 存:992.8M

硬 盤:WDC WD1600BEVS--00RST0

1.2 軟體平臺

本次平臺採用採用XP+Ubuntu 12.04雙系統。

系 統1Microsoft Windows XP Professional 2002 Service Pack 3

系 統2Ubuntu 12.04

1.2.1 Ubuntu系統的下載

請注意選擇與自己硬體匹配的版本。

本次平臺的Ubuntu下載地址:

http://releases.ubuntu.com/12.04/ubuntu-12.04-desktop-i386.iso

1.2 .2Ubuntu系統的安裝

Ubuntu 12.04使用U盤安裝雙系統,併合理分割槽。

正確安裝之後的系統資訊:

版本 12.04precise32

核心Linux3.5.0-rc1

GNOME 2.4.1

記憶體:992.8M

處理器:Intel® AtomCPU N450 @ 1.66GHz × 2

可用的磁碟空間:6.7GB

1.2.3Ubuntu系統的配置

裝完雙系統後,啟動進入Ubuntu12.04,開啟終端獲得root許可權:

sudo su

然後安裝編譯核心時需要的工具:

apt-get install build-essential kernel-package libncurses5-dev libqt3-headers

build-essential (基本的程式設計庫(gcc, make等)

kernel-package ( 系統裡生成 kernel-image 的一些配置檔案和工具)

libncurses5-dev (meke menuconfig要呼叫的)

libqt3-headers (make xconfig要呼叫的)

注:其它工具在升級過程中可以按提示安裝

2 Linux核心的編譯

Linux核心的編譯是系統定製與裁剪的關鍵。要充分考慮系統所滿足的硬體要求及限制,編譯出最佳核心,充分發揮硬體和Linux核心的特性。

2.1 核心的下載

本次定製使用當前最新的Linux 3.5.0核心,可根據實際情況合適選擇核心版本。

Linux 3.5.0 核心的下載地址:

2.2 核心的定製

1:首先在終端下獲得root許可權

sudo su

2:把下載的核心原始檔拷貝到/usr/src目錄下

cp /home/linux-3.5-rc1.tar.bz2 /usr/src

3:進入/usr/src目錄

cd /usr/src

4:解壓linux-3.5-rc1.tar.bz2 在當前的目錄下

tar -jxvf linux-3.5-rc1.tar.bz2

5:解壓後得到 linux-3.5-rc1資料夾,資料夾內為核心的原始碼,進入該資料夾

cd /usr/src/linux-3.5-rc1

6:使用make命令進行核心定製

make xconfig

執行完後,會出現一個配置的視窗,然後按自己的定製要求對選項進行配置,此次定製的是微核心,故可不支援音效卡、NFC等,主要配置CPUIntel® AtomCPU

配置完成後,選擇file->saveas,預設儲存為.config,選擇save

2.3 核心的編譯

1進入linux-3.5-rc1資料夾,使用make命令開始編譯bzImage核心檔案(注意'I'為大寫)。

cd /usr/src/linux-3.5-rc1

make bzImage

根據電腦的配置情況,編譯需要一段時間,編譯成功後可在/usr/src/linux-3.5-rc1/arch/x86/boot找到生成的核心檔案bzImage

2.4 核心的製作

1:對核心進行壓制

cp /usr/src/linux-3.5-rc1/arch/x86/boot/bzImage /root/vmlinuz

後面製作CD-ROM時要用到vmlinuz,即定製成功的核心檔案。

3 BusyBox的編譯

BusyBox 是一個集成了一百多個最常用linux命令和工具的軟體。BusyBox 包含了一些簡單的工具,例如lscatecho等等,還包含了一些更大、更復雜的工具,例如 grepfindmount 以及 telnet。有些人將 BusyBox 稱為 Linux 工具裡的瑞士軍刀。簡單的說BusyBox就好像是個大工具箱,它整合壓縮了 Linux 的許多工具和命令,也包含了 Android 系統的自帶的shell其目標是在一張軟盤上建立一個可引導的 GNU/Linux 系統,這可以用作安裝盤和急救盤。

3.1 BusyBox的下載

這裡選擇1.20.0版本

BusyBox的下載地址為:

http://www.busybox.net/downloads/busybox-1.20.0.tar.bz2

3.2 BusyBox的配置

BusyBox的配置程式和linux核心選單配置方式近似。

1:在終端下進入root許可權

sudo su

2:將下載的BusyBox原始檔拷貝到/usr/src/busybox資料夾下

mkdir /usr/src/busybox

3:解壓busybox-1.20.0.tar.bz2

cd /usr/src/busybox

tar -jxvf busybox-1.20.0.tar.bz2

4:進入新生成的busybox-1.20.0資料夾,進行BusyBox的配置

cd /usr/src/busybox/busybox-1.20.0

make menuconfig

彈出一配置對話方塊,並配置需要編譯進busybox的功能選項。

下面為必選項:     

Show verbose applet usage messages

Runtime SUID/SGID configuration via /etc/busybox.conf

Build BusyBox as a static binary (no shared libs)

Don't use /usr

配置好後,退出並儲存。

3.3 BusyBox的編譯

1:開始編譯BusyBox

make

make install

編譯好後在busybox-1.20.0目錄下生成子目錄_install,裡面的檔案.   

/busybox

|————————bin

|————————linuxrc -> bin/busybox

|————————sbin

其中可執行檔案busyboxbin目錄下,製作檔案系統將用到_install下的檔案。

(注:由於GCCBusyBox不能很好的相容,會出現很多問題,請參看後面的BusyBox編譯中的問題。)

4 Linux檔案系統的製作

正如前面介紹的Linux檔案系統一樣,無論多小的Linux系統也許具有一個檔案系統。

4.1 檔案系統的製作

1:在/usr建一個目錄tmp 用來裝檔案系統並建立檔案目錄

sudo su

mkdir /usr/tmp

cd /usr/tmp

mkdir etc usr var tmp proc home root dev

etc、proc、dev是一定要建的,binsbin拷貝_install生成的。

2拷貝busybox-1.20.0下的_install資料夾到rootfs

cp -R /usr/src/busybox/busybox-1.20.0/_install/* /usr/tmp

3dev資料夾下建立裝置檔名:

cd /usr/tmp/dev

cp -R /dev/console ./

cp -R /dev/null ./

cp -R /dev/zero ./

4建立etc目錄下的配置檔案

需要建立的檔案:

busybox.conf group inittab motd passwd resolv.conf shadow- fstab init.d issue mtab profile shadow

1其中init.d是從busybox-1.20.0原始碼目錄下拷貝過來。

cp -R /busybox-1.20.0/examples/etc/init.d /usr/tmp/etc/

init.d拷過來後要更改其中的檔案rcs。

chmod u+x /usr/tmp/etc/init.d/rcs

用記事本開啟rcs,並寫入下面的內容:

#! /bin/sh

mount -o remount,rw /

/bin/mount -a

>/etc/mtab

echo

echo

echo

echo

echo -en "\t\tWelcom to Dead_Angel Linux\n"

hostname Dead_Angel

儲存並退出。

2busybox.conf是一個空檔案.

3fstab的內容如下:

/dev/fd0 / ext2 defaults 0 0

none /proc proc defaults 0 0

/dev/cdrom /mnt/cdrom udf,iso9660 noauto,owner,kudzu,ro 0 0

/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0

4group的內容如下:

root:0:root

5inittab的內容如下:

::sysinit:/etc/init.d/rcs

::askfirst:/bin/sh

tty2::respawn:/bin/getty 38400 tty2

tty3::respawn:/bin/getty 38400 tty3

tty4::respawn:/bin/getty 38400 tty4

# Stuff to do when restarting the init process

::restart:/bin/init

# Stuff to do before rebooting

::ctrlaltdel:/bin/reboot

::shutdown:/bin/umount -a -r

::shutdown:/bin/swapoff -a

issue

Dead_Angel Linux release 0.1

6motd的內容為空

7mtab的內容為空

8passwd的內容如下:

root::0:0:root:/root:/bin/ash

9profile的內容如下:

# /etc/profile: system-wide .profile file for the Bourne shells

echo

echo

export PS1="[\[email protected]\h \w]\$"

echo "Done"

alias ll='ls -l'

alias du='du -h'

alias df='df -h'

alias rm='rm -i'

echo

10resolv.conf的內容如下

nameserver 192.168.1.12

11shadow的內容如下:

root1$$adltAB9Sr/MSKqylIvSJT/:12705:0:99999:7:::

12shadow-的內容如下:

root1$DWU.tenP$B7ANiXoGoiZMwJR6Ih8810:12705:0:99999:7:::

4.2 檔案系統的壓縮

Linux初始RAM磁碟initrd)是在系統引導過程中掛載的一個臨時根檔案系統,用來支援兩階段的引導過程。initrd檔案中包含了各種可執行程式和驅動程式,它們可以用來掛載實際的根檔案系統,然後再將這個 initrd RAM 磁碟解除安裝,並釋放記憶體。在很多嵌入式Linux 系統中,initrd 就是最終的根檔案系統。

製作img映象檔案

1:先返回我們的主目錄

cd

2:建立一個8M的空間用來放我們的跟檔案系統

dd if=/dev/zero of=initrd.img bs=1k count=8129

3:將它格式化為ext2的檔案系統,然後掛載

mke2fs -F -v -m0 initrd.img

sudo mkdir /mnt/initrd

sudo mount -o loop initrd.img /mnt/initrd

4:接著把我們做好的檔案系統複製進去:

sudo cp -av /usr/tmp/* /mnt/initrd

5:複製完後,解除安裝initrd

sudo umount /mnt/initrd

6:壓縮根檔案系統映象:

gzip -fv9 initrd.img

mv initrd.img.gz /usr/initrd.gz

到此,我們的就完成了根檔案系統的製作,/usr/initrd.gz將在製作CD-ROM時用到。

5 Linux載入程式配置

ISOLINUX 是專門用來引導可移動介質的輕量級載入程式,因為這樣的介質通常不會固定只針對一種硬體。ISOLINUX其實是一個簡單的Linux系統。

5.1 ISOLINUX的下載

ISOLINUX的下載地址:

5.2 ISOLINUX的配置

製作bootloader,因為我們用的是LiveCD,所以我們就選用isolinux作為我們的bootloader

1:下載好後,解壓到/usr/isolinux目錄下

mkdir /usr/isolinux

tar -jxvf syslinux-4.05.tar.gz /usr/isolinux

2:建立一個臨時資料夾,並把isolinux.bin拷進去

mkdir -p /usr/tmp

cp /usr/isolinux/syslinux-4.05/core/isolinux.bin /usr/tmp

3:建立isolinux的配置檔案

gedit /usr/tmp/isolinux.cfg

isolinux.cfg的內容是:

DEFAULT vmlinuz initrd=initrd.gz

kernel vmlinuz

append initrd=/initrd.gz load_ramdisk=1 prompt_ramdisk=0 ramdisk_size=60000 rw root=/dev/ram

編輯好後儲存退出。

6 LinuxCD-ROM的製作

整合並製作LiveCD

1:在root目錄下建立以個透明片資料夾

mkdir /root/tmp

2:將我們定製的核心vmlinuz拷貝到該目錄下

cp /root/vmlinuz /root/tmp

3:將我們製作的檔案系統initrd.img拷貝到改目錄下

cp /usr/initrd.gz /root/tmp

4:將我編寫的引導檔案isolinux.binisolinux.cfg拷貝到改目錄下

cp /usr/tmp/* /root/tmp

5:生成iso檔案

mkisofs -o Dead_Angel_linux_V1.10.iso -b /boot/tmp/isolinux.bin -c /boot/tmp//boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table /home

最後,在我們的home底下就生成了一個Dead_Angel_linux_V1.10.iso的光碟映象

至此,一個基於Linux核心定製的x86平臺微作業系統就製作好了。

7 Linux定製系統的執行

UNetbootin可以輕鬆的把Linux作業系統裝進U,可將U盤插到USB介面。 注意:一定要先插U盤再執行UNetbootin!然後從選單應用程式——系統工具裡執行UNetbootin軟體。然後把你下好的iso檔案放到U盤裡,重啟電腦,並設定U盤為第一啟動裝置,即可啟動U盤裡的作業系統

7.1 VirtualBox下的執行

安裝虛擬機器,並虛擬一個Linux系統,把生成的iso作為CD-ROM,即可正常啟動,如下圖所示:

啟動介面:

圖片一

當引導成功以後,我們就進入了自己定製的Linux作業系統,雖然只有6M大小,但已經具備一個作業系統的基本功能,可進入根目錄,檢視有完整的檔案系統,我們可通過定製製作啟動盤,維護盤等小型的作業系統。

下面就開始我們的操作,使用echo命令,輸入幾行資訊,我們可以使用busybox提供的完整的shell命令。

如下圖:

圖片二

7.2 U盤引導在X86平臺下的執行

我們需要unetbootin將我們生成的iso檔案,寫入U盤,並設定電腦從USB啟動,即可實現正常的引導,我們就可以體驗自己的微系統了。

8定製系統過程中的問題

8.1 平臺搭建中的問題

Q1:當我們下載Ubuntu 12.04 不能正常的從硬碟安裝?

A1:由於Ubuntu 12.04 為最新版,硬碟安裝出現問題,需使用U盤安裝。

8.2 核心編譯中的問題

Q1:編譯不能進行,為什麼?

A1:必備的工具和庫是否安裝及是否為最新的。

Q2:編譯總是失敗,為什麼?

A2:檢查你的核心配置是否正確。

Q3:怎麼看不見配置檔案.config

A3:該檔案問隱藏屬性,從終端進入目錄,輸入命令ll即可看見。

8.3 BusyBox編譯中的問題

Q1:編譯失敗?

A1:你的配置是否正確,注意檢視提示資訊。

A2:需要的工具和庫是否安裝及是否為最新

8.4 檔案系統製作中的問題

Q1:找不到某檔案?

A1:注意目錄的切換,路徑是否正確。

8.5 載入程式製作中的問題

Q1:看不明白配置的原理?

A1:請百度isolinux,檢視編寫方法。

8.6 CD-ROM製作中的問題

Q1:不能正確生成iso檔案?

A1:檔案是否齊全。

A2:檔案路徑是否正確。

A3:檔名字是否正確。

Q2:製作iso的命令是為什麼?

Q3:請百度linuxiso的製作。

8.7 定製系統執行的問題

Q1:虛擬機器不能執行?

A1:虛擬機器是否配置正確。

Q2U盤不能正常引導?

A2:寫入之前儘量格式化。

參考:

3http://www.linuxdiyf.com/

5http://www.google.com.hk/

相關推薦

基於Linux核心定製X86平臺作業系統

基於Linux核心定製X86平臺的微作業系統 王林強 (河南大學物理與電子學院通訊專業,河南 開封,475004) 摘 要: Linux是一種自由和開放,用C語言和組合語言寫成,並符合POSIX標準的類Unix作業系統。並且由於其可定製、可裁剪的特性,不僅在桌面作業系統中有重要的地位,而且在手機、平板電腦

RTLinux—基於Linux核心的實時作業系統RTLinux

RTLinux(Real-TimeLinux):是由新墨西哥大學(NMT)開發,是可嵌入系統並支援硬實時特性,部分支援POSIX.1b標準。其核心結構和系統特點是實現了一個小的實時核心,並“架空”了

基於Linux核心的UDP協議原始碼分析

  當一個數據包(package)經過IP層的處理之後,最終呼叫ip_local_deliever()函式,這個函式會根據這個資料包(packet)的傳輸層頭兒確定其採用的傳輸協議,如果是UDP協議,將會呼叫udp_rcv()函式。至此,進入傳輸層的範圍。 UDP協議棧的報頭定義如下:

手把手教你移植linux核心(目標平臺S3C2410)

Linux核心的最初版本由Linus Torvalds在1991年釋出,後來核心版本不斷更新: Linux1.0   1994年3月    僅支援386 Linux1.2   1995年3月    多

最完整的基於Linux(CentOS7)搭建Superset平臺

系統環境:CentOS-7 、Anaconda3-5.2.0-Linux-x86_64 CentOS-7無需配置網路yum源 1、安裝一臺新的CentOS-7伺服器 2、配置網絡卡(root下操作) ①檢視當前使用網絡卡 [root~]ip addr  ②修改

Linux核心實戰(二)- 作業系統概覽

不知道你有沒有產生過這些疑問: 桌面上的圖示到底是啥?憑啥我在滑鼠上一雙擊,就會出來一些不可描述的畫面?都是從哪裡跑出來的? 憑什麼我在鍵盤上噼裡啪啦地敲,某個位置就會顯示我想要的那些字元? 電腦怎麼知道我滑鼠點選的是這個地方,又是怎麼知道我要輸入的是這個地方? 我在鍵盤上點“a”,是誰在顯示器上畫出

【原創】linux實時作業系統xenomai x86平臺基準測試(benchmark)

## 一、前言 benchmark 即基準測試。通常作業系統主要服務於應用程式,其執行也是需要一定cpu資源的,一般來說作業系統提供服務一定要快,否則會影響應用程式的執行效率,尤其是實時作業系統。所以本文針對作業系統來做一些基準測試,看看在低端x86平臺上,xenomai提供我們平時常用的服務所需要的時間,

阿裏雲平臺信告警(基於收費平臺

設置 登陸 用戶 升級 div 不能 ges 郵箱 es2017 基於現在大多數人使用微信的眾多性,並且發現當阿裏雲發生告警時,郵箱的報警數太多,(像本人zabbix有郵箱告警,zabbix分經典網絡和專有網絡的報警,還有物理機的告警,都是分開平臺監控的。)所以想到能不能把

基於linux的Git平臺的部署與Gitolite使用

pre assign data 現在 bytes conf 標準 host 安裝 基於linux的Git平臺的部署與使用 系統環境 #cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) 安裝git #

嵌入式ARM平臺基於Linux配置應用程式開機自啟動(fluxbox參考)

本文轉載於 http://www.eefocus.com/toradex/blog/18-01/426601_a6317.html,特此感謝 By Toradex秦海 1). 簡介 嵌入式ARM平臺裝置採用Embedded Linux作業系統

Linux 核心中獲取時間分析基於do_gettimeofday()

Linux 核心中獲取時間分析基於do_gettimeofday() 核心程式碼能一直獲取一個當前時間的表示,通過檢視jifies的值。通常這個值只代表從最後一次啟動以來的時間,這個事實對驅動來說無關,因為它的生命週期受限於系統的uptime。 驅動可以使用jifie

作業系統程序遍歷(進入linux核心實現)

實驗要求概述: Part I—Iterating over Tasks Linearly As illustrated in Section 3.1, the PCB in Linux is represented by the structure task_struct, whic

嵌入式系統Linux核心開發實戰指南(ARM平臺) 書評

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

讀書筆記:LINUX核心完全剖析:基於0.12核心

讀書筆記:LINUX核心完全剖析   IBM PC及其相容機主要使用 獨立編址方式,採用獨立的I/O地址空間對控制裝置中的暫存器進行定址和訪問,IBM PC也部分地使用統一編址。對於使用EISA、PCI等匯流排結構的PC,有64KB的I/O地址空間可供使用。在普通Li

換種方法學作業系統,輕鬆入門Linux核心

​​​​計算機已成為現代人日常工作、學習和生活中必不可少的工具。作業系統是計算機之魂,作為使用者使用計算機的介面,它負責排程執行各個使用者程式,使計算機完成特定的任務;作為計算機硬體資源的管理者,它負責協調計算機中各類裝置高效地工作。作業系統的重要性不言而喻。 對於軟體工程師,理解作業系統的

基於tiny4412的Linux核心移植(支援device tree)(三)

https://www.cnblogs.com/pengdonglin137/p/5146791.html 閱讀目錄(Content) 作者資訊 平臺簡介 注意 一、裝置樹反編譯 二、在u-boot列印資訊 三、開啟Linux核心啟動早期的log 四、在核心自解壓時dump記憶體 五、C

基於tiny4412的Linux核心移植(支援device tree)(二)

https://www.cnblogs.com/pengdonglin137/p/5143516.html 閱讀目錄(Content) 作者資訊 平臺簡介 步驟 回到頂部(go to top) 作者資訊 作者: 彭東林 郵箱:[email protected] QQ:4

基於tiny4412的Linux核心移植(支援device tree)(一)

https://www.cnblogs.com/pengdonglin137/p/5137941.html 閱讀目錄(Content) 作者資訊 平臺簡介 概述 步驟 回到頂部(go to top) 作者資訊 作者: 彭東林 郵箱:[email protected] Q

Linux核心--01(基於armA9tiny4412開發板)

1、如何編譯核心 tar -Jxvf linux-3.5-20170929.tar.xz -C /~ 解壓核心壓縮包至自己的家目錄 建議刪除arch目錄與我們無關的其他架構的資料夾 通過./config生成Makefile,但是因為我們初學核心,不懂得用 m

作業系統實驗一:linux核心編譯及新增系統呼叫

編譯環境 VMWare Ubuntu Desktop Ubuntu 18.04.1映象下載地址:點我下載 裝ubuntu很簡單,網上教程一大堆,記憶體分配多點。 新增系統呼叫步驟 解壓linux核心 想辦法,把上面的linux核心弄到ubuntu裡面,可