文章編號:10818時間:2024-09-29人氣:
LAMP的概念:
Linux+Apache+Mysql+Perl/PHP/Python一組常用來搭建動態網站或者服務器的開源軟件,本身都是各自獨立的程序,但是因為常被放在一起使用,擁有了越來越高的兼容度,共同組成了一個強大的web應用程序平臺。
安裝LAMP就已經安裝了 網頁服務器 數據庫 Perl/PHP/Python語音環境。
如果你是安裝到本機上測試的話,最好確保hosts的內容為這樣
username@ubuntu:~$ cat /etc/hosts127.0.0.1 localhost
安裝
安裝LAMP
套件一次性安裝
sudo tasksel
用空格選中LAMP,回車即可。(不過要小心別修改其他的選項,否則會安裝或刪除該服務!)
仔細手動安裝法(最小組件)
sudo apt-get install apache2 php5-mysql libapache2-mod-php5 mysql-server
有些是因為依賴關系會自動安裝的,但是為了保險,所以多打了一些。 開始安裝時sudo會問您密碼(只是有可能),這是系統管理員的密碼。 安裝途中MySQL要求設定賬戶有密碼,這是與操作系統沒關系的賬戶與密碼。
圖形安裝法
在新立得軟件包管理器中選擇 編輯--使用任務分組標記軟件包
在打開的窗口中 勾選 LAMP SERVER 然后確定。
在主窗口中 點擊綠色的對號 應用 按鈕
好了 。 接下來就是等待...等待新立得 自動下載安裝完。
注意: 安裝途中MySQL要求設定賬戶有密碼,這是與操作系統沒關系的賬戶與密碼。
打開或圖形化管理軟件(可選)
安裝webmin
這是一個系統管理軟件,管理包含LAMP組件在內的大部分系統服務。 同時能進行安裝、進程管理等多種系統功能。
先到webmin官方下載軟件 在該軟件包存放位置下,打開終端。(你也可以用命令切換到該位置)
sudo dpkg -i 軟件包名(用Tab可以少輸點字)
如果提示缺少依賴,那差什么就裝什么
訪問地址(注意是加密安全鏈接):安裝phpmyadmin
這是一個數據庫管理軟件,管理mysql.
其實這也是個安全隱患,建議通過openssh來管理服務器。
方案一:終端中運行命令 (不推薦)
sudo apt-get install phpmyadmin
方案二:
強烈建議不要從源里安裝
在phpmyadmin官網上下載軟件包,解壓縮到本地目錄/var/www/phpmyadmin
tips:如果你請直接解壓到/var/www/phpmyadmin,如果不存在phpmyadmin,請自行創建
在終端下執行
sudo cp /var/www/phpmyadmin/ /var/www/phpmyadmin/
sudo gedit /var/www/phpmyadmin/
找到“blowfish_secret”在后面填上任意字母
$cfg[Servers][$i][auth_type]=cookie;$cfg[Servers][$i][host]=localhost;$cfg[Servers][$i][connect_type]=tcp;$cfg[Servers][$i][compress]=false;$cfg[Servers][$i][extension]=mysql;
保存,退出
安裝php5-mcrypt
sudo apt-get install php5-mcrypt
編輯php配置文件
sudo gedit /etc/php5/apache2/
在extension下面加上(任何獨立一行就行)
extension=php_ (原來的無效)
保存,重啟apache2
sudo /etc/init.d/apache2 restart
在瀏覽器里輸入注:如果進入phpmyadmin出現配置文件引用失敗則刪除剛自己添加的
$cfg[Servers][$i][auth_type]=cookie;$cfg[Servers][$i][host]=localhost;$cfg[Servers][$i][connect_type]=tcp;$cfg[Servers][$i][compress]=false;$cfg[Servers][$i][extension]=mysql;
保存,退出
然后再重啟apache2
sudo /etc/init.d/apache2 restart
在瀏覽器里輸入配置文件路徑
1apache 的配置文件路徑 /etc/apache2/
2apache 網站字符編碼配置路徑 /etc/apache2/conf.d/charset
路徑 /etc/php5/apache2/
4mysql配置文件 路徑 /etc/mysql/ 一般不要使用,尤其是新手
5phpmyadmin配置文件路徑 /etc/phpmyadmin/
6默認網站根目錄 /var/www
常用命令
1.重啟apache
sudo /etc/init.d/apache2 restart
2.重啟mysql
sudo /etc/init.d/mysql restart
配置apache
1.更改默認字符集
終端中使用命令
sudo nano /etc/apache2/conf.d/charset
將其中的
# AddDefaultCharset
的井號去掉,后面字段改成UTF-8(如果您的網站是這樣了話)
AddDefaultCharset UTF-8
中間的空格數并不重要,但一定要有。
2.添加支持文件類型(一般不需要),與網站地址(需要)
終端中使用命令
sudo nano /etc/apache2/
在配置文件最后面加入下面幾行:
添加文件類型支持 (注:如果無法在html中解析php的語句,添加下面語句。 網上好多都是說直接編輯,但是ubuntu版本的apache2沒有這個文件,你可以直接編輯,或者自己加一個,作為用戶配置文件, 中include這個配置文件。 )
AddType APPlication/x-httpd-php
添加首頁文件 三個的順序可以換 前面的訪問優先 (當然你也可以加別的 比如)
IfModule dir_moduleDirectoryIndex /IfModule
更改服務器地址(這里改為本機),您可以憑您喜好修改,就是必須一致
ServerName 127.0.0.1
修改apache的根目錄DocumentRoot:
sudo nano /etc/apache2/sites-enabled/000-default
將其中的 DocumentRoot /var/www 改成您想要的目錄比如 DocumentRoot /var/www/htdocs/ 以上Apache2就基本配置完成了。 重啟Apache2服務即可。 下面的是參考,一般不需要改變,除非有特殊需求。
sudo nano /etc/apache2/ #修改端口號,把 NameVirtualHost *:80 改為NameVirtualHost 127.0.0.1:80 , 修改 Listen 80
再修改site的配置文件
/etc/apache2/sites-available/default
80是端口號
VirtualHost *:80
sudo a2enmod rewrite #開啟apache 的rewrite功能
Apache模塊
sudo a2enmod #啟用模塊
sudo a2dismod #禁用模塊
配置PHP5
這個沒什么好說的 根據個人自己需要
建議將安全模塊開啟(注意!開啟后phpmyadmin會不能用)
sudo nano /etc/php5/conf.d/
注意:你可能需要敲入命令
或
php -i | grep
來獲取你的php cli加載的路徑(Loaded Configuration File,比如 /etc/php5/cli/ 而非 /etc/php5/conf.d/)。但此文件并不一定是apache php5模塊加載的文件,如果要獲得apache php5模塊加載的,請參見測試_phpinfo()
nano可以用Ctrl+w來搜索將 safe_mode = off safe_mode = 設置為 safe_mode = on safe_mode = /var/www/htdocs/ 以上 /var/www/htdocs/是您在上面設置個網站根目錄,請按照情況修改,結尾的/是一定要加的,
不然 /var/www/htdocsa,/var/www/htdocsb,等目錄也可以訪問。
以下是更改默認時區
去掉前面的分號 后面加個PRC 。表示中華人民共和國(就是GMT+8時區)
配置MySQL
MySQL常用命令
MySQL大部分命令是以
結尾,這里除了5給出的命令,其它一定要以
結尾!
1.進入mysql
mysql -h [服務器地址] -u [用戶名〕-p
這是訪問本地服務器
mysql -h 127.0.0.1 -u [用戶名〕 -p
如:mysql -h 127.0.0.1 -u root -p
認證成功之后就進入mysql的命令控制臺,以下都是在mysql的命令控制臺的命令。
2.顯示已經存在的數據庫
SHOW target=_blank>,phpmyadmin 默認并不是安裝在 /var/www下面的而是在 /usr/share/phpmyadmin
你可以把phpmyadmin復制過去 或者 鏈接過去
sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin
然后 終端中運行命令
sudo gedit /etc/phpmyadmin/
然后把下面兩句的路徑 改為/var/www/phpmyadmin(因為我已經配置好環境,所以忘記了phpmyadmin中默認配置怎么寫的。 。 反正就是在第三行和第四行的兩句.如果我沒記錯的話 應該是下面這樣)
Alias /phpmyadmin /usr/share/phpmyadminDirectory /usr/share/phpmyadmin
改為:
Alias /phpmyadmin /var/www/phpmyadminDirectory /var/www/phpmyadmin
LAMP到此已經配置完成了
測試 phpinfo(); (根據需要,自己選擇,可不做)
創建、測試phpinfo:
sudo vi /var/www/ 注意:這里的路徑錯了,應該是sudo vi /var/www/htdocs/ 修改人:fenghelong郵箱fenghelong_
?php phpinfo(); ?
打開。
性能優化(根據需要,自己選擇,可不做)
安裝Zend Optimizer
要求PHP版本為5.2,不支持Ubuntu10.04的PHP5.3,請參照PHP5.2。
下載 Zend Optimizer。 直接貼下載地址,參考版本號改(這是32位的),不然主頁要注冊才能下
cd ZendOptimizer-3.3.9-linux-glibc23-i386/data/5_2_x_compsudo mkdir /usr/local/zendsudo cp /usr/local/zend
編輯
sudo gedit /etc/php5/apache2/
開頭加入,注意標點符號要英文。
[Zend Optimizer]zend__level=1 zend_extension=/usr/local/zend/
重啟apache2
sudo /etc/init.d/apache2 restart
還是上面那個phpinfo文件,要能看到如下信息
This program makes use of the Zend Scripting Language Engine:Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies with Zend Optimizer v3.3.9, Copyright (c) 1998-2009, by Zend Technologies
安?XCache
sudo apt-get install php5-xcache
root@ubuntu:/home/qii# dpkg -l | grep xcachii php5-xcache 1.2.2-5 Fast, stable PHP opcode cacher
xcache配置文件路徑是
/etc/php5/conf.d/
編輯
sudo gedit /etc/php5/apache2/
把的內容加入到。 重啟apache2
sudo /etc/init.d/apache2 restart
檢查安裝是否成功
root@ubuntu:/home/qii# php -vPHP 5.2.10-2ubuntu6 with Suhosin-Patch 0.9.7 (cli) (built: Oct 23 2009 16:30:10) Copyright (c) 1997-2009 The PHP GroupZend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies with XCache v1.2.2, Copyright (c) 2005-2007, by mOo
還有前面頁應該有XCache模塊
這里有點奇怪的是,如果不把的內容加入,apache也能載入XCache,但上沒XCache模塊。
安裝eAccelerator
sudo apt-get install php5-dev
下載 eAccelerator
cd eaccelerator-0.9.6.1
phpizesudo ./configure -enable-eaccelerator=sharedsudo make
qii@ubuntu:~/tmp/eaccelerator-0.9.6.1$ sudo make installInstalling shared extensions: /usr/lib/php5/+lfs/
修改文件,安裝為Zend擴展,最好放在開頭,放到[zend]之前,免的出莫名其妙的問題:
sudo vi /etc/php5/apache2/
[eaccelerator]zend_extension=/usr/lib/php5/+lfs/ _size=16 _dir=/tmp/eaccelerator =1 =1 _mtime=1 =0 = _max=0 _ttl=0 _prune_period=0 _only=0 =1 _level=9 _admin_path=/var/www/
創建cache緩存目錄
_dir=/var/cache/eaccelerator 這里定義cache路徑
默認值是/tmp/eaccelerator,這非常簡單因為任何人都對該目錄可寫,但是并不明智,因為重啟后系統會自動清理該目錄。 一個更好的地方是/var/cache/eaccelerator。 創建該目錄并確保它對eAccelerator的使用者可寫(通常該用戶是你的網絡服務器運行者,可能是www-data)。 使用默認值的話這樣繼續:
mkdir /tmp/eaccelerator
chmod 777 /tmp/eaccelerator
改成 /var/cache/eaccelerator的話這樣繼續,先改
_dir=/var/cache/eaccelerator
sudo mkdir /var/cache/eacceleratorsudo chown root:www-data /var/cache/eacceleratorsudo chmod u=rwx,g=rwx,o= /var/cache/eaccelerator
復制控制文件到網站根目錄
sudo cp /var/www/htdocs/
修改的$user和$pw,默認是admin和eAccelerator
sudo vi /var/www/htdocs/
重啟apache
sudo /etc/init.d/apache2 restart
打開查看之前的頁面,有下列字段:
This program makes use of the Zend Scripting Language Engine:Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator
安全
隱藏服務器信息
vim /etc/apache2/ Prod
指定apache2的運行賬戶
以root來運行是很危險的,用下面的方法更改,這里是都改為www-data
vim /etc/apache2/envvarsexport APACHE_RUN_USER=www-dataexport APACHE_RUN_GROUP=www-data
要確認存在這些用戶組。
啟用
這個對pbpbb3這樣有附帶的程序有利,不過其它場合有可能引發問題。 方法:在網站主機配置下加入AllowOverride AuthConfi 例子:
vim /etc/apache2/sites_available/defaultDirectory /var/www/ AuthConfig.../Directory
其他
PDO的安裝
pecl search pdo
sudo pecl install pdo
sudo pecl install pdo_mysql
最后編輯
sudo gedit /etc/php5/apache2/
再最后面添加兩行:
extension =
extension = pdo_
排錯
無法解析php文件,瀏覽器提示下載所要打開的php文件
執行:
sudo apt-get install libapache2-mod-php5sudo a2enmod php5
如果顯示為:
This module does not exist!
那就要徹底刪除libapache2-mod-php5,然后重新安裝它
sudo apt-get remove --purge libapache2-mod-php5sudo apt-get install libapache2-mod-php5
重啟apache2
sudo /etc/init.d/apache2 restart
清除瀏覽器緩存,然后輸入http:localhost
虛擬主機
見Apache虛擬主機指南
屏蔽迅雷
迅雷的user-agent是
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; )Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.0)Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; CLR 3.5.)Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; CLR 1.1.4322; CLR 2.0.)
通過文件屏蔽迅雷的下載/盜鏈功能:
RewriteEngine On#Anti ThunderRewriteCond %{HTTP_USER_AGENT} ^Mozilla/4/.0/ /(compatible;/ MSIE/ 6/.0;/ Windows/ NT/ 5/.0/)___FCKpd___98nbsp; [NC,OR]RewriteCond %{HTTP_USER_AGENT} ^Mozilla/5/.0/ /(compatible;/ MSIE/ 6/.0;/ Windows/ NT/ 5/.0/)___FCKpd___98nbsp; [NC,OR]RewriteCond %{HTTP_USER_AGENT} ^Mozilla/4/.0/ /(compatible;/ MSIE/ 6/.0;/ Windows/ NT/ 5/.1;/ /)___FCKpd___98nbsp; [NC,OR]RewriteCond %{HTTP_USER_AGENT} ^Mozilla/4/.0/ /(compatible;/ MSIE/ 6/.0;/ Windows/ NT/ 5/.0;/ // CLR/ 3/.5/./)___FCKpd___98nbsp; [NC,OR]RewriteCond %{HTTP_USER_AGENT} ^Mozilla/4/.0/ /(compatible;/ MSIE/ 6/.0;/ Windows/ NT/ 5/.1;/ SV1;/ // CLR/ 1/.1/.4322;/ // CLR/ 2/.0/./)___FCKpd___98nbsp; [NC]RewriteRule ^.*/.(gif|jpg|bmp|zip|rar|exe|mp3|swf)___FCKpd___98nbsp; / [NC,F]
你可以用Firefox的擴展user-agent switcher來測試效果。
如果你的資料地址已經被迅雷索引,請修改資源的路徑地址。
如果用戶手動用UltraEdit改寫迅雷的user-agent,亦或者本機裝虛擬機,虛擬機掛代理,迅雷掛虛擬機中的代理,這種屏蔽方法就失效了。
附錄
apache2配置文件與子目錄一覽表
/etc/apache2/ 全局配置 /etc/apache2/envvars 環境變量 /etc/apache2/ httpd服務端口信息 /etc/apache2/conf.d/一般性配置文件存放地 /etc/apache2/mods-available/ 已安裝的模塊 /etc/apache2/mods-enabled/ 已經啟用的模塊/etc/apache2/sites-available/ 可用站點信息 /etc/apache2/sites-enabled/ 已經啟用的站點信息,當中的文件是到/etc/apache2/sites-available/ 文件的軟連接。 /etc/apache2/
要通過VMware安裝Ubuntu系統,對于初次嘗試的用戶來說可能會有些困惑。以下是詳細的安裝步驟教程:
首先,你需要準備以下材料:
1. 打開VMware,點擊“創建新的虛擬機”,選擇“自定義(高級)”,并按照步驟進行。
2. 選擇“稍后安裝操作系統”,然后選擇Linux,版本選擇“Ubuntu 64”,并為虛擬機命名和指定安裝位置,避免放在C盤。
3. 分配處理器和內存,選擇網絡類型默認為“使用網絡地址轉換(NAT)”,接著設置磁盤類型和大小(建議至少60G)為單個文件。
4. 選擇CD/DVD選項,選擇ISO映像文件,找到下載的Ubuntu鏡像,點擊安裝。
5. 進入安裝界面后,選擇語言,選擇正常安裝并清除磁盤,設置用戶名和密碼,耐心等待安裝完成,重啟系統。
安裝完Ubuntu后,別忘了安裝VMware Tools以優化虛擬機性能:
1. 在虛擬機選項卡中點擊安裝VMware Tools,將下載的壓縮文件復制到個人主目錄下,解壓并運行安裝腳本。
2. 按照提示完成安裝,確認安裝成功后,你的Ubuntu系統就在VMware虛擬機中運行了。
以上就是通過VMware安裝Ubuntu的詳細步驟,希望對新手用戶有所幫助。
在 Linux 系統中,Fio 是一個功能強大的工具,專用于硬盤性能的測評和硬件驗證,由 Jens Axboe 開發,開源且易于使用。 Fio 支持19種I/O引擎和多種特性,適應各種場景,包括塊設備和文件的I/O性能測試,以及多種操作系統如Linux、FreeBSD等。 本文將指導你在Ubuntu 16上安裝和使用Fio,無論是從源碼構建還是通過包管理器。 首先,如果你需要sudo或root權限,可以按照教程安裝Fio。 對于Ubuntu和Debian用戶,可以直接使用apt-get或yum命令安裝;對于CentOS,可能需要先安裝EPEL倉庫。 在安裝完成后,你可以通過執行隨機寫、讀和讀寫測試來驗證磁盤性能。 例如,隨機寫測試會同時寫入4GB的文件,隨機讀測試則會讀取2GB的隨機數據。 Fio的輸出信息詳盡,包括IO延遲和百分比,對于理解和優化硬盤性能非常有幫助。 最后,本文提供了一個USB Pen驅動器的讀寫性能測試示例,讓你領略Fio的強大功能。 如果你在使用過程中遇到問題或有任何反饋,歡迎留言交流。 本文由Bestony翻譯,Linux中國推薦,原文出自,由LCTT原創編譯。
在服務器操作系統選擇上,Debian與Ubuntu各有千秋。 以下是它們的詳細對比:Debian以其穩定性和安全性聞名,作為開源的基石,它擁有龐大的軟件庫和豐富的社區支持。 Debian的核心理念是提供穩定且高質量的操作系統,鼓勵用戶參與社區建設,這使得其在長期運行的服務器場景中表現出色。 Ubuntu則是基于Debian的發行版,由Canonical公司開發,它在穩定性與安全性上與Debian相當,同時更注重用戶體驗的提升。 Ubuntu的定期更新和強大的軟件包管理工具,使得它在易用性和新功能引入上更具優勢,尤其適合需要快速部署和用戶友好的環境。 在穩定性與安全性方面,Debian的更新周期較長,經過嚴格測試,適合對穩定性要求極高的服務器。 而Ubuntu更新速度較快,可能帶來一些短期的不穩定性,這需要用戶根據實際需求權衡。 在軟件管理與更新策略上,兩者都使用APT工具,但Ubuntu的更新速度可能更適合追求新功能和快速響應的用戶。 社區支持方面,Debian和Ubuntu都有活躍的用戶群體,但Ubuntu的文檔和在線支持可能更全面一些。 硬件兼容性方面,兩者都能滿足大部分服務器設備需求。 性能優化方面,兩者都提供了相應的工具,以適應各種性能需求。 總結來說,如果你的服務器需要長時間穩定運行,Debian可能是更好的選擇,而如果你更看重易用性、快速更新和用戶體驗,Ubuntu可能是更適合你的選擇。 在決定前,考慮你的具體需求,如長期穩定性、硬件兼容性、社區支持等因素,將有助于做出明智的決策。
原文鏈接:網頁鏈接
我是1999年上的大學,物理專業。 在大一時,我們班里普遍彌漫著對未來的不安,不知道學習了物理后出去能做什么。 你當下的經歷、當下的學習,在未來的一天肯定會影響到你。 畢業后我們也各自找到了自己的職業:出國深造轉行做金融、留校任教做科研、設計芯片、寫程序、創辦公司等等,這一切都離不開在校時學到的基礎技能(數學、IT、電子電路)、受過煅煉的自學能力。
所以,各位正在迷茫的在校生,各位正在嘗試轉行的程序員,未來一定有你的位置,是好是壞取決于你當下的努力與積累。
我不能預言幾年后什么行業會熱門,也不能保證你照著本文學習可以發財。 我只是一個有十幾年經驗的程序員,給對編程有興趣的你,提供一些建議。
程序員的方向,一般可以分為3類:專業領域、業務領域、操作系統領域。 你了解它們后,按興趣選擇吧。
對于專業領域,我提供不了建議。
業務,也就是應用程序,它跟操作系統并不是截然分開的:
①開發實體產品時,應用程序寫得好的人,有時候需要操作系統的知識,比如調度優先級的設置、知道某些函數可能會令進程休眠。
②寫應用程序的人進階為系統工程師時,他需要從上到下都了解,這時候就需要有操作系統領域的知識了,否則,你怎么設計整個系統的方案呢?
③做應用程序的人,需要了解行業的需求,理解業務的邏輯。 所以,當領導的人,多是做應用的。 一旦鉆入了某個行業,很難換行業。
④而操作系統領域,做好了這是通殺各行業:他只負責底層系統,在上面開發什么業務跟他沒關系。 這行很多是技術宅,行業專家。
⑤操作系統和業務之間并沒有一個界線。 有操作系統經驗,再去做應用,你會對系統知根知底,碰到問題時都有解決思路。 有了業務經驗,你再了解一下操作系統,很快就可以組成一個團隊自立門戶,至少做個CTO沒問題。
它又可以分為下面2類。
1.1.1 學術研究
比如語音、圖像處理、人工智能,這類工作需要你有比較強的理論知識,我傾向于認為這類人是“科學家”,他們鉆研多年,很多時候是在做學術研究。
在嵌入式領域,需要把他們的成果用某種算法表達出來,針對某種芯片進行優化,這部分工作也許有專人來做。
1.1.2 工程實現
也有這樣一類人,他們懂得這些專業領域的概念,但是沒有深入鉆研。 可以使用各類開源資料實現某個目標,做出產品。 比如圖像處理,他懂得用opencv里幾百個復雜函數來實現頭像識別。 有時候還可以根據具體芯片來優化這些函數。
“專業領域”不是我的菜,如果你要做這一塊,我想最好的入門方法是在學校學習研究生、博士課程。
換句話說,就是應用程序,這又可以分為下面2類。
1.2.1 界面顯示
做產品當然需要好的界面,但是,不是說它不重要,是沒什么發展后勁。
現在的熱門詞是Android APP和IOS APP開發。 你不要被Android、IOS兩個詞騙了,它們跟以前的VC、VB是同一路貨色,只是、僅僅是一套GUI控件的實現。
希望沒有冒犯到你,我有理由。
一個程序需要有GUI界面,但是程序的內在邏輯才是核心。 Android、IOS的開發工具給我們簡化了GUI的開發,并提供了這些控件的交互機制,封裝并提供了一些服務(比如網絡傳輸)。 但是程序內部的業務邏輯、對視頻圖像聲音的處理等等,這才是核心。 另外別忘了服務器那邊的后臺程序:怎樣更安全地保存數據、保護客戶的隱私,怎樣處理成千上萬上百萬的并發訪問,等等,這也是核心。
但是,從Android、IOS APP入門入行,這很快!如果你是大四,急于找到一份工作,那么花上1、2個月去學習Android或IOS,應該容易找到工作,畢竟APP的需求永遠是最大的,現在這兩門技術還算熱門。 在2011、2012年左右,Android程序員的起薪挺高,然后開始下滑。 Android APP的入門基本只要1個月,所以懂的人也越來越多。 2013、2014年,IOS開發的工資明顯比Android高了,于是各類IOS培訓也火曝起來。 中華大地向來不缺速成人才,估計再過一陣子IOS工程師也是白菜價了。
會Android、IOS只是基本要求,不信去51job搜搜Android或IOS,職位要求里肯定其他要求。
1.2.2 業務邏輯
舉個簡單例子,做一個打卡軟件,你需要考慮這些東西:
①正常流程是上班下班時都要打卡
②有人忘記了怎么辦?作為異常記錄在案,推送給管理員
③請假時怎么處理?
④加班怎么處理?
對于更復雜的例子,視頻會議系統里,各個模塊怎么對接,各類協議怎么兼容,你不深入這個行業,你根本搞不清楚。
應用開發的職位永遠是最多的,入門門檻也低。 基本上只要你會C語言,面試時表現比較得體,一般公司都會給你機會。 因為:
①你進公司后,還需要重新培訓你:熟悉它們的業務邏輯。
②你要做的,基本也就是一個個模塊,框架都有人給你定好了,你去填代碼就可以了。
說點讓你高興的事:軟件公司里,做領導的基本都是寫應用程序的(當然還有做市場的)。寫應用程序的人,對外可以研究市場接待客戶,對內可以管理程序員完成開發,不讓他做領導讓誰做?
如果你的志向是寫應用程序,那么我建議你先練好基本功:數據結構、算法是必備,然后憑興趣選擇數據庫、網絡編程等等進行深入鉆研。
最后,選擇你看好的、感興趣的行業深耕個10年吧。做應用開發的人選擇了某個行業,后面是很難換行業的,選行很重要!
UCOS太簡單,VxWorks太貴太專業,Windows不玩嵌入式了,IOS不開源,所以對于操作系統領域我們也只能玩Linux了。
在嵌入式領域Linux一家獨大!
Android呢?Android跟QT一樣,都是一套GUI系統。 只是google的實力太強了,現在Android無處不在,所以很多時候Linux+Android成了標配。 注意,在這里我們關心的是Android的整個系統、里面的機制,而不是學習幾個API然后開發界面程序。 操作系統領域所包含的內容,簡單地說,就是制作出一臺裝好系統的專用“電腦”,可以分為:
①為產品規劃硬件:
按需求、性能、成本選擇主芯片,搭配周邊外設,交由硬件開發人員設計。
②給單板制作、安裝操作系統、編寫驅動
③定制維護、升級等系統方案
④還可能要配置、安裝Android等GUI系統:
⑤為應用開發人員配置開發環境
⑥從系統角度解決疑難問題
這個領域,通常被稱為“底層系統”或是“驅動開發”。
先解決2個常見誤區:
①這份工作是寫驅動程序嗎?
看看上面羅列的6點,應該說,它包含驅動開發,但遠遠不只有驅動開發。
②我們還需要寫驅動嗎?不是有原廠嗎?或者只需要改改就可以?
經常有人說,芯片原廠都做好驅動了,拿過來改改就可以了。 如果,你的硬件跟原廠的公板完全一樣,原廠源碼毫無BUG,不想優化性能、削減成本,不想做一些有特色的產品,那這話是正確的。
但是在這個不創新就是找死的年代,可能嗎?!原因有二:
①即使只是修改代碼,能修改的前提是能理解;能理解的最好煅煉方法是從零寫出若干驅動程序。
②很多時候,需要你深度定制系統。
以前做聯發科手機只需要改改界面就可以出貨了,現在山寨廠一批批倒下。 大家都使用原廠的方案而不加修改時,最后只能拼成本。
舉個例子,深圳有2家做交通攝像頭、監控攝像頭的廠家,他們曾經找我做過4個項目:
①改進廠家給的SD卡驅動性能,使用DMA。
②換了Flash型號后,系統經常出問題,需要修改驅動BUG。
③觸摸屏點擊不準,找原因,后來發現是旁路電容導致的。
④裁減成本,把4片DDR換為2片DDR,需要改bootloader對DDR的初始化。
這些項目都很急,搞不定就無法出貨,這時候找原廠?除非你是中興華為等大客戶,否則誰理你?
我在中興公司上班時,寫驅動的時間其實是很少的,大部分時間是調試:系統調優,上幫APP工程師、下幫硬件工程師查找問題。 我們從廠家、網上得到的源碼,很多都是標準的,當然可以直接用。 但是在你的產品上也許優化一下更好。 比如我們可以把攝像頭驅動和DMA驅動揉合起來,讓攝像頭的數據直接通過DMA發到DSP去。 我們可以在軟件和硬件之間起橋梁作用,對于實體產品,有可能是軟件出問題也可能是硬件出問題,一般是底層系統工程師比較容易找出問題。
當硬件、軟件應用出現問題,他們解決不了時,從底層軟件角度給他們出主意,給他們提供工具。 再比如方案選擇:芯片性能能否達標、可用的BSP是否完善等等,這只能由負責整個方案的人來考慮,他必須懂底層。
在操作系統領域,對知識的要求很多:
①懂硬件知識才能看懂電路圖
②英文好會看芯片手冊
③有編寫、移植驅動程序的能力
④對操作系統本身有一定的理解,才能解決各類疑難問題
⑤理解Android內部機制
⑥懂匯編、C語言、C++、JAVA
它絕對是一個大坑,沒有興趣、沒有毅力的人慎選。
①這行的入門,絕對需要半年以上,即使全天學習也要半年。
②它的職位,絕對比APP的職位少
③并且你沒有1、2年經驗,招你到公司后一開始你做的還是APP。
優點就是:
①學好后,行業通殺,想換行就換行;想自己做產品就自己做產品。
②相比做應用程序的人,不會被經常變動的需求搞得天天加班。
③門檻高,當然薪水相對就高。
操作系統領域,我認為適合于這些人:
①硬件工程師想轉軟件工程師,從底層軟件入門會比較好
②單片機工程師,想升級一下。 會Linux底層的人肯定會單片機,會單片機的人不一定會Linux。
③時間充足的學生:如果你正讀大二大三,那么花上半年學習嵌入式Linux底層多有益處。
④想掌握整個系統的人,比如你正在公司里寫APP,但是想升為系統工程師,那么底層不得不學。
⑤想自己創業做實體產品的工程師,你有錢的話什么技術都不用學,但是如果沒錢又想做產品,那么Linux底層不得不學。
⑥做Linux APP的人,沒錯,他們也要學習。
這部分人不需要深入,了解個大概就可以:bootloader是用來啟動內核,Linux的文件系統(第1個程序是什么、做什么、各目錄干嘛用)、APP跟驅動程序的調用關系、工具鏈,有這些概念就可以了
本文中,就把操作系統默認為Linux,講講怎么學習嵌入式Linux+Android系統。
嵌入式Linux系統包含哪些東西?不要急,舉一個例子你就知道了。
①電腦一開機,那些界面是誰顯示的?
是BIOS,它做什么?一些自檢,然后從硬盤上讀入windows,并啟動它。
類似的,這個BIOS對應于嵌入式Linux里的bootloader。 這個bootloader要去Flash上讀入Linux內核,并啟動它。
②啟動windows的目的是什么?
當然運行應用程序以便上網、聊天什么的了。
這些上網程序、聊天程序在哪?
在C盤、D盤上。
所以,windows要先識別出C盤、D盤。 在Linux下我們稱之為根文件系統。
③windows能識別出C盤、D盤,那么肯定有讀寫硬盤的能力。
這個能力我們稱之為驅動程序。 當然不僅僅是操作硬盤,還有網卡、USB等等其他硬件。 嵌入式Linux能從Flash上讀出并執行應用程序,肯定也得有Flash的驅動程序啊,當然也不僅僅是Flash。
簡單地說,嵌入式LINUX系統里含有bootloader、內核、驅動程序、根文件系統、應用程序這5大塊。 而應用程序,我們又可以分為:C/C++、Android。
所以,嵌入式Linux+Android系統包含以下6部分內容:
①bootloader
②Linux內核
③驅動程序
④使用C/C++編寫的應用程序
⑤Android系統本身
⑥Android應用程序
Android跟Linux的聯系實在太大了,它的應用是如此廣泛,學習了Linux之后沒有理由停下來不學習Android。 在大多數智能設備中,運行的是Linux操作系統;它上面要么安裝有Android,要么可以跟Android手機互聯。 現在,Linux+Android已成標配。
本文假設您是零基礎,以實用為主,用最快的時間讓你入門;后面也會附上想深入學習時可以參考的資料。
在實際工作中,我們從事的是“操作系統”周邊的開發,并不會太深入學習、修改操作系統本身。
①操作系統具有進程管理、存儲管理、文件管理和設備管理等功能,這些核心功能非常穩定可靠,基本上不需要我們修改代碼。我們只需要針對自己的硬件完善驅動程序
②學習驅動時必定會涉及其他知識,比如存儲管理、進程調度。當你深入理解了驅動程序后,也會加深對操作系統其他部分的理解
③Linux內核中大部分代碼都是設備驅動程序,可以認為Linux內核由各類驅動構成
但是,要成為該領域的高手,一定要深入理解Linux操作系統本身,要去研讀它的源代碼。
在忙完工作,閑暇之余,可以看看這些書:
①趙炯的《linux內核完全注釋》,這本比較薄,推薦這本。 他后來又出了《Linux 內核完全剖析》,太厚了,搞不好看了后面就忘記前面了。
②毛德操、胡希明的《LINUX核心源代碼情景分析》,此書分上下冊,巨厚無比。 當作字典看即可:想深入理解某方面的知識,就去看某章節。
③其他好書還有很多,我沒怎么看,沒有更多建議
基于快速入門,上手工作的目的,您先不用看上面的書,先按本文學習。
假設您是零基礎,我們規劃了如下入門路線圖。 前面的知識,是后面知識的基礎,建議按順序學習。 每一部分,不一定需要學得很深入透徹,下面分章節描述。
2.2.1 C語言
只要是理工科專業的,似乎都會教C語言。 我見過很多C語言考試90、100分的,一上機就傻了,我懷疑他們都沒在電腦上寫過程序。
理論再好,沒有實踐不能干活的話,公司招你去干嘛?
反過來,實踐出真知,學習C語言,必須練練練、寫寫寫!
當你掌握基本語法后,就可以在電腦上練習一些C語言習題了;
當你寫過幾個C程序后,就可以進入下一階段的裸機開發了。
①不需要太深入
作為快速入門,只要你會編寫“Hello, world!”,會寫冒泡排序,會一些基礎的語法操作,暫時就夠了。
指針操作是重點,多練習;
不需要去學習過多的數據結構知識,只需要掌握鏈表操作,其他不用學習,比如:隊列、二叉樹等等都不用學;不需要去學習任何的函數使用,比如文件操作、多線程編程、網絡編程等等;這些知識,在編寫Linux應用程序時會用,但是在操作系統特別是驅動學習時,用不著!
永往直前吧,以后碰到不懂的C語言問題,我們再回過頭來學習。
在后續的“裸機開發”中,會讓你繼續練習C語言,那會更實戰化。
C語言是在寫代碼中精進的。
②可以在Visual Studio下學習,也可以在Linux下學習,后者需要掌握一些編譯命令,我們暫時沒有提供C語言的教程,找一本C語言書,網上找找免費的C語言視頻(主要看怎么搭建環境),就可以自學了。
2.2.2 PC Linux基本操作:
對于PC Linux,我們推薦使用Ubuntu,在它上面安裝軟件非常簡便。
我們的工作模式通常是這樣:在Windows下閱讀、編寫代碼,然后把代碼上傳到PC Linux去編譯。 實際上,Ubuntu的桌面系統已經很好用了,我們拿到各種智能機可以很快上手,相信Ubuntu的桌面系統也可以讓你很快上手。 為了提高工作效率,我們通常使用命令行來操作Ubuntu。
不用擔心,你前期只需要掌握這幾條命令就可以了,它們是如此簡單,我干脆列出它們:
①cd : Change Directory(改變目錄)
cd 目錄名 // 進入某個目錄cd ..// cd “兩個點”:返回上一級目錄cd - // cd “短橫”:返回上一次所在目錄
②pwd : Print Work Directory(打印當前目錄 顯示出當前工作目錄的絕對路徑)
③mkdir : Make Directory(創建目錄)
mkdir abc // 創建文件夾abcmkdir -p a/b/c// 創建文件夾a,再a下創建文件夾b,再在b下創建文件夾c
④rm : Remove(刪除目錄或文件)
rm file // 刪除名為file的文件rm -rf dir// 刪除名為dir的目錄
⑤ls : List(列出目錄內容)
⑥mount : 掛載
mount -t nfs -o nolock,vers=2 192.168.1.123:/work/nfs_root /mntmount -t yaffs /dev/mtdblock3 /mnt
⑦chown : Change owner(改變文件的屬主,即擁有者)
chown book:book /work -R //對/work目錄及其下所有內容,屬主改為book用戶,組改為book
⑧chmod : Change mode(改變權限),下面的例子很簡單粗暴
chmod 777 /work -R // 對/work目錄及其下所有內容,權限改為可讀、可寫、可執行
⑨vi : Linux下最常用的編輯命令,使用稍微復雜,請自己搜索用法。
要練習這些命令,你可以進入Ubuntu桌面系統后,打開終端輸入那些命令;或是用SecureCRT、putty等工具遠程登錄Ubuntu后練習。
2.2.3 硬件知識
我們學習硬件知識的目的在于能看懂原理圖,看懂通信協議,看懂芯片手冊;不求能設計原理圖,更不求能設計電路板。
對于正統的方法,你應該這樣學習:
①學習《微機原理》,理解一個計算機的組成及各個部件的交互原理。
②學習《數字電路》,理解各種門電路的原理及使用,還可以掌握一些邏輯運算(與、或等)。
③《模擬電路》?好吧,這個不用學,至少我在工作中基本用不到它,現在全忘光了。
就我個人經驗來說,這些課程是有用的,但是:
①原理有用,實戰性不強。
比如《微機原理》是基于x86系統,跟ARM板子有很大差別,當然原理相通。
我是在接觸嵌入式編程后,才理解了這些課程。
②每本書都那么厚,內容都很多,學習時間過長,自學有難度。
針對這些校園教材的不足,并結合實際開發過程中要用到的知識點,我們推出了《學前班_怎么看原理圖》的系列視頻:
學前班第1課第1節___怎么看原理圖之GPIO和門電路
學前班第1課第2.1節_怎么看原理圖之協議類接口之
學前班第1課第2.2節_怎么看原理圖之協議類接口之
學前班第1課第2.3節_怎么看原理圖之協議類接口之
學前班第1課第2.4節_怎么看原理圖之協議類接口之NAND
學前班第1課第2.5節_怎么看原理圖之協議類接口之
學前班第1課第3節___怎么看原理圖之內存類接口
學前班第1課第4.1節_怎么看原理圖之分析S3C2410開發板
學前班第1課第4.2節_怎么看原理圖之分析S3C2440開發板
學前班第1課第4.3節_怎么看原理圖之分析S3C6410開發板
即使你只具備初中物理課的電路知識,我也希望能通過這些視頻,讓你可以看懂原理圖,理解一些常見的通信協議;如果你想掌握更多的硬件知識,這些視頻也可以起個索引作用,讓你知道缺乏什么知識。
這些視頻所講到的硬件知識,將在《裸板開發》系列視頻中用到,到時可以相互對照著看,加深理解。
2.2.4 要不要專門學習Windows下的單片機開發
很多學校都開通了單片機的課程,很多人都是從51單片機、AVR單片機,現在比較新的STM32單片機開始接觸嵌入式領域,并且使用Windows下的開發軟件,比如keil、MDK等。
問題來了,要不要專門學習Windows下的單片機開發?
①如果這是你們專業的必修課,那就學吧
②如果你的專業跟單片機密切相關,比如機械控制等,那就學吧
③如果你只是想從單片機入門,然后學習更廣闊的嵌入式Linux,那么放棄在Windows下學習單片機吧!
理由如下:
①Windows下的單片機學習,深度不夠
Windows下有很好的圖形界面單片機開發軟件,比如keil、MDK等。
它們封裝了很多技術細節,比如:
你只會從main函數開始編寫代碼,卻不知道上電后第1條代碼是怎么執行的;
你可以編寫中斷處理函數,但是卻不知道它是怎么被調用的;
你不知道程序怎么從Flash上被讀入內存;
也不知道內存是怎么劃分使用的,不知道棧在哪、堆在哪;
當你想裁剪程序降低對Flash、內存的使用時,你無從下手;
當你新建一個文件時,它被自動加入到工程里,但是其中的機理你完全不懂;
等等等。
②基于ARM+Linux裸機學習,可以學得更深,并且更貼合后續的Linux學習。 實際上它就是Linux下的單片機學習,只是一切更加原始:所有的代碼需要你自己來編寫;哪些文件加入工程,需要你自己來管理。
在工作中,我們當然傾向于使用Windows下更便利的工具,但是在學習階段,我們更想學習到程序的本質。
一切從零編寫代碼、管理代碼,可以讓我們學習到更多知識:
你需要了解芯片的上電啟動過程,知道第1條代碼如何運行;
你需要掌握怎么把程序從Flash上讀入內存;
需要理解內存怎么規劃使用,比如棧在哪,堆在哪;
需要理解代碼重定位;
需要知道中斷發生后,軟硬件怎么保護現場、跳到中斷入口、調用中斷程序、恢復現場;
你會知道,main函數不是我們編寫的第1個函數;
你會知道,芯片從上電開始,程序是怎么被搬運執行的;
你會知道,函數調用過程中,參數是如何傳遞的;
你會知道,中斷發生時,每一個寄存器的值都要小心對待;
等等等。
你掌握了ARM+Linux的裸機開發,再回去看Windows下的單片機開發,會驚呼:怎么那么簡單!并且你會完全明白這些工具沒有向你展示的技術細節。
驅動程序=Linux驅動程序軟件框架+ARM開發板硬件操作,我們可以從簡單的裸機開發入手,先掌握硬件操作,并且還可以:
①掌握如何在PC Linux下編譯程序、把程序燒錄到板子上并運行它
②為學習bootloader打基礎:掌握了各種硬件操作后,后面一組合就是一個bootloader
2.2.5 為什么選擇ARM9 S3C2440開發板,而不是其他性能更好的?
有一個錯誤的概念:S3C2440過時了、ARM9過時了。
這是不對的,如果你是軟件工程師,無論是ARM9、ARM11、A8還是A9,對我們來說是沒有差別的。
一款芯片,上面有CPU,還有眾多的片上設備(比如UART、USB、LCD控制器)。 我們寫程序時,并不涉及CPU,只是去操作那些片上設備。
所以:差別在于片上設備,不在于CPU核;差別在于寄存器操作不一樣。
因為我們寫驅動并不涉及CPU的核心,只是操作CPU之外的設備,只是讀寫這些設備的寄存器。
之所以推薦S3C2440,是因為它的Linux學習資料最豐富,并有配套的第1、2期視頻。
2.2.6 怎么學習ARM+Linux的裸機開發
學習裸機開發的目的有兩個:
①掌握裸機程序的結構,為后續的u-boot作準備
②練習硬件知識,即:怎么看原理圖、芯片手冊,怎么寫代碼來操作硬件
后面的u-boot可以認為是裸機程序的集合,我們在裸機開發中逐個掌握各個部件,再集合起來就可以得到一個u-boot了。
后續的驅動開發,也涉及硬件操作,你可以在裸機開發中學習硬件知識。
注意:如果你并不關心裸機的程序結構,不關心bootloader的實現,這部分是可以先略過的。 在后面的驅動視頻中,我們也會重新講解所涉及的硬件知識。
推薦兩本書:杜春蕾的《ARM體系結構與編程》,韋東山的《嵌入式Linux應用開發完全手冊》。 后者也許是國內第1本涉及在PC Linux環境下開發的ARM裸機程序的書,如果我說錯了,請原諒我書讀得少。
對于裸機開發,我們提供有2部分視頻:
①環境搭建
第0課第1節_剛接觸開發板之接口接線
第0課第2節_剛接觸開發板之燒寫裸板程序
第0課第3節_剛接觸開發板之重燒整個系統
第0課第4節_剛接觸開發板之使用vmwae和預先做好的
第0課第5節_剛接觸開發板之u-boot打補丁編譯使用及建sourceinsight工程
第0課第6節_剛接觸開發板之內核u-boot打補丁編譯使用及建sourceinsight工程
第0課第7節_剛接觸開發板之制作根文件系統及初試驅動
第0課第8節_在TQ2440,MINI2440上搭建視頻所用系統
第0課第9節_win7下不能使用dnw燒寫的替代方法
.................未完
原文鏈接:網頁鏈接
內容聲明:
1、本站收錄的內容來源于大數據收集,版權歸原網站所有!
2、本站收錄的內容若侵害到您的利益,請聯系我們進行刪除處理!
3、本站不接受違法信息,如您發現違法內容,請聯系我們進行舉報處理!
4、本文地址:http://www.hudongshop.com/article/112b1b139c8d67ed6245.html,復制請保留版權鏈接!
簡介隨著Web應用程序變得越來越復雜,它們也面臨著越來越多的安全威脅,跨站點腳本,XSS,是最常見的Web應用程序攻擊類型之一,它允許攻擊者在受害者的瀏覽器中執行惡意腳本,事件驗證是保護Web應用程序免受XSS和其他攻擊的基本安全機制,它通過驗證用戶輸入以確保其安全來工作,啟用事件驗證要啟用事件驗證,請在Web.config文件中將以...。
技術教程 2024-09-27 20:36:17
簡介RenderControl是ASP.NETCore中一項強大的技術,它允許開發人員創建自己的HTML標記渲染器,這提供了一個高度靈活和可擴展的平臺,用于構建個性化和交互式的Web應用程序,RenderControl的優勢RenderControl具有以下優勢,控制標記輸出,它允許您根據需要創建和修改HTML標記,提高性能,通過緩存...。
技術教程 2024-09-27 11:11:13
簡介AWK是一種針對文本數據處理的強大編程語言,因其簡單易用和高效性而受到普遍歡迎,在數據處理領域,熟練掌握AWK可以顯著提高效率并簡化復雜任務,實用技巧1.指定字段提取AWK提供多種方法來指定要提取的字段,最常用的語法是$n,其中n是字段編號,從1開始,例如,要提取第一列,只需使用$1,awk,print$1,input.txtA...。
技術教程 2024-09-25 18:17:34
Hover效果是CSS中最常用也是最強大的交互之一,它允許您在用戶將鼠標懸停在元素上時更改元素的外觀或行為,本文將深入探討CSShover效果,并提供一些實用的提示和技巧,幫助您創建引人入勝且用戶友好的交互,Hover事件Hover效果是通過將,hover偽類應用于元素來實現的,當鼠標懸停在該元素上時,瀏覽器將應用偽類的樣式,語法se...。
最新資訊 2024-09-24 23:15:12
什么是ResX文件,ResX文件是XML格式的文件,用于存儲應用程序的本地化資源,這些資源可以包括字符串、圖像、音頻文件和其他類型的數據,ResX文件的優點使用ResX文件本地化應用程序提供了以下優點,簡化本地化過程,ResX文件將所有本地化資源集中在一個文件中,從而簡化了本地化過程,易于編輯,ResX文件可以使用任何文本編輯器或XM...。
技術教程 2024-09-16 21:58:15
VBScript是一種腳本語言,可用于自動執行各種任務,包括文件和文件夾操作,讀取文件可以使用FileSystemObject對象讀取文件的內容,該對象提供OpenTextFile方法,該方法返回指向文件的TextStream對象,然后可以使用TextStream對象的ReadLine方法逐行讀取文件,創建FileSystemOb...。
本站公告 2024-09-16 04:39:05
滾動條是用于在內容超過其容器尺寸時允許用戶在內容中滾動的用戶界面元素,在HTML中,可以使用overflow屬性來控制滾動條的顯示,scrolling屬性scrolling屬性指定是否在嵌入式內容周圍顯示滾動條,該屬性可以具有以下值,auto,如果內容超過其容器尺寸,則顯示滾動條,yes,始終顯示滾動條,即使內容不超過其容器尺寸,no...。
最新資訊 2024-09-16 03:55:03
教程將深入介紹單片機C語言編程的精髓,涵蓋最佳實踐和高級技術,除了理論講解,還提供了100個實際應用示例,幫助讀者掌握單片機的開發技巧,概述單片機是一種集成度高、體積小巧的計算機,廣泛應用于各種電子產品中,C語言是一種結構化編程語言,具有高效、可移植和易于維護的優點,非常適合單片機編程,本教程將系統地介紹單片機C語言編程的各個方面,從...。
技術教程 2024-09-09 13:19:34
前言在當今互聯網時代,擁有一個網站對于個人和企業而言都至關重要,網站可以展示企業形象、提供產品和服務信息、建立客戶關系,并促進銷售,但是,對于大多數人來說,開發一個網站往往是一項復雜且耗時的任務,如果你沒有編程知識或者技術人員的幫助,那么構建一個網站幾乎是不可能的,站長源碼交易平臺的出現為這個問題提供了解決方案,它是一個提供各種網站源...。
互聯網資訊 2024-09-08 12:10:34
數據庫編程是計算機科學中一門激動人心且充滿挑戰的領域,它將技術創新與實際應用完美地結合在一起,它涉及設計、開發和維護用于存儲和管理數據的計算機程序,數據庫編程人員負責確保數據以安全、可靠且高效的方式進行處理,數據庫編程術語數據庫,數據的有組織集合,通常存儲在計算機系統中,數據庫管理系統,DBMS,一種軟件,用于創建、管理和訪問數據庫...。
技術教程 2024-09-06 18:23:08
簡介繼承和多態性是面向對象編程,OOP,中兩個重要的概念,繼承允許一個類從另一個類繼承屬性和方法,多態性允許一個對象以不同的形式存在,具體取決于它的實際類型,繼承當一個類從另一個類繼承時,它將獲得父類的所有屬性和方法,子類還可以定義自己的屬性和方法,這些屬性和方法可以覆蓋或擴展父類的屬性和方法,繼承的類型有兩種主要的繼承類型,單繼承,...。
互聯網資訊 2024-09-06 11:59:12
1、未開封位于河南省開封市的一處古代皇家陵園,至今仍未被完全發掘,據傳聞,陵園中埋葬著北宋皇帝宋真宗和他的皇后劉娥,以及其他皇室成員,多個考古團隊試圖進入陵園,但都以失敗告終,有傳言稱,陵園中存在著神秘力量,阻擋了人們的進入,2、秦始皇陵位於陝西省西安市的秦始皇陵,是世界上最大的陵墓之一,陵墓中埋葬著秦始皇及其陪葬品,儘管陵墓已經被發...。
互聯網資訊 2024-09-04 01:31:31