áúðчðть - Xakep Online
áúðчðть - Xakep Online
áúðчðть - Xakep Online
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
ÞÍÈÒÛ ÊÐÅÀÒÈÔÔ ÊÎÄÈÍÃ UNIXOID ÑÖÅÍÀ ÂÇËÎÌ ÈÌÏËÀÍÒ PC_ZONE FERRUM<br />
ÍÜÞÑÛ<br />
HELLO<br />
WORLD<br />
118<br />
64-áèòíûé ïðèâåò<br />
32-ÁÈÒÍÀß ÝÏÎÕÀ ÓÕÎÄÈÒ Â ÏÐÎØËÎÅ, ÑÄÀ-<br />
ÂÀßÑÜ ÏÎÄ ÍÀÒÈÑÊÎÌ ÍÎÂÛÕ ÈÄÅÉ È ÏËÀÒ-<br />
ÔÎÐÌ. ÎÁÀ ÔËÀÃÌÀÍÀ ÐÛÍÊÀ (INTEL È AMD)<br />
ÏÐÅÄÑÒÀÂÈËÈ 64-ÁÈÒÍÛÅ ÀÐÕÈÒÅÊÒÓÐÛ,<br />
ÎÒÊÐÛÂÀÞÙÈÅ ÄÂÅÐÜ Â ÌÈÐ ÁÎËÜØÈÕ ÑÊÎ-<br />
ÐÎÑÒÅÉ È ÏÐÎÈÇÂÎÄÈÒÅËÜÍÛÕ ÖÏ. ÝÒÎ ÍÀÑ-<br />
ÒÎßÙÈÉ ÏÐÎÐÛÂ — ÍÎÂÛÅ ÐÅÃÈÑÒÐÛ, ÍÎ-<br />
ÂÛÅ ÐÅÆÈÌÛ ÐÀÁÎÒÛ… ÏÎÏÐÎÁÓÅÌ Ñ ÍÈÌÈ<br />
ÐÀÇÎÁÐÀÒÜÑß ÌÛ ÐÀÑÑÌÎÒÐÈÌ ÀÐÕÈÒÅÊÒÓ-<br />
ÐÓ AMD64 (ÎÍÀ ÆÅ X86-64) È ÏÎÊÀÆÅÌ,<br />
ÊÀÊ Ñ ÍÅÉ ÁÎÐÎÒÜÑß | Êðèñ Êàñïåðñêè àêà ìûùúõ<br />
Àðõèòåêòóðà x86-64<br />
ïîä ñêàëüïåëåì<br />
àññåìáëåðùèêà<br />
64-áèòíûé ëåéáë — çâó÷èò âîçáóæäàþùå, õîòÿ<br />
âñåãî ëèøü õèòðûé ìàðêåòèíãîâûé òðþê, ñêðûâàþùèé<br />
íå òîëüêî äîñòîèíñòâà, íî è íåäîñòàòêè.<br />
Íàì äàðîâàíû 64-áèòíûå îïåðàíäû è 64-áèòíàÿ<br />
àäðåñàöèÿ. Êàçàëîñü áû, ëèøíèå<br />
ðàçðÿäû êàðìàí íå òÿíóò è åñëè íå<br />
ïðèãîäÿòñÿ, òî, ïî êðàéíåé ìåðå, íå<br />
ïîìåøàþò. Òàê âåäü íåò! Ñ ðîñòîì<br />
ðàçðÿäíîñòè óâåëè÷èâàåòñÿ è äëèíà ìàøèííûõ êîìàíä, à çíà÷èò, âðåìÿ èõ<br />
çàãðóçêè/äåêîäèðîâàíèÿ è ðàçìåðû ïðîãðàììû, ïîýòîìó äëÿ äîñòèæåíèÿ<br />
íå õóäøåé ïðîèçâîäèòåëüíîñòè 64-áèòíûé ïðîöåññîð äîëæåí èìåòü áîëåå<br />
áûñòðóþ ïàìÿòü è áîëåå åìêèé êýø. Ýòî ðàç.<br />
64-áèòíûå öåëî÷èñëåííûå îïåðàíäû ñòàíîâÿòñÿ þçàáåëüíû òîëüêî ïðè îáðàáîòêå<br />
÷èñåë ïîðÿäêà 2^33+ (8.589.934.592) è âûøå. Òàì, ãäå 32-áèòíîìó<br />
ïðîöåññîðó òðåáóåòñÿ íåñêîëüêî òàêòîâ, 64-áèòíûé ñïðàâëÿåòñÿ çà îäèí. Íî<br />
ãäå òû âèäåë òàêèå ÷èñëà â äîìàøíèõ è îôèñíûõ ïðèëîæåíèÿõ Íå çðÿ æå<br />
èíæåíåðû èç Intel ïîøëè íà ñîêðàùåíèå ðàçðÿäíîñòè ÀËÓ (àðèôìåòè÷íîãîëîãè÷åñîêãî<br />
óñòðîéñòâà), øèðèíà êîòîðîãî â Pentium-4 ñîñòàâëÿåò âñåãî 16<br />
áèò ïðîòèâ 32-õ áèò â Pentium-III. Ýòî íå çíà÷èò, ÷òî Pentium-4 íå ìîæåò îáðàáàòûâàòü<br />
32-ðàçðÿäíûå ÷èñëà. Ìîæåò. Òîëüêî îí òðàòèò íà íèõ áîëüøå<br />
âðåìåíè, ÷åì Pentium-III. Íî ïîñêîëüêó ïðîöåíò ïîäëèííî 32-ðàçðÿäíûõ ÷èñåë<br />
(òî åñòü òàêèõ, ÷òî èñïîëüçóþò ñâûøå 16 áèò) â äîìàøíèõ ïðèëîæåíèÿõ<br />
îòíîñèòåëüíî íåâûñîê, ïðîèçâîäèòåëüíîñòü ïàäàåò íåçíà÷èòåëüíî. Çàòî ÿäðî<br />
ñîäåðæèò ìåíüøå òðàíçèñòîðîâ, âûäåëÿåò ìåíüøå òåïëà è ëó÷øå ðàáîòàåò<br />
íà ïîâûøåííîé òàêòîâîé ÷àñòîòå — â öåëîì ýôôåêò ïîëîæèòåëüíûé.<br />
64-áèòíàÿ ðàçðÿäíîñòü… Ïîìèëóé! Àäðåñîâàòü 18.446.744.073.709.551.616<br />
áàéò ïàìÿòè íå íóæíî äàæå Microsoft'ó ñî âñåìè åãî ãðàôè÷åñêèìè çàâîðîòàìè!<br />
Èç 4-õ Ãáàéò àäðåñíîãî ïðîñòðàíñòâà Windows Processional è<br />
Windows Server òîëüêî 2 Ãáàéòà âûäåëÿþò ïðèëîæåíèÿì.<br />
3 Ãáàéòà âûäåëÿåò ëèøü Windows Advanced Server, è íå ïîòîìó, ÷òî áîëüøå<br />
âûäåëèòü íåâîçìîæíî! x86-ïðîöåññîðû ñ ëåãêîñòüþ àäðåñóþò âïëîòü<br />
äî 16 Ãáàéò (ïî 4 Ãáàéòà íà êîä, äàííûå, ñòåê è êó÷ó), îïÿòü-òàêè îáõîäÿñü<br />
ìèíèìàëüíîé ïåðåñòðîéêîé îïåðàöèîííîé ñèñòåìû! Ïî÷åìó æå äî<br />
ñèõ ïîð ýòî íå áûëî ñäåëàíî Ïî÷åìó ìû ñèäèì íà æàëêèõ 4-õ Ãáàéòàõ<br />
èç êîòîðûõ ðåàëüíî äîñòóïíû òîëüêî äâà! Äà ïîòîìó, ÷òî áîëüøå íèêîìó<br />
íå íóæíî! Ñèñòåìó, àäðåñóþùóþ 16 Ãáàéò, ïðîñòî òàê íå ïðîäàøü, êîãî<br />
ýòè ãèãàáàéòû èíòåðåñóþò Âîò 64 áèòà — ñîâñåì äðóãîå äåëî!<br />
Ñðàâíèâàòü 32- è 64-áèòíûå ïðîöåññîðû áåññìûñëåííî! Åñëè 64-áèòíûé ïðîöåññîð<br />
íà äîìàøíåì ïðèëîæåíèè îêàçûâàåòñÿ áûñòðåå, òî îòíþäü íå çà ñ÷åò<br />
ñâîåé 64-áèòíîñòè, à áëàãîäàðÿ ñîâåðøåííî íåçàâèñèìûì îò íåå êîíñòðóêòèâíûì<br />
óõèùðåíèÿì, íà êîòîðûõ èíæåíåðû åäâà íå ðàçîðâàëè ñåáå çàäíèöû!<br />
Âïðî÷åì, íå áóäåì î ãðóñòíîì. 64 áèòà âñå ðàâíî âîéäóò â íàøó æèçíü.<br />
Äëÿ íåêîòîðûõ çàäà÷ îíè î÷åíü äàæå íè÷åãî. Âîò, íàïðèìåð, êðèïòîãðàôèÿ.<br />
64 áèòà — ýòî æå 8 áàéò! 8-ñèìâîëüíûå ïàðîëè ìîæíî ïîëíîñòüþ<br />
óìåñòèòü â îäèí ðåãèñòð, íå îáðàùàÿñü ê ïàìÿòè, ÷òî äàåò íåâåðîÿòíûé<br />
ðåçóëüòàò! Ñêîðîñòü ïåðåáîðà óâåëè÷èâàåòñÿ ÷óòü ëè íå íà ïîðÿäîê! Íó,<br />
òàê ÷åãî æå ìû æäåì! Âïåðåä! Íà øòóðì 64-áèòíûõ âåðøèí!<br />
[÷òî íàì ïîíàäîáèòñÿ] Äëÿ ïðîãðàììèðîâàíèÿ â 64-ðåæèìå æåëàòåëüíî<br />
èìåòü êîìïüþòåð ñ ïðîöåññîðîì AMD Athlon FX èëè Opertorn, íî<br />
ìîæíî îáîéòèñü è ýìóëÿòîðîì. Ñóùåñòâóåò íå òàê ìíîãî ýìóëÿòîðîâ<br />
ïîä x86-64 ïëàòôîðìó è âñå îíè íåäîäåëàííûå è æóòêî áàæíûå, íî äëÿ<br />
çíàêîìñòâà ñ AMD 64 èõ áóäåò âïîëíå äîñòàòî÷íî.<br />
Áîëüøîé ïîïóëÿðíîñòüþ ïîëüçóåòñÿ áåñïëàòíûé ýìóëÿòîð BOCHS (â ïðîñòîðå÷èè<br />
íàçûâàåìûé áîðùîì), ðàñïðîñòðàíÿåìûé â èñõîäíûõ òåêñòàõ.<br />
Ïîääåðæêà àðõèòåêòóðû x86-64 âïåðâûå ïîÿâèëàñü â âåðñèè 2.2-pre3 è çàòåì<br />
áûëà âêëþ÷åíà â ðåëèç 2.2.1 íà ïðàâàõ ýêñïåðèìåíòàëüíîé ôè÷è. Íà<br />
îôèöèàëüíîì ñàéòå (http://bochs.sourceforge.net/) ìîæíî íàéòè íåñêîëüêî<br />
ãîòîâûõ áèíàðíûõ ñáîðîê ïîä ðàçíûå ïëàòôîðìû, íî… òîëüêî äëÿ àðõèòåêòóðû<br />
x86. Ýìóëÿöèÿ x86-64 òðåáóåò îáÿçàòåëüíîé ïåðåêîìïèëÿöèè ïîä<br />
*nix-ñèñòåìàìè. Ñêà÷èâàåì èñõîäíûå òåêñòû (http://prdownloads.sourceforge.net/bochs/bochs-2.2.1.tar.gzdownload),<br />
ðàñïàêîâûâàåì àðõèâ, çàïóñêàåì<br />
êîíôèãóðàòîð ñ êëþ÷îì --enable-x86-64 è çàòåì äàåì make.<br />
[ñáîðêà BOCHS'à ñ ïîääåðæêîé ýìóëÿöèè x86-64]<br />
$./configure --enable-x86-64<br />
$make<br />
Îáðàçóåòñÿ èñïîëíÿåìûé ôàéë bochs, òðåáóþùèé äëÿ ñâîåé ðàáîòû bios<br />
è bxrc-ñöåíàðèé, êîòîðûå ìîæíî ïîçàèìñòâîâàòü èç ãîòîâîé áèíàðíîé<br />
ñáîðêè. Äëÿ êîìïèëÿöèè ïîä Windows-ïëàòôîðìó ñëåäóåò çàïóñòèòü<br />
ñêðèïò conf.win32-vcpp, à çàòåì âûïîëíèòü make win32_snap. Äëÿ ýòîãî,<br />
åñòåñòâåííî, íåîáõîäèìî èìåòü Linux, ïîñêîëüêó Windows shell-ñêðèïòîâ<br />
â óïîð íå ïîíèìàåò (ïðàâäà, ìîæíî âîñïîëüçîâàòüñÿ Cygwin'îì, íî ñáîðêà<br />
ïîä íèì — îòäåëüíûé ãåìîððîé).<br />
[ñáîðêà BOCHS'à äëÿ êîìïèëÿöèè Microsoft Visual C++]<br />
sh .conf.win32-vcpp<br />
make win32_snap<br />
Çàëåçàé íà äèñê ê æóðíàëó,<br />
òàì òû îáíàðóæèøü âñå<br />
èñõîäíèêè ê ñòàòüå.