當前位置:首頁 » 操作系統 » linux搭建環境搭建

linux搭建環境搭建

發布時間: 2023-08-16 02:05:12

『壹』 嵌入式linux系統開發的具體步驟_嵌入式linux系統的搭建流程和要點

第一步、建立交叉編譯環境

沒有交叉開發經驗的讀者,可能一時很難接受這個概念。首先,要明白兩個概念:一般我們工作的機器,稱為開發機、主機;我們製作好的系統將要放到某台機器,如手機或另一台PC機,這台機我們稱為目標主機。

我們一般開發機上已經有一套開發工具,我們稱之為原生開發套件,我們一般就是用它們來寫程序,那麼,那什麼又是交叉編譯環境呢?其實一點也不神秘,也就是在開發岩困機上再安裝一套開發工具,這套開發工具編譯出來的程序,如內核、系統工作或者我們自己的程序,是放在目標主機上運行的。

那麼或許有初學者會問,直接用原生開發工具為目標主機編譯程序不就完了?至少我當初是這么想的。此棗絕一般來說,我們的開發機都是X86平台,原生開發套件開發的工具,也針對X86平台,而我們的目標主機可能是PowerPC、IXP、MIPS所以,我們的交叉編譯環境是針對某一類具體平台的。

一般來講,交叉開發環境需要二進制工具程序、編譯器、C鏈接庫,嵌入式開發常用的

這三類軟體是:BinutilsGuClibc

當然,GNU包含的工具套件不僅於此,你還要以根據實際需要,進行選擇

第二步、編譯內核

開發工具是針對某一類硬體平台,內核同樣也是。這一步,我們需要用第一步中建立的工具,對內核進行編譯,對於有內核編譯經驗的人來說,這是非常簡單的;

第三步、建立根文件系統

也就是建立我們平常看到的bin、dev、proc這一大堆目錄,以及一些必備的文件;

另外,我們還需要為我們的目標系統安裝一些常用的工具軟體,如ls、ifconfig當然,一個辦法是找到這些工具的源代碼,用第一步建立的交叉編譯工具來編譯,但是這些軟體一是森姿數量多,二是某些體積較大,不適合嵌入式系統,這一步,我們一般都是用busybox來完成的,包括系統引導軟體init;

最後,我們為系統還需要建立初始化的引導文件,如inittab

『貳』 Linux環境下C開發_linux搭建c語言開發環境

一:C語言嵌入式Linux工程師的學習需要具備一定的C語言基礎,C語言是嵌入式領域最重要也是最主要的編程語言,通過大量編程實例重點理解C語言的基礎編程以及高級編程知識。包括:基本數據類型、數組、指針、結構體、鏈表、文件操作、隊列、棧等。

二:Linux基礎Linux操作系統的概念、安裝方法,詳細了解Linux下的目錄結構、基本命令、編輯器VI,編譯器GCC,調試器GDB和Make項目管理工具,ShellMakefile腳本編寫等知識,嵌入式開發環境的搭建。

三:Linux系統編程重點學習標准I/O庫,Linux多任務編程中的多進程和多線程,以及進程間通信(pipe、FIFO、消息隊列、共享內存、signal、信號量等),同步與互斥對共享資源訪問控制等重要知識,主要提升對Linux應用開發的理解和代碼調試的能力。

四:Linux網路編程計算機網路在嵌入式Linux系統應用開發過程中使用非常廣泛,通過Linux網路發展、TCP/IP協議、socket編程、TCP網路編程、UDP網路編程、Web編程開發等方面入手,全面了解Linux網路應用程序開發。重點學習網路編程相關API,熟練掌握TCP協議伺服器的編程方法和並發伺服器的實現,了解HTTP協議及其實現方法,熟悉UDP廣播、多播的原理及編程方法,掌握混合C/S架構網路通信系統的設計,熟悉HTML,javascript等Web編程技術及實現方法。

五:數據結構與演算法數據結構及演算法在嵌入式底層驅動、通信協議、及各種引擎開發中會得到大量應用,對其掌握的好壞直接影響程序的效率、簡潔及健壯旅瞎性。此階段的學習要重點理解數據結構與演算法的基礎內容,包括順序表、鏈表、隊列、棧、樹、圖、哈希表、各種查找排序演算法等應用及其C語言實現過程。

六:C、QTC是Linux應用開發主要語言之一,本階段重點掌握面向對象編程的基本思想以及C的重要內容。圖形界面編程是嵌入式開發中非常重要的一個環節。由於QT具有跨平台、面向對象、豐富API、支持2D/3D渲染、支持XML、多國語等強大功能,在嵌入式領域的GUI開發中得到了廣范的應用,在本階段通過基於QT圖形庫的學習使學員可以熟練編寫GUI程序,並移植QT應用程序到Cortex-A8平台。包括IDE使用、QT部件及布局管理器、信息與槽機制的應用、滑鼠、鍵盤及繪圖事件處理及文件處理的應用。

七:CortexA8、Linux平台開發通過基於ARMCortex-A8處理s5pv210了解晶元手冊的基本閱讀技巧,掌握s5pv210系統資源、時鍾控制器、電源管理、異常中斷控制器、nandflash控制器等模塊,為底層平台搭建做好准備。Linux平台包括內核裁減、內核移植、交叉編譯、GNU工具使用、內核調試、Bootloader介紹、製作與原理分析、根文件系統製作以及向內核中添加自己的模塊,並在s5pv210實驗平台上運行自己製作的Linux系統,集成部署Linux系統整個流程。同時了解Android操作系統開發流程。Android系統是基於Linux平台的開源操作系統,該平台由操作系統、中間件、用戶界面和應用軟體組成,是首個為移動終端打造的真正開放和完整的移動軟體,目前它的應用不再局限於移動終端,還包括數據電視、機頂盒、PDA等消費類電子產品。

八:驅動開發拆顫空驅動程序設計是嵌入式Linux開發工作中重要的一部分,也是比較困難的一部分。本階洞租段的學習要熟悉Linux的內核機制、驅動程序與用戶級應用程序的介面,掌握系統對設備的並發操作。熟悉所開發硬體的工作原理,具備ARM硬體介面的基礎知識,熟悉ARMCortex-A8處理器s5pv210各資源、掌握Linux設備驅動原理框架,熟悉工程中常見Linux高級字元設備、塊設備、網路設備、USB設備等驅動開發,在工作中能獨立勝任底層驅動開發。

以上就是列出的關於一名合格嵌入式Linux開發工程師所必學的理論知識,其實,作為一個嵌入式開發人員,專業知識和項目經驗同樣重要,所以在我們的理論學習中也要有一定的項目實踐,鍛煉自己的項目開發能力。

『叄』 來學一學LINUX系統中SHELL環境的搭建技巧

什麼是 LINUX SHELL環境?shell在會話中會保存著大量信息,而這些信息就是shell環境。LINNX命令程序通過獲取SHELL環境中的數據(此處的數據通常稱為環境變數)來輸出本機相應的配置數據。


LINUX環境變數

Linux shell環境中存儲了兩種基本類型的數據:環境變數和shell變數。當然,除了變數,shell也存儲了一些可編程的數據,即別名和shell 函數。

如何查看環境變數呢?

我們可以用bash命令set,或者使用printenv命令程序來查看環境變數。

它們的區別是:set 命令不僅顯示shell數據,而且可以顯示環境變數列表,而printenv命令僅僅顯示環境變數列表。

鑒於環境變數列表比較長,我們可以將每個命令的輸出通過管道符傳遞給less 來輸出列表,例如:

//執行命令

[test@linuxprobe ~]$ printenv | less

//輸出內容:環境變數及其數值的列表

KDE_MULTIHEAD=false

SSH_AGENT_PID=6666

HOSTNAME= linuxprobe

GPG_AGENT_INFO=/tmp/gpg-PdOt7g/S.gpg-agent:6689:1

SHELL=/bin/bash

TERM=xterm

XDG_MENU_PREFIX=kde-

HISTSIZE=1000

XDG_SESSION_COOKIE=-1208521990.996705

-1177056199

GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/home/me/.gtkrc-2.0:/home/me/.kde/sh

are/config/gtkrc-2.0

GTK_RC_FILES=/etc/gtk/gtkrc:/home/me/.gtkrc:/home/me/.kde/share/confi

g/gtkrc

GS_LIB=/home/me/.fonts

WINDOWID=29360136

QTDIR=/usr/lib/qt-3.3

QTINC=/usr/lib/qt-3.3/include

KDE_FULL_SESSION=true

USER=test

LS_COLORS=no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01

:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe:


//printenv 命令也可輸出特定變數- USER的數值:

[test@linuxprobe ~]$ printenv USER

test




建立LINUX shell 環境


每當我們登錄系統後,bash 程序就會自動啟動,且會讀取一系列配置腳本,這些配置腳本被稱為啟動文件。這些啟動文件定義了可供所有用戶共享的默認shell 環境。

那麼位於家目錄中的啟動文件,定義了用戶個人的shell 環境。

確切的啟動順序取決於shell 會話類型模式。有兩種shell 會話類型模式:一個是登錄shell 會話模式,另一個是非登錄shell 會話模式。

登錄shell 會話模式中會提示用戶輸入用戶名和密碼;非登錄shell 會話模式通常在GUI下啟動終端會話時出現。

登錄shell 會話模式下啟動文件內容:


非登錄shell 會話模式下啟動文件內容:


修改linux shell環境

依據通常的操作思路,通過添加目錄到PATH 變數或定義新的環境變數,再把這些更改存放至.bash_profile 文件中;那麼對於其它的更改呢,需要存放至.bashrc 文件中。

除了系統管理員具將系統中的所有用戶修改默認設置的許可權外,其他用戶只能限定對個人家目錄下的文件進行修改。

我們通過使用一個叫做文本編輯器的程序來編輯(或讀、寫)shell 的啟動文件以及其它配置文件。文本編輯器是一個類似於文字處理器的程序,允許使用移動游標在屏幕上編輯。但不同之處在於文本編輯器不僅支持純文本,而且常包含為便於寫程序而設計的特性。由此可見,文本編輯器是開發人員用來寫代碼,以及系統管理員用來管理控制系統的配置文件的重要工具之一。

文本編輯器通常分為兩種基本類型:圖形化的和非圖形化的(基於文本)編輯器。

一些典型的圖形化編輯器有GNOME 和KDE。GNOME編輯器自帶了gedit 的編輯器,它通常在GNOME 菜單中稱為「文本編輯器」。KDE自帶了三種編輯器,分別是kedit,kwrite,kate。

那麼基於文本的編輯器有nano、vi 和emacs。

nano 編輯器是一個簡單易用的編輯器。vi 編輯器(目前已被vim (「Vi IMproved」 的簡寫)替代)是類Unix 操作系統的傳統編輯器。emacs 編輯器屬於龐大的、多用途的,可做任何操作的編程環境。

無論哪種類型的文本編輯器都可以在命令行中輸入編輯器的名字及想要編輯的文件名,執行文本編輯操作。在這篇文章中,我們學到了用文本編輯器來編輯配置文件的基本技巧。

這篇文章主要討論了linux SHELL環境的一些基礎知識及基本的操作技巧。在編寫這篇文章過程中我還參考了 《Linux就該這么學(第2版)》 這本書,基於紅帽8編寫,內容很貼近實踐,很有理論指導實踐價值的一本書籍。

『肆』 linux 的環境搭建(二)--redis單機環境、生產環境、集群環境的搭建

一、目錄
1、工具
2、安裝tcl
3、安裝單機版redis
4、把redis設置為daemon進程,每次系統啟動,redis進程一起啟動
5、安裝redis cluster
二、工具
2.1、tcl8.6.1-src.tar.gz
2.2、ruby-2.3.1.tar.gz
2.3、redis-4.1.1.gem
2.4、redis-3.2.8.tar.gz
2.5、openssl-1.0.2r.tar.gz
三、安裝tcl(安裝redis必須先要安裝tcl)

3.1、把tcl8.6.1-src.tar.gz通過WinSCP上傳到虛擬機中的/usr/local目錄下

四、安裝單機版redis
4.1、把redis-3.2.8.tar.gz通過WinSCP上傳到虛擬機中的/usr/local目錄下

4.2、依次運行如下命令:
tar -zxvf redis-3.2.8.tar.gz 解壓文件
cd redis-3.2.8
make && make test && make install

五、把redis設置為daemon進程,每次系統啟動,redis進程一起啟動
5.1、將redis的utils目錄下的redis_init_script腳本拷貝到linux的/etc/init.d目錄中,將redis_init_script重命名為redis_6379,6379是我們希望這個redis實例監聽的埠號

5.2、修改redis_6379腳本的第6行的REDISPORT,設置為相同的埠號(默認就是6379)

protected-mode no 取消保護模式,保護模式只能127.0.0.1訪問
daemonize yes 讓redis以daemon進程運行
pidfile /var/run/redis_6379.pid 設置redis的pid文件位置
bind 192.168.3.110
port 6379 設置redis的監聽埠號
dir /var/redis/6379 設置持久化文件的存儲位置
logfile /var/log/redis/6379.log 設置日誌文件位置
5.6、啟動redis,依次執行:
cd /etc/init.d,
chmod 777 redis_6379,賦讀寫執行的許可權(chmod -R 777 * 是遞歸把該目錄下的所有文件和其子文件全部賦許可權)
./redis_6379 start 啟動

5.7、確認redis進程是否啟動,ps -ef | grep redis

5.8、讓redis跟隨系統啟動自動啟動

5.9、重啟系統,不手動啟動redis,直接連接redis,可以連接上,表示配置成功

此時一個單機版的redis的生產環境已經搭建好了,每次伺服器重啟,redis都會自動的啟動

六、安裝redis cluster
(redis cluster集群,要求至少3個master,去組成一個高可用,健壯的分布式的集群,每個master都建議至少給一個slave,3個master,3個slave)
6.1、前提,我在其它機器上啟動了六個redis(安裝步驟都如下)
2.2、創建三個目錄:
mkdir -p /etc/redis-cluster 存放集群配置信息,自動生成配置
mkdir -p /var/log/redis redis日誌
mkdir -p /var/redis/7001 存放redis的rdb文件和aof文件
6.3、將redis的utils目錄下的redis_init_script腳本拷貝到linux的/etc/init.d目錄中,將redis_init_script重命名為redis_7001,7001是我們希望這個redis實例監聽的埠號,並修改redis_7001配置文件中的REDISPORT=7001
6.4、修改/etc/redis/7001.conf中的部分配置為生產環境

6.5、完成了一個redis環境的配置,依次再配置其餘五個,分別為7002、7003、7004、7005、7006,每個啟動腳本內,都修改對應的埠號

6.6、啟動6個redis實例
6.7、創建集群(需要安裝ruby、rubygems)

上述命令在部分機器上是可以直接運行完成,成功安裝的,但在部分機器上運行第三條命令時會提示ruby版本太低、openssl找不到的問題,下面依次解決這兩個問題:

6.8、再次運行gem install redis命令,報出兩個錯誤

6.9、再次運行gem install redis命令,報出一個錯誤

6.10、再次運行gem install redis命令,報出一個錯誤

6.11、再次運行gem install redis命令
[root@ceshi01 local]# gem install redis
Successfully installed redis-4.1.1
Parsing documentation for redis-4.1.1
Done installing documentation for redis after 1 seconds
WARNING: Unable to pull data from ' https://rubygems.org/' : SSL_connect returned=1 errno=0 state=error: certificate verify failed ( https://api.rubygems.org/specs.4.8.gz )
1 gem installed
運行成功

此時Redis安裝好,此三個工具也安裝好了,這時我們來做一個Redis集群測試,在一台伺服器中創建了6個Redis實例,開啟6個Redis服務
redis-trib.rb create --replicas 1 192.168.3.104:7001 192.168.3.104:7002 192.168.3.105:7003 192.168.3.105:7004 192.168.3.106:7005 192.168.3.106:7006

[root@eshop-cache02 init.d]# redis-trib.rb create --replicas 1 192.168.3.104:7001 192.168.3.104:7002 192.168.3.105:7003 192.168.3.105:7004 192.168.3.106:7005 192.168.3.106:7006

此時一個redis集群環境就已經搭建好了,可以通過redis-trib.rb check 192.168.3.105:7003命令查看集群幾點的信息

[root@eshop-cache02 init.d]# redis-trib.rb check 192.168.3.105:7004

redis cluster的優點:讀寫分離+高可用+多master
讀寫分離:每個master都有一個slave
高可用:master宕機,slave自動被切換過去
多master:橫向擴容支持更大數據量

『伍』 Linux下docker基礎環境搭建

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

# 報錯:curl: (6) Could not resolve host: get.docker.com; 未知的錯誤

# 解決:cat /etc/resolv.conf 里加了個 nameserver 8.8.8.8

sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

驗證安裝:docker-compose --version

# compose 那個亞馬遜的老是下載不了,可換對應地址:

sudo curl -L https://get.cloud.io/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose


查看docker版本: docker --version

啟動docker: systemctl start docker 或者 service docker start

停止docker: systemctl stop docker

查看docker鏡像文件: docker images

查看docker內容器: docker ps -a


修改 /etc/dockers 文件下的配置文件 daemon.json (配置作用參考附錄)

操作完成後需要重啟docker: systemctl restart docker



服務端安裝git:yum install git

拉取一下文件和命令:git clone http://172.16.1.35/demo/demo-dockers.git

查看本地和遠端版本:git branch -a

切換本地分支為dev:git checkout -b dev origin/dev

啟動docker:service docker start

後 執行文件中的shell:./init.sh all (包含:mysql,mongo,redis,solr,activemq,tomcat)

刪除多下載的鏡像:docker rmi --force 3068f6bb852e

容器列表: docker ps -a

進入某個容器:docker exec -it [CONTAINER ID] /bin/bash

查看某個容器進程:docker top [NAMES]




查看 demo-dockers 目錄下 java-runtime 文件位置下有對應幾個項目配置文件 application-alpha.yml



修改配置文件後,需要重新啟動對應java項目,執行啟動腳本 ./init-java-runtime.sh + [項目名或者all]



獲取鏡像文件的地址:http://172.18.5.112:5001/repository/demo/ 查找對應需要的鏡像包



更換鏡像文件: vi java-runtime.yml 內,image後的對應項目後跟的包名中



重啟對應項目: ./init-java-runtime.sh [項目名]



查看對應項目啟動log: docker logs -f --tail 500 [生成的容器名稱]

(容器重啟:docker restart [容器id或名稱])



{

"authorization-plugins": [],//訪問授權插件

"data-root": "",//docker數據持久化存儲的根目錄

"dns": [],//DNS伺服器

"dns-opts": [],//DNS配置選項,如埠等

"dns-search": [],//DNS搜索域名

"exec-opts": [],//執行選項

"exec-root": "",//執行狀態的文件的根目錄

"experimental": false,//是否開啟試驗性特性

"storage-driver": "",//存儲驅動器

"storage-opts": [],//存儲選項

"labels": [],//鍵值對式標記docker元數據

"live-restore": true,//dockerd掛掉是否保活容器(避免了docker服務異常而造成容器退出)

"log-driver": "",//容器日誌的驅動器

"log-opts": {},//容器日誌的選項

"mtu": 0,//設置容器網路MTU(最大傳輸單元)

"pidfile": "",//daemon PID文件的位置

"cluster-store": "",//集群存儲系統的URL

"cluster-store-opts": {},//配置集群存儲

"cluster-advertise": "",//對外的地址名稱

"max-concurrent-downloads": 3,//設置每個pull進程的最大並發

"max-concurrent-uploads": 5,//設置每個push進程的最大並發

"default-shm-size": "64M",//設置默認共享內存的大小

"shutdown-timeout": 15,//設置關閉的超時時限(who?)

"debug": true,//開啟調試模式

"hosts": [],//監聽地址(?)

"log-level": "",//日誌級別

"tls": true,//開啟傳輸層安全協議TLS

"tlsverify": true,//開啟輸層安全協議並驗證遠程地址

"tlscacert": "",//CA簽名文件路徑

"tlscert": "",//TLS證書文件路徑

"tlskey": "",//TLS密鑰文件路徑

"swarm-default-advertise-addr": "",//swarm對外地址

"api-cors-header": "",//設置CORS(跨域資源共享-Cross-origin resource sharing)頭

"selinux-enabled": false,//開啟selinux(用戶、進程、應用、文件的強制訪問控制)

"userns-remap": "",//給用戶命名空間設置 用戶/組

"group": "",//docker所在組

"cgroup-parent": "",//設置所有容器的cgroup的父類(?)

"default-ulimits": {},//設置所有容器的ulimit

"init": false,//容器執行初始化,來轉發信號或控制(reap)進程

"init-path": "/usr/libexec/docker-init",//docker-init文件的路徑

"ipv6": false,//開啟IPV6網路

"iptables": false,//開啟防火牆規則

"ip-forward": false,//開啟net.ipv4.ip_forward

"ip-masq": false,//開啟ip掩蔽(IP封包通過路由器或防火牆時重寫源IP地址或目的IP地址的技術)

"userland-proxy": false,//用戶空間代理

"userland-proxy-path": "/usr/libexec/docker-proxy",//用戶空間代理路徑

"ip": "0.0.0.0",//默認IP

"bridge": "",//將容器依附(attach)到橋接網路上的橋標識

"bip": "",//指定橋接ip

"fixed-cidr": "",//(ipv4)子網劃分,即限制ip地址分配范圍,用以控制容器所屬網段實現容器間(同一主機或不同主機間)的網路訪問

"fixed-cidr-v6": "",//(ipv6)子網劃分

"default-gateway": "",//默認網關

"default-gateway-v6": "",//默認ipv6網關

"icc": false,//容器間通信

"raw-logs": false,//原始日誌(無顏色、全時間戳)

"allow-nondistributable-artifacts": [],//不對外分發的產品提交的registry倉庫

"registry-mirrors": [],//registry倉庫鏡像

"seccomp-profile": "",//seccomp配置文件

"insecure-registries": [],//非https的registry地址

"no-new-privileges": false,//禁止新優先順序(??)

"default-runtime": "runc",//OCI聯盟(The Open Container Initiative)默認運行時環境

"oom-score-adjust": -500,//內存溢出被殺死的優先順序(-1000~1000)

"node-generic-resources": ["NVIDIA-GPU=UUID1", "NVIDIA-GPU=UUID2"],//對外公布的資源節點

"runtimes": {//運行時

"cc-runtime": {

"path": "/usr/bin/cc-runtime"

},

"custom": {

"path": "/usr/local/bin/my-runc-replacement",

"runtimeArgs": [

"–debug"]

}

}

}



服務端安裝git:yum install git

拉取一下文件和命令:git clone http://172.16.1.35/gchat/gaga-dockers.git

指定分支克隆git clone -b dev-1 http://172.16.1.35/gchat/gaga-dockers.git

查看本地和遠端版本:git branch -a

切換本地分支為dev:git checkout -b dev origin/dev

啟動docker:service docker start

後 執行文件中的shell:./init.sh all (順序:mysql,mongo,redis,solr,activemq,tomcat)

刪除多下載的鏡像:docker rmi --force 3068f6bb852e

容器列表: docker ps -a

進入某個容器:docker exec -it [CONTAINER ID] /bin/bash

查看某個容器進程:docker top [NAMES]


# 查看是否安裝了tomcat: rpm -qa | grep tomcat

# 查找文件:find / -name tomcat

# 切換Tomcat目錄:cd /usr/local/tomcat/bin

# 關閉Tomcat:./shutdown.sh

# 查看docker中的java版本:docker exec container_name java -version


git拉代碼:git clone [email protected]:gchat/gaga-server.git

查看遠端分支:git branch -r

創建本地dev分支 並切換到dev分支:git checkout -b dev origin/dev

查看本地分支:git branch

切換回眸分支:git checkout master


查看所有JDK在系統中位置:/usr/libexec/java_home -V


參考地址: https://www.runoob.com/docker/docker-command-manual.html

查找docker 安裝包:yum list installed | grep docker

停掉docker:systemctl stop docker

刪除對應文件:yum remove docker.x86_64 docker-client.x86_64 docker-common.x86_64 -y

查看下docker rpm源:rpm -qa | grep docker

刪除對應路徑:rm -rf /var/lib/docker

注釋:

本次也是由於業務需要,需要重新搭建新的測試伺服器,這也是搭建中的一個插曲,後續會使用 Jenkins 進行相關的持續集成,大家一起學習分享!~

『陸』 如何在linux上搭建安卓開發環境

微信是手機上的。linux是電腦桌面系統,微信設計的初衷就是為手機和平板服務的,linux版的微信,騰訊不會開發這樣的程序,不符合它的初衷。微信有安卓版的。而安卓是基於linux的,是否可以間接地說這就是linux版本的呢?

Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用搭巧戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟體、應用程序和網路協議。它支持32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性拆枝賀能穩定的多用戶網路操作系統。

Linux操作系統誕生於1991 年10 月5 日(這是第一次正式向外公布時間)。Linux存在著許多不同的Linux版本,但它們都使用了Linux內核。Linux可安裝在各種計算機硬體設備中,比如手機、平板電腦、路由器、視頻游戲控制台、台式計算機、大型機和超級計算機。

嚴格來講,Linux這個詞本身只表示Linux內核,但實際上人們已經習慣了用Linux來形容整個基於Linux內核,並且使用GNU 工程旅派各種工具和資料庫的操作系統。

熱點內容
壓縮軟體流程 發布:2025-03-10 22:00:43 瀏覽:299
安卓哪個國家的品牌好 發布:2025-03-10 21:53:16 瀏覽:11
ftp字元集錦 發布:2025-03-10 21:37:00 瀏覽:76
如何提取腳本按鍵 發布:2025-03-10 21:29:04 瀏覽:220
遼寧省dns伺服器怎麼填物理機 發布:2025-03-10 21:25:05 瀏覽:787
雲計算機伺服器區別 發布:2025-03-10 21:10:21 瀏覽:235
古代錦衣衛需要哪些配置 發布:2025-03-10 21:06:17 瀏覽:618
ps樣式在的文件夾 發布:2025-03-10 20:50:07 瀏覽:614
圖像壓縮編碼演算法 發布:2025-03-10 20:48:23 瀏覽:386
墮落解壓縮碼 發布:2025-03-10 20:46:55 瀏覽:626