中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

怎樣建設(shè)與維護(hù)自己的平臺(tái)網(wǎng)站成都競(jìng)價(jià)托管多少錢

怎樣建設(shè)與維護(hù)自己的平臺(tái)網(wǎng)站,成都競(jìng)價(jià)托管多少錢,網(wǎng)站開發(fā)硬件成本,有關(guān)做服裝的網(wǎng)站嗎文章目錄Tina_Linux_系統(tǒng)裁剪_開發(fā)指南1 概述2 Tina系統(tǒng)裁剪簡(jiǎn)介2.1 boot0裁剪2.2 uboot裁剪2.3 內(nèi)核裁剪2.3.1 刪除不使用的功能2.3.2 刪除不使用的驅(qū)動(dòng)2.3.3 修改內(nèi)核源代碼2.3.3.1 size工具.2.3.3.2 ksize.py腳本2.3.3.3 nm命令2.3.3.4 kernel壓縮方式.2.4 文件系統(tǒng)裁剪.2.4…

文章目錄

  • Tina_Linux_系統(tǒng)裁剪_開發(fā)指南
    • 1 概述
    • 2 Tina系統(tǒng)裁剪簡(jiǎn)介
      • 2.1 boot0裁剪
      • 2.2 uboot裁剪
      • 2.3 內(nèi)核裁剪
        • 2.3.1 刪除不使用的功能
        • 2.3.2 刪除不使用的驅(qū)動(dòng)
        • 2.3.3 修改內(nèi)核源代碼
          • 2.3.3.1 size工具.
          • 2.3.3.2 ksize.py腳本
          • 2.3.3.3 nm命令
          • 2.3.3.4 kernel壓縮方式.
      • 2.4 文件系統(tǒng)裁剪.
        • 2.4.1 應(yīng)用程序及冗余文件裁剪
        • 2.4.2 庫(kù)的裁剪
          • 2.4.2.1 C庫(kù)的選擇.
          • 2.4.2.2 刪除沒用到的庫(kù)
        • 2.4.3 應(yīng)用程序與庫(kù)strip
        • 2.4.4 文件系統(tǒng)壓縮.
    • 3 參考資料

Tina_Linux_系統(tǒng)裁剪_開發(fā)指南

1 概述

編寫目的:

嵌入式產(chǎn)品往往為了壓縮成本而使用較小的flash存儲(chǔ)器,因此可能需要對(duì)系統(tǒng)進(jìn)行裁剪來(lái)減少對(duì)flash的占用。系統(tǒng)經(jīng)過裁剪過后,通常也會(huì)提升啟動(dòng)速度以及減少內(nèi)存占用。
本文介紹TinaLinux中系統(tǒng)裁剪的方法,為有裁剪需求的使用者提供參考。

2 Tina系統(tǒng)裁剪簡(jiǎn)介

Tina固件中通常包含boot0、uboot、kernel、rootfs等鏡像?;诮?jīng)驗(yàn),各個(gè)鏡像尺寸的量級(jí)如下表所示:

表2-1:各鏡像尺寸的量級(jí)

鏡像大小
boot0< 100K
uboot< 1M
kernel>= 3M,< 15M
rootfs>= 4M

可以看到boot0、uboot、kernel、rootfs的尺寸是依次增大的。對(duì)于大尺寸的裁剪效果往往比小尺寸的裁剪效果明顯,比如rootfs裁剪1M可能很容易,對(duì)于uboot來(lái)說(shuō),則非常困難。

因此,后續(xù)主要介紹kernel以及rootfs的裁剪。

2.1 boot0裁剪

由于boot0很小,通常來(lái)說(shuō)boot0代碼也不開源,因此略過。

2.2 uboot裁剪

目前tina環(huán)境中有不同版本的uboot,分別存在兩個(gè)不同的文件路徑中,以實(shí)際sdk的目錄為準(zhǔn),cboot可以進(jìn)入到相應(yīng)的uoot目錄,這兩個(gè)路徑分別為lichee/brandy/u-boot或者lichee/brandy-2.0/u-boot

主要有下面兩種裁剪思路:

  • 修改uboot配置文件,刪減不需要的配置。uboot配置文件通常位于源碼下include/configs/CHIP.h或者configs/{CHIP}.h或者configs/CHIP.h或者configs/{CHIP}_*_defconfig。
  • 刪除不需要的uboot命令。

2.3 內(nèi)核裁剪

通常關(guān)于Linux內(nèi)核裁剪主要有如下方法:

  • 刪除不使用的功能。如符號(hào)表、打印、調(diào)試等功能。
  • 刪除不使用的驅(qū)動(dòng)。
  • 修改內(nèi)核源代碼。
  • 內(nèi)核壓縮。

2.3.1 刪除不使用的功能

下表中列出了一些內(nèi)核選項(xiàng),包含選項(xiàng)的描述,默認(rèn)值以及推薦值(減小內(nèi)核鏡像尺寸)。

表2-2:內(nèi)核選項(xiàng)及描述

CONFIG optionDescriptionDefSmall
CORE_SMALLtune some kernel data sizesNY
NET_SMALLtune some net-related data sizesNY
KMALLOC_ACCOUNTINGturn on kmalloc accountingNY *
AUDIT_BOOTMEMprint out all bootmem allocationsNY *
DEPRECATE_INLINEScause compiler to emit info about inlinesNY *
PRINTKprintk code and message dataYN
BUGallow elimination of BUG codeYN
ELF_COREallow disabling of ELF core dumpsYN
PROC_KCOREallow disabling of /proc/kcoreYN
AIO allowdisabling of async IO syscallsYN
XATTR allowdisabling of xattr syscallsYN
FILE_LOCKINGallow disabling of file locking syscallsYN
DIRECTIOallow disabling of direct IO supportYN
MAX_SWAPFILES_SHIFTnumber of swapfiles50
NR_LDISCSnumber of tty line disciplines162
MAX_USER_RT_PRIOnumber of RT priority levels1005
KALLSYMSload all symbols for debugging/kksymoopsYN
SHMEMallow disabling of shmem filesystemYN +
SWAPsupport for a swap segmentYN
SYSV_IPCsupport for System V IPCYN +
POSIX_MQUEUEPOSIX message queue supportYN +
SYSCTLallow disabling of sysctl supportYN +
LOG_BUF_SHIFTcontrol size of kernel printk buffer1411
CC_OPTIMIZE_FOR_SIZEUse gcc -os to optimize for sizeYY
MODULESallow support for kernel loadable modulesYN +
KMODautomatic kernel module loadingYN
PCIallow support for PCI bus and devicesYY -
XIP_KERNELallow support for kernel Execute-in-PlaceNN
BLK_DEV_LOOPsupport for loopback block deviceYY -
BLK_DEV_RAMblock devices for RAM filesystemsYY -
IOSCHED_ASInclude Anticipatory IO schedulerYY
IOSCHED_DEADLINEInclude Deadline IO schedulerYN +
IOSCHED_CFQInclude CFQ IO schedulerYN +
IP_PNPsupport for IP autoconfigurationYN +
IP_PNP_DHCPsupport for IP autoconfiguration via DHCPYN +
IDEsupport for IDE devicesYN +
SCSIsupport for SCSI devicesYN +

其中:

  • “Y *”-表示開發(fā)的時(shí)候設(shè)置成Y,發(fā)布的時(shí)候可以設(shè)置成N。
  • “N +”-表示基于應(yīng)用需要來(lái)判斷是否設(shè)置成N。
  • “Y -”-表示可能需要,可以設(shè)置N嘗試一下。

在Tina中,集成了CONFIG_REDUCE_KERNEL_SIZE宏。一旦使能該宏后,將會(huì)采用部分上面的裁剪措施來(lái)減小kernel鏡像尺寸,主要思路是關(guān)閉與log/debug等相關(guān)的配置,然后對(duì)kernel進(jìn)行xz壓縮,可參考tina/scripts/reduce-kernel-size.sh。

執(zhí)行make menuconfig,開啟如下選項(xiàng):

Tina Configuration
Target Images —>
[*] downsize the kernel size (EXPERIMENTAL)

說(shuō)明:此功能當(dāng)前是 EXPERIMENTAL 的。建議直接執(zhí)行 make kernel_menuconfig ,然后按照上述表格來(lái)配置。

2.3.2 刪除不使用的驅(qū)動(dòng)

方案明確之后,所需的內(nèi)核驅(qū)動(dòng)也明確了??梢詧?zhí)行make kernel_menuconfig,將沒有用到的驅(qū)動(dòng)關(guān)閉。

2.3.3 修改內(nèi)核源代碼

內(nèi)核源碼龐大,直接修改往往難度很大,可借助相關(guān)工具來(lái)評(píng)估模塊以及符號(hào)的大小,然后進(jìn)行針對(duì)性的裁剪。

2.3.3.1 size工具.

size命令可查看內(nèi)核鏡像的text、data、bss等段的大小。如執(zhí)行"size vmlinux",將會(huì)得到:

text data bss dec hex filename
5818117 1378944 168972 7366033 706591 vmlinux
2.3.3.2 ksize.py腳本

在tina/lichee/linux-4.9/scripts目錄下有一個(gè)ksize腳本,可以對(duì)內(nèi)核目錄下的built-in.o進(jìn)行解析,并將解析的內(nèi)容按照尺寸進(jìn)行排序,顯示出來(lái)。執(zhí)行結(jié)果如下所示:

Linux Kernel total | text data bss
--------------------------------------------------------------------------------
vmlinux 7366033 | 5818117 1378944 168972
--------------------------------------------------------------------------------
drivers/built-in.o 2244823 | 2080782 123885 40156
net/built-in.o 1682005 | 1630911 32590 18504
fs/built-in.o 975830 | 950780 5442 19608
kernel/built-in.o 678363 | 593347 41064 43952
mm/built-in.o 302442 | 272965 7309 22168
sound/built-in.o 237890 | 227338 6836 3716
security/built-in.o 170272 | 145055 13989 11228
block/built-in.o 149110 | 145408 2458 1244
crypto/built-in.o 145972 | 131610 7258 7104
lib/built-in.o 141721 | 141093 559 69
init/built-in.o 33551 | 18558 14909 84
ipc/built-in.o 29998 | 29218 772 8
usr/built-in.o 138 | 138 0 0
--------------------------------------------------------------------------------
sum 6792115 | 6367203 257071 167841
delta 573918 | -549086 1121873 1131
drivers total | text data bss
--------------------------------------------------------------------------------
drivers/built-in.o 2244823 | 2080782 123885 40156
--------------------------------------------------------------------------------
drivers/usb/built-in.o 448756 | 409279 27813 11664
drivers/block/built-in.o 357202 | 324752 21582 10868
drivers/tty/built-in.o 174213 | 155371 13938 4904
drivers/base/built-in.o 157961 | 153861 3460 640
drivers/mmc/built-in.o 133678 | 131782 1756 140
drivers/scsi/built-in.o 105021 | 95105 9348 568
drivers/md/built-in.o 100909 | 98382 1291 1236
drivers/mtd/built-in.o 96023 | 92244 1467 2312
drivers/hid/built-in.o 86072 | 81552 4160 360
drivers/clk/built-in.o 69737 | 58289 10856 592
drivers/cpufreq/built-in.o 51525 | 44400 1793 5332
drivers/pinctrl/built-in.o 50463 | 46458 3921 84
drivers/input/built-in.o 45250 | 44046 1156 48
drivers/i2c/built-in.o 43511 | 42791 656 64
drivers/spi/built-in.o 39888 | 38323 1557 8
drivers/thermal/built-in.o 38654 | 36673 1893 88
drivers/regulator/built-in.o 36217 | 35257 820 140
drivers/of/built-in.o 35994 | 35095 407 492
drivers/gpio/built-in.o 29432 | 29167 224 41
drivers/leds/built-in.o 25548 | 25076 464 8
drivers/rtc/built-in.o 25072 | 24428 460 184
drivers/tee/built-in.o 24823 | 24662 113 48
drivers/char/built-in.o 23718 | 21642 1224 852
drivers/soc/built-in.o 20916 | 13980 6804 132
drivers/bluetooth/built-in.o 20223 | 19319 100 804
drivers/dma/built-in.o 17892 | 17458 334 100
drivers/irqchip/built-in.o 14767 | 12371 2308 88
drivers/pwm/built-in.o 14636 | 14036 472 128
drivers/dma-buf/built-in.o 13975 | 13904 23 48
drivers/cpuidle/built-in.o 12613 | 10848 1749 16
drivers/watchdog/built-in.o 9986 | 9660 281 45
drivers/power/built-in.o 9836 | 8296 1224 316
drivers/clocksource/built-in.o 9608 | 8708 796 104
drivers/misc/built-in.o 8471 | 8105 340 26
drivers/bus/built-in.o 6357 | 5691 618 48
drivers/hwmon/built-in.o 5230 | 5054 144 32
drivers/hwspinlock/built-in.o 4792 | 4664 128 0
drivers/firmware/built-in.o 4453 | 4384 9 60
drivers/reset/built-in.o 3818 | 3686 132 0
drivers/net/built-in.o 1803 | 1755 48 0
drivers/mfd/built-in.o 1623 | 1511 108 4
drivers/video/built-in.o 379 | 379 0 0
--------------------------------------------------------------------------------
sum 2381045 | 2212444 125977 42624
delta -136222 | -131662 -2092 -2468
net total | text data bss
--------------------------------------------------------------------------------
net/built-in.o 1682005 | 1630911 32590 18504
--------------------------------------------------------------------------------
net/ipv4/built-in.o 428233 | 401161 14719 12353
net/mac80211/built-in.o 302085 | 301822 259 4
net/core/built-in.o 267334 | 256693 8573 2068
net/bluetooth/built-in.o 227913 | 226708 1033 172
net/wireless/built-in.o 160236 | 158651 557 1028
net/xfrm/built-in.o 74537 | 72737 1384 416
net/bridge/built-in.o 59936 | 58812 1112 12
net/sched/built-in.o 29706 | 28344 1346 16
net/packet/built-in.o 26453 | 26172 281 0
net/netlink/built-in.o 26105 | 25498 455 152
net/unix/built-in.o 24671 | 22266 340 2065
net/key/built-in.o 21095 | 20783 308 4
net/*.o 16279 | 15811 412 56
net/8021q/built-in.o 15245 | 14981 264 0
net/ipv6/built-in.o 9445 | 8295 1136 14
net/rfkill/built-in.o 7142 | 6710 408 24
net/ethernet/built-in.o 2431 | 2391 40 0
net/llc/built-in.o 2068 | 1980 72 16
net/802/built-in.o 1944 | 1792 140 12
--------------------------------------------------------------------------------
sum 1702858 | 1651607 32839 18412
delta -20853 | -20696 -249 92
fs total | text data bss
--------------------------------------------------------------------------------
fs/built-in.o 975830 | 950780 5442 19608
--------------------------------------------------------------------------------
fs/*.o 351665 | 339511 1774 10380
fs/ext4/built-in.o 295807 | 294110 1125 572
fs/jffs2/built-in.o 99642 | 99446 124 72
fs/proc/built-in.o 77696 | 73111 377 4208
fs/fat/built-in.o 49264 | 49088 144 32
fs/jbd2/built-in.o 47379 | 47254 65 60
fs/overlayfs/built-in.o 24939 | 24842 93 4
fs/squashfs/built-in.o 23156 | 23092 60 4
fs/kernfs/built-in.o 21086 | 16863 111 4112
fs/configfs/built-in.o 18193 | 17916 261 16
fs/debugfs/built-in.o 16120 | 16056 52 12
fs/pstore/built-in.o 13904 | 13531 325 48
fs/crypto/built-in.o 13083 | 12799 264 20
fs/notify/built-in.o 12525 | 12186 227 112
fs/nls/built-in.o 11024 | 10904 116 4
fs/sysfs/built-in.o 7041 | 6990 39 12
fs/devpts/built-in.o 3359 | 2986 365 8
fs/ramfs/built-in.o 1820 | 1776 40 4
--------------------------------------------------------------------------------
sum 1087703 | 1062461 5562 19680
delta -111873 | -111681 -120 -72
kernel total | text data bss
--------------------------------------------------------------------------------
kernel/built-in.o 678363 | 593347 41064 43952
--------------------------------------------------------------------------------
kernel/*.o 376931 | 346029 17531 13371
kernel/sched/built-in.o 127386 | 119841 6265 1280
kernel/time/built-in.o 101386 | 89633 7465 4288
kernel/printk/built-in.o 55033 | 18477 8444 28112
kernel/irq/built-in.o 47323 | 44325 906 2092
kernel/rcu/built-in.o 29815 | 27655 2131 29
kernel/locking/built-in.o 25617 | 25592 21 4
kernel/power/built-in.o 16652 | 15256 848 548
kernel/bpf/built-in.o 8348 | 7988 68 292
--------------------------------------------------------------------------------
sum 788491 | 694796 43679 50016
delta -110128 | -101449 -2615 -6064
sound total | text data bss
--------------------------------------------------------------------------------
sound/built-in.o 237890 | 227338 6836 3716
--------------------------------------------------------------------------------
sound/soc/built-in.o 125556 | 119220 5416 920
sound/core/built-in.o 108923 | 104799 1400 2724
sound/*.o 6612 | 6440 28 144
--------------------------------------------------------------------------------
sum 241091 | 230459 6844 3788delta -3201 | -3121 -8 -72
security total | text data bss
--------------------------------------------------------------------------------
security/built-in.o 170272 | 145055 13989 11228
--------------------------------------------------------------------------------
security/selinux/built-in.o 142606 | 119156 12250 11200
security/keys/built-in.o 31690 | 30618 788 284
security/*.o 25826 | 24091 1719 16
security/integrity/built-in.o 1838 | 1806 20 12
--------------------------------------------------------------------------------
sum 201960 | 175671 14777 11512
delta -31688 | -30616 -788 -284
block total | text data bss
--------------------------------------------------------------------------------
block/built-in.o 149110 | 145408 2458 1244
--------------------------------------------------------------------------------
block/*.o 145968 | 142021 2699 1248
block/partitions/built-in.o 7563 | 7543 16 4
--------------------------------------------------------------------------------
sum 153531 | 149564 2715 1252
delta -4421 | -4156 -257 -8
lib total | text data bss
--------------------------------------------------------------------------------
lib/built-in.o 141721 | 141093 559 69
--------------------------------------------------------------------------------
lib/*.o 216133 | 214935 1092 106
lib/zlib_inflate/built-in.o 11187 | 11187 0 0
lib/xz/built-in.o 8215 | 8179 36 0
lib/lzo/built-in.o 2551 | 2551 0 0
lib/lz4/built-in.o 1188 | 1188 0 0
--------------------------------------------------------------------------------
sum 239274 | 238040 1128 106
delta -97553 | -96947 -569 -37

可以對(duì)各個(gè)模塊的代碼段數(shù)據(jù)段的統(tǒng)計(jì)信息進(jìn)行確認(rèn),對(duì)占用空間大的進(jìn)行針對(duì)性優(yōu)化。

2.3.3.3 nm命令

nm命令可查看內(nèi)核模塊中各個(gè)符號(hào)的尺寸。如執(zhí)行"nm --size -r vmlinux | head -10",可得到:

00004000 b __log_buf
00003e58 D nand_tbl
00003b14 T __blockdev_direct_IO
0000398c T hidinput_connect
00002f6c t ext4_fill_super
000027fc T hci_event_packet
0000245c t l2cap_recv_frame
000023d4 T dev_ethtool
00002274 t test_atomics
000020e4 t nl80211_send_wiphy

說(shuō)明,一共有三列數(shù)據(jù),分別表示大小、符號(hào)類型、符號(hào)名。其中符號(hào)類型:

  • b/B -符號(hào)位于bss段。
  • t/T -符號(hào)位于text段。
  • d/D -符號(hào)位于data段。

如果某些函數(shù)或者全局變量占用較大,可以進(jìn)行針對(duì)性的優(yōu)化。

2.3.3.4 kernel壓縮方式.

tina環(huán)境提供了幾種壓縮格式方式,選擇方式為make kernel_menuconfig:

General setup --->Kernel compression mode (Gzip) --->(X) Gzip( ) LZMA( ) XZ( ) LZO( ) LZ

同一個(gè)kernel鏡像使用不同的壓縮方式,鏡像大小如下表所示:

壓縮方式鏡像大小加載內(nèi)核時(shí)間(從falsh加載到dram的時(shí)間)解壓時(shí)間總時(shí)間
GZIP2.31M124ms89ms213ms
LZO2.53M136ms23ms159ms
LZ42.68M143ms27ms170ms
XZ1.95M104ms667ms771ms

2.4 文件系統(tǒng)裁剪.

對(duì)于文件系統(tǒng)裁剪來(lái)說(shuō),主要思路是刪、換、壓。

  • 刪。刪除不需要的內(nèi)容。如幫助文檔、沒用到的庫(kù)、調(diào)試程序等。
  • 換。使用小尺寸的實(shí)現(xiàn)替換大尺寸的實(shí)現(xiàn)。如使用musl libc庫(kù)替換glibc庫(kù)等。
  • 壓。使用合適的壓縮算法。

2.4.1 應(yīng)用程序及冗余文件裁剪

在不影響整體功能的情況下,一些應(yīng)用程序或冗余文件往往可以刪除:

  • 調(diào)試工具。比如tcpdump、mpstat、strace等等。
  • 性能測(cè)試工具。比如lmbench、sysstat、tiobench等等。
  • 冗余文件。幫助文檔、輔助程序、配置文件和數(shù)據(jù)模塊等,又比如很多應(yīng)用有相同的共能,只留其一。
  • 采用具有通用功能的替代軟件包。Linux上有許多具有相似功能的軟件包,可以選擇其中占存儲(chǔ)空間較小的軟件包并移植到嵌入式設(shè)備上。
  • 資源文件。一些音視頻以及UI資源往往占用很大空間,如果沒有用到,也需要?jiǎng)h除。

2.4.2 庫(kù)的裁剪

關(guān)于庫(kù)的裁剪主要有兩個(gè)思路:

  • 使用較小的C庫(kù),如musl libc,uclibc等來(lái)替換glibc。
  • 刪除沒有用到的庫(kù)。
2.4.2.1 C庫(kù)的選擇.

下表列出了當(dāng)前一些通用的C庫(kù)及其特征。

表2-4:常用C庫(kù)及其特征

C庫(kù)環(huán)境大小優(yōu)點(diǎn)缺點(diǎn)
glibcDistribution強(qiáng)大穩(wěn)定,支持最多的cpu架構(gòu)占用空間大
uclibcEmbedded為嵌入式設(shè)計(jì),可配置性好不支持libdb與libnss
bionicAndroid提供了Android特性的函數(shù)不提供libthread_db/libm
muslEmbedded更小,高效靜態(tài)鏈接,穩(wěn)定支持較少的cpu arch

當(dāng)前Tina環(huán)境下可支持glibc與musl libc兩種C庫(kù)。具體可通過menuconfig的方式來(lái)配置

使用哪一套。

[*] Advanced configuration options (for developers) --->Select external toolchain C library (Use glibc) --->

注意,更換C庫(kù)后,需要清除方案編譯產(chǎn)物(可執(zhí)行make distclean),重新編譯。

2.4.2.2 刪除沒用到的庫(kù)

嵌入式產(chǎn)品通常應(yīng)用程序有限,因此可能存在很多庫(kù)不會(huì)被用到,可以進(jìn)行刪除。

當(dāng)前Tina環(huán)境提供了一種刪除方法,執(zhí)行make menuconfig,打開如下選項(xiàng):

Tina ConfigurationTarget Images --->[*] downsize the root filesystem or initramfs

打開之后,在生成rootfs/initramfs之前會(huì)對(duì)其中沒有用到的庫(kù)進(jìn)行刪除。

具體可參考scripts/reduce-rootfs-size.sh文件,其主要思路是:

  • 分析rootfs下的應(yīng)用程序所依賴的庫(kù)。
  • 分析“應(yīng)用程序依賴庫(kù)”所依賴的庫(kù),一直遞歸下去,直到完全找出所有依賴的庫(kù)。
  • 根據(jù)上述查找結(jié)果,刪除沒有被依賴的庫(kù)。

說(shuō)明:此方法有一定的限制:

  • 當(dāng)前只分析 /lib /usr/lib 下的庫(kù),其他目錄不會(huì)處理。
  • 對(duì)于部分使用 dlopen 的應(yīng)用程序,解析庫(kù)可能會(huì)出現(xiàn)問題。

2.4.3 應(yīng)用程序與庫(kù)strip

strip會(huì)去掉應(yīng)用程序與庫(kù)的符號(hào)信息和調(diào)試信息,大大減少空間占用。

當(dāng)前Tina環(huán)境下默認(rèn)開啟了strip功能,如果沒開啟,請(qǐng)確保開啟以減少空間占用。

Tina ConfigurationGlobal build settings --->Binary stripping method (strip) --->

說(shuō)明:Tina 上還支持 sstrip ,即 super strip ,相對(duì)于 strip 來(lái)說(shuō),更能減少應(yīng)用與庫(kù)的大小。

2.4.4 文件系統(tǒng)壓縮.

有些文件系統(tǒng)支持壓縮,有些不支持。下表列出了常見的文件系統(tǒng)類型:

表2-5:常用文件系統(tǒng)類型

FS使用壓縮讀寫備 注
ext2block device無(wú)RW突然斷電或當(dāng)機(jī)時(shí)可能導(dǎo)致數(shù)據(jù)丟失
ext3block device無(wú)RW向前兼容ext3,日志式文件系統(tǒng),非常成熟穩(wěn)定
ext4block device無(wú)RW向前兼容ext2和ext3,擴(kuò)展存儲(chǔ)限制,提升性能
btrfsblock deviceRW著重于容錯(cuò)、修復(fù)及易管理
FATblock device無(wú)RWWindows,長(zhǎng)期使用速度變慢,不支持>4G文件
NTFSblock deviceRWWindows,基于FAT做若干改進(jìn),日志文件系統(tǒng)
CramfsNAND Flash無(wú)RO2013停用,使用Squashfs
SquashfsRaw FlashRO壓縮度更高,沒有大小限制
UBIFSRaw FlashRW基于JFFS2,Linux3.7之后
JFFS2Raw FlashRWmount時(shí)間很慢,讀寫性能不好
YAFFS2NAND Flash無(wú)RW沒有透明壓縮,不在Linux主線

當(dāng)前Tina環(huán)境下比較常用的是squahfs、ext4、jfss2三種文件系統(tǒng)。具體可執(zhí)行makemenu-

config進(jìn)行選擇:

Tina ConfigurationTarget Images --->*** Root filesystem images ***[ ] ext4 ----[ ] jffs[*] squashfs --->

常見的壓縮有l(wèi)zop,gzip,xz等,壓縮率最高的是xz。但是xz壓縮解壓最慢,非常影響啟動(dòng)速度。實(shí)際在選擇壓縮方式時(shí)應(yīng)綜合考慮。

3 參考資料

  • [1] https://elinux.org/Kernel_Size_Tuning_Guide
  • [2] Karim Yaghmour. Building Embedded Linux Systems [M]
  • [3] Michael Opdenacker. Embedded Linux size reduction techniques
  • [4] https://tiny.wiki.kernel.org/
http://www.risenshineclean.com/news/54036.html

相關(guān)文章:

  • 酒店預(yù)定網(wǎng)站建設(shè)方案北京疫情太嚴(yán)重了
  • 網(wǎng)站建設(shè)專項(xiàng)檢查上海seo怎么優(yōu)化
  • 怎么用自己的電腦做服務(wù)器發(fā)布網(wǎng)站濟(jì)南做seo排名
  • 百度網(wǎng)站提交入口百度怎么發(fā)外鏈
  • 高仿服裝網(wǎng)站建設(shè)東莞關(guān)鍵詞seo優(yōu)化
  • 微信公眾平臺(tái)小程序是什么寧波seo網(wǎng)站服務(wù)
  • 北京做網(wǎng)站站長(zhǎng)工具麻豆
  • 做室內(nèi)裝修的網(wǎng)站seo排名優(yōu)化培訓(xùn)價(jià)格
  • 酷炫網(wǎng)站設(shè)計(jì)風(fēng)格北京做網(wǎng)站推廣
  • 網(wǎng)站建設(shè)這個(gè)工作怎么樣天津建站網(wǎng)
  • 公司網(wǎng)站建設(shè)方案詳細(xì)方案軟文推廣產(chǎn)品
  • 北京網(wǎng)站開發(fā)網(wǎng)站開發(fā)公司seo網(wǎng)站優(yōu)化培訓(xùn)找哪些
  • 通遼做家教的網(wǎng)站seo營(yíng)銷優(yōu)化
  • 貼吧廣告投放seo前線
  • 武漢網(wǎng)站建設(shè) 網(wǎng)站制作市場(chǎng)營(yíng)銷的策劃方案
  • 做外包的網(wǎng)站有哪些優(yōu)化大師官方下載
  • 高端定制網(wǎng)站開發(fā)網(wǎng)站模板設(shè)計(jì)關(guān)鍵詞搜索愛站網(wǎng)
  • seo 服務(wù)如何優(yōu)化網(wǎng)站
  • 高校后勤網(wǎng)站建設(shè)要求二級(jí)域名和一級(jí)域名優(yōu)化難度
  • 網(wǎng)站建設(shè)資料準(zhǔn)備標(biāo)準(zhǔn)江西seo推廣軟件
  • 網(wǎng)站建設(shè)免湖南seo網(wǎng)站開發(fā)
  • 設(shè)計(jì)公司網(wǎng)站建設(shè)2022年最近十大新聞
  • 唐山房產(chǎn)網(wǎng)站建設(shè)東莞網(wǎng)絡(luò)推廣平臺(tái)
  • 微信網(wǎng)站建設(shè)公司衡水seo優(yōu)化
  • 怎么做彩票網(wǎng)站seol英文啥意思
  • 棗莊網(wǎng)站設(shè)計(jì)怎么有自己的網(wǎng)站
  • 三亞高端服務(wù)網(wǎng)站輕松seo優(yōu)化排名 快排
  • 企業(yè)做網(wǎng)站建設(shè)鎮(zhèn)江網(wǎng)站建設(shè)
  • 廣州市網(wǎng)站建設(shè)制作設(shè)計(jì)平臺(tái)廣州今天新聞
  • 蘄春做網(wǎng)站google瀏覽器入口