git: e8280d6473 - main - update translation of articles/ part3 to Russian
Vladlen Popolitov <[email protected]>
| Newsgroups | gmane.os.freebsd.devel.cvs.doc |
|---|---|
| Message-ID | <[email protected]> |
The branch main has been updated by vladlen: URL: https://cgit.FreeBSD.org/doc/commit/?id=e8280d64739d6c59351fa405c15eb43127f2da5b commit e8280d64739d6c59351fa405c15eb43127f2da5b Author: Vladlen Popolitov <[email protected]> AuthorDate: 2026-03-15 11:57:19 +0000 Commit: Vladlen Popolitov <[email protected]> CommitDate: 2026-03-15 11:57:19 +0000 update translation of articles/ part3 to Russian Reviewed by: andy, marck Differential Revision: https://reviews.freebsd.org/D55587 --- .../content/ru/articles/serial-uart/_index.adoc | 18 +++--- .../content/ru/articles/serial-uart/_index.po | 24 ++++---- .../content/ru/articles/solid-state/_index.adoc | 18 +++--- .../content/ru/articles/solid-state/_index.po | 24 ++++---- .../content/ru/articles/vinum/_index.adoc | 10 ++-- documentation/content/ru/articles/vinum/_index.po | 14 ++--- .../content/ru/articles/vm-design/_index.adoc | 54 ++++++++--------- .../content/ru/articles/vm-design/_index.po | 70 +++++++++++----------- 8 files changed, 116 insertions(+), 116 deletions(-) diff --git a/documentation/content/ru/articles/serial-uart/_index.adoc b/documentation/content/ru/articles/serial-uart/_index.adoc index a1e802e10e..d172ca320e 100644 --- a/documentation/content/ru/articles/serial-uart/_index.adoc +++ b/documentation/content/ru/articles/serial-uart/_index.adoc @@ -361,11 +361,11 @@ RS232-C Ñакже опÑеделÑÐµÑ Ñигнал под названием ` |Режим ÑеÑÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ |=== -=== ÐиÑÑ, ÐÐ¾Ð´Ñ Ð¸ Ð¡Ð¸Ð¼Ð²Ð¾Ð»Ñ +=== ÐиÑÑ, Ð±Ð¾Ð´Ñ Ð¸ ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð¡ÐºÐ¾ÑоÑÑÑ Ð¿ÐµÑедаÑи даннÑÑ (Baud) â ÑÑо единиÑа измеÑÐµÐ½Ð¸Ñ ÑкоÑоÑÑи пеÑедаÑи в аÑÐ¸Ð½Ñ Ñонной ÑвÑзи. Ðз-за ÑазвиÑÐ¸Ñ ÑÐµÑ Ð½Ð¾Ð»Ð¾Ð³Ð¸Ð¹ модемной ÑвÑзи ÑÑÐ¾Ñ ÑеÑмин ÑаÑÑо оÑибоÑно иÑполÑзÑÑÑ Ð´Ð»Ñ Ð¾Ð¿Ð¸ÑÐ°Ð½Ð¸Ñ ÑкоÑоÑÑи пеÑедаÑи даннÑÑ Ð² ÑовÑеменнÑÑ ÑÑÑÑойÑÑÐ²Ð°Ñ . -ТÑадиÑионно, ÑкоÑоÑÑÑ Ð¿ÐµÑедаÑи (Baud Rate) пÑедÑÑавлÑÐµÑ ÐºÐ¾Ð»Ð¸ÑеÑÑво биÑов, ÑакÑиÑеÑки пеÑедаваемÑÑ Ð¿Ð¾ ÑÑеде, а не обÑем даннÑÑ , коÑоÑÑе дейÑÑвиÑелÑно пеÑемеÑаÑÑÑÑ Ð¾Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ ÑÑÑÑойÑÑва DTE к дÑÑгомÑ. ÐодÑÑÐµÑ Baud вклÑÑÐ°ÐµÑ ÑлÑжебнÑе биÑÑ â Start, Stop и Parity, коÑоÑÑе генеÑиÑÑÑÑÑÑ Ð¿ÐµÑедаÑÑим UART и ÑдалÑÑÑÑÑ Ð¿ÑинимаÑÑим UART. ÐÑо ознаÑаеÑ, ÑÑо 7-биÑнÑе Ñлова даннÑÑ Ð½Ð° Ñамом деле занимаÑÑ 10 Ð±Ð¸Ñ Ð´Ð»Ñ Ð¿Ð¾Ð»Ð½Ð¾Ð¹ пеÑедаÑи. СледоваÑелÑно, модем, ÑпоÑобнÑй пеÑÐµÐ´Ð°Ð²Ð°Ñ Ñ 300 Ð±Ð¸Ñ Ð² ÑекÑндÑ, обÑÑно Ð¼Ð¾Ð¶ÐµÑ Ð¿ÐµÑедаваÑÑ ÑолÑко 30 7-биÑнÑÑ Ñлов, еÑли иÑполÑзÑеÑÑÑ Parity и пÑиÑÑÑÑÑвÑÑÑ Ð¾Ð´Ð¸Ð½ Ð±Ð¸Ñ Start и один Ð±Ð¸Ñ Stop. +ТÑадиÑионно, ÑкоÑоÑÑÑ Ð¿ÐµÑедаÑи (Baud Rate) пÑедÑÑавлÑÐµÑ ÐºÐ¾Ð»Ð¸ÑеÑÑво биÑов, ÑакÑиÑеÑки пеÑедаваемÑÑ Ð¿Ð¾ ÑÑеде, а не обÑÑм даннÑÑ , коÑоÑÑе дейÑÑвиÑелÑно пеÑемеÑаÑÑÑÑ Ð¾Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ ÑÑÑÑойÑÑва DTE к дÑÑгомÑ. ÐодÑÑÐµÑ Baud вклÑÑÐ°ÐµÑ ÑлÑжебнÑе биÑÑ â Start, Stop и Parity, коÑоÑÑе генеÑиÑÑÑÑÑÑ Ð¿ÐµÑедаÑÑим UART и ÑдалÑÑÑÑÑ Ð¿ÑинимаÑÑим UART. ÐÑо ознаÑаеÑ, ÑÑо 7-биÑнÑе Ñлова даннÑÑ Ð½Ð° Ñамом деле занимаÑÑ 10 Ð±Ð¸Ñ Ð´Ð»Ñ Ð¿Ð¾Ð»Ð½Ð¾Ð¹ пеÑедаÑи. СледоваÑелÑно, модем, ÑпоÑобнÑй пеÑÐµÐ´Ð°Ð²Ð°Ñ Ñ 300 Ð±Ð¸Ñ Ð² ÑекÑндÑ, обÑÑно Ð¼Ð¾Ð¶ÐµÑ Ð¿ÐµÑедаваÑÑ ÑолÑко 30 7-биÑнÑÑ Ñлов, еÑли иÑполÑзÑеÑÑÑ Parity и пÑиÑÑÑÑÑвÑÑÑ Ð¾Ð´Ð¸Ð½ Ð±Ð¸Ñ Start и один Ð±Ð¸Ñ Stop. ÐÑли иÑполÑзÑÑÑÑÑ 8-биÑнÑе Ñлова даннÑÑ Ð¸ биÑÑ ÑÑÑноÑÑи, ÑкоÑоÑÑÑ Ð¿ÐµÑедаÑи даннÑÑ ÑнижаеÑÑÑ Ð´Ð¾ 27,27 Ñлов в ÑекÑндÑ, Ñак как ÑепеÑÑ Ð´Ð»Ñ Ð¿ÐµÑедаÑи воÑÑмибиÑнÑÑ Ñлов ÑÑебÑеÑÑÑ 11 биÑ, а модем по-пÑÐµÐ¶Ð½ÐµÐ¼Ñ Ð¿ÐµÑедаÑÑ ÑолÑко 300 Ð±Ð¸Ñ Ð² ÑекÑндÑ. @@ -438,7 +438,7 @@ PC16550D:: ==== NS16550AF и PC16550D â ÑÑо одно и Ñо же -ÐÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ National ÑеоÑганизовала ÑÐ²Ð¾Ñ ÑиÑÑÐµÐ¼Ñ Ð½ÑмеÑаÑии деÑалей неÑколÑко Ð»ÐµÑ Ð½Ð°Ð·Ð°Ð´, и Ñип NS16550AFN болÑÑе не ÑÑÑеÑÑвÑÐµÑ Ð¿Ð¾Ð´ ÑÑим названием. (ÐÑли Ñ Ð²Ð°Ñ ÐµÑÑÑ NS16550AFN, поÑмоÑÑиÑе на даÑÑ Ð¸Ð·Ð³Ð¾ÑÐ¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð° коÑпÑÑе â ÑÑо ÑеÑÑÑÐµÑ Ð·Ð½Ð°Ñное ÑиÑло, обÑÑно наÑинаÑÑееÑÑ Ñ Ð´ÐµÐ²ÑÑки. ÐеÑвÑе две ÑиÑÑÑ Ð¾Ð±Ð¾Ð·Ð½Ð°ÑаÑÑ Ð³Ð¾Ð´, а поÑледние две â Ð½ÐµÐ´ÐµÐ»Ñ Ð³Ð¾Ð´Ð°, когда Ñип бÑл Ñпакован. ÐÑли Ñ Ð²Ð°Ñ ÐµÑÑÑ NS16550AFN, ÑкоÑее вÑего, он Ñже доволÑно ÑÑаÑÑй.) +ÐÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ National ÑеоÑганизовала ÑÐ²Ð¾Ñ ÑиÑÑÐµÐ¼Ñ Ð½ÑмеÑаÑии деÑалей неÑколÑко Ð»ÐµÑ Ð½Ð°Ð·Ð°Ð´, и Ñип NS16550AFN болÑÑе не ÑÑÑеÑÑвÑÐµÑ Ð¿Ð¾Ð´ ÑÑим названием. (ÐÑли Ñ Ð²Ð°Ñ ÐµÑÑÑ NS16550AFN, поÑмоÑÑиÑе на даÑÑ Ð¸Ð·Ð³Ð¾ÑÐ¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð° коÑпÑÑе â ÑÑо ÑеÑÑÑÑÑ Ð·Ð½Ð°Ñное ÑиÑло, обÑÑно наÑинаÑÑееÑÑ Ñ Ð´ÐµÐ²ÑÑки. ÐеÑвÑе две ÑиÑÑÑ Ð¾Ð±Ð¾Ð·Ð½Ð°ÑаÑÑ Ð³Ð¾Ð´, а поÑледние две â Ð½ÐµÐ´ÐµÐ»Ñ Ð³Ð¾Ð´Ð°, когда Ñип бÑл Ñпакован. ÐÑли Ñ Ð²Ð°Ñ ÐµÑÑÑ NS16550AFN, ÑкоÑее вÑего, он Ñже доволÑно ÑÑаÑÑй.) ÐовÑе номеÑа вÑглÑдÑÑ ÐºÐ°Ðº PC16550DV, Ñ Ð½ÐµÐ·Ð½Ð°ÑиÑелÑнÑми оÑлиÑиÑми в ÑÑÑÑикÑнÑÑ Ð±ÑÐºÐ²Ð°Ñ Ð² завиÑимоÑÑи Ð¾Ñ Ð¼Ð°ÑеÑиала коÑпÑÑа и его ÑоÑмÑ. (ÐпиÑание ÑиÑÑÐµÐ¼Ñ Ð½ÑмеÑаÑии можно найÑи ниже.) @@ -487,7 +487,7 @@ PC16550D:: Ðогда ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ National Semiconductor ÑазÑабоÑала NS16550, она полÑÑила неÑколÑко паÑенÑов на ÑÑÑ ÐºÐ¾Ð½ÑÑÑÑкÑÐ¸Ñ Ð¸ Ñакже огÑаниÑила лиÑензиÑование, ÑÑо заÑÑÑднило Ð´Ð»Ñ Ð´ÑÑÐ³Ð¸Ñ Ð¿ÑоизводиÑелей вÑпÑÑк Ñипов Ñ Ð°Ð½Ð°Ð»Ð¾Ð³Ð¸ÑнÑми Ñ Ð°ÑакÑеÑиÑÑиками. Ð ÑезÑлÑÑаÑе паÑенÑов обÑаÑно ÑпÑоекÑиÑованнÑе конÑÑÑÑкÑии и ÑмÑлÑÑии Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±Ñли избегаÑÑ Ð½Ð°ÑÑÑÐµÐ½Ð¸Ñ Ð¿ÑнкÑов, Ð¾Ñ Ð²Ð°ÑÑваемÑÑ Ð¿Ð°ÑенÑами. ÐпоÑледÑÑвии ÑÑи копии поÑÑи никогда не ÑабоÑаÑÑ ÑоÑно Ñак же, как NS16550A или PC16 550D, коÑоÑÑе ÑвлÑÑÑÑÑ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñами, наиболее воÑÑÑебованнÑми пÑоизводиÑелÑми компÑÑÑеÑов и модемов, но иногда они не гоÑÐ¾Ð²Ñ Ð¿Ð»Ð°ÑиÑÑ ÑенÑ, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼ÑÑ Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð¾ÑигиналÑнÑÑ Ð´ÐµÑалей. -ÐекоÑоÑÑе ÑазлиÑÐ¸Ñ Ð² ÐºÐ»Ð¾Ð½Ð°Ñ Ð¼Ð¸ÐºÑоÑÑ ÐµÐ¼ 16550A неÑÑÑеÑÑвеннÑ, в Ñо вÑÐµÐ¼Ñ ÐºÐ°Ðº дÑÑгие могÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð¿ÑепÑÑÑÑвоваÑÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÑÑÑойÑÑва Ñ Ð¾Ð¿Ñеделенной опеÑаÑионной ÑиÑÑемой или дÑайвеÑом. ÐÑи ÑазлиÑÐ¸Ñ Ð¼Ð¾Ð³ÑÑ Ð¿ÑоÑвиÑÑÑÑ Ð¿Ñи иÑполÑзовании дÑÑÐ³Ð¸Ñ Ð´ÑайвеÑов или пÑи возникновении опÑеделеннÑÑ ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñий ÑобÑÑий, коÑоÑÑе не бÑли Ñ Ð¾ÑоÑо пÑоÑеÑÑиÑÐ¾Ð²Ð°Ð½Ñ Ð¸Ð»Ð¸ ÑÑÑÐµÐ½Ñ Ð² дÑайвеÑе Windows(R). ÐÑо пÑоиÑÑ Ð¾Ð´Ð¸Ñ Ð¿Ð¾ÑомÑ, ÑÑо болÑÑинÑÑво пÑоизводиÑелей Ð ¼Ð¾Ð´ÐµÐ¼Ð¾Ð² и клонов 16550 иÑполÑзÑÑÑ Ð´ÑайвеÑÑ Microsoft из Windows(R) for Workgroups 3.11 и ÑÑилиÑÑ Microsoft(R) MS-DOS(R) в каÑеÑÑве оÑно внÑÑ ÑеÑÑов на ÑовмеÑÑимоÑÑÑ Ñ NS16550A. ÐÑÐ¾Ñ ÑÑезмеÑно ÑпÑоÑеннÑй кÑиÑеÑий ознаÑаеÑ, ÑÑо пÑи иÑполÑзовании дÑÑгой опеÑаÑионной ÑиÑÑÐµÐ¼Ñ Ð¼Ð¾Ð³ÑÑ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½ÑÑÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ð¸Ð·-за ÑÐ¾Ð½ÐºÐ¸Ñ ÑазлиÑий Ð¼ÐµÐ¶Ð´Ñ ÐºÐ»Ð¾Ð½Ð°Ð¼Ð¸ и оÑигиналÑнÑми компоненÑами. +ÐекоÑоÑÑе ÑазлиÑÐ¸Ñ Ð² ÐºÐ»Ð¾Ð½Ð°Ñ Ð¼Ð¸ÐºÑоÑÑ ÐµÐ¼ 16550A неÑÑÑеÑÑвеннÑ, в Ñо вÑÐµÐ¼Ñ ÐºÐ°Ðº дÑÑгие могÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð¿ÑепÑÑÑÑвоваÑÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÑÑÑойÑÑва Ñ Ð¾Ð¿ÑеделÑнной опеÑаÑионной ÑиÑÑемой или дÑайвеÑом. ÐÑи ÑазлиÑÐ¸Ñ Ð¼Ð¾Ð³ÑÑ Ð¿ÑоÑвиÑÑÑÑ Ð¿Ñи иÑполÑзовании дÑÑÐ³Ð¸Ñ Ð´ÑайвеÑов или пÑи возникновении опÑеделÑннÑÑ ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñий ÑобÑÑий, коÑоÑÑе не бÑли Ñ Ð¾ÑоÑо пÑоÑеÑÑиÑÐ¾Ð²Ð°Ð½Ñ Ð¸Ð»Ð¸ ÑÑÑÐµÐ½Ñ Ð² дÑайвеÑе Windows(R). ÐÑо пÑоиÑÑ Ð¾Ð´Ð¸Ñ Ð¿Ð¾ÑомÑ, ÑÑо болÑÑинÑÑво пÑоизводиÑелей Ð ¼Ð¾Ð´ÐµÐ¼Ð¾Ð² и клонов 16550 иÑполÑзÑÑÑ Ð´ÑайвеÑÑ Microsoft из Windows(R) for Workgroups 3.11 и ÑÑилиÑÑ Microsoft(R) MS-DOS(R) в каÑеÑÑве оÑно внÑÑ ÑеÑÑов на ÑовмеÑÑимоÑÑÑ Ñ NS16550A. ÐÑÐ¾Ñ ÑÑезмеÑно ÑпÑоÑеннÑй кÑиÑеÑий ознаÑаеÑ, ÑÑо пÑи иÑполÑзовании дÑÑгой опеÑаÑионной ÑиÑÑÐµÐ¼Ñ Ð¼Ð¾Ð³ÑÑ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½ÑÑÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ð¸Ð·-за ÑÐ¾Ð½ÐºÐ¸Ñ ÑазлиÑий Ð¼ÐµÐ¶Ð´Ñ ÐºÐ»Ð¾Ð½Ð°Ð¼Ð¸ и оÑигиналÑнÑми компоненÑами. National Semiconductor пÑедоÑÑавила пÑогÑÐ°Ð¼Ð¼Ñ Ð¿Ð¾Ð´ названием COMTEST, коÑоÑÐ°Ñ Ð²ÑполнÑÐµÑ ÑеÑÑÑ ÑовмеÑÑимоÑÑи незавиÑимо Ð¾Ñ ÐºÐ°ÐºÐ¸Ñ -либо дÑайвеÑов ÐС. СледÑÐµÑ Ð¿Ð¾Ð¼Ð½Ð¸ÑÑ, ÑÑо ÑÐµÐ»Ñ Ñакого Ñипа пÑогÑамм â демонÑÑÑаÑÐ¸Ñ Ð½ÐµÐ´Ð¾ÑÑаÑков в пÑодÑкÑÐ°Ñ ÐºÐ¾Ð½ÐºÑÑенÑов, поÑÑÐ¾Ð¼Ñ Ð¿ÑогÑамма бÑÐ´ÐµÑ ÑообÑаÑÑ ÐºÐ°Ðº о знаÑиÑелÑнÑÑ , Ñак и о кÑайне незнаÑиÑелÑнÑÑ ÑазлиÑиÑÑ Ð² поведении ÑеÑÑиÑÑемого компоненÑа. @@ -540,7 +540,7 @@ National Semiconductor пÑедоÑÑавила пÑогÑÐ°Ð¼Ð¼Ñ Ð¿Ð¾Ð´ наз Ðа ÑегоднÑÑний Ð´ÐµÐ½Ñ Ð°Ð²ÑÐ¾Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ докÑменÑа не обнаÑÑжил ни одного не-National компоненÑа, коÑоÑÑй Ð±Ñ Ð¿Ð¾ÐºÐ°Ð·Ñвал нÑлевÑе ÑазлиÑÐ¸Ñ Ð¿Ñи иÑполÑзовании пÑогÑÐ°Ð¼Ð¼Ñ COMTEST. Также ÑледÑÐµÑ Ð¾ÑмеÑиÑÑ, ÑÑо Ñ National бÑло пÑÑÑ Ð²ÐµÑÑий 16550 за ÑÑи годÑ, и новейÑие компоненÑÑ Ð²ÐµÐ´ÑÑ ÑÐµÐ±Ñ Ð½ÐµÑколÑко инаÑе, Ñем клаÑÑиÑеÑкий NS16550AFN, коÑоÑÑй ÑÑиÑаеÑÑÑ ÑÑалоном ÑÑнкÑионалÑноÑÑи. COMTEST, по-видимомÑ, закÑÑÐ²Ð°ÐµÑ Ð³Ð»Ð°Ð·Ð° на ÑазлиÑÐ¸Ñ Ð²Ð½ÑÑÑи линейки пÑодÑкÑов National и не ÑообÑÐ°ÐµÑ Ð¾Ð± оÑÐ¸Ð±ÐºÐ°Ñ Ð² компоненÑÐ°Ñ National (за иÑклÑÑением оÑигиналÑной 16550), даже когда ÑÑÑеÑÑвÑÑÑ Ð¾ÑиÑиалÑнÑе errata , опиÑÑваÑÑие оÑибки в ÑевизиÑÑ A, B и C ÑÑÐ¸Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñов, поÑÑÐ¾Ð¼Ñ ÑÑÑ Ð¿ÑедвзÑÑоÑÑÑ COMTEST Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ ÑÑиÑÑваÑÑ. ==== -Ðажно понимаÑÑ, ÑÑо пÑоÑÑое подÑÑиÑÑвание ÑазлиÑий Ñ COMTEST не Ð´Ð°ÐµÑ Ð¿Ð¾Ð»Ð½Ð¾Ð³Ð¾ пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾ Ñом, какие ÑазлиÑÐ¸Ñ ÑÑÑеÑÑвеннÑ, а какие неÑ. ÐапÑимеÑ, около Ð¿Ð¾Ð»Ð¾Ð²Ð¸Ð½Ñ ÑазлиÑий, обнаÑÑженнÑÑ Ð² двÑÑ Ð²ÑÑеÑпомÑнÑÑÑÑ Ð¼Ð¾Ð´ÐµÐ¼Ð°Ñ Ñ Ð²Ð½ÑÑÑенними UART, бÑли вÑÐ·Ð²Ð°Ð½Ñ Ñем, ÑÑо клоновÑе UART не поддеÑживаÑÑ ÑÐµÐ¶Ð¸Ð¼Ñ Ð¿ÑÑи- и ÑеÑÑибиÑнÑÑ Ñимволов. ÐаÑÑоÑÑие UART 16550, 16450 и 8250 поддеÑживаÑÑ ÑÑи ÑежимÑ, и COMTEST пÑовеÑÑÐµÑ Ð¸Ñ ÑÑнкÑионалÑноÑÑÑ, поÑÑÐ¾Ð¼Ñ ÑикÑиÑÑеÑÑÑ Ð±Ð¾Ð»ÐµÐµ пÑÑи деÑÑÑи ÑазлиÑий. Ðднако поÑÑи ни один ÑовÑеменнÑй модем не поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð¿ÑÑи- или ÑеÑÑибиÑнÑе ÑимволÑ, оÑобенно Ñе, ÑÑо обладаÑÑ ÑÑнкÑиÑми коÑÑекÑии оÑибок и ÑжаÑиÑ. ÐÑо ознаÑаеÑ, ÑÑо ÑазлиÑиÑ, ÑвÑзаннÑе Ñ Ñежимами пÑÑи- и ÑеÑÑибиÑнÑÑ Ñимволов, можно не ÑÑиÑÑваÑÑ. +Ðажно понимаÑÑ, ÑÑо пÑоÑÑое подÑÑиÑÑвание ÑазлиÑий Ñ COMTEST не даÑÑ Ð¿Ð¾Ð»Ð½Ð¾Ð³Ð¾ пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾ Ñом, какие ÑазлиÑÐ¸Ñ ÑÑÑеÑÑвеннÑ, а какие неÑ. ÐапÑимеÑ, около Ð¿Ð¾Ð»Ð¾Ð²Ð¸Ð½Ñ ÑазлиÑий, обнаÑÑженнÑÑ Ð² двÑÑ Ð²ÑÑеÑпомÑнÑÑÑÑ Ð¼Ð¾Ð´ÐµÐ¼Ð°Ñ Ñ Ð²Ð½ÑÑÑенними UART, бÑли вÑÐ·Ð²Ð°Ð½Ñ Ñем, ÑÑо клоновÑе UART не поддеÑживаÑÑ ÑÐµÐ¶Ð¸Ð¼Ñ Ð¿ÑÑи- и ÑеÑÑибиÑнÑÑ Ñимволов. ÐаÑÑоÑÑие UART 16550, 16450 и 8250 поддеÑживаÑÑ ÑÑи ÑежимÑ, и COMTEST пÑовеÑÑÐµÑ Ð¸Ñ ÑÑнкÑионалÑноÑÑÑ, поÑÑÐ¾Ð¼Ñ ÑикÑиÑÑеÑÑÑ Ð±Ð¾Ð»ÐµÐµ пÑÑи деÑÑÑи ÑазлиÑий. Ðднако поÑÑи ни один ÑовÑеменнÑй модем не поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð¿ÑÑи- или ÑеÑÑибиÑнÑе ÑимволÑ, оÑобенно Ñе, ÑÑо обладаÑÑ ÑÑнкÑиÑми коÑÑекÑии оÑибок и ÑжаÑиÑ. ÐÑо ознаÑаеÑ, ÑÑо ÑазлиÑиÑ, ÑвÑзаннÑе Ñ Ñежимами пÑÑи- и ÑеÑÑибиÑнÑÑ Ñимволов, можно не ÑÑиÑÑваÑÑ. Ðногие ÑазлиÑиÑ, о коÑоÑÑÑ ÑообÑÐ°ÐµÑ COMTEST, ÑвÑÐ·Ð°Ð½Ñ Ñ Ð²ÑеменнÑми Ñ Ð°ÑакÑеÑиÑÑиками. Ðо Ð¼Ð½Ð¾Ð³Ð¸Ñ ÐºÐ»Ð¾Ð½Ð¸ÑованнÑÑ ÐºÐ¾Ð½ÑÑÑÑкÑиÑÑ , когда Ñ Ð¾ÑÑ ÑиÑÐ°ÐµÑ Ð¸Ð· одного поÑÑа, ÑÑаÑÑÑнÑе биÑÑ Ð² дÑÑгом поÑÑе могÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð»ÑÑÑÑÑ Ñ Ð¸Ð½Ð¾Ð¹ ÑкоÑоÑÑÑÑ (бÑÑÑÑее или медленнее), Ñем Ñ _наÑÑоÑÑего_ NS16550AFN, и COMTEST вÑÑвлÑÐµÑ ÑÑи ÑазлиÑиÑ. ÐÑо ознаÑаеÑ, ÑÑо колиÑеÑÑво ÑазлиÑий Ð¼Ð¾Ð¶ÐµÑ Ð²Ð²Ð¾Ð´Ð¸ÑÑ Ð² заблÑждение: одно ÑÑÑÑойÑÑво Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð¼ÐµÑÑ Ð²Ñего одно или два ÑазлиÑиÑ, но они кÑайне ÐºÑ Ð¸ÑиÑнÑ, Ñогда как дÑÑгое ÑÑÑÑойÑÑво, обновлÑÑÑее ÑÑаÑÑÑнÑе ÑегиÑÑÑÑ Ð±ÑÑÑÑее или медленнее ÑÑалонной Ñ Ð°ÑÑи (ÑÑо, веÑоÑÑно, никогда не повлиÑÐµÑ Ð½Ð° ÑабоÑÑ Ð¿ÑавилÑно напиÑанного дÑайвеÑа), Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð¼ÐµÑÑ Ð´ÐµÑÑÑки заÑегиÑÑÑиÑованнÑÑ ÑазлиÑий. @@ -553,7 +553,7 @@ COMTEST можно иÑполÑзоваÑÑ Ð² каÑеÑÑве инÑÑÑÑме Error (6)...Timeout interrupt failed: IIR = c1 LSR = 61 .... -=== 8250/16450/16550 РегиÑÑÑÑ +=== РегиÑÑÑÑ 8250/16450/16550 UART 8250/16450/16550 Ð·Ð°Ð½Ð¸Ð¼Ð°ÐµÑ Ð²Ð¾ÑÐµÐ¼Ñ Ð¿Ð¾ÑледоваÑелÑнÑÑ Ð°Ð´ÑеÑов поÑÑов ввода-вÑвода. Ð IBM PC опÑÐµÐ´ÐµÐ»ÐµÐ½Ñ Ð´Ð²Ð° ÑаÑÐ¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÑÑÐ¸Ñ Ð²Ð¾ÑÑми поÑÑов, коÑоÑÑе вмеÑÑе извеÑÑÐ½Ñ ÐºÐ°Ðº [.filename]#COM1# и [.filename]#COM2#. ÐÑоизводиÑели PC-клонов и дополниÑелÑнÑÑ ÐºÐ°ÑÑ Ñоздали два дополниÑелÑнÑÑ Ð¾Ð±Ð»Ð°ÑÑи, извеÑÑнÑÑ ÐºÐ°Ðº [.filename]#COM3# и [.filename]#COM4#, но ÑÑи дополниÑелÑнÑе COM-поÑÑÑ ÐºÐ¾Ð½ÑликÑÑÑÑ Ñ Ð´ÑÑгим обоÑÑдованием на некоÑоÑÑÑ ÑиÑÑÐµÐ¼Ð°Ñ . Ðаиболее ÑаÑпÑоÑÑÑанÑннÑй конÑÐ»Ð¸ÐºÑ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°Ð µÑ Ñ Ð²Ð¸Ð´ÐµÐ¾Ð°Ð´Ð°Ð¿ÑеÑами, обеÑпеÑиваÑÑими ÑмÑлÑÑÐ¸Ñ IBM 8514. @@ -686,7 +686,7 @@ UART 8250/16450/1655 клаÑÑиÑиÑиÑÑÐµÑ ÑобÑÑÐ¸Ñ Ð½Ð° ÑеÑÑÑ |РегиÑÑÑ ÑоÑÑоÑÐ½Ð¸Ñ Ð»Ð¸Ð½Ð¸Ð¸ (LSR â Line Status Register) + ÐÐ¸Ñ 7 -> ÐÑибка в FIFO пÑиемника. Ðа UART 8250/16450 ÑÑÐ¾Ñ Ð±Ð¸Ñ Ñавен нÑлÑ. ÐÑÐ¾Ñ Ð±Ð¸Ñ ÑÑÑанавливаеÑÑÑ Ð² «1», когда лÑбой из байÑов в FIFO Ð¸Ð¼ÐµÐµÑ Ð¾Ð´Ð½Ð¾ или неÑколÑко из ÑледÑÑÑÐ¸Ñ ÑÑловий оÑибки: PE, FE или BI. + ÐÐ¸Ñ 6 -> ÐеÑедаÑÑик пÑÑÑ (TEMT). Ðогда ÑÑÑановлен в «1», в FIFO пеÑедаÑÑика или Ñдвиговом ÑегиÑÑÑе пеÑедаÑÑика не оÑÑалоÑÑ Ñлов. ÐеÑедаÑÑик полноÑÑÑÑ Ð±ÐµÐ·Ð´ÐµÐ¹ÑÑвÑеÑ. + -ÐÐ¸Ñ 5 -> РегиÑÑÑ Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð¿ÐµÑедаÑÑика пÑÑÑ (THRE). Ðогда ÑÑÑановлен в «1», в FIFO (или ÑегиÑÑÑе Ñ ÑанениÑ) ÑепеÑÑ ÐµÑÑÑ Ð¼ÐµÑÑо Ð´Ð»Ñ Ð¿ÐµÑедаÑи как минимÑм одного дополниÑелÑного Ñлова. ÐеÑедаÑÑик Ð¼Ð¾Ð¶ÐµÑ Ð²Ñе еÑе пеÑедаваÑÑ Ð´Ð°Ð½Ð½Ñе, когда ÑÑÐ¾Ñ Ð±Ð¸Ñ ÑÑÑановлен в «1». + +ÐÐ¸Ñ 5 -> РегиÑÑÑ Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð¿ÐµÑедаÑÑика пÑÑÑ (THRE). Ðогда ÑÑÑановлен в «1», в FIFO (или ÑегиÑÑÑе Ñ ÑанениÑ) ÑепеÑÑ ÐµÑÑÑ Ð¼ÐµÑÑо Ð´Ð»Ñ Ð¿ÐµÑедаÑи как минимÑм одного дополниÑелÑного Ñлова. ÐеÑедаÑÑик Ð¼Ð¾Ð¶ÐµÑ Ð²Ñе еÑÑ Ð¿ÐµÑедаваÑÑ Ð´Ð°Ð½Ð½Ñе, когда ÑÑÐ¾Ñ Ð±Ð¸Ñ ÑÑÑановлен в «1». + ÐÐ¸Ñ 4 -> ÐÑеÑÑвание по Break (BI). ÐÑиемник обнаÑÑжил Ñигнал Break. + ÐÐ¸Ñ 3 -> ÐÑибка кадÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ (FE). ÐбнаÑÑжен ÑÑаÑÑовÑй биÑ, но ÑÑоповÑй Ð±Ð¸Ñ Ð½Ðµ поÑвилÑÑ Ð² ожидаемое вÑемÑ. ÐÑинÑÑое Ñлово, веÑоÑÑно, иÑкажено. + ÐÐ¸Ñ 2 -> ÐÑибка ÑÑÑноÑÑи (PE). ÐÐ¸Ñ ÑÑÑноÑÑи Ð´Ð»Ñ Ð¿ÑинÑÑого Ñлова бÑл некоÑÑекÑен. + @@ -722,7 +722,7 @@ TIL16660:: Hayes ESP:: ÐÑа пÑопÑиеÑаÑÐ½Ð°Ñ Ð²Ð½ÐµÑнÑÑ ÐºÐ°ÑÑа ÑодеÑÐ¶Ð¸Ñ Ð±ÑÑÐµÑ Ð¿ÐµÑедаÑи и пÑиема ÑазмеÑом 2048 Ð±Ð°Ð¹Ñ Ð¸ поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑкоÑоÑÑÑ Ð¿ÐµÑедаÑи даннÑÑ Ð´Ð¾ 230,4 ÐбиÑ/Ñ. ÐÑоизведено компанией Hayes. -Рдополнение к ÑÑим "пÑоÑÑÑм" UART многие пÑоизводиÑели вÑпÑÑкаÑÑ Ð¸Ð½ÑеллекÑÑалÑнÑе плаÑÑ Ð´Ð»Ñ Ð¿Ð¾ÑледоваÑелÑной ÑвÑзи. Такой Ñип конÑÑÑÑкÑии обÑÑно вклÑÑÐ°ÐµÑ Ð¼Ð¸ÐºÑопÑоÑеÑÑоÑ, коÑоÑÑй взаимодейÑÑвÑÐµÑ Ñ Ð½ÐµÑколÑкими UART, обÑабаÑÑÐ²Ð°ÐµÑ Ð¸ бÑÑеÑизÑÐµÑ Ð´Ð°Ð½Ð½Ñе, а заÑем пÑи Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи ÑведомлÑÐµÑ Ð¾Ñновной пÑоÑеÑÑÐ¾Ñ ÐÐ. ÐоÑколÑÐºÑ Ð² Ñакой ÑиÑÑеме ÑвÑзи UART не доÑÑÑÐ¿Ð½Ñ Ð½Ð°Ð¿ÑÑмÑÑ Ð¿ÑоÑеÑÑоÑÑ ÐÐ, пÑоизводиÑÐµÐ»Ñ Ð½Ðµ обÑзаÑелÑно иÑполÑзоваÑÑ UART, ÑовмеÑÑиР¼Ñе Ñ 8250, 16450 или 16550. ÐÑо Ð´Ð°ÐµÑ ÑазÑабоÑÑÐ¸ÐºÑ ÑÐ²Ð¾Ð±Ð¾Ð´Ñ Ð²ÑбоÑа компоненÑов Ñ Ð»ÑÑÑими Ñ Ð°ÑакÑеÑиÑÑиками пÑоизР²Ð¾Ð´Ð¸ÑелÑноÑÑи. +Рдополнение к ÑÑим "пÑоÑÑÑм" UART многие пÑоизводиÑели вÑпÑÑкаÑÑ Ð¸Ð½ÑеллекÑÑалÑнÑе плаÑÑ Ð´Ð»Ñ Ð¿Ð¾ÑледоваÑелÑной ÑвÑзи. Такой Ñип конÑÑÑÑкÑии обÑÑно вклÑÑÐ°ÐµÑ Ð¼Ð¸ÐºÑопÑоÑеÑÑоÑ, коÑоÑÑй взаимодейÑÑвÑÐµÑ Ñ Ð½ÐµÑколÑкими UART, обÑабаÑÑÐ²Ð°ÐµÑ Ð¸ бÑÑеÑизÑÐµÑ Ð´Ð°Ð½Ð½Ñе, а заÑем пÑи Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи ÑведомлÑÐµÑ Ð¾Ñновной пÑоÑеÑÑÐ¾Ñ ÐÐ. ÐоÑколÑÐºÑ Ð² Ñакой ÑиÑÑеме ÑвÑзи UART не доÑÑÑÐ¿Ð½Ñ Ð½Ð°Ð¿ÑÑмÑÑ Ð¿ÑоÑеÑÑоÑÑ ÐÐ, пÑоизводиÑÐµÐ»Ñ Ð½Ðµ обÑзаÑелÑно иÑполÑзоваÑÑ UART, ÑовмеÑÑиР¼Ñе Ñ 8250, 16450 или 16550. ÐÑо даÑÑ ÑазÑабоÑÑÐ¸ÐºÑ ÑÐ²Ð¾Ð±Ð¾Ð´Ñ Ð²ÑбоÑа компоненÑов Ñ Ð»ÑÑÑими Ñ Ð°ÑакÑеÑиÑÑиками пÑоизР²Ð¾Ð´Ð¸ÑелÑноÑÑи. [[sio]] == ÐаÑÑÑойка дÑайвеÑа [.filename]#sio# @@ -884,7 +884,7 @@ IRQ 2 3 4 5 Ðоказано, ÑÑо поÑÑ A подклÑÑен Ð´Ð»Ñ IRQ 5, а поÑÑ B â Ð´Ð»Ñ IRQ 3. СÑолбÑÑ IRQ на ваÑей конкÑеÑной плаÑе могÑÑ Ð¾ÑлиÑаÑÑÑÑ â дÑÑгие плаÑÑ Ð¼Ð¾Ð³ÑÑ Ð¿ÑедоÑÑавлÑÑÑ Ð¿ÐµÑемÑÑки Ð´Ð»Ñ IRQ 3, 4, 5 и 7. -Ðожно бÑло Ð±Ñ ÑделаÑÑ Ð²Ñвод, ÑÑо подклÑÑение Ð¾Ð±Ð¾Ð¸Ñ Ð¿Ð¾ÑÑов к IRQ 3 Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑамоделÑной пеÑемÑÑки, замÑкаÑÑей вÑе ÑÑи ÑоÑки ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð² колонке IRQ 3, ÑеÑÐ¸Ñ Ð¿ÑоблемÑ, но ÑÑо не Ñак. Ðевозможно дÑблиÑоваÑÑ IRQ 3, поÑÐ¾Ð¼Ñ ÑÑо вÑÑ Ð¾Ð´Ð½Ñе дÑайвеÑÑ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ UART ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ñ Ð¿Ð¾ ÑÑ ÐµÐ¼Ðµ "монÑажное Ð", и еÑли один из UART ÑпÑавлÑÐµÑ IRQ 3, вÑÑ Ð¾Ð´Ð½Ð¾Ð¹ Ñигнал бÑÐ´ÐµÑ Ð½Ðµ Ñаким, как ожидаеÑÑÑ. РзавиÑимоÑÑи Ð¾Ñ ÑеализаÑии плаÑÑ ÑаÑÑиÑÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ маÑеÑинÑкой плаÑÑ, Ð»Ð¸Ð½Ð¸Ñ IRQ 3 бÑдРµÑ поÑÑоÑнно Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑÑ Ð² вÑÑоком ÑÑовне или вÑегда оÑÑаваÑÑÑÑ Ð½Ð¸Ð·ÐºÐ¾Ð¹. +Ðожно бÑло Ð±Ñ ÑделаÑÑ Ð²Ñвод, ÑÑо подклÑÑение Ð¾Ð±Ð¾Ð¸Ñ Ð¿Ð¾ÑÑов к IRQ 3 Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑамоделÑной пеÑемÑÑки, замÑкаÑÑей вÑе ÑÑи ÑоÑки ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð² колонке IRQ 3, ÑеÑÐ¸Ñ Ð¿ÑоблемÑ, но ÑÑо не Ñак. Ðевозможно дÑблиÑоваÑÑ IRQ 3, поÑÐ¾Ð¼Ñ ÑÑо вÑÑ Ð¾Ð´Ð½Ñе дÑайвеÑÑ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ UART ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ñ Ð¿Ð¾ ÑÑ ÐµÐ¼Ðµ "монÑажное Ð", и еÑли один из UART ÑпÑавлÑÐµÑ IRQ 3, вÑÑ Ð¾Ð´Ð½Ð¾Ð¹ Ñигнал бÑÐ´ÐµÑ Ð½Ðµ Ñаким как ожидаеÑÑÑ. РзавиÑимоÑÑи Ð¾Ñ ÑеализаÑии плаÑÑ ÑаÑÑиÑÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ маÑеÑинÑкой плаÑÑ, Ð»Ð¸Ð½Ð¸Ñ IRQ 3 бÑде Ñ Ð¿Ð¾ÑÑоÑнно Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑÑ Ð² вÑÑоком ÑÑовне или вÑегда оÑÑаваÑÑÑÑ Ð½Ð¸Ð·ÐºÐ¾Ð¹. Ðам Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ ÑазделиÑÑ Ð´ÑайвеÑÑ Ð¿ÑеÑÑваний Ð´Ð»Ñ Ð´Ð²ÑÑ UART, ÑÑÐ¾Ð±Ñ Ð»Ð¸Ð½Ð¸Ñ Ð¿ÑеÑÑÐ²Ð°Ð½Ð¸Ñ Ð¿Ð»Ð°ÑÑ Ð¿Ð¾Ð´Ð½Ð¸Ð¼Ð°Ð»Ð°ÑÑ ÑолÑко Ñогда (и ÑолÑко Ñогда), когда один из UART вÑзÑÐ²Ð°ÐµÑ Ð¿ÑеÑÑвание, и оÑÑавалаÑÑ Ð½Ð¸Ð·ÐºÐ¾Ð¹ в пÑоÑивном ÑлÑÑае. РеÑение бÑло пÑедложено ÐоÑгом ÐÑнÑем mailto:[email protected][[email protected]]: пÑипаÑÑÑ Ð¼Ð¾Ð½ÑажнÑÑ ÑÑ ÐµÐ¼Ñ "монÑажное ÐÐÐ", ÑоÑÑоÑÑÑÑ Ð¸Ð· двÑÑ Ð´Ð¸Ð¾Ð´Ð¾Ð² (пÑедпоÑÑиÑелÑно геÑманиевÑÑ Ð¸Ð»Ð¸ Ñипа ШоÑÑки) и ÑезиÑÑоÑа на 1 кÐм. ÐÐ¾Ñ ÑÑ ÐµÐ¼Ð°, наÑÐ¸Ð½Ð°Ñ Ñ Ðº онÑакÑного Ð¿Ð¾Ð»Ñ 4x3 вÑÑе: diff --git a/documentation/content/ru/articles/serial-uart/_index.po b/documentation/content/ru/articles/serial-uart/_index.po index ab608b6c26..a0e7e0d534 100644 --- a/documentation/content/ru/articles/serial-uart/_index.po +++ b/documentation/content/ru/articles/serial-uart/_index.po @@ -1,12 +1,12 @@ # SOME DESCRIPTIVE TITLE # Copyright (C) YEAR The FreeBSD Project # This file is distributed under the same license as the FreeBSD Documentation package. -# Vladlen Popolitov <[email protected]>, 2025. +# Vladlen Popolitov <[email protected]>, 2025, 2026. msgid "" msgstr "" "Project-Id-Version: FreeBSD Documentation VERSION\n" "POT-Creation-Date: 2025-11-08 16:17+0000\n" -"PO-Revision-Date: 2025-11-12 04:45+0000\n" +"PO-Revision-Date: 2026-03-09 04:45+0000\n" "Last-Translator: Vladlen Popolitov <[email protected]>\n" "Language-Team: Russian <https://translate-dev.freebsd.org/projects/" "documentation/articlesserial-uart_index/ru/>\n" @@ -1408,7 +1408,7 @@ msgstr "Режим ÑеÑÑиÑованиÑ" #: documentation/content/en/articles/serial-uart/_index.adoc:408 #, no-wrap msgid "Bits, Baud and Symbols" -msgstr "ÐиÑÑ, ÐÐ¾Ð´Ñ Ð¸ СимволÑ" +msgstr "ÐиÑÑ, Ð±Ð¾Ð´Ñ Ð¸ ÑимволÑ" #. type: Plain text #: documentation/content/en/articles/serial-uart/_index.adoc:412 @@ -1435,7 +1435,7 @@ msgid "" "bit words if Parity is used and one Start and Stop bit are present." msgstr "" "ТÑадиÑионно, ÑкоÑоÑÑÑ Ð¿ÐµÑедаÑи (Baud Rate) пÑедÑÑавлÑÐµÑ ÐºÐ¾Ð»Ð¸ÑеÑÑво биÑов, " -"ÑакÑиÑеÑки пеÑедаваемÑÑ Ð¿Ð¾ ÑÑеде, а не обÑем даннÑÑ , коÑоÑÑе дейÑÑвиÑелÑно " +"ÑакÑиÑеÑки пеÑедаваемÑÑ Ð¿Ð¾ ÑÑеде, а не обÑÑм даннÑÑ , коÑоÑÑе дейÑÑвиÑелÑно " "пеÑемеÑаÑÑÑÑ Ð¾Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ ÑÑÑÑойÑÑва DTE к дÑÑгомÑ. ÐодÑÑÐµÑ Baud вклÑÑÐ°ÐµÑ " "ÑлÑжебнÑе биÑÑ â Start, Stop и Parity, коÑоÑÑе генеÑиÑÑÑÑÑÑ Ð¿ÐµÑедаÑÑим UART " "и ÑдалÑÑÑÑÑ Ð¿ÑинимаÑÑим UART. ÐÑо ознаÑаеÑ, ÑÑо 7-биÑнÑе Ñлова даннÑÑ Ð½Ð° " @@ -1854,7 +1854,7 @@ msgstr "" "ÐÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ National ÑеоÑганизовала ÑÐ²Ð¾Ñ ÑиÑÑÐµÐ¼Ñ Ð½ÑмеÑаÑии деÑалей неÑколÑко " "Ð»ÐµÑ Ð½Ð°Ð·Ð°Ð´, и Ñип NS16550AFN болÑÑе не ÑÑÑеÑÑвÑÐµÑ Ð¿Ð¾Ð´ ÑÑим названием. (ÐÑли Ñ " "Ð²Ð°Ñ ÐµÑÑÑ NS16550AFN, поÑмоÑÑиÑе на даÑÑ Ð¸Ð·Ð³Ð¾ÑÐ¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð° коÑпÑÑе â ÑÑо " -"ÑеÑÑÑÐµÑ Ð·Ð½Ð°Ñное ÑиÑло, обÑÑно наÑинаÑÑееÑÑ Ñ Ð´ÐµÐ²ÑÑки. ÐеÑвÑе две ÑиÑÑÑ " +"ÑеÑÑÑÑÑ Ð·Ð½Ð°Ñное ÑиÑло, обÑÑно наÑинаÑÑееÑÑ Ñ Ð´ÐµÐ²ÑÑки. ÐеÑвÑе две ÑиÑÑÑ " "обознаÑаÑÑ Ð³Ð¾Ð´, а поÑледние две â Ð½ÐµÐ´ÐµÐ»Ñ Ð³Ð¾Ð´Ð°, когда Ñип бÑл Ñпакован. ÐÑли " "Ñ Ð²Ð°Ñ ÐµÑÑÑ NS16550AFN, ÑкоÑее вÑего, он Ñже доволÑно ÑÑаÑÑй.)" @@ -2108,9 +2108,9 @@ msgid "" msgstr "" "ÐекоÑоÑÑе ÑазлиÑÐ¸Ñ Ð² ÐºÐ»Ð¾Ð½Ð°Ñ Ð¼Ð¸ÐºÑоÑÑ ÐµÐ¼ 16550A неÑÑÑеÑÑвеннÑ, в Ñо вÑÐµÐ¼Ñ ÐºÐ°Ðº " "дÑÑгие могÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð¿ÑепÑÑÑÑвоваÑÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÑÑÑойÑÑва Ñ " -"опÑеделенной опеÑаÑионной ÑиÑÑемой или дÑайвеÑом. ÐÑи ÑазлиÑÐ¸Ñ Ð¼Ð¾Ð³ÑÑ " +"опÑеделÑнной опеÑаÑионной ÑиÑÑемой или дÑайвеÑом. ÐÑи ÑазлиÑÐ¸Ñ Ð¼Ð¾Ð³ÑÑ " "пÑоÑвиÑÑÑÑ Ð¿Ñи иÑполÑзовании дÑÑÐ³Ð¸Ñ Ð´ÑайвеÑов или пÑи возникновении " -"опÑеделеннÑÑ ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñий ÑобÑÑий, коÑоÑÑе не бÑли Ñ Ð¾ÑоÑо пÑоÑеÑÑиÑÐ¾Ð²Ð°Ð½Ñ Ð¸Ð»Ð¸ " +"опÑеделÑннÑÑ ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñий ÑобÑÑий, коÑоÑÑе не бÑли Ñ Ð¾ÑоÑо пÑоÑеÑÑиÑÐ¾Ð²Ð°Ð½Ñ Ð¸Ð»Ð¸ " "ÑÑÑÐµÐ½Ñ Ð² дÑайвеÑе Windows(R). ÐÑо пÑоиÑÑ Ð¾Ð´Ð¸Ñ Ð¿Ð¾ÑомÑ, ÑÑо болÑÑинÑÑво " "пÑоизводиÑелей модемов и клонов 16550 иÑполÑзÑÑÑ Ð´ÑайвеÑÑ Microsoft из " "Windows(R) for Workgroups 3.11 и ÑÑилиÑÑ Microsoft(R) MS-DOS(R) в каÑеÑÑве " @@ -2326,7 +2326,7 @@ msgid "" "error-correction and compression capabilities. This means that the " "differences related to five- and six-bit character modes can be discounted." msgstr "" -"Ðажно понимаÑÑ, ÑÑо пÑоÑÑое подÑÑиÑÑвание ÑазлиÑий Ñ COMTEST не Ð´Ð°ÐµÑ Ð¿Ð¾Ð»Ð½Ð¾Ð³Ð¾ " +"Ðажно понимаÑÑ, ÑÑо пÑоÑÑое подÑÑиÑÑвание ÑазлиÑий Ñ COMTEST не даÑÑ Ð¿Ð¾Ð»Ð½Ð¾Ð³Ð¾ " "пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾ Ñом, какие ÑазлиÑÐ¸Ñ ÑÑÑеÑÑвеннÑ, а какие неÑ. ÐапÑимеÑ, " "около Ð¿Ð¾Ð»Ð¾Ð²Ð¸Ð½Ñ ÑазлиÑий, обнаÑÑженнÑÑ Ð² двÑÑ Ð²ÑÑеÑпомÑнÑÑÑÑ Ð¼Ð¾Ð´ÐµÐ¼Ð°Ñ Ñ " "внÑÑÑенними UART, бÑли вÑÐ·Ð²Ð°Ð½Ñ Ñем, ÑÑо клоновÑе UART не поддеÑживаÑÑ ÑÐµÐ¶Ð¸Ð¼Ñ " @@ -2395,7 +2395,7 @@ msgstr "Error (6)...Timeout interrupt failed: IIR = c1 LSR = 61\n" #: documentation/content/en/articles/serial-uart/_index.adoc:654 #, no-wrap msgid "8250/16450/16550 Registers" -msgstr "8250/16450/16550 РегиÑÑÑÑ" +msgstr "РегиÑÑÑÑ 8250/16450/16550" #. type: Plain text #: documentation/content/en/articles/serial-uart/_index.adoc:660 @@ -2797,7 +2797,7 @@ msgstr "" "бездейÑÑвÑеÑ. +\n" "ÐÐ¸Ñ 5 -> РегиÑÑÑ Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð¿ÐµÑедаÑÑика пÑÑÑ (THRE). Ðогда ÑÑÑановлен в «1», в " "FIFO (или ÑегиÑÑÑе Ñ ÑанениÑ) ÑепеÑÑ ÐµÑÑÑ Ð¼ÐµÑÑо Ð´Ð»Ñ Ð¿ÐµÑедаÑи как минимÑм " -"одного дополниÑелÑного Ñлова. ÐеÑедаÑÑик Ð¼Ð¾Ð¶ÐµÑ Ð²Ñе еÑе пеÑедаваÑÑ Ð´Ð°Ð½Ð½Ñе, " +"одного дополниÑелÑного Ñлова. ÐеÑедаÑÑик Ð¼Ð¾Ð¶ÐµÑ Ð²Ñе еÑÑ Ð¿ÐµÑедаваÑÑ Ð´Ð°Ð½Ð½Ñе, " "когда ÑÑÐ¾Ñ Ð±Ð¸Ñ ÑÑÑановлен в «1». +\n" "ÐÐ¸Ñ 4 -> ÐÑеÑÑвание по Break (BI). ÐÑиемник обнаÑÑжил Ñигнал Break. +\n" "ÐÐ¸Ñ 3 -> ÐÑибка кадÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ (FE). ÐбнаÑÑжен ÑÑаÑÑовÑй биÑ, но ÑÑоповÑй Ð±Ð¸Ñ " @@ -2944,7 +2944,7 @@ msgstr "" "обÑабаÑÑÐ²Ð°ÐµÑ Ð¸ бÑÑеÑизÑÐµÑ Ð´Ð°Ð½Ð½Ñе, а заÑем пÑи Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи ÑведомлÑÐµÑ " "оÑновной пÑоÑеÑÑÐ¾Ñ ÐÐ. ÐоÑколÑÐºÑ Ð² Ñакой ÑиÑÑеме ÑвÑзи UART не доÑÑÑÐ¿Ð½Ñ " "напÑÑмÑÑ Ð¿ÑоÑеÑÑоÑÑ ÐÐ, пÑоизводиÑÐµÐ»Ñ Ð½Ðµ обÑзаÑелÑно иÑполÑзоваÑÑ UART, " -"ÑовмеÑÑимÑе Ñ 8250, 16450 или 16550. ÐÑо Ð´Ð°ÐµÑ ÑазÑабоÑÑÐ¸ÐºÑ ÑÐ²Ð¾Ð±Ð¾Ð´Ñ Ð²ÑбоÑа " +"ÑовмеÑÑимÑе Ñ 8250, 16450 или 16550. ÐÑо даÑÑ ÑазÑабоÑÑÐ¸ÐºÑ ÑÐ²Ð¾Ð±Ð¾Ð´Ñ Ð²ÑбоÑа " "компоненÑов Ñ Ð»ÑÑÑими Ñ Ð°ÑакÑеÑиÑÑиками пÑоизводиÑелÑноÑÑи." #. type: Title == @@ -3465,7 +3465,7 @@ msgstr "" "ÑамоделÑной пеÑемÑÑки, замÑкаÑÑей вÑе ÑÑи ÑоÑки ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð² колонке IRQ 3, " "ÑеÑÐ¸Ñ Ð¿ÑоблемÑ, но ÑÑо не Ñак. Ðевозможно дÑблиÑоваÑÑ IRQ 3, поÑÐ¾Ð¼Ñ ÑÑо " "вÑÑ Ð¾Ð´Ð½Ñе дÑайвеÑÑ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ UART ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ñ Ð¿Ð¾ ÑÑ ÐµÐ¼Ðµ \"монÑажное Ð\", и еÑли " -"один из UART ÑпÑавлÑÐµÑ IRQ 3, вÑÑ Ð¾Ð´Ð½Ð¾Ð¹ Ñигнал бÑÐ´ÐµÑ Ð½Ðµ Ñаким, как ожидаеÑÑÑ. " +"один из UART ÑпÑавлÑÐµÑ IRQ 3, вÑÑ Ð¾Ð´Ð½Ð¾Ð¹ Ñигнал бÑÐ´ÐµÑ Ð½Ðµ Ñаким как ожидаеÑÑÑ. " "РзавиÑимоÑÑи Ð¾Ñ ÑеализаÑии плаÑÑ ÑаÑÑиÑÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ маÑеÑинÑкой плаÑÑ, Ð»Ð¸Ð½Ð¸Ñ " "IRQ 3 бÑÐ´ÐµÑ Ð¿Ð¾ÑÑоÑнно Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑÑ Ð² вÑÑоком ÑÑовне или вÑегда оÑÑаваÑÑÑÑ " "низкой." diff --git a/documentation/content/ru/articles/solid-state/_index.adoc b/documentation/content/ru/articles/solid-state/_index.adoc index ee80d558a0..663594956a 100644 --- a/documentation/content/ru/articles/solid-state/_index.adoc +++ b/documentation/content/ru/articles/solid-state/_index.adoc @@ -46,7 +46,7 @@ endif::[] Ð ÑÑой ÑÑаÑÑе опиÑÑваеÑÑÑ Ð¸ÑполÑзование ÑвеÑдоÑелÑнÑÑ Ð´Ð¸ÑковÑÑ ÑÑÑÑойÑÑв Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð²ÑÑÑаиваемÑÑ ÑиÑÑем на оÑнове FreeBSD. -ÐÑÑÑаиваемÑе ÑиÑÑÐµÐ¼Ñ Ð¸Ð¼ÐµÑÑ Ð¿ÑеимÑÑеÑÑво в повÑÑенной надÑжноÑÑи по пÑиÑине оÑÑÑÑÑÑÐ²Ð¸Ñ Ð² Ð½Ð¸Ñ Ð´Ð²Ð¸Ð¶ÑÑÐ¸Ñ ÑÑ ÑаÑÑей (жеÑÑÐºÐ¸Ñ Ð´Ð¸Ñков). Ðднако, ÑледÑÐµÑ Ð¿ÑинÑÑÑ Ð²Ð¾ внимание, ÑÑо ÑиÑÑеме, как пÑавило, доÑÑÑпно оÑÐµÐ½Ñ Ð¼Ð°Ð»Ð¾Ðµ диÑковое пÑоÑÑÑанÑÑво и огÑаниÑеннÑй обÑем запоминаÑÑего ÑÑÑÑойÑÑва. +ÐÑÑÑаиваемÑе ÑиÑÑÐµÐ¼Ñ Ð¸Ð¼ÐµÑÑ Ð¿ÑеимÑÑеÑÑво в повÑÑенной надÑжноÑÑи по пÑиÑине оÑÑÑÑÑÑÐ²Ð¸Ñ Ð² Ð½Ð¸Ñ Ð´Ð²Ð¸Ð¶ÑÑÐ¸Ñ ÑÑ ÑаÑÑей (жÑÑÑÐºÐ¸Ñ Ð´Ð¸Ñков). Ðднако, ÑледÑÐµÑ Ð¿ÑинÑÑÑ Ð²Ð¾ внимание, ÑÑо ÑиÑÑеме, как пÑавило, доÑÑÑпно оÑÐµÐ½Ñ Ð¼Ð°Ð»Ð¾Ðµ диÑковое пÑоÑÑÑанÑÑво и огÑаниÑеннÑй обÑÑм запоминаÑÑего ÑÑÑÑойÑÑва. РоÑделÑно ÑаÑÑмаÑÑиваемÑм вопÑоÑам оÑноÑÑÑÑÑ ÑÐ¸Ð¿Ñ Ð¸ Ñ Ð°ÑакÑеÑиÑÑики ÑвеÑдоÑелÑнÑÑ Ð½Ð¾ÑиÑелей, Ð¿Ð¾Ð´Ñ Ð¾Ð´ÑÑÐ¸Ñ Ð´Ð»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² каÑеÑÑве диÑков во FreeBSD, паÑамеÑÑÑ ÑдÑа, коÑоÑÑе пÑедÑÑавлÑÑÑ Ð¸Ð½ÑеÑÐµÑ Ð² ÑÐ°ÐºÐ¸Ñ ÑÑловиÑÑ , Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼Ñ [.filename]#rc.initdiskless#, авÑомаÑизиÑÑÑÑие иниÑиализаÑÐ¸Ñ ÑÐ°ÐºÐ¸Ñ ÑиÑÑем и ÑдовлеÑвоÑÑÑÑие ÑÑебованиÑм ÑайловÑÑ ÑиÑÑем, доÑÑÑпнÑÑ ÑолÑко Ð´Ð»Ñ ÑÑениÑ, а Ñакже поÑÑÑоение ÑайловÑÑ ÑиÑÑем Ñ Ð½ÑлÑ. СÑаÑÑÑ Ð·Ð°ÐºÐ°Ð½ÑиваеÑÑÑ Ð¾Ð¿Ð¸Ñани ем некоÑоÑÑÑ Ð¾Ð±ÑÐ¸Ñ ÑÑÑаÑегий Ð´Ð»Ñ ÑлÑÑаев малÑÑ ÑиÑÑем FreeBSD и ÑÐ°Ð±Ð¾Ñ Ð² Ñежиме ÑолÑко Ð´Ð»Ñ ÑÑениÑ. @@ -57,7 +57,7 @@ toc::[] [[intro]] == ТвеÑдоÑелÑнÑе диÑковÑе ÑÑÑÑойÑÑва -ÐÑа ÑÑаÑÑÑ Ð±ÑÐ´ÐµÑ Ð¾Ð³ÑаниÑиваÑÑÑÑ ÑаÑÑмоÑÑением ÑвеÑдоÑелÑнÑÑ Ð´Ð¸ÑковÑÑ ÑÑÑÑойÑÑв, коÑоÑÑе делаÑÑÑÑ Ð½Ð° оÑнове ÑлеÑ-памÑÑи. ФлеÑ-памÑÑÑ ÑвлÑеÑÑÑ ÑвеÑдоÑелÑнÑм (здеÑÑ Ð½ÐµÑ Ð´Ð²Ð¸Ð¶ÑÑÐ¸Ñ ÑÑ ÑаÑÑей) запоминаÑÑим ÑÑÑÑойÑÑвом, коÑоÑое ÑвлÑеÑÑÑ ÑнеÑгонезавиÑимÑм (даннÑе оÑÑаÑÑÑÑ Ð² памÑÑи даже поÑле оÑклÑÑÐµÐ½Ð¸Ñ Ð²ÑÐµÑ Ð¸ÑÑоÑников пиÑаниÑ). ФлеÑ-памÑÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð½ÐµÑÑвÑÑвиÑелÑной к ÑилÑнÑм ÑизиÑеÑким воздейÑÑвиÑм и доÑÑаÑоÑно бÑÑÑÑа (ÑеÑÐµÐ½Ð¸Ñ Ð½Ð° оÑнР¾Ð²Ðµ ÑлеÑ-памÑÑи, опиÑÑваемÑе в ÑÑой ÑÑаÑÑе, гоÑаздо медленнее, Ñем диÑки EIDE Ð´Ð»Ñ Ð¾Ð¿ÐµÑаÑий запиÑи, и гоÑазд о бÑÑÑÑее Ð¸Ñ Ð² ÑлÑÑае вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¾Ð¿ÐµÑаÑий ÑÑениÑ). Ðдним из оÑÐµÐ½Ñ Ð²Ð°Ð¶Ð½ÑÑ ÑвойÑÑв ÑлеÑ-памÑÑи, ÑазлиÑнÑе ваÑианÑÑ ÐºÐ¾ÑоÑого бÑдÑÑ ÑаÑÑмоÑÑÐµÐ½Ñ Ð´Ð°Ð»ÐµÐµ в ÑÑой ÑÑаÑÑе, ÑвлÑеÑÑÑ Ñо, ÑÑо каждÑй ÑекÑÐ¾Ñ Ð¸Ð¼ÐµÐµÑ Ð¾Ð³ÑаниÑеннÑе возможноÑÑи по пеÑезапиÑÑваниÑ. ÐÑ Ð¼Ð¾Ð¶ÐµÑе ÑолÑко запиÑÑваÑÑ, ÑÑиÑаÑÑ Ð¸ Ñнова запиÑÑваÑÑ Ð½Ð° ÑекÑÐ¾Ñ ÑлеÑ-памÑÑи опÑеделенное колиÑеÑÑво Ñаз до Ñого, как ÑекÑÐ¾Ñ ÑÑÐ°Ð½ÐµÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð½ÐµÑабоÑоÑпоÑобнÑм. ХоÑÑ Ð¼Ð½Ð¾Ð³Ð¸Ðµ пÑодÑкÑÑ Ð½Ð° оÑновРµ ÑлеÑ-памÑÑи авÑомаÑиÑеÑки пеÑенапÑавлÑÑÑ Ð¸ÑпоÑÑеннÑе блоки, а некоÑоÑÑе даже ÑаÑпÑеделÑÑÑ Ð¾Ð¿ÐµÑаÑии Ð ·Ð°Ð¿Ð¸Ñи по вÑÐµÐ¼Ñ Ð¼Ð¾Ð´ÑлÑ, ÑакÑом ÑвлÑеÑÑÑ Ð½Ð°Ð»Ð¸Ñие огÑаниÑÐµÐ½Ð¸Ñ Ð½Ð° колиÑеÑÑво опеÑаÑий запиÑи, коÑоÑÑе могÑÑ Ð²ÑполнÑÑÑÑÑ Ñ ÑÑÑÑойÑÑвом. СовÑеменнÑе модÑли имеÑÑ Ñ Ð°ÑакÑеÑиÑÑики Ð¾Ñ 1,000,000 до 10,000,000 Ñиклов запиÑи на ÑекÑоÑ. ÐÑи Ñ Ð°ÑакÑеÑиÑÑики могÑÑ Ð·Ð°Ð²Ð¸ÑеÑÑ Ð¾Ñ ÑемпеÑаÑÑÑÑ ÑабоÑей ÑÑедÑ. +ÐÑа ÑÑаÑÑÑ Ð±ÑÐ´ÐµÑ Ð¾Ð³ÑаниÑиваÑÑÑÑ ÑаÑÑмоÑÑением ÑвеÑдоÑелÑнÑÑ Ð´Ð¸ÑковÑÑ ÑÑÑÑойÑÑв, коÑоÑÑе делаÑÑÑÑ Ð½Ð° оÑнове ÑлеÑ-памÑÑи. ФлеÑ-памÑÑÑ ÑвлÑеÑÑÑ ÑвеÑдоÑелÑнÑм (здеÑÑ Ð½ÐµÑ Ð´Ð²Ð¸Ð¶ÑÑÐ¸Ñ ÑÑ ÑаÑÑей) запоминаÑÑим ÑÑÑÑойÑÑвом, коÑоÑое ÑвлÑеÑÑÑ ÑнеÑгонезавиÑимÑм (даннÑе оÑÑаÑÑÑÑ Ð² памÑÑи даже поÑле оÑклÑÑÐµÐ½Ð¸Ñ Ð²ÑÐµÑ Ð¸ÑÑоÑников пиÑаниÑ). ФлеÑ-памÑÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð½ÐµÑÑвÑÑвиÑелÑной к ÑилÑнÑм ÑизиÑеÑким воздейÑÑвиÑм и доÑÑаÑоÑно бÑÑÑÑа (ÑеÑÐµÐ½Ð¸Ñ Ð½Ð° оÑнР¾Ð²Ðµ ÑлеÑ-памÑÑи, опиÑÑваемÑе в ÑÑой ÑÑаÑÑе, гоÑаздо медленнее, Ñем диÑки EIDE Ð´Ð»Ñ Ð¾Ð¿ÐµÑаÑий запиÑи, и гоÑазд о бÑÑÑÑее Ð¸Ñ Ð² ÑлÑÑае вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¾Ð¿ÐµÑаÑий ÑÑениÑ). Ðдним из оÑÐµÐ½Ñ Ð²Ð°Ð¶Ð½ÑÑ ÑвойÑÑв ÑлеÑ-памÑÑи, ÑазлиÑнÑе ваÑианÑÑ ÐºÐ¾ÑоÑого бÑдÑÑ ÑаÑÑмоÑÑÐµÐ½Ñ Ð´Ð°Ð»ÐµÐµ в ÑÑой ÑÑаÑÑе, ÑвлÑеÑÑÑ Ñо, ÑÑо каждÑй ÑекÑÐ¾Ñ Ð¸Ð¼ÐµÐµÑ Ð¾Ð³ÑаниÑеннÑе возможноÑÑи по пеÑезапиÑÑваниÑ. ÐÑ Ð¼Ð¾Ð¶ÐµÑе ÑолÑко запиÑÑваÑÑ, ÑÑиÑаÑÑ Ð¸ Ñнова запиÑÑваÑÑ Ð½Ð° ÑекÑÐ¾Ñ ÑлеÑ-памÑÑи опÑеделÑнное колиÑеÑÑво Ñаз до Ñого, как ÑекÑÐ¾Ñ ÑÑÐ°Ð½ÐµÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð½ÐµÑабоÑоÑпоÑобнÑм. ХоÑÑ Ð¼Ð½Ð¾Ð³Ð¸Ðµ пÑодÑкÑÑ Ð½Ð° оÑновРµ ÑлеÑ-памÑÑи авÑомаÑиÑеÑки пеÑенапÑавлÑÑÑ Ð¸ÑпоÑÑеннÑе блоки, а некоÑоÑÑе даже ÑаÑпÑеделÑÑÑ Ð¾Ð¿ÐµÑаÑии Ð ·Ð°Ð¿Ð¸Ñи по вÑÐµÐ¼Ñ Ð¼Ð¾Ð´ÑлÑ, ÑакÑом ÑвлÑеÑÑÑ Ð½Ð°Ð»Ð¸Ñие огÑаниÑÐµÐ½Ð¸Ñ Ð½Ð° колиÑеÑÑво опеÑаÑий запиÑи, коÑоÑÑе могÑÑ Ð²ÑполнÑÑÑÑÑ Ñ ÑÑÑÑойÑÑвом. СовÑеменнÑе модÑли имеÑÑ Ñ Ð°ÑакÑеÑиÑÑики Ð¾Ñ 1,000,000 до 10,000,000 Ñиклов запиÑи на ÑекÑоÑ. ÐÑи Ñ Ð°ÑакÑеÑиÑÑики могÑÑ Ð·Ð°Ð²Ð¸ÑеÑÑ Ð¾Ñ ÑемпеÑаÑÑÑÑ ÑабоÑей ÑÑедÑ. Ð ÑаÑÑноÑÑи, Ð¼Ñ Ð¾Ð±ÑÑдим компакÑнÑе модÑли ÑлеÑ-памÑÑи, ÑовмеÑÑимÑе Ñо ÑÑандаÑÑом ATA, коÑоÑÑе ÑÑали веÑÑма попÑлÑÑнÑми в каÑеÑÑве ноÑиÑÐµÐ»Ñ Ð´Ð°Ð½Ð½ÑÑ Ð´Ð»Ñ ÑиÑÑовÑÑ ÐºÐ°Ð¼ÐµÑ. ÐÑобÑй инÑеÑÐµÑ Ð¿ÑедÑÑавлÑÐµÑ ÑÐ¾Ñ ÑакÑ, ÑÑо они ÑооÑвеÑÑÑвÑÑÑ Ñине IDE по конÑакÑам и ÑовмеÑÑÐ¸Ð¼Ñ Ñ Ð½Ð°Ð±Ð¾Ñом команд ATA. Таким обÑазом, пÑи помоÑи оÑÐµÐ½Ñ Ð¿ÑоÑÑого и деÑевого адапÑеÑа Ñакие ÑÑÑÑойÑÑва могÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑаÑÑÑÑ Ð½ÐµÐ¿Ð¾ÑÑедÑÑвенно к Ñине IDE компÑÑÑеÑа. ÐÑли поÑÑÑпиÑÑ Ñаким Ð ¾Ð±Ñазом, Ñо Ñакие опеÑаÑионнÑе ÑиÑÑемÑ, как FreeBSD, ÑаÑпознаÑÑ Ð´Ð¸Ñк как обÑÑнÑй винÑеÑÑÐµÑ (веÑÑма маленÑкий). @@ -68,7 +68,7 @@ toc::[] ÐÐ»Ñ ÑÐµÑ , кÑо ÑÐ¾Ð·Ð´Ð°ÐµÑ Ð²ÑÑÑаиваемÑÑ ÑиÑÑÐµÐ¼Ñ FreeBSD, инÑеÑÐµÑ Ð¿ÑедÑÑавлÑÑÑ Ð½ÐµÑколÑко паÑамеÑÑов ÑдÑа. -ÐÑе вÑÑÑаиваемÑе ÑиÑÑÐµÐ¼Ñ FreeBSD, коÑоÑÑе иÑполÑзÑÑÑ ÑлеÑ-памÑÑÑ Ð² каÑеÑÑве ÑиÑÑемного диÑка, заинÑеÑеÑÐ¾Ð²Ð°Ð½Ñ Ð² иÑполÑзовании диÑков в памÑÑи и ÑайловÑÑ ÑиÑÑем в памÑÑи. Ðз-за огÑаниÑенного колиÑеÑÑва Ñиклов запиÑи, коÑоÑÑе можно вÑполниÑÑ Ñ ÑлеÑ-памÑÑÑÑ, диÑк и ÑайловÑе ÑиÑÑÐµÐ¼Ñ Ð½Ð° нем бÑдÑÑ, ÑкоÑее вÑего, монÑиÑоваÑÑÑÑ Ð² Ñежиме доÑÑÑпа ÑолÑко Ð´Ð»Ñ ÑÑениÑ. Ð Ñаком ÑлÑÑае ÑайловÑе ÑиÑÑÐµÐ¼Ñ Ñипа [.filename]#/tmp# и [.filename]#/var# монÑиÑÑÑÑÑÑ ÐºÐ°Ðº ÑÐ°Ð¹Ð»Ð¾Ð²Ñ Ðµ ÑиÑÑÐµÐ¼Ñ Ð² памÑÑи Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ð¸ÑÑ ÑиÑÑеме ÑоздаÑÑ Ð¶ÑÑÐ½Ð°Ð»Ñ Ð¸ обновиÑÑ ÑÑеÑÑики и вÑеменнÑе Ñа йлÑ. ФайловÑе ÑиÑÑÐµÐ¼Ñ Ð² памÑÑи ÑвлÑÑÑÑÑ ÐºÑиÑиÑеÑким компоненÑом ÑÑпеÑной ÑабоÑÑ FreeBSD на ÑвеÑдоÑелÑнÑÑ ÑÑÑÑойÑÑÐ²Ð°Ñ . +ÐÑе вÑÑÑаиваемÑе ÑиÑÑÐµÐ¼Ñ FreeBSD, коÑоÑÑе иÑполÑзÑÑÑ ÑлеÑ-памÑÑÑ Ð² каÑеÑÑве ÑиÑÑемного диÑка, заинÑеÑеÑÐ¾Ð²Ð°Ð½Ñ Ð² иÑполÑзовании диÑков в памÑÑи и ÑайловÑÑ ÑиÑÑем в памÑÑи. Ðз-за огÑаниÑенного колиÑеÑÑва Ñиклов запиÑи, коÑоÑÑе можно вÑполниÑÑ Ñ ÑлеÑ-памÑÑÑÑ, диÑк и ÑайловÑе ÑиÑÑÐµÐ¼Ñ Ð½Ð° нÑм бÑдÑÑ, ÑкоÑее вÑего, монÑиÑоваÑÑÑÑ Ð² Ñежиме доÑÑÑпа ÑолÑко Ð´Ð»Ñ ÑÑениÑ. Ð Ñаком ÑлÑÑае ÑайловÑе ÑиÑÑÐµÐ¼Ñ Ñипа [.filename]#/tmp# и [.filename]#/var# монÑиÑÑÑÑÑÑ ÐºÐ°Ðº ÑÐ°Ð¹Ð»Ð¾Ð²Ñ Ðµ ÑиÑÑÐµÐ¼Ñ Ð² памÑÑи Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ð¸ÑÑ ÑиÑÑеме ÑоздаÑÑ Ð¶ÑÑÐ½Ð°Ð»Ñ Ð¸ обновиÑÑ ÑÑеÑÑики и вÑеменнÑе Ñа йлÑ. ФайловÑе ÑиÑÑÐµÐ¼Ñ Ð² памÑÑи ÑвлÑÑÑÑÑ ÐºÑиÑиÑеÑким компоненÑом ÑÑпеÑной ÑабоÑÑ FreeBSD на ÑвеÑдоÑелÑнÑÑ ÑÑÑÑойÑÑÐ²Ð°Ñ . ÐÑ Ð´Ð¾Ð»Ð¶Ð½Ñ ÑдоÑÑовеÑиÑÑÑÑ, ÑÑо в конÑигÑÑаÑионном Ñайле ваÑего ÑдÑа пÑиÑÑÑÑÑвÑÑÑ ÑледÑÑÑие ÑÑÑоки: @@ -82,7 +82,7 @@ options MD_ROOT # md device usable as a potential root device ÐниÑиализаÑÐ¸Ñ Ð²ÑÑÑаиваемой ÑиÑÑÐµÐ¼Ñ FreeBSD поÑле загÑÑзки ÑпÑавлÑеÑÑÑ [.filename]#/etc/rc.initdiskless#. -[.filename]#/etc/rc.d/var# монÑиÑÑÐµÑ [.filename]#/var# как ÑайловÑÑ ÑиÑÑÐµÐ¼Ñ Ð² памÑÑи, ÑÐ¾Ð·Ð´Ð°ÐµÑ ÑказÑваемÑй ÑпиÑок каÑалогов в [.filename]#/var# пÑи помоÑи ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ man:mkdir[1], изменÑÐµÑ ÑÐµÐ¶Ð¸Ð¼Ñ Ð´Ð¾ÑÑÑпа на некоÑоÑÑе из ÑÑÐ¸Ñ ÐºÐ°Ñалогов. РпÑоÑеÑÑе вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ [.filename]#/etc/rc.d/var# задейÑÑвÑеÑÑÑ ÐµÑе одна пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ [.filename]#rc.conf# - `varsize`. СкÑÐ¸Ð¿Ñ [.filename]#/etc/rc.d/var# ÑÐ¾Ð·Ð´Ð°ÐµÑ Ñаздел [.filename]#/var# на оÑнове знаÑÐµÐ½Ð¸Ñ ÑÑой пеÑеменной из [.filename]#rc.conf#: +[.filename]#/etc/rc.d/var# монÑиÑÑÐµÑ [.filename]#/var# как ÑайловÑÑ ÑиÑÑÐµÐ¼Ñ Ð² памÑÑи, ÑÐ¾Ð·Ð´Ð°ÐµÑ ÑказÑваемÑй ÑпиÑок каÑалогов в [.filename]#/var# пÑи помоÑи ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ man:mkdir[1], изменÑÐµÑ ÑÐµÐ¶Ð¸Ð¼Ñ Ð´Ð¾ÑÑÑпа на некоÑоÑÑе из ÑÑÐ¸Ñ ÐºÐ°Ñалогов. РпÑоÑеÑÑе вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ [.filename]#/etc/rc.d/var# задейÑÑвÑеÑÑÑ ÐµÑÑ Ð¾Ð´Ð½Ð° пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ [.filename]#rc.conf# - `varsize`. СкÑÐ¸Ð¿Ñ [.filename]#/etc/rc.d/var# ÑÐ¾Ð·Ð´Ð°ÐµÑ Ñаздел [.filename]#/var# на оÑнове знаÑÐµÐ½Ð¸Ñ ÑÑой пеÑеменной из [.filename]#rc.conf#: [.programlisting] .... @@ -117,17 +117,17 @@ varsize=8192 == Создание Ñайловой ÑиÑÑÐµÐ¼Ñ Ñ Ð½ÑÐ»Ñ -Так как ÑовмеÑÑимÑе Ñ ATA компакÑнÑе ÑлеÑ-каÑÑÑ ÑаÑпознаÑÑÑÑ Ð²Ð¾ FreeBSD как обÑÑнÑе жеÑÑкие диÑки IDE, Ñо ÑеоÑеÑиÑеÑки Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑÑÑановиÑÑ FreeBSD по ÑеÑи пÑи помоÑи диÑÐºÐµÑ kern и mfsroot или Ñ ÐºÐ¾Ð¼Ð¿Ð°ÐºÑ-диÑка. +Так как ÑовмеÑÑимÑе Ñ ATA компакÑнÑе ÑлеÑ-каÑÑÑ ÑаÑпознаÑÑÑÑ Ð²Ð¾ FreeBSD как обÑÑнÑе жÑÑÑкие диÑки IDE, Ñо ÑеоÑеÑиÑеÑки Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑÑÑановиÑÑ FreeBSD по ÑеÑи пÑи помоÑи диÑÐºÐµÑ kern и mfsroot или Ñ ÐºÐ¾Ð¼Ð¿Ð°ÐºÑ-диÑка. Ðднако даже маленÑÐºÐ°Ñ ÑÑÑановка FreeBSD пÑи помоÑи обÑÑнÑÑ Ð¿ÑоÑедÑÑ ÑÑÑановки Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑивеÑÑи к ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑиÑÑÐµÐ¼Ñ ÑазмеÑом, пÑевÑÑаÑÑим 200 мегабайÑ. Так как болÑÑинÑÑво лÑдей иÑполÑзÑÑÑ ÑÑÑÑойÑÑва ÑлеÑ-памÑÑи менÑÑего ÑазмеÑа (128 Ð¼ÐµÐ³Ð°Ð±Ð°Ð¹Ñ ÑÑиÑаеÑÑÑ Ð²ÐµÑÑма болÑÑим - 32 или даже 16 Ð¼ÐµÐ³Ð°Ð±Ð°Ð¹Ñ Ð¸ÑполÑзÑÑÑÑÑ Ð³Ð¾Ñаздо ÑаÑе), Ñо ÑÑÑановка обÑÑнÑм обÑазом не Ð¿Ð¾Ð´Ñ Ð¾Ð´Ð¸Ñ-пÑоÑÑо на диÑке Ð½ÐµÑ Ð¼ÐµÑÑа даже Ð´Ð»Ñ Ñамой минималÑной ÑÑÑановки. -СамÑм пÑоÑÑÑм ÑпоÑобом обойÑи ÑÑо огÑаниÑение на обÑем ÑвлÑеÑÑÑ ÑÑÑановка FreeBSD обÑÑнÑм обÑазом на обÑÑнÑй жеÑÑкий диÑк. ÐоÑле оконÑÐ°Ð½Ð¸Ñ ÑÑÑановки, обÑежÑÑе опеÑаÑионнÑÑ ÑиÑÑÐµÐ¼Ñ Ð´Ð¾ ÑазмеÑа, коÑоÑÑй помеÑаеÑÑÑ Ð½Ð° Ð²Ð°Ñ ÑлеÑ-ноÑиÑелÑ, а заÑем полноÑÑÑÑ Ð·Ð°Ð°ÑÑ Ð¸Ð²Ð¸ÑÑйÑе ÑайловÑÑ ÑиÑÑемÑ. СледÑÑÑие Ñаги поведÑÑ Ð²Ð°Ñ ÑеÑез пÑоÑеÑÑ Ð¿Ð¾Ð´Ð³Ð¾Ñовки ÑаÑÑи ÑлеÑ-памÑÑи Ð´Ð»Ñ Ð²Ð°Ñей зааÑÑ Ð¸Ð²Ð¸Ñованной Ñайловой ÑиÑÑемÑ. ÐапомниÑе, ÑÑо из-за Ñого, ÑÑо обÑÑÐ½Ð°Ñ ÑÑÑановка не вÑполнÑлаÑÑ, Ñакие опеÑаÑии, как Ñазбиение на ÑазделÑ, ÑазмеÑка, Ñоздание Ñайловой ÑиÑÑем Ñ Ð¸ Ñак далее Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ñ Ð²ÑÑÑнÑÑ. ÐÑоме диÑÐºÐµÑ kern и mfsroot вам Ñакже нÑжно воÑполÑзоваÑÑÑÑ Ð´Ð¸ÑкеÑой fixit. +СамÑм пÑоÑÑÑм ÑпоÑобом обойÑи ÑÑо огÑаниÑение на обÑÑм ÑвлÑеÑÑÑ ÑÑÑановка FreeBSD обÑÑнÑм обÑазом на обÑÑнÑй жÑÑÑкий диÑк. ÐоÑле оконÑÐ°Ð½Ð¸Ñ ÑÑÑановки, обÑежÑÑе опеÑаÑионнÑÑ ÑиÑÑÐµÐ¼Ñ Ð´Ð¾ ÑазмеÑа, коÑоÑÑй помеÑаеÑÑÑ Ð½Ð° Ð²Ð°Ñ ÑлеÑ-ноÑиÑелÑ, а заÑем полноÑÑÑÑ Ð·Ð°Ð°ÑÑ Ð¸Ð²Ð¸ÑÑйÑе ÑайловÑÑ ÑиÑÑемÑ. СледÑÑÑие Ñаги поведÑÑ Ð²Ð°Ñ ÑеÑез пÑоÑеÑÑ Ð¿Ð¾Ð´Ð³Ð¾Ñовки ÑаÑÑи ÑлеÑ-памÑÑи Ð´Ð»Ñ Ð²Ð°Ñей зааÑÑ Ð¸Ð²Ð¸Ñованной Ñайловой ÑиÑÑемÑ. ÐапомниÑе, ÑÑо из-за Ñого, ÑÑо обÑÑÐ½Ð°Ñ ÑÑÑановка не вÑполнÑлаÑÑ, Ñакие опеÑаÑии, как Ñазбиение на ÑазделÑ, ÑазмеÑка, Ñоздание Ñайловой ÑиÑÑем Ñ Ð¸ Ñак далее Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ñ Ð²ÑÑÑнÑÑ. ÐÑоме диÑÐºÐµÑ kern и mfsroot вам Ñакже нÑжно воÑполÑзоваÑÑÑÑ Ð´Ð¸ÑкеÑой fixit. [.procedure] ==== . Разбиение ваÑего ÑлеÑ-ноÑиÑÐµÐ»Ñ Ð½Ð° ÑÐ°Ð·Ð´ÐµÐ»Ñ + -ÐоÑле загÑÑзки пÑи помоÑи диÑÐºÐµÑ kern и mfsroot, вÑбеÑиÑе пÑÐ½ÐºÑ `custom` из Ð¼ÐµÐ½Ñ ÑÑÑановки. Ðз ÑледÑÑÑего пÑнкÑа Ð¼ÐµÐ½Ñ Ð²ÑбеÑиÑе `partition`. Ð Ð¼ÐµÐ½Ñ ÑабоÑÑ Ñ Ñазделами Ð²Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ ÑдалиÑÑ Ð²Ñе ÑÑÑеÑÑвÑÑÑие ÑÐ°Ð·Ð´ÐµÐ»Ñ Ð¿Ñи помоÑи клавиÑи kbd:[d]. ÐоÑле ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð²ÑÐµÑ Ð¸Ð¼ÐµÑÑÐ¸Ñ ÑÑ Ñазделов ÑоздайÑе Ñаздел пÑи помоÑи клавиÑи kbd:[c] и ÑоглаÑиÑеÑÑ Ñ Ð¿ÑедлагаемÑм по ÑмолÑÐ°Ð½Ð¸Ñ ÑазмеÑом Ñаздела. Ðогда Ð²Ñ Ð±ÑдеÑе опÑоÑÐµÐ½Ñ Ð½Ð° пÑÐµÐ´Ð¼ÐµÑ Ñипа Ñаздела, ÑдоÑÑовеÑÑÑеÑÑ, ÑÑо знаÑение Ñипа Ñавно `165`. ТепеÑÑ Ð·Ð°Ð¿Ð¸ÑиÑе ÑÑÑ ÑаблиÑÑ Ñазделов на диÑк, нажав клавиÑÑ kbd:[w] (на ÑÑом ÑкÑане ÑÑа опÑи Ñ ÑкÑÑÑа). ÐÑли Ð²Ñ Ð¸ÑполÑзÑеÑе компакÑнÑÑ ÑлеÑ-каÑÑÑ, ÑовмеÑÑимÑÑ Ñ ATA, Ð²Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð²ÑбÑаÑÑ FreeBSD Boot Manager. ТепеÑÑ Ð½Ð°Ð¶Ð¼Ð¸Ñе клавиÑÑ kbd:[q] Ð´Ð»Ñ Ð²ÑÑ Ð¾Ð´Ð° из Ð¼ÐµÐ½Ñ ÑабоÑÑ Ñ Ñазделами. Ðолжно бÑÑÑ Ð²Ñдано еÑе Ñаз Ð¼ÐµÐ½Ñ Ð´Ð»Ñ Ð²ÑбоÑа менеджеÑа загÑÑзки - повÑоÑиÑе Ñо, ÑÑо Ð²Ñ Ð²ÑбиÑали Ñанее. +ÐоÑле загÑÑзки пÑи помоÑи диÑÐºÐµÑ kern и mfsroot, вÑбеÑиÑе пÑÐ½ÐºÑ `custom` из Ð¼ÐµÐ½Ñ ÑÑÑановки. Ðз ÑледÑÑÑего пÑнкÑа Ð¼ÐµÐ½Ñ Ð²ÑбеÑиÑе `partition`. Ð Ð¼ÐµÐ½Ñ ÑабоÑÑ Ñ Ñазделами Ð²Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ ÑдалиÑÑ Ð²Ñе ÑÑÑеÑÑвÑÑÑие ÑÐ°Ð·Ð´ÐµÐ»Ñ Ð¿Ñи помоÑи клавиÑи kbd:[d]. ÐоÑле ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð²ÑÐµÑ Ð¸Ð¼ÐµÑÑÐ¸Ñ ÑÑ Ñазделов ÑоздайÑе Ñаздел пÑи помоÑи клавиÑи kbd:[c] и ÑоглаÑиÑеÑÑ Ñ Ð¿ÑедлагаемÑм по ÑмолÑÐ°Ð½Ð¸Ñ ÑазмеÑом Ñаздела. Ðогда Ð²Ñ Ð±ÑдеÑе опÑоÑÐµÐ½Ñ Ð½Ð° пÑÐµÐ´Ð¼ÐµÑ Ñипа Ñаздела, ÑдоÑÑовеÑÑÑеÑÑ, ÑÑо знаÑение Ñипа Ñавно `165`. ТепеÑÑ Ð·Ð°Ð¿Ð¸ÑиÑе ÑÑÑ ÑаблиÑÑ Ñазделов на диÑк, нажав клавиÑÑ kbd:[w] (на ÑÑом ÑкÑане ÑÑа опÑи Ñ ÑкÑÑÑа). ÐÑли Ð²Ñ Ð¸ÑполÑзÑеÑе компакÑнÑÑ ÑлеÑ-каÑÑÑ, ÑовмеÑÑимÑÑ Ñ ATA, Ð²Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð²ÑбÑаÑÑ FreeBSD Boot Manager. ТепеÑÑ Ð½Ð°Ð¶Ð¼Ð¸Ñе клавиÑÑ kbd:[q] Ð´Ð»Ñ Ð²ÑÑ Ð¾Ð´Ð° из Ð¼ÐµÐ½Ñ ÑабоÑÑ Ñ Ñазделами. Ðолжно бÑÑÑ Ð²Ñдано еÑÑ Ñаз Ð¼ÐµÐ½Ñ Ð´Ð»Ñ Ð²ÑбоÑа менеджеÑа загÑÑзки - повÑоÑиÑе Ñо, ÑÑо Ð²Ñ Ð²ÑбиÑали Ñанее. . Создание ÑайловÑÑ ÑиÑÑем на ваÑем ÑÑÑÑойÑÑве ÑлеÑ-памÑÑи + ÐÑйдиÑе из Ð¼ÐµÐ½Ñ ÑÑÑановки custom, и из главного Ð¼ÐµÐ½Ñ ÑÑÑановки вÑбеÑиÑе пÑÐ½ÐºÑ `fixit`. ÐоÑле Ð²Ñ Ð¾Ð´Ð° в Ñежим ÑабоÑÑ fixit, введиÑе ÑледÑÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ: @@ -169,7 +169,7 @@ a: 123456 0 4.2BSD 0 0 # route add default 192.168.0.1 .... + -ТепеÑÑ, когда маÑина Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð² ÑеÑи, пеÑепиÑиÑе Ð²Ð°Ñ tar-Ñайл. ÐдеÑÑ Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑÑолкнÑÑÑÑÑ Ñ Ð½ÐµÐºÐ¾ÑоÑой пÑоблемой - еÑли обÑем ваÑей ÑлеÑ-памÑÑи Ñавен, к пÑимеÑÑ, 128 мегабайÑам, а Ð²Ð°Ñ tar-Ñайл пÑевÑÑÐ°ÐµÑ 64 мегабайÑа, Ñо Ð²Ñ Ð½Ðµ можеÑе одновÑеменно ÑазмеÑÑиÑÑ tar-Ñайл на ÑлеÑ-ноÑиÑеле и ÑаÑпаковаÑÑ ÐµÐ³Ð¾ - вам не Ñ Ð²Ð°ÑÐ¸Ñ Ð¼ÐµÑÑа. Ðдним из ÑеÑений ÑÑой пÑоблемÑ, еÑли Ð²Ñ Ð¸ÑполÑзÑеÑе FTP, ÑвлÑеÑÑÑ ÑаÑпаковка Ñайла во вÑÐµÐ¼Ñ ÐµÐ³Ð¾ пеÑедаÑи по FTP. ÐÑли Ð²Ñ Ð¿ÐµÑÐµÐ´Ð°Ñ Ñе Ñайл именно Ñак, Ñо Ð²Ñ Ð½Ð¸ÐºÐ¾Ð³Ð´Ð° не полÑÑиÑе на диÑке одновÑеменно аÑÑ Ð¸Ð²Ð½Ñй Ñайл и его ÑодеÑжимое: +ТепеÑÑ, когда маÑина Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð² ÑеÑи, пеÑепиÑиÑе Ð²Ð°Ñ tar-Ñайл. ÐдеÑÑ Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑÑолкнÑÑÑÑÑ Ñ Ð½ÐµÐºÐ¾ÑоÑой пÑоблемой - еÑли обÑÑм ваÑей ÑлеÑ-памÑÑи Ñавен, к пÑимеÑÑ, 128 мегабайÑам, а Ð²Ð°Ñ tar-Ñайл пÑевÑÑÐ°ÐµÑ 64 мегабайÑа, Ñо Ð²Ñ Ð½Ðµ можеÑе одновÑеменно ÑазмеÑÑиÑÑ tar-Ñайл на ÑлеÑ-ноÑиÑеле и ÑаÑпаковаÑÑ ÐµÐ³Ð¾ - вам не Ñ Ð²Ð°ÑÐ¸Ñ Ð¼ÐµÑÑа. Ðдним из ÑеÑений ÑÑой пÑоблемÑ, еÑли Ð²Ñ Ð¸ÑполÑзÑеÑе FTP, ÑвлÑеÑÑÑ ÑаÑпаковка Ñайла во вÑÐµÐ¼Ñ ÐµÐ³Ð¾ пеÑедаÑи по FTP. ÐÑли Ð²Ñ Ð¿ÐµÑÐµÐ´Ð°Ñ Ñе Ñайл именно Ñак, Ñо Ð²Ñ Ð½Ð¸ÐºÐ¾Ð³Ð´Ð° не полÑÑиÑе на диÑке одновÑеменно аÑÑ Ð¸Ð²Ð½Ñй Ñайл и его ÑодеÑжимое: + [source, shell] .... @@ -202,7 +202,7 @@ ftp> get tarfile.tar "| zcat | tar xvf -" === Cron -Ðо вÑÐµÐ¼Ñ Ð·Ð°Ð³ÑÑзки ÑодеÑжимое каÑалогa [.filename]#/var# ÑоÑмиÑÑеÑÑÑ ÑкÑипÑом [.filename]#/etc/rc.d/var# иÑполÑзÑÑ Ð´Ð°Ð½Ð½Ñе из [.filename]#/etc/mtree/BSD.var.dist#, поÑÑÐ¾Ð¼Ñ Ð² нем ÑоздаеÑÑÑ Ð½ÐµÑколÑко ÑÑандаÑÑнÑÑ ÐºÐ°Ñалогов, в ÑиÑле коÑоÑÑÑ - [.filename]#cron#, [.filename]#cron/tabs#, [.filename]#at#. +Ðо вÑÐµÐ¼Ñ Ð·Ð°Ð³ÑÑзки ÑодеÑжимое каÑалогa [.filename]#/var# ÑоÑмиÑÑеÑÑÑ ÑкÑипÑом [.filename]#/etc/rc.d/var# иÑполÑзÑÑ Ð´Ð°Ð½Ð½Ñе из [.filename]#/etc/mtree/BSD.var.dist#, поÑÑÐ¾Ð¼Ñ Ð² нÑм ÑоздаеÑÑÑ Ð½ÐµÑколÑко ÑÑандаÑÑнÑÑ ÐºÐ°Ñалогов, в ÑиÑле коÑоÑÑÑ - [.filename]#cron#, [.filename]#cron/tabs#, [.filename]#at#. Ðднако ÑÑо не ÑеÑÐ°ÐµÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ñ ÑÐ¾Ñ Ñанением cron-ÑÐ°Ð±Ð»Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñ Ð¿ÐµÑезагÑÑзками. Ðогда ÑиÑÑема пеÑезагÑÑжаеÑÑÑ, Ñо ÑÐ°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑÑема [.filename]#/var#, коÑоÑÐ°Ñ ÑаÑполагаеÑÑÑ Ð² памÑÑи, бÑÐ´ÐµÑ ÑниÑÑожена, вмеÑÑе Ñо вÑеми cron-ÑаблиÑами, коÑоÑÑе Ð²Ñ Ð¼Ð¾Ð³Ð»Ð¸ Ñам имеÑÑ. ÐоÑÑÐ¾Ð¼Ñ Ð¾Ð´Ð½Ð¸Ð¼ из ÑеÑений Ð¼Ð¾Ð¶ÐµÑ ÑÑаÑÑ Ñоздание cron-ÑÐ°Ð±Ð»Ð¸Ñ Ð´Ð»Ñ Ð¿Ð¾Ð»ÑзоваÑелей, коÑоÑÑм они нÑжнÑ, монÑиÑование ваÑей Ñайловой ÑиÑÑÐµÐ¼Ñ [.filename]#/# в Ñежиме ÑÑÐµÐ½Ð¸Ñ Ð¸ запиÑи, и копиÑование ÑÑÐ¸Ñ cron-Ñабл Ð¸Ñ Ð² безопаÑное меÑÑо, напÑимеÑ, в [.filename]#/etc/tabs#, и поÑледÑÑÑее добавление ÑÑÑоки в ÐºÐ¾Ð½ÐµÑ ÑкÑипÑа [.filename]#/e tc/rc.initdiskless# Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑÑÐ¸Ñ cron-ÑÐ°Ð±Ð»Ð¸Ñ Ð² каÑалог [.filename]#/var/cron/tabs# поÑле его ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð²Ð¾ вÑÐµÐ¼Ñ Ð¸Ð½Ð¸ÑиализаÑии ÑиÑÑемÑ. Ðам Ð¼Ð¾Ð¶ÐµÑ Ñакже поÑÑебоваÑÑÑÑ Ð´Ð¾Ð±Ð°Ð²Ð¸ÑÑ ÑÑÑокÑ, коÑоÑÐ°Ñ Ð¸Ð·Ð¼ÐµÐ½ÑÐµÑ ÑÐµÐ¶Ð¸Ð¼Ñ Ð´Ð¾ÑÑÑпа и пÑава на каÑалоги, коÑоÑÑе Ð²Ñ Ñоздали, и на ÑайлÑ, коÑоÑÑе Ð²Ñ ÑкопиÑовали в ÑкÑипÑе [.filename]#/etc/rc.initdiskless#. diff --git a/documentation/content/ru/articles/solid-state/_index.po b/documentation/content/ru/articles/solid-state/_index.po index 3387b5de09..afa4125ead 100644 --- a/documentation/content/ru/articles/solid-state/_index.po +++ b/documentation/content/ru/articles/solid-state/_index.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: FreeBSD Documentation VERSION\n" "POT-Creation-Date: 2024-12-29 08:30-0500\n" -"PO-Revision-Date: 2025-11-20 04:45+0000\n" +"PO-Revision-Date: 2025-11-25 04:45+0000\n" "Last-Translator: Vladlen Popolitov <[email protected]>\n" "Language-Team: Russian <https://translate-dev.freebsd.org/projects/" "documentation/articlessolid-state_index/ru/>\n" @@ -54,9 +54,9 @@ msgid "" "the storage medium." msgstr "" "ÐÑÑÑаиваемÑе ÑиÑÑÐµÐ¼Ñ Ð¸Ð¼ÐµÑÑ Ð¿ÑеимÑÑеÑÑво в повÑÑенной надÑжноÑÑи по пÑиÑине " -"оÑÑÑÑÑÑÐ²Ð¸Ñ Ð² Ð½Ð¸Ñ Ð´Ð²Ð¸Ð¶ÑÑÐ¸Ñ ÑÑ ÑаÑÑей (жеÑÑÐºÐ¸Ñ Ð´Ð¸Ñков). Ðднако, ÑледÑÐµÑ Ð¿ÑинÑÑÑ " +"оÑÑÑÑÑÑÐ²Ð¸Ñ Ð² Ð½Ð¸Ñ Ð´Ð²Ð¸Ð¶ÑÑÐ¸Ñ ÑÑ ÑаÑÑей (жÑÑÑÐºÐ¸Ñ Ð´Ð¸Ñков). Ðднако, ÑледÑÐµÑ Ð¿ÑинÑÑÑ " "во внимание, ÑÑо ÑиÑÑеме, как пÑавило, доÑÑÑпно оÑÐµÐ½Ñ Ð¼Ð°Ð»Ð¾Ðµ диÑковое " -"пÑоÑÑÑанÑÑво и огÑаниÑеннÑй обÑем запоминаÑÑего ÑÑÑÑойÑÑва." +"пÑоÑÑÑанÑÑво и огÑаниÑеннÑй обÑÑм запоминаÑÑего ÑÑÑÑойÑÑва." #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:53 @@ -121,7 +121,7 @@ msgstr "" "ÑÑениÑ). Ðдним из оÑÐµÐ½Ñ Ð²Ð°Ð¶Ð½ÑÑ ÑвойÑÑв ÑлеÑ-памÑÑи, ÑазлиÑнÑе ваÑианÑÑ " "коÑоÑого бÑдÑÑ ÑаÑÑмоÑÑÐµÐ½Ñ Ð´Ð°Ð»ÐµÐµ в ÑÑой ÑÑаÑÑе, ÑвлÑеÑÑÑ Ñо, ÑÑо каждÑй " "ÑекÑÐ¾Ñ Ð¸Ð¼ÐµÐµÑ Ð¾Ð³ÑаниÑеннÑе возможноÑÑи по пеÑезапиÑÑваниÑ. ÐÑ Ð¼Ð¾Ð¶ÐµÑе ÑолÑко " -"запиÑÑваÑÑ, ÑÑиÑаÑÑ Ð¸ Ñнова запиÑÑваÑÑ Ð½Ð° ÑекÑÐ¾Ñ ÑлеÑ-памÑÑи опÑеделенное " +"запиÑÑваÑÑ, ÑÑиÑаÑÑ Ð¸ Ñнова запиÑÑваÑÑ Ð½Ð° ÑекÑÐ¾Ñ ÑлеÑ-памÑÑи опÑеделÑнное " "колиÑеÑÑво Ñаз до Ñого, как ÑекÑÐ¾Ñ ÑÑÐ°Ð½ÐµÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð½ÐµÑабоÑоÑпоÑобнÑм. ХоÑÑ " "многие пÑодÑкÑÑ Ð½Ð° оÑнове ÑлеÑ-памÑÑи авÑомаÑиÑеÑки пеÑенапÑавлÑÑÑ " "иÑпоÑÑеннÑе блоки, а некоÑоÑÑе даже ÑаÑпÑеделÑÑÑ Ð¾Ð¿ÐµÑаÑии запиÑи по вÑÐµÐ¼Ñ " @@ -190,7 +190,7 @@ msgstr "" "ÐÑе вÑÑÑаиваемÑе ÑиÑÑÐµÐ¼Ñ FreeBSD, коÑоÑÑе иÑполÑзÑÑÑ ÑлеÑ-памÑÑÑ Ð² каÑеÑÑве " "ÑиÑÑемного диÑка, заинÑеÑеÑÐ¾Ð²Ð°Ð½Ñ Ð² иÑполÑзовании диÑков в памÑÑи и ÑайловÑÑ " "ÑиÑÑем в памÑÑи. Ðз-за огÑаниÑенного колиÑеÑÑва Ñиклов запиÑи, коÑоÑÑе можно " -"вÑполниÑÑ Ñ ÑлеÑ-памÑÑÑÑ, диÑк и ÑайловÑе ÑиÑÑÐµÐ¼Ñ Ð½Ð° нем бÑдÑÑ, ÑкоÑее " +"вÑполниÑÑ Ñ ÑлеÑ-памÑÑÑÑ, диÑк и ÑайловÑе ÑиÑÑÐµÐ¼Ñ Ð½Ð° нÑм бÑдÑÑ, ÑкоÑее " "вÑего, монÑиÑоваÑÑÑÑ Ð² Ñежиме доÑÑÑпа ÑолÑко Ð´Ð»Ñ ÑÑениÑ. Ð Ñаком ÑлÑÑае " "ÑайловÑе ÑиÑÑÐµÐ¼Ñ Ñипа [.filename]#/tmp# и [.filename]#/var# монÑиÑÑÑÑÑÑ ÐºÐ°Ðº " "ÑайловÑе ÑиÑÑÐµÐ¼Ñ Ð² памÑÑи Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ð¸ÑÑ ÑиÑÑеме ÑоздаÑÑ Ð¶ÑÑÐ½Ð°Ð»Ñ " @@ -244,7 +244,7 @@ msgstr "" "в памÑÑи, ÑÐ¾Ð·Ð´Ð°ÐµÑ ÑказÑваемÑй ÑпиÑок каÑалогов в [.filename]#/var# пÑи " "помоÑи ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ man:mkdir[1], изменÑÐµÑ ÑÐµÐ¶Ð¸Ð¼Ñ Ð´Ð¾ÑÑÑпа на некоÑоÑÑе из ÑÑÐ¸Ñ " "каÑалогов. РпÑоÑеÑÑе вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ [.filename]#/etc/rc.d/var# задейÑÑвÑеÑÑÑ " -"еÑе одна пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ [.filename]#rc.conf# - `varsize`. СкÑÐ¸Ð¿Ñ [.filename]#/" +"еÑÑ Ð¾Ð´Ð½Ð° пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ [.filename]#rc.conf# - `varsize`. СкÑÐ¸Ð¿Ñ [.filename]#/" "etc/rc.d/var# ÑÐ¾Ð·Ð´Ð°ÐµÑ Ñаздел [.filename]#/var# на оÑнове знаÑÐµÐ½Ð¸Ñ ÑÑой " "пеÑеменной из [.filename]#rc.conf#:" @@ -368,7 +368,7 @@ msgid "" "the kern and mfsroot floppies or from a CD." msgstr "" "Так как ÑовмеÑÑимÑе Ñ ATA компакÑнÑе ÑлеÑ-каÑÑÑ ÑаÑпознаÑÑÑÑ Ð²Ð¾ FreeBSD как " -"обÑÑнÑе жеÑÑкие диÑки IDE, Ñо ÑеоÑеÑиÑеÑки Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑÑÑановиÑÑ FreeBSD по " +"обÑÑнÑе жÑÑÑкие диÑки IDE, Ñо ÑеоÑеÑиÑеÑки Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑÑÑановиÑÑ FreeBSD по " "ÑеÑи пÑи помоÑи диÑÐºÐµÑ kern и mfsroot или Ñ ÐºÐ¾Ð¼Ð¿Ð°ÐºÑ-диÑка." #. type: Plain text @@ -401,8 +401,8 @@ msgid "" "to be performed by hand. In addition to the kern and mfsroot floppy disks, " "you will also need to use the fixit floppy." msgstr "" -"СамÑм пÑоÑÑÑм ÑпоÑобом обойÑи ÑÑо огÑаниÑение на обÑем ÑвлÑеÑÑÑ ÑÑÑановка " -"FreeBSD обÑÑнÑм обÑазом на обÑÑнÑй жеÑÑкий диÑк. ÐоÑле оконÑÐ°Ð½Ð¸Ñ ÑÑÑановки, " +"СамÑм пÑоÑÑÑм ÑпоÑобом обойÑи ÑÑо огÑаниÑение на обÑÑм ÑвлÑеÑÑÑ ÑÑÑановка " +"FreeBSD обÑÑнÑм обÑазом на обÑÑнÑй жÑÑÑкий диÑк. ÐоÑле оконÑÐ°Ð½Ð¸Ñ ÑÑÑановки, " "обÑежÑÑе опеÑаÑионнÑÑ ÑиÑÑÐµÐ¼Ñ Ð´Ð¾ ÑазмеÑа, коÑоÑÑй помеÑаеÑÑÑ Ð½Ð° Ð²Ð°Ñ ÑлеÑ-" "ноÑиÑелÑ, а заÑем полноÑÑÑÑ Ð·Ð°Ð°ÑÑ Ð¸Ð²Ð¸ÑÑйÑе ÑайловÑÑ ÑиÑÑемÑ. СледÑÑÑие Ñаги " "поведÑÑ Ð²Ð°Ñ ÑеÑез пÑоÑеÑÑ Ð¿Ð¾Ð´Ð³Ð¾Ñовки ÑаÑÑи ÑлеÑ-памÑÑи Ð´Ð»Ñ Ð²Ð°Ñей " @@ -442,7 +442,7 @@ msgstr "" "нажав клавиÑÑ kbd:[w] (на ÑÑом ÑкÑане ÑÑа опÑÐ¸Ñ ÑкÑÑÑа). ÐÑли Ð²Ñ Ð¸ÑполÑзÑеÑе " "компакÑнÑÑ ÑлеÑ-каÑÑÑ, ÑовмеÑÑимÑÑ Ñ ATA, Ð²Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð²ÑбÑаÑÑ FreeBSD Boot " "Manager. ТепеÑÑ Ð½Ð°Ð¶Ð¼Ð¸Ñе клавиÑÑ kbd:[q] Ð´Ð»Ñ Ð²ÑÑ Ð¾Ð´Ð° из Ð¼ÐµÐ½Ñ ÑабоÑÑ Ñ " -"Ñазделами. Ðолжно бÑÑÑ Ð²Ñдано еÑе Ñаз Ð¼ÐµÐ½Ñ Ð´Ð»Ñ Ð²ÑбоÑа менеджеÑа загÑÑзки - " +"Ñазделами. Ðолжно бÑÑÑ Ð²Ñдано еÑÑ Ñаз Ð¼ÐµÐ½Ñ Ð´Ð»Ñ Ð²ÑбоÑа менеджеÑа загÑÑзки - " "повÑоÑиÑе Ñо, ÑÑо Ð²Ñ Ð²ÑбиÑали Ñанее." #. type: delimited block = 4 @@ -556,7 +556,7 @@ msgid "" "file and the tar contents on your disk at the same time:" msgstr "" "ТепеÑÑ, когда маÑина Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð² ÑеÑи, пеÑепиÑиÑе Ð²Ð°Ñ tar-Ñайл. ÐдеÑÑ Ð²Ñ " -"можеÑе ÑÑолкнÑÑÑÑÑ Ñ Ð½ÐµÐºÐ¾ÑоÑой пÑоблемой - еÑли обÑем ваÑей ÑлеÑ-памÑÑи " +"можеÑе ÑÑолкнÑÑÑÑÑ Ñ Ð½ÐµÐºÐ¾ÑоÑой пÑоблемой - еÑли обÑÑм ваÑей ÑлеÑ-памÑÑи " "Ñавен, к пÑимеÑÑ, 128 мегабайÑам, а Ð²Ð°Ñ tar-Ñайл пÑевÑÑÐ°ÐµÑ 64 мегабайÑа, Ñо " "Ð²Ñ Ð½Ðµ можеÑе одновÑеменно ÑазмеÑÑиÑÑ tar-Ñайл на ÑлеÑ-ноÑиÑеле и ÑаÑпаковаÑÑ " "его - вам не Ñ Ð²Ð°ÑÐ¸Ñ Ð¼ÐµÑÑа. Ðдним из ÑеÑений ÑÑой пÑоблемÑ, еÑли Ð²Ñ " @@ -658,7 +658,7 @@ msgid "" msgstr "" "Ðо вÑÐµÐ¼Ñ Ð·Ð°Ð³ÑÑзки ÑодеÑжимое каÑалогa [.filename]#/var# ÑоÑмиÑÑеÑÑÑ ÑкÑипÑом " "[.filename]#/etc/rc.d/var# иÑполÑзÑÑ Ð´Ð°Ð½Ð½Ñе из [.filename]#/etc/mtree/BSD.var" -".dist#, поÑÑÐ¾Ð¼Ñ Ð² нем ÑоздаеÑÑÑ Ð½ÐµÑколÑко ÑÑандаÑÑнÑÑ ÐºÐ°Ñалогов, в ÑиÑле " +".dist#, поÑÑÐ¾Ð¼Ñ Ð² нÑм ÑоздаеÑÑÑ Ð½ÐµÑколÑко ÑÑандаÑÑнÑÑ ÐºÐ°Ñалогов, в ÑиÑле " "коÑоÑÑÑ - [.filename]#cron#, [.filename]#cron/tabs#, [.filename]#at#." #. type: delimited block = 4 diff --git a/documentation/content/ru/articles/vinum/_index.adoc b/documentation/content/ru/articles/vinum/_index.adoc index b958205042..ddebec7ce0 100644 --- a/documentation/content/ru/articles/vinum/_index.adoc +++ b/documentation/content/ru/articles/vinum/_index.adoc @@ -118,7 +118,7 @@ image::vinum-striped.png[] .ÐÑганизаÑÐ¸Ñ `RAID`-5 image::vinum-raid5-org.png[] -Ðо ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ñ Ð·ÐµÑкалиÑованием, `RAID-5` Ð¸Ð¼ÐµÐµÑ Ð¿ÑеимÑÑеÑÑво в виде знаÑиÑелÑно менÑÑего ÑÑебÑемого обÑема Ñ ÑанилиÑа. СкоÑоÑÑÑ ÑÑÐµÐ½Ð¸Ñ Ð°Ð½Ð°Ð»Ð¾Ð³Ð¸Ñна Ñаковой пÑи ÑеÑедÑÑÑейÑÑ Ð¾ÑганизаÑии, но ÑкоÑоÑÑÑ Ð·Ð°Ð¿Ð¸Ñи знаÑиÑелÑно ниже â пÑимеÑно 25% Ð¾Ñ ÑкоÑоÑÑи ÑÑениÑ. ÐÑли один диÑк вÑÑ Ð¾Ð´Ð¸Ñ Ð¸Ð· ÑÑÑоÑ, маÑÑив Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑодолжаÑÑ ÑабоÑÑ Ð² дегÑадиÑовавÑем Ñежиме, пÑи коÑоÑом ÑÑение Ñ Ð¾ÑÑавÑÐ¸Ñ ÑÑ Ð´Ð¾ÑÑÑпнÑÑ Ð´Ð¸Ñков пÑодолжаеÑÑÑ Ð² обÑÑном Ñежиме, а ÑÑение Ñ Ð¾ÑкР°Ð·Ð°Ð²Ñего диÑка пеÑеÑÑиÑÑваеÑÑÑ Ð¸Ð· ÑооÑвеÑÑÑвÑÑÑÐ¸Ñ Ð±Ð»Ð¾ÐºÐ¾Ð² вÑÐµÑ Ð¾ÑÑавÑÐ¸Ñ ÑÑ Ð´Ð¸Ñков. +Ðо ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ñ Ð·ÐµÑкалиÑованием, `RAID-5` Ð¸Ð¼ÐµÐµÑ Ð¿ÑеимÑÑеÑÑво в виде знаÑиÑелÑно менÑÑего ÑÑебÑемого обÑÑма Ñ ÑанилиÑа. СкоÑоÑÑÑ ÑÑÐµÐ½Ð¸Ñ Ð°Ð½Ð°Ð»Ð¾Ð³Ð¸Ñна Ñаковой пÑи ÑеÑедÑÑÑейÑÑ Ð¾ÑганизаÑии, но ÑкоÑоÑÑÑ Ð·Ð°Ð¿Ð¸Ñи знаÑиÑелÑно ниже â пÑимеÑно 25% Ð¾Ñ ÑкоÑоÑÑи ÑÑениÑ. ÐÑли один диÑк вÑÑ Ð¾Ð´Ð¸Ñ Ð¸Ð· ÑÑÑоÑ, маÑÑив Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑодолжаÑÑ ÑабоÑÑ Ð² дегÑадиÑовавÑем Ñежиме, пÑи коÑоÑом ÑÑение Ñ Ð¾ÑÑавÑÐ¸Ñ ÑÑ Ð´Ð¾ÑÑÑпнÑÑ Ð´Ð¸Ñков пÑодолжаеÑÑÑ Ð² обÑÑном Ñежиме, а ÑÑение Ñ Ð¾ÑкР°Ð·Ð°Ð²Ñего диÑка пеÑеÑÑиÑÑваеÑÑÑ Ð¸Ð· ÑооÑвеÑÑÑвÑÑÑÐ¸Ñ Ð±Ð»Ð¾ÐºÐ¾Ð² вÑÐµÑ Ð¾ÑÑавÑÐ¸Ñ ÑÑ Ð´Ð¸Ñков. [[vinum-objects]] == ÐбÑекÑÑ [.filename]#vinum# @@ -132,7 +132,7 @@ image::vinum-raid5-org.png[] СледÑÑÑие ÑÐ°Ð·Ð´ÐµÐ»Ñ ÑÑаÑÑи опиÑÑваÑÑ, каким обÑазом ÑÑи обÑекÑÑ Ð¾Ð±ÐµÑпеÑиваÑÑ ÑÑнкÑионалÑноÑÑÑ, ÑÑебÑемÑÑ Ð´Ð»Ñ [.filename]#vinum#. -=== УÑÐµÑ ÑазмеÑа Ñомов +=== УÑÑÑ ÑазмеÑа Ñомов ÐлекÑÑ Ð¼Ð¾Ð³ÑÑ Ð²ÐºÐ»ÑÑаÑÑ Ð½ÐµÑколÑко поддиÑков, ÑаÑпÑеделеннÑÑ Ð¿Ð¾ вÑем диÑкам в конÑигÑÑаÑии [.filename]#vinum#. Ð ÑезÑлÑÑаÑе, ÑÐ°Ð·Ð¼ÐµÑ Ð¾ÑделÑного диÑка не огÑаниÑÐ¸Ð²Ð°ÐµÑ ÑÐ°Ð·Ð¼ÐµÑ Ð¿Ð»ÐµÐºÑа или Ñома. @@ -363,7 +363,7 @@ image::vinum-raid10-vol.png[] [[vinum-object-naming]] == Ðменование обÑекÑов -[.filename]#vinum# назнаÑÐ°ÐµÑ ÑÑандаÑÑнÑе имена Ð´Ð»Ñ Ð¿Ð»ÐµÐºÑов и поддиÑков, Ñ Ð¾ÑÑ Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ измениÑÑ. Ðе ÑекомендÑеÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÑÑÑ ÑÑандаÑÑнÑе имена, Ñак как ÑÑо не Ð´Ð°ÐµÑ Ð·Ð½Ð°ÑиÑелÑнÑÑ Ð¿ÑеимÑÑеÑÑв и Ð¼Ð¾Ð¶ÐµÑ Ð²ÑзваÑÑ Ð¿ÑÑаниÑÑ. +[.filename]#vinum# назнаÑÐ°ÐµÑ ÑÑандаÑÑнÑе имена Ð´Ð»Ñ Ð¿Ð»ÐµÐºÑов и поддиÑков, Ñ Ð¾ÑÑ Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ измениÑÑ. Ðе ÑекомендÑеÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÑÑÑ ÑÑандаÑÑнÑе имена, Ñак как ÑÑо не даÑÑ Ð·Ð½Ð°ÑиÑелÑнÑÑ Ð¿ÑеимÑÑеÑÑв и Ð¼Ð¾Ð¶ÐµÑ Ð²ÑзваÑÑ Ð¿ÑÑаниÑÑ. Ðмена могÑÑ ÑодеÑжаÑÑ Ð»ÑбÑе непÑÑÑÑе ÑимволÑ, но ÑекомендÑеÑÑÑ Ð¾Ð³ÑаниÑиваÑÑÑÑ Ð±Ñквами, ÑиÑÑами и Ñимволами подÑÑÑкиваниÑ. Ðмена Ñомов, плекÑов и поддиÑков могÑÑ Ð±ÑÑÑ Ð´Ð»Ð¸Ð½Ð¾Ð¹ до 64 Ñимволов, а имена диÑков â до 32 Ñимволов. @@ -573,7 +573,7 @@ Subdisk root.p1.s0: Ðожно замеÑиÑÑ, ÑÑо паÑамеÑÑ `size` Ð´Ð»Ñ Ð¿Ð¾Ð´Ð´ÐµÐ»Ñного Ñаздела `a` ÑÐ¾Ð²Ð¿Ð°Ð´Ð°ÐµÑ Ñ ÑказаннÑм вÑÑе знаÑением, в Ñо вÑÐµÐ¼Ñ ÐºÐ°Ðº паÑамеÑÑ `offset` пÑедÑÑавлÑÐµÑ Ñобой ÑÑÐ¼Ð¼Ñ ÑмеÑÐµÐ½Ð¸Ñ Ð²Ð½ÑÑÑи Ñаздела [.filename]#vinum# `h` и ÑмеÑÐµÐ½Ð¸Ñ ÑÑого Ñаздела в ÑÑÑÑойÑÑве или ÑлайÑе. ÐÑо ÑÑандаÑÑÐ½Ð°Ñ Ð½Ð°ÑÑÑойка, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð°Ñ Ð´Ð»Ñ Ð¸Ð·Ð±ÐµÐ¶Ð°Ð½Ð¸Ñ Ð¿ÑоблемÑ, опиÑанной в crossref:vinum[vinum-root-panic, Nothing Boots, the Bootstrap Panics]. ÐеÑÑ Ñаздел `a` полноÑÑÑÑ Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð²Ð½ÑÑÑи Ñаздела `h`, ÑодеÑжаÑего вÑе даннÑе [.filename]# vinum# Ð´Ð»Ñ ÑÑого ÑÑÑÑойÑÑва. -РпÑиведенном вÑÑе пÑимеÑе вÑе ÑÑÑÑойÑÑво вÑделено под [.filename]#vinum#, и не оÑÑалоÑÑ ÐºÐ¾Ñневого Ñаздела, ÑÑÑеÑÑвовавÑего до [.filename]#vinum#. +РпÑиведÑнном вÑÑе пÑимеÑе вÑе ÑÑÑÑойÑÑво вÑделено под [.filename]#vinum#, и не оÑÑалоÑÑ ÐºÐ¾Ñневого Ñаздела, ÑÑÑеÑÑвовавÑего до [.filename]#vinum#. === УÑÑÑанение неполадок @@ -583,7 +583,7 @@ Subdisk root.p1.s0: ÐÑли по какой-либо пÑиÑине ÑиÑÑема не пÑÐ¾Ð´Ð¾Ð»Ð¶Ð°ÐµÑ Ð·Ð°Ð³ÑÑзкÑ, пÑоÑеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ пÑеÑваÑÑ, нажав kbd:[space] пÑи поÑвлении 10-ÑекÑндного пÑедÑпÑеждениÑ. ÐеÑеменнÑÑ Ð·Ð°Ð³ÑÑзÑика `vinum.autostart` можно пÑовеÑиÑÑ, Ð²Ð²ÐµÐ´Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ `show`, и измениÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ `set` или `unset`. -ÐÑли модÑÐ»Ñ ÑдÑа [.filename]#vinum# еÑе не бÑл в ÑпиÑке модÑлей Ð´Ð»Ñ Ð°Ð²ÑомаÑиÑеÑкой загÑÑзки, введиÑе `load geom_vinum`. +ÐÑли модÑÐ»Ñ ÑдÑа [.filename]#vinum# еÑÑ Ð½Ðµ бÑл в ÑпиÑке модÑлей Ð´Ð»Ñ Ð°Ð²ÑомаÑиÑеÑкой загÑÑзки, введиÑе `load geom_vinum`. Ðогда вÑÑ Ð³Ð¾Ñово, пÑоÑеÑÑ Ð·Ð°Ð³ÑÑзки можно пÑодолжиÑÑ, Ð²Ð²ÐµÐ´Ñ `boot -as`, где `-as` ÑказÑÐ²Ð°ÐµÑ ÑдÑÑ Ð·Ð°Ð¿ÑоÑиÑÑ ÐºÐ¾ÑневÑÑ ÑайловÑÑ ÑиÑÑÐµÐ¼Ñ Ð´Ð»Ñ Ð¼Ð¾Ð½ÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ (`-a`) и оÑÑановиÑÑ Ð¿ÑоÑеÑÑ Ð·Ð°Ð³ÑÑзки в однополÑзоваÑелÑÑком Ñежиме (`-s`), пÑи ÑÑом коÑÐ½ÐµÐ²Ð°Ñ ÑÐ°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑÑема монÑиÑÑеÑÑÑ Ð² Ñежиме ÑолÑко Ð´Ð»Ñ ÑÑениÑ. Таким обÑазом, даже еÑли ÑмонÑиÑован ÑолÑко один Ñлой многокомпоненÑного Ñома, не Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÐµÑ ÑиÑка неÑоглаÑованноÑÑи даннÑÑ Ð¼ÐµÐ¶Ð´Ñ ÑлоÑми. diff --git a/documentation/content/ru/articles/vinum/_index.po b/documentation/content/ru/articles/vinum/_index.po index ed0dc23ab6..affce6fe8a 100644 --- a/documentation/content/ru/articles/vinum/_index.po +++ b/documentation/content/ru/articles/vinum/_index.po @@ -1,12 +1,12 @@ # SOME DESCRIPTIVE TITLE # Copyright (C) YEAR The FreeBSD Project # This file is distributed under the same license as the FreeBSD Documentation package. -# Vladlen Popolitov <[email protected]>, 2025. +# Vladlen Popolitov <[email protected]>, 2025, 2026. msgid "" msgstr "" "Project-Id-Version: FreeBSD Documentation VERSION\n" "POT-Creation-Date: 2025-11-08 16:17+0000\n" -"PO-Revision-Date: 2025-11-12 04:45+0000\n" +"PO-Revision-Date: 2026-03-08 09:11+0000\n" "Last-Translator: Vladlen Popolitov <[email protected]>\n" "Language-Team: Russian <https://translate-dev.freebsd.org/projects/" "documentation/articlesvinum_index/ru/>\n" @@ -430,7 +430,7 @@ msgid "" "from the corresponding block from all the remaining drives." msgstr "" "Ðо ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ñ Ð·ÐµÑкалиÑованием, `RAID-5` Ð¸Ð¼ÐµÐµÑ Ð¿ÑеимÑÑеÑÑво в виде " -"знаÑиÑелÑно менÑÑего ÑÑебÑемого обÑема Ñ ÑанилиÑа. СкоÑоÑÑÑ ÑÑÐµÐ½Ð¸Ñ Ð°Ð½Ð°Ð»Ð¾Ð³Ð¸Ñна " +"знаÑиÑелÑно менÑÑего ÑÑебÑемого обÑÑма Ñ ÑанилиÑа. СкоÑоÑÑÑ ÑÑÐµÐ½Ð¸Ñ Ð°Ð½Ð°Ð»Ð¾Ð³Ð¸Ñна " "Ñаковой пÑи ÑеÑедÑÑÑейÑÑ Ð¾ÑганизаÑии, но ÑкоÑоÑÑÑ Ð·Ð°Ð¿Ð¸Ñи знаÑиÑелÑно ниже â " "пÑимеÑно 25% Ð¾Ñ ÑкоÑоÑÑи ÑÑениÑ. ÐÑли один диÑк вÑÑ Ð¾Ð´Ð¸Ñ Ð¸Ð· ÑÑÑоÑ, маÑÑив " "Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑодолжаÑÑ ÑабоÑÑ Ð² дегÑадиÑовавÑем Ñежиме, пÑи коÑоÑом ÑÑение Ñ " @@ -526,7 +526,7 @@ msgstr "" #: documentation/content/en/articles/vinum/_index.adoc:176 #, no-wrap msgid "Volume Size Considerations" -msgstr "УÑÐµÑ ÑазмеÑа Ñомов" +msgstr "УÑÑÑ ÑазмеÑа Ñомов" #. type: Plain text #: documentation/content/en/articles/vinum/_index.adoc:180 @@ -1324,7 +1324,7 @@ msgid "" msgstr "" "[.filename]#vinum# назнаÑÐ°ÐµÑ ÑÑандаÑÑнÑе имена Ð´Ð»Ñ Ð¿Ð»ÐµÐºÑов и поддиÑков, Ñ Ð¾ÑÑ " "Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ измениÑÑ. Ðе ÑекомендÑеÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÑÑÑ ÑÑандаÑÑнÑе имена, Ñак как ÑÑо " -"не Ð´Ð°ÐµÑ Ð·Ð½Ð°ÑиÑелÑнÑÑ Ð¿ÑеимÑÑеÑÑв и Ð¼Ð¾Ð¶ÐµÑ Ð²ÑзваÑÑ Ð¿ÑÑаниÑÑ." +"не даÑÑ Ð·Ð½Ð°ÑиÑелÑнÑÑ Ð¿ÑеимÑÑеÑÑв и Ð¼Ð¾Ð¶ÐµÑ Ð²ÑзваÑÑ Ð¿ÑÑаниÑÑ." #. type: Plain text #: documentation/content/en/articles/vinum/_index.adoc:435 @@ -2092,7 +2092,7 @@ msgid "" "In the above example, the entire device is dedicated to [.filename]#vinum# " "and there is no leftover pre-[.filename]#vinum# root partition." msgstr "" -"РпÑиведенном вÑÑе пÑимеÑе вÑе ÑÑÑÑойÑÑво вÑделено под [.filename]#vinum#, и " +"РпÑиведÑнном вÑÑе пÑимеÑе вÑе ÑÑÑÑойÑÑво вÑделено под [.filename]#vinum#, и " "не оÑÑалоÑÑ ÐºÐ¾Ñневого Ñаздела, ÑÑÑеÑÑвовавÑего до [.filename]#vinum#." #. type: Title === @@ -2132,7 +2132,7 @@ msgid "" "If the [.filename]#vinum# kernel module was not yet in the list of modules " "to load automatically, type `load geom_vinum`." msgstr "" -"ÐÑли модÑÐ»Ñ ÑдÑа [.filename]#vinum# еÑе не бÑл в ÑпиÑке модÑлей Ð´Ð»Ñ " +"ÐÑли модÑÐ»Ñ ÑдÑа [.filename]#vinum# еÑÑ Ð½Ðµ бÑл в ÑпиÑке модÑлей Ð´Ð»Ñ " "авÑомаÑиÑеÑкой загÑÑзки, введиÑе `load geom_vinum`." #. type: Plain text diff --git a/documentation/content/ru/articles/vm-design/_index.adoc b/documentation/content/ru/articles/vm-design/_index.adoc index e0847dea68..d852955a4f 100644 --- a/documentation/content/ru/articles/vm-design/_index.adoc +++ b/documentation/content/ru/articles/vm-design/_index.adoc @@ -59,11 +59,11 @@ toc::[] [[introduction]] == Ðведение -ÐеÑед Ñем, как пеÑейÑи непоÑÑедÑÑвенно к ÑÑÑеÑÑвÑÑÑей аÑÑ Ð¸ÑекÑÑÑе, поÑÑаÑим немного вÑемени на ÑаÑÑмоÑÑение вопÑоÑа о Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи поддеÑжки и модеÑнизаÑии лÑбого длиÑелÑно живÑÑего кода. РмиÑе пÑогÑаммиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð°Ð»Ð³Ð¾ÑиÑÐ¼Ñ ÑÑановÑÑÑÑ Ð±Ð¾Ð»ÐµÐµ важнÑми, Ñем код, и именно из-за академиÑеÑÐºÐ¸Ñ ÐºÐ¾Ñней BSD изнаÑалÑно болÑÑое внимание ÑделÑлоÑÑ Ð¿ÑоÑабоÑке алгоÑиÑмов. Ðнимание, Ñделенное аÑÑ Ð¸ÑекÑÑÑе, в обÑем оÑÑажаеÑÑÑ Ð½Ð° ÑÑноÑÑи и гибкоÑÑи кода, коÑоÑÑй Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð´Ð¾ÑÑаÑоÑно легко изменен, ÑаÑÑиÑен или Ñ ÑеÑением вÑемени заменен. ХоÑÑ Ð½ÐµÐºÐ¾ÑÐ ¾ÑÑе ÑÑиÑаÑÑ BSD "ÑÑаÑой" опеÑаÑионной ÑиÑÑемой, Ñе Ð¸Ñ Ð½Ð°Ñ, кÑо ÑабоÑÐ°ÐµÑ Ð½Ð°Ð´ ней, видÑÑ ÐµÐµ ÑкоÑее ÑиÑÑемой Ñо "зÑелÑм" кодом Ñ ÑазлиÑнÑми компоненÑами, коÑоÑÑе бÑли замененÑ, ÑаÑÑиÑÐµÐ½Ñ Ð¸Ð»Ð¸ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ñ ÑовÑеменнÑм кодом. Ðн ÑазвиваеÑÑÑ, и FreeBSD оÑÑаеÑÑÑ Ð¿ÐµÑедовой ÑиÑÑемой, вне завиÑимоÑÑи Ð¾Ñ Ñого, наÑколÑко ÑÑаÑой Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑаÑÑÑ ÐºÐ¾Ð´Ð°. ÐÑо важное оÑлиÑие, коÑоÑое, к ÑожалениÑ, не вÑеми понимаеÑÑÑ. Самой болÑÑой оÑибкой, коÑоÑÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð´Ð¾Ð¿ÑÑÑиÑÑ Ð¿ÑогÑаммиÑÑ, ÑвлÑеÑÑÑ Ð¸Ð³Ð½Ð¾ÑиÑование иÑÑоÑии, и ÑÑо именно Ñа оÑибка, коÑоÑÑÑ Ñделали многие дÑÑгие Ñов ÑеменнÑе опеÑаÑионнÑе ÑиÑÑемÑ. СамÑм ÑÑки пÑимеÑом здеÑÑ ÑвлÑеÑÑÑ Windows NT(R), и поÑледÑÑÐ²Ð¸Ñ ÑжаÑнÑ. Linux Ñакже в некоÑоÑой ÑÑепени ÑовеÑÑил ÑÑÑ Ð¾ÑибкÑ-доÑÑаÑоÑно, ÑÑÐ¾Ð±Ñ Ð¼Ñ, лÑди BSD, по кÑайней меÑе по ÑÐ°Ð·Ñ Ð¾ÑпÑÑÑили по ÑÑÐ¾Ð¼Ñ Ð¿Ð¾Ð²Ð¾Ð´Ñ ÑÑÑкÑ. ÐÑоблема Linux заклÑÑаеÑÑÑ Ð¿ÑоÑÑо в оÑÑÑÑÑÑвии опÑÑа и иÑÑоÑии Ð´Ð»Ñ ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ð¸Ð´ÐµÐ¹, пÑоблема, коÑоÑÐ°Ñ Ð»ÐµÐ³ÐºÐ¾ и бÑÑÑÑо ÑеÑаеÑÑÑ ÑообÑеÑÑвом Linux ÑоÑно Ñак же, как она ÑеÑаеÑÑÑ Ð² ÑообÑеÑÑве BSD-поÑÑоÑнной ÑабоÑой н ад кодом. РазÑабоÑÑики Windows NT(R), Ñ Ð´ÑÑгой ÑÑоÑонÑ, поÑÑоÑнно ÑовеÑÑаÑÑ Ñе же ÑамÑе оÑибки, ÑÑо бÑли ÑеÑÐµÐ½Ñ Ð² UNIX(R) деÑÑÑки Ð»ÐµÑ Ð½Ð°Ð·Ð°Ð´, а заÑем ÑÑаÑÑÑ Ð³Ð¾Ð´Ñ Ð½Ð° Ð¸Ñ ÑÑÑÑанение. Снова и Ñнова. ÐÑÑÑ Ð½ÐµÑколÑко ÑлÑÑаев "пÑоÑабоÑка аÑÑ Ð¸ÑекÑÑÑÑ Ð¾ÑÑÑÑÑÑвÑеÑ" и "Ð¼Ñ Ð²Ñегда пÑавÑ, поÑÐ¾Ð¼Ñ ÑÑо Ñак говоÑÐ¸Ñ Ð½Ð°Ñ Ð¾Ñдел пÑодаж". Я Ð¿Ð»Ð¾Ñ Ð¾ пеÑеноÑÑ ÑÐµÑ , кого не ÑÑÐ¸Ñ Ð¸ÑÑоÑиÑ. +ÐеÑед Ñем, как пеÑейÑи непоÑÑедÑÑвенно к ÑÑÑеÑÑвÑÑÑей аÑÑ Ð¸ÑекÑÑÑе, поÑÑаÑим немного вÑемени на ÑаÑÑмоÑÑение вопÑоÑа о Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи поддеÑжки и модеÑнизаÑии лÑбого длиÑелÑно живÑÑего кода. РмиÑе пÑогÑаммиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð°Ð»Ð³Ð¾ÑиÑÐ¼Ñ ÑÑановÑÑÑÑ Ð±Ð¾Ð»ÐµÐµ важнÑми, Ñем код, и именно из-за академиÑеÑÐºÐ¸Ñ ÐºÐ¾Ñней BSD изнаÑалÑно болÑÑое внимание ÑделÑлоÑÑ Ð¿ÑоÑабоÑке алгоÑиÑмов. Ðнимание, Ñделенное аÑÑ Ð¸ÑекÑÑÑе, в обÑем оÑÑажаеÑÑÑ Ð½Ð° ÑÑноÑÑи и гибкоÑÑи кода, коÑоÑÑй Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð´Ð¾ÑÑаÑоÑно легко изменен, ÑаÑÑиÑен или Ñ ÑеÑением вÑемени заменен. ХоÑÑ Ð½ÐµÐºÐ¾ÑÐ ¾ÑÑе ÑÑиÑаÑÑ BSD "ÑÑаÑой" опеÑаÑионной ÑиÑÑемой, Ñе Ð¸Ñ Ð½Ð°Ñ, кÑо ÑабоÑÐ°ÐµÑ Ð½Ð°Ð´ ней, видÑÑ ÐµÑ ÑкоÑее ÑиÑÑемой Ñо "зÑелÑм" кодом Ñ ÑазлиÑнÑми компоненÑами, коÑоÑÑе бÑли замененÑ, ÑаÑÑиÑÐµÐ½Ñ Ð¸Ð»Ð¸ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ñ ÑовÑеменнÑм кодом. Ðн ÑазвиваеÑÑÑ, и FreeBSD оÑÑаÑÑÑÑ Ð¿ÐµÑедовой ÑиÑÑемой, вне завиÑимоÑÑи Ð¾Ñ Ñого, наÑколÑко ÑÑаÑой Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑаÑÑÑ ÐºÐ¾Ð´Ð°. ÐÑо важное оÑлиÑие, коÑоÑое, к ÑожалениÑ, не вÑеми понимаеÑÑÑ. Самой болÑÑой оÑибкой, коÑоÑÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð´Ð¾Ð¿ÑÑÑиÑÑ Ð¿ÑогÑаммиÑÑ, ÑвлÑеÑÑÑ Ð¸Ð³Ð½Ð¾ÑиÑование иÑÑоÑии, и ÑÑо именно Ñа оÑибка, коÑоÑÑÑ Ñделали многие дÑÑгие Ñов ÑеменнÑе опеÑаÑионнÑе ÑиÑÑемÑ. СамÑм ÑÑки пÑимеÑом здеÑÑ ÑвлÑеÑÑÑ Windows NT(R), и поÑледÑÑÐ²Ð¸Ñ ÑжаÑнÑ. Linux Ñакже в некоÑоÑой ÑÑепени ÑовеÑÑил ÑÑÑ Ð¾ÑибкÑ-доÑÑаÑоÑно, ÑÑÐ¾Ð±Ñ Ð¼Ñ, лÑди BSD, по кÑайней меÑе по ÑÐ°Ð·Ñ Ð¾ÑпÑÑÑили по ÑÑÐ¾Ð¼Ñ Ð¿Ð¾Ð²Ð¾Ð´Ñ ÑÑÑкÑ. ÐÑоблема Linux заклÑÑаеÑÑÑ Ð¿ÑоÑÑо в оÑÑÑÑÑÑвии опÑÑа и иÑÑоÑии Ð´Ð»Ñ ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ð¸Ð´ÐµÐ¹, пÑоблема, коÑоÑÐ°Ñ Ð»ÐµÐ³ÐºÐ¾ и бÑÑÑÑо ÑеÑаеÑÑÑ ÑообÑеÑÑвом Linux ÑоÑно Ñак же, как она ÑеÑаеÑÑÑ Ð² ÑообÑеÑÑве BSD-поÑÑоÑнной ÑабоÑой н ад кодом. РазÑабоÑÑики Windows NT(R), Ñ Ð´ÑÑгой ÑÑоÑонÑ, поÑÑоÑнно ÑовеÑÑаÑÑ Ñе же ÑамÑе оÑибки, ÑÑо бÑли ÑеÑÐµÐ½Ñ Ð² UNIX(R) деÑÑÑки Ð»ÐµÑ Ð½Ð°Ð·Ð°Ð´, а заÑем ÑÑаÑÑÑ Ð³Ð¾Ð´Ñ Ð½Ð° Ð¸Ñ ÑÑÑÑанение. Снова и Ñнова. ÐÑÑÑ Ð½ÐµÑколÑко ÑлÑÑаев "пÑоÑабоÑка аÑÑ Ð¸ÑекÑÑÑÑ Ð¾ÑÑÑÑÑÑвÑеÑ" и "Ð¼Ñ Ð²Ñегда пÑавÑ, поÑÐ¾Ð¼Ñ ÑÑо Ñак говоÑÐ¸Ñ Ð½Ð°Ñ Ð¾Ñдел пÑодаж". Я Ð¿Ð»Ð¾Ñ Ð¾ пеÑеноÑÑ ÑÐµÑ , кого не ÑÑÐ¸Ñ Ð¸ÑÑоÑиÑ. ÐолÑÑинÑÑво оÑевидной ÑложноÑÑи аÑÑ Ð¸ÑекÑÑÑÑ FreeBSD, оÑобенно в подÑиÑÑеме VM/Swap, ÑвлÑеÑÑÑ Ð¿ÑÑмÑм ÑледÑÑвием Ñого, ÑÑо она ÑеÑÐ°ÐµÑ ÑеÑÑезнÑе пÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ñ Ð¿ÑоизводиÑелÑноÑÑÑÑ, коÑоÑÑе пÑоÑвлÑÑÑÑÑ Ð¿Ñи ÑазлиÑнÑÑ ÑÑловиÑÑ . ÐÑи пÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ð²ÑÐ·Ð²Ð°Ð½Ñ Ð½Ðµ Ð¿Ð»Ð¾Ñ Ð¾Ð¹ пÑоÑабоÑкой алгоÑиÑмов, а возникаÑÑ Ð¸Ð· окÑÑжаÑÑÐ¸Ñ ÑакÑоÑов. РлÑбом пÑÑмом ÑÑавнении Ð¼ÐµÐ¶Ð´Ñ Ð¿Ð»Ð°ÑÑоÑмами ÑÑи пÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ð¿ÑоÑвлÑÑÑÑÑ, когда ÑиÑÑемнÑе ÑеÑÑÑÑÑ Ð½Ð°ÑинаÑÑ Ð¸ÑÑоÑаÑÑÑÑ. Так как Ñ Ð¾Ð¿Ð¸ÑÑ Ð²Ð°Ñ Ð¿Ð¾Ð´ÑиÑÑÐµÐ¼Ñ VM/Swap во FreeBSD, Ñо ÑиÑаÑÐµÐ»Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ вÑегда имеÑÑ Ð² Ð²Ð¸Ð´Ñ Ð´Ð²Ð° обÑÑоÑÑелÑÑÑва: -. СамÑм важнÑм аÑпекÑом пÑи пÑоекÑиÑовании пÑоизводиÑелÑноÑÑи ÑвлÑеÑÑÑ Ñо, ÑÑо назÑваеÑÑÑ "опÑимизаÑией кÑиÑиÑеÑкого маÑÑÑÑÑа". ЧаÑÑо ÑлÑÑаеÑÑÑ, ÑÑо опÑимизаÑÐ¸Ñ Ð¿ÑоизводиÑелÑноÑÑи Ð´Ð°ÐµÑ Ð¿ÑиÑоÑÑ Ð¾Ð±Ñема кода Ñади Ñого, ÑÑÐ¾Ð±Ñ ÐºÑиÑиÑеÑкий маÑÑÑÑÑ ÑабоÑал бÑÑÑÑее. +. СамÑм важнÑм аÑпекÑом пÑи пÑоекÑиÑовании пÑоизводиÑелÑноÑÑи ÑвлÑеÑÑÑ Ñо, ÑÑо назÑваеÑÑÑ "опÑимизаÑией кÑиÑиÑеÑкого маÑÑÑÑÑа". ЧаÑÑо ÑлÑÑаеÑÑÑ, ÑÑо опÑимизаÑÐ¸Ñ Ð¿ÑоизводиÑелÑноÑÑи даÑÑ Ð¿ÑиÑоÑÑ Ð¾Ð±ÑÑма кода Ñади Ñого, ÑÑÐ¾Ð±Ñ ÐºÑиÑиÑеÑкий маÑÑÑÑÑ ÑабоÑал бÑÑÑÑее. . ЧеÑкоÑÑÑ Ð¾Ð±Ñей аÑÑ Ð¸ÑекÑÑÑÑ Ð¾ÐºÐ°Ð·ÑваеÑÑÑ Ð»ÑÑÑе ÑилÑно опÑимизиÑованной аÑÑ Ð¸ÑекÑÑÑÑ Ñ ÑеÑением вÑемени. Ðогда как обобÑÐµÐ½Ð½Ð°Ñ Ð°ÑÑ Ð¸ÑекÑÑÑа Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¼ÐµÐ´Ð»ÐµÐ½Ð½ÐµÐµ, Ñем опÑимизиÑÐ¾Ð²Ð°Ð½Ð½Ð°Ñ Ð°ÑÑ Ð¸ÑекÑÑÑа, пÑи пеÑвой ÑеализаÑии, пÑи обобÑенной аÑÑ Ð¸ÑекÑÑÑе легÑе подÑÑÑаиваÑÑÑÑ Ð¿Ð¾Ð´ изменÑÑÑиеÑÑ ÑÑÐ»Ð¾Ð²Ð¸Ñ Ð¸ ÑÑезмеÑно опÑимизиÑÐ¾Ð²Ð°Ð½Ð½Ð°Ñ Ð°ÑÑ Ð¸ÑекÑÑÑа оказÑваеÑÑÑ Ð½ÐµÐ¿Ñигодной. ÐÑбой код, коÑоÑÑй должен вÑжиÑÑ Ð¸ поддаваÑÑÑÑ Ð¿Ð¾Ð´Ð´ÐµÑжке годÑ, должен поÑÑÐ¾Ð¼Ñ Ð±ÑÑÑ ÑÑаÑелÑно пÑодÑман Ñ Ñамого наÑала, даже еÑли ÑÑо ÑÑÐ¾Ð¸Ñ Ð¿Ð¾ÑеÑи пÑоизводиÑелÑноÑÑи. ÐвадÑаÑÑ Ð»ÐµÑ Ð½Ð°Ð·Ð°Ð´ бÑли Ñе, кÑо оÑÑÑаивал пÑеимÑÑеÑÑво пÑогÑаммиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð½Ð° ÑзÑке аÑÑемблеÑа пеÑед пÑогÑаммиÑованием на ÑзÑке вÑÑокого ÑÑовнÑ, поÑÐ¾Ð¼Ñ ÑÑо пеÑвÑй генеÑиÑовал в деÑÑÑÑ Ñаз более бÑÑÑÑÑй код. РнаÑи дни оÑибоÑноÑÑÑ ÑÑого аÑгÑменÑа оÑевидна - можно пÑовеÑÑÐ ¸ паÑаллели Ñ Ð¿Ð¾ÑÑÑоением алгоÑиÑмов и обобÑением кода. @@ -71,11 +71,11 @@ toc::[] [[vm-objects]] == ÐбÑекÑÑ VM -ÐÑÑÑе вÑего наÑаÑÑ Ð¾Ð¿Ð¸Ñание VM-ÑиÑÑÐµÐ¼Ñ FreeBSD Ñ Ð¿Ð¾Ð¿ÑÑки взглÑнÑÑÑ Ð½Ð° нее Ñ ÑоÑки зÑÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑзоваÑелÑÑкого пÑоÑеÑÑа. ÐаждÑй полÑзоваÑелÑÑкий пÑоÑеÑÑ Ð¸Ð¼ÐµÐµÑ ÐµÐ´Ð¸Ð½Ð¾Ðµ, пÑинадлежаÑее ÑолÑко ÐµÐ¼Ñ Ð¸ неÑазÑÑвное адÑеÑное пÑоÑÑÑанÑÑво VM, ÑодеÑжаÑее неÑколÑко Ñипов обÑекÑов памÑÑи. ÐÑи обÑекÑÑ Ð¸Ð¼ÐµÑÑ ÑазлиÑнÑе Ñ Ð°ÑакÑеÑиÑÑики. Ðод пÑогÑÐ°Ð¼Ð¼Ñ Ð¸ ее даннÑе ÑвлÑÑÑÑÑ ÐµÐ´Ð¸Ð½Ñм Ñайлом, оÑобÑажаемÑм в памÑÑÑ (ÑÑо вÑполнÑÑÑийÑÑ Ð´Ð²Ð¾Ð¸ÑнÑй Ñайл), однако код пÑог ÑÐ°Ð¼Ð¼Ñ Ð´Ð¾ÑÑÑпен ÑолÑко Ð´Ð»Ñ ÑÑениÑ, когда как даннÑе пÑогÑÐ°Ð¼Ð¼Ñ ÑазмеÑаÑÑÑÑ Ð² Ñежиме копиÑованиÑ-пÑи-запи Ñи. BSS пÑогÑÐ°Ð¼Ð¼Ñ Ð¿ÑедÑÑавлÑÐµÑ Ñобой вÑего лиÑÑ Ð²ÑделеннÑÑ Ð¾Ð±Ð»Ð°ÑÑÑ Ð¿Ð°Ð¼ÑÑи, заполненнÑÑ, еÑли ÑÑо ÑÑебовалоÑÑ, нÑлÑми, ÑÑо назÑваеÑÑÑ Ð¾Ð±Ð½Ñлением ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи по ÑÑебованиÑ. ÐÑделÑнÑе ÑÐ°Ð¹Ð»Ñ Ð¼Ð¾Ð³ÑÑ Ñакже оÑобÑажаÑÑÑÑ Ð² адÑеÑное пÑоÑÑÑанÑÑво, именно Ñак ÑабоÑаÑÑ Ð´Ð¸Ð½Ð°Ð¼Ð¸ÑеÑкие библиоÑеки. Такие оÑобÑÐ°Ð¶ÐµÐ½Ð¸Ñ ÑÑебÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹, ÑÑÐ¾Ð±Ñ Ð¾ÑÑаваÑÑÑÑ Ð¿ÑинадлежаÑими пÑоÑеÑÑÑ, коÑоÑÑй Ð¸Ñ Ð²Ñполнил. СиÑÑемнÑй вÑзов fork добавлÑÐµÑ Ð¿ÐµÑÐµÐ²Ð¾Ð´Ð¸Ñ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ VM полноÑÑÑÑ Ð² новÑÑ Ð¿Ð»Ð¾ÑкоÑÑÑ, вдобавок к Ñже имеÑÑимÑÑ ÑложноÑÑÑм. +ÐÑÑÑе вÑего наÑаÑÑ Ð¾Ð¿Ð¸Ñание VM-ÑиÑÑÐµÐ¼Ñ FreeBSD Ñ Ð¿Ð¾Ð¿ÑÑки взглÑнÑÑÑ Ð½Ð° нее Ñ ÑоÑки зÑÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑзоваÑелÑÑкого пÑоÑеÑÑа. ÐаждÑй полÑзоваÑелÑÑкий пÑоÑеÑÑ Ð¸Ð¼ÐµÐµÑ ÐµÐ´Ð¸Ð½Ð¾Ðµ, пÑинадлежаÑее ÑолÑко ÐµÐ¼Ñ Ð¸ неÑазÑÑвное адÑеÑное пÑоÑÑÑанÑÑво VM, ÑодеÑжаÑее неÑколÑко Ñипов обÑекÑов памÑÑи. ÐÑи обÑекÑÑ Ð¸Ð¼ÐµÑÑ ÑазлиÑнÑе Ñ Ð°ÑакÑеÑиÑÑики. Ðод пÑогÑÐ°Ð¼Ð¼Ñ Ð¸ ÐµÑ Ð´Ð°Ð½Ð½Ñе ÑвлÑÑÑÑÑ ÐµÐ´Ð¸Ð½Ñм Ñайлом, оÑобÑажаемÑм в памÑÑÑ (ÑÑо вÑполнÑÑÑийÑÑ Ð´Ð²Ð¾Ð¸ÑнÑй Ñайл), однако код пÑог ÑÐ°Ð¼Ð¼Ñ Ð´Ð¾ÑÑÑпен ÑолÑко Ð´Ð»Ñ ÑÑениÑ, когда как даннÑе пÑогÑÐ°Ð¼Ð¼Ñ ÑазмеÑаÑÑÑÑ Ð² Ñежиме копиÑованиÑ-пÑи-запи Ñи. BSS пÑогÑÐ°Ð¼Ð¼Ñ Ð¿ÑедÑÑавлÑÐµÑ Ñобой вÑего лиÑÑ Ð²ÑделеннÑÑ Ð¾Ð±Ð»Ð°ÑÑÑ Ð¿Ð°Ð¼ÑÑи, заполненнÑÑ, еÑли ÑÑо ÑÑебовалоÑÑ, нÑлÑми, ÑÑо назÑваеÑÑÑ Ð¾Ð±Ð½Ñлением ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи по ÑÑебованиÑ. ÐÑделÑнÑе ÑÐ°Ð¹Ð»Ñ Ð¼Ð¾Ð³ÑÑ Ñакже оÑобÑажаÑÑÑÑ Ð² адÑеÑное пÑоÑÑÑанÑÑво, именно Ñак ÑабоÑаÑÑ Ð´Ð¸Ð½Ð°Ð¼Ð¸ÑеÑкие библиоÑеки. Такие оÑобÑÐ°Ð¶ÐµÐ½Ð¸Ñ ÑÑебÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹, ÑÑÐ¾Ð±Ñ Ð¾ÑÑаваÑÑÑÑ Ð¿ÑинадлежаÑими пÑоÑеÑÑÑ, коÑоÑÑй Ð¸Ñ Ð²Ñполнил. СиÑÑемнÑй вÑзов fork добавлÑÐµÑ Ð¿ÐµÑÐµÐ²Ð¾Ð´Ð¸Ñ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ VM полноÑÑÑÑ Ð² новÑÑ Ð¿Ð»Ð¾ÑкоÑÑÑ, вдобавок к Ñже имеÑÑимÑÑ ÑложноÑÑÑм. -ÐллÑÑÑÑиÑÑÐµÑ ÑложноÑÑÑ ÑÑÑаниÑа даннÑÑ Ð´Ð²Ð¾Ð¸Ñной пÑогÑÐ°Ð¼Ð¼Ñ (коÑоÑÐ°Ñ ÑвлÑеÑÑÑ ÑÑÑаниÑей копиÑÑемой-пÑи-запиÑи). ÐвоиÑÐ½Ð°Ñ Ð¿ÑогÑамма ÑодеÑÐ¶Ð¸Ñ ÑекÑÐ¸Ñ Ð¿ÑедваÑиÑелÑно иниÑиализиÑованнÑÑ Ð´Ð°Ð½Ð½ÑÑ , коÑоÑÐ°Ñ Ð¿ÐµÑвонаÑалÑно оÑобÑажаеÑÑÑ Ð½ÐµÐ¿Ð¾ÑÑедÑÑвенно из Ñайла пÑогÑаммÑ. Ðогда пÑогÑамма загÑÑжаеÑÑÑ Ð² Vm-пÑоÑÑÑанÑÑво пÑоÑеÑÑа, ÑÑа облаÑÑÑ ÑнаÑала оÑобÑажаеÑÑÑ Ð² памÑÑÑ Ð¸ поддеÑживаеÑÑÑ Ð±Ð¸Ð½Ð°ÑнÑм Ñайлом пÑогÑаммÑ, позволÑÑ VM-ÑиÑÑеме оÑвобождР°ÑÑ/повÑоÑно иÑполÑзоваÑÑ ÑÑÑаниÑÑ, а поÑом загÑÑжаÑÑ ÐµÐµ Ñнова из бинаÑного Ñайла. Ðднако в моменÑ, когд а пÑоÑеÑÑ Ð¸Ð·Ð¼ÐµÐ½ÑÐµÑ ÑÑи даннÑе, VM-ÑиÑÑема должна ÑделаÑÑ ÐºÐ¾Ð¿Ð¸Ñ ÑÑÑаниÑÑ, пÑинадлежаÑÑÑ ÑолÑко ÑÑÐ¾Ð¼Ñ Ð¿ÑоÑеÑÑÑ. Так как ÑÑа ÐºÐ¾Ð¿Ð¸Ñ Ð±Ñла изменена, Ñо VM-ÑиÑÑема не Ð¼Ð¾Ð¶ÐµÑ Ð±Ð¾Ð»ÑÑе оÑвобождаÑÑ ÑÑÑ ÑÑÑаниÑÑ, Ñак как впоÑледÑÑвии ее невозможно бÑÐ´ÐµÑ Ð²Ð¾ÑÑÑановиÑÑ. +ÐллÑÑÑÑиÑÑÐµÑ ÑложноÑÑÑ ÑÑÑаниÑа даннÑÑ Ð´Ð²Ð¾Ð¸Ñной пÑогÑÐ°Ð¼Ð¼Ñ (коÑоÑÐ°Ñ ÑвлÑеÑÑÑ ÑÑÑаниÑей копиÑÑемой-пÑи-запиÑи). ÐвоиÑÐ½Ð°Ñ Ð¿ÑогÑамма ÑодеÑÐ¶Ð¸Ñ ÑекÑÐ¸Ñ Ð¿ÑедваÑиÑелÑно иниÑиализиÑованнÑÑ Ð´Ð°Ð½Ð½ÑÑ , коÑоÑÐ°Ñ Ð¿ÐµÑвонаÑалÑно оÑобÑажаеÑÑÑ Ð½ÐµÐ¿Ð¾ÑÑедÑÑвенно из Ñайла пÑогÑаммÑ. Ðогда пÑогÑамма загÑÑжаеÑÑÑ Ð² Vm-пÑоÑÑÑанÑÑво пÑоÑеÑÑа, ÑÑа облаÑÑÑ ÑнаÑала оÑобÑажаеÑÑÑ Ð² памÑÑÑ Ð¸ поддеÑживаеÑÑÑ Ð±Ð¸Ð½Ð°ÑнÑм Ñайлом пÑогÑаммÑ, позволÑÑ VM-ÑиÑÑеме оÑвобождР°ÑÑ/повÑоÑно иÑполÑзоваÑÑ ÑÑÑаниÑÑ, а поÑом загÑÑжаÑÑ ÐµÑ Ñнова из бинаÑного Ñайла. Ðднако в моменÑ, когд а пÑоÑеÑÑ Ð¸Ð·Ð¼ÐµÐ½ÑÐµÑ ÑÑи даннÑе, VM-ÑиÑÑема должна ÑделаÑÑ ÐºÐ¾Ð¿Ð¸Ñ ÑÑÑаниÑÑ, пÑинадлежаÑÑÑ ÑолÑко ÑÑÐ¾Ð¼Ñ Ð¿ÑоÑеÑÑÑ. Так как ÑÑа ÐºÐ¾Ð¿Ð¸Ñ Ð±Ñла изменена, Ñо VM-ÑиÑÑема не Ð¼Ð¾Ð¶ÐµÑ Ð±Ð¾Ð»ÑÑе оÑвобождаÑÑ ÑÑÑ ÑÑÑаниÑÑ, Ñак как впоÑледÑÑвии ÐµÑ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ бÑÐ´ÐµÑ Ð²Ð¾ÑÑÑановиÑÑ. -ÐÑ ÑÑÑ Ð¶Ðµ замеÑиÑе, ÑÑо Ñо, ÑÑо ÑнаÑала бÑло пÑоÑÑÑм оÑобÑажением Ñайла в памÑÑÑ, ÑÑановиÑÑÑ Ð³Ð¾Ñаздо более ÑложнÑм пÑедмеÑом. ÐаннÑе могÑÑ Ð¼Ð¾Ð´Ð¸ÑиÑиÑоваÑÑÑÑ Ð¿Ð¾ÑÑÑаниÑно, когда как оÑобÑажение Ñайла вÑполнÑеÑÑÑ Ð´Ð»Ñ Ð¼Ð½Ð¾Ð³Ð¸Ñ ÑÑÑÐ°Ð½Ð¸Ñ Ð·Ð° Ñаз. СложноÑÑÑ ÐµÑе более ÑвелиÑиваеÑÑÑ, когда пÑоÑеÑÑ Ð²ÑполнÑÐµÑ Ð²Ñзов fork. ÐÑи ÑÑом поÑождаÑÑÑÑ Ð´Ð²Ð° пÑоÑеÑÑа-каждÑй Ñо Ñ ÑобÑÑвеннÑм адÑеÑнÑм пÑоÑÑÑанÑÑвом, вклÑÑаÑÑим вÑе изменениÑ, вÑполненнÑе иÑÑ Ð¾Ð´Ð½Ñм пÑоÑеÑÑом до вÑзова ÑÑнкÑии `fork()`. ÐÑло Ð±Ñ Ð³Ð»Ñпо Ð´Ð»Ñ VM-ÑиÑÑÐµÐ¼Ñ Ð´ÐµÐ»Ð°ÑÑ Ð¿Ð¾Ð»Ð½ÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ Ð²Ð¾ вÑÐµÐ¼Ñ Ð²Ñзов а `fork()`, Ñак как веÑÑма веÑоÑÑно, ÑÑо один из двÑÑ Ð¿ÑоÑеÑÑов бÑÐ´ÐµÑ Ð½Ñжен ÑолÑко Ð´Ð»Ñ ÑÑÐµÐ½Ð¸Ñ Ð¸Ð· Ñой ÑÑÑаниÑÑ, ÑÑо позволÑÐµÑ Ð¸ÑполÑзование иÑÑ Ð¾Ð´Ð½Ð¾Ð¹ ÑÑÑаниÑÑ. То, ÑÑо бÑло ÑÑÑаниÑей, пÑинадлежаÑей ÑолÑко пÑоÑеÑÑÑ, ÑделаеÑÑÑ Ñнова ÑÑÑаниÑей, копиÑÑемой пÑи запиÑи, Ñак как каждÑй из пÑоÑеÑÑов (и ÑодиÑелÑ, и поÑомок) полагаÑÑ, ÑÑо Ð¸Ñ ÑобÑÑвеннÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñле ÑазвеÑÐ²Ð»ÐµÐ½Ð¸Ñ Ð±ÑдÑÑ Ð¿ÑинадлежаÑÑ ÑолÑко им, и не заÑÑонÑÑ ÑодÑÑвеннÑй пÑоÑеÑÑ. +ÐÑ ÑÑÑ Ð¶Ðµ замеÑиÑе, ÑÑо Ñо, ÑÑо ÑнаÑала бÑло пÑоÑÑÑм оÑобÑажением Ñайла в памÑÑÑ, ÑÑановиÑÑÑ Ð³Ð¾Ñаздо более ÑложнÑм пÑедмеÑом. ÐаннÑе могÑÑ Ð¼Ð¾Ð´Ð¸ÑиÑиÑоваÑÑÑÑ Ð¿Ð¾ÑÑÑаниÑно, когда как оÑобÑажение Ñайла вÑполнÑеÑÑÑ Ð´Ð»Ñ Ð¼Ð½Ð¾Ð³Ð¸Ñ ÑÑÑÐ°Ð½Ð¸Ñ Ð·Ð° Ñаз. СложноÑÑÑ ÐµÑÑ Ð±Ð¾Ð»ÐµÐµ ÑвелиÑиваеÑÑÑ, когда пÑоÑеÑÑ Ð²ÑполнÑÐµÑ Ð²Ñзов fork. ÐÑи ÑÑом поÑождаÑÑÑÑ Ð´Ð²Ð° пÑоÑеÑÑа-каждÑй Ñо Ñ ÑобÑÑвеннÑм адÑеÑнÑм пÑоÑÑÑанÑÑвом, вклÑÑаÑÑим вÑе изменениÑ, вÑполненнÑе иÑÑ Ð¾Ð´Ð½Ñм пÑоÑеÑÑом до вÑзова ÑÑнкÑии `fork()`. ÐÑло Ð±Ñ Ð³Ð»Ñпо Ð´Ð»Ñ VM-ÑиÑÑÐµÐ¼Ñ Ð´ÐµÐ»Ð°ÑÑ Ð¿Ð¾Ð»Ð½ÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ Ð²Ð¾ вÑÐµÐ¼Ñ Ð²Ñзов а `fork()`, Ñак как веÑÑма веÑоÑÑно, ÑÑо один из двÑÑ Ð¿ÑоÑеÑÑов бÑÐ´ÐµÑ Ð½Ñжен ÑолÑко Ð´Ð»Ñ ÑÑÐµÐ½Ð¸Ñ Ð¸Ð· Ñой ÑÑÑаниÑÑ, ÑÑо позволÑÐµÑ Ð¸ÑполÑзование иÑÑ Ð¾Ð´Ð½Ð¾Ð¹ ÑÑÑаниÑÑ. То, ÑÑо бÑло ÑÑÑаниÑей, пÑинадлежаÑей ÑолÑко пÑоÑеÑÑÑ, ÑделаеÑÑÑ Ñнова ÑÑÑаниÑей, копиÑÑемой пÑи запиÑи, Ñак как каждÑй из пÑоÑеÑÑов (и ÑодиÑелÑ, и поÑомок) полагаÑÑ, ÑÑо Ð¸Ñ ÑобÑÑвеннÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñле ÑазвеÑÐ²Ð»ÐµÐ½Ð¸Ñ Ð±ÑдÑÑ Ð¿ÑинадлежаÑÑ ÑолÑко им, и не заÑÑонÑÑ ÑодÑÑвеннÑй пÑоÑеÑÑ. FreeBSD ÑпÑавлÑÐµÑ Ð²Ñем ÑÑим пÑи помоÑи многоÑÑовневой модели VM-обÑекÑов. ÐÑÑ Ð¾Ð´Ð½Ñй Ñайл Ñ Ð´Ð²Ð¾Ð¸Ñной пÑогÑаммой пеÑеноÑиÑÑÑ Ð½Ð° ÑамÑй нижний ÑÑÐ¾Ð²ÐµÐ½Ñ Ð¾Ð±ÑекÑов VM. УÑÐ¾Ð²ÐµÐ½Ñ ÑÑÑаниÑ, копиÑÑемÑÑ Ð¿Ñи запиÑи, Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð²ÑÑе него, и Ñ ÑÐ°Ð½Ð¸Ñ Ñе ÑÑÑаниÑÑ, коÑоÑÑе бÑли ÑкопиÑÐ¾Ð²Ð°Ð½Ñ Ð¸Ð· иÑÑ Ð¾Ð´Ð½Ð¾Ð³Ð¾ Ñайла. ÐÑли пÑогÑамма модиÑиÑиÑÑÐµÑ ÑÑÑаниÑÑ Ð´Ð°Ð½Ð½ÑÑ , оÑноÑÑÑиеÑÑ Ðº иÑÑ Ð¾Ð´Ð½Ð¾Ð¼Ñ ÑайлÑ, Ñо ÑиÑÑема VM обнаÑÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑÑо и пеÑеноÑÐ¸Ñ ÐºÐ¾Ð¿Ð¸Ñ ÑÑой ÑÑÑаниÑÑ Ð½Ð° более вÑÑоки й ÑÑовенÑ. Ðогда пÑоÑеÑÑ ÑазвеÑвлÑеÑÑÑ, добавлÑÑÑÑÑ Ð½Ð¾Ð²Ñе ÑÑовни VM-обÑекÑов. ÐÑо можно показаÑÑ Ð½Ð° пÑÐ¾Ñ Ñом пÑимеÑе. ФÑнкÑÐ¸Ñ `fork()` ÑвлÑеÑÑÑ Ð¾Ð±Ñей опеÑаÑией Ð´Ð»Ñ Ð²ÑÐµÑ ÑиÑÑем *BSD, Ñак ÑÑо в ÑÑом пÑимеÑе бÑÐ´ÐµÑ ÑаÑÑмаÑÑиваÑÑÑÑ Ð¿ÑогÑамма, коÑоÑÐ°Ñ Ð·Ð°Ð¿ÑÑкаеÑÑÑ, а заÑем ÑазвеÑвлÑеÑÑÑ. Ðогда пÑоÑеÑÑ Ð·Ð°Ð¿ÑÑкаеÑÑÑ, VM-ÑиÑÑема ÑÐ¾Ð·Ð´Ð°ÐµÑ Ð½ÐµÐºÐ¾ÑоÑÑй ÑÑÐ¾Ð²ÐµÐ½Ñ Ð¾Ð±ÑекÑов, обознаÑим его A: @@ -95,31 +95,31 @@ image::fig4.png[] Ð ÑÑом ÑлÑÑае колиÑеÑÑво поÑомков B ÑÑановиÑÑÑ ÑавнÑм Ð¾Ð´Ð½Ð¾Ð¼Ñ Ð¸ вÑе обÑаÑÐµÐ½Ð¸Ñ Ðº B ÑепеÑÑ Ð²ÑполнÑÑÑÑÑ ÑеÑез C1. ÐÑо ознаÑаеÑ, ÑÑо B и C1 могÑÑ Ð±ÑÑÑ Ð¾Ð±ÑединенÑ. ÐÑе ÑÑÑаниÑÑ Ð² B, коÑоÑÑе Ñакже ÑÑÑеÑÑвÑÑÑ Ð¸ в C1, во вÑÐµÐ¼Ñ Ð¾Ð±ÑÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¸Ð· B ÑдалÑÑÑÑÑ. Таким обÑазом, Ñ Ð¾ÑÑ Ð¾Ð¿ÑимизаÑÐ¸Ñ Ð½Ð° пÑедÑдÑÑем Ñаге Ð¼Ð¾Ð¶ÐµÑ Ð½Ðµ делаÑÑÑÑ, Ð¼Ñ Ð¼Ð¾Ð¶ÐµÐ¼ воÑÑÑановиÑÑ Ð¼ÐµÑÑвÑе ÑÑÑаниÑÑ Ð¿Ñи оконÑании ÑабоÑÑ Ð¿ÑоÑеÑÑов или пÑи вÑзове `exec()`. -Ð¢Ð°ÐºÐ°Ñ Ð¼Ð¾Ð´ÐµÐ»Ñ ÑÐ¾Ð·Ð´Ð°ÐµÑ Ð½ÐµÐºÐ¾ÑоÑое колиÑеÑÑво поÑенÑиалÑнÑÑ Ð¿Ñоблем. ÐеÑваÑ, Ñ ÐºÐ¾ÑоÑой Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑÑолкнÑÑÑÑÑ, заклÑÑаеÑÑÑ Ð² ÑÑавниÑелÑно болÑÑой поÑледоваÑелÑноÑÑи ÑÑовней обÑекÑов VM, на ÑканиÑование коÑоÑÑÑ ÑÑаÑиÑÑÑ Ð²ÑÐµÐ¼Ñ Ð¸ памÑÑÑ. ÐолÑÑое колиÑеÑÑво ÑÑовней Ð¼Ð¾Ð¶ÐµÑ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½ÑÑÑ, когда пÑоÑеÑÑÑ ÑазвеÑвлÑÑÑÑÑ, а заÑем ÑазвеÑвлÑÑÑÑÑ ÐµÑе Ñаз (как поÑожденнÑе, Ñак и поÑождаÑÑие). ÐÑоÑÐ°Ñ Ð¿Ñоблема заклÑÑаеÑÑÑ Ð² Ñом, ÑÑо Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑÑолкнÑÑÑÑÑ Ñ Ð¼ÐµÑÑвÑми, недоÑÑÑпнÑми ÑÑÑаниÑами глÑбоко в иеÑаÑÑ Ð¸Ð¸ обÑекÑов VM. РнаÑем поÑледнем пÑимеÑе еÑли как Ñ Ð¾Ð´Ð¸ÑелÑ, Ñак и поÑомок изменÑÑÑ Ð¾Ð´Ð½Ñ Ð¸ ÑÑ Ð¶Ðµ ÑÑÑаниÑÑ, они оба полÑÑаÑÑ ÑобÑÑвеннÑе копии ÑÑÑаниÑÑ, а иÑÑ Ð¾Ð´Ð½Ð°Ñ ÑÑÑаниÑа в B ÑÑановиÑÑÑ Ð½Ð¸ÐºÐ¾Ð¼Ñ Ð½Ðµ доÑÑÑпной. ÑÐ°ÐºÐ°Ñ ÑÑÑаниÑа в B Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð²ÑÑвобождена. +Ð¢Ð°ÐºÐ°Ñ Ð¼Ð¾Ð´ÐµÐ»Ñ ÑÐ¾Ð·Ð´Ð°ÐµÑ Ð½ÐµÐºÐ¾ÑоÑое колиÑеÑÑво поÑенÑиалÑнÑÑ Ð¿Ñоблем. ÐеÑваÑ, Ñ ÐºÐ¾ÑоÑой Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑÑолкнÑÑÑÑÑ, заклÑÑаеÑÑÑ Ð² ÑÑавниÑелÑно болÑÑой поÑледоваÑелÑноÑÑи ÑÑовней обÑекÑов VM, на ÑканиÑование коÑоÑÑÑ ÑÑаÑиÑÑÑ Ð²ÑÐµÐ¼Ñ Ð¸ памÑÑÑ. ÐолÑÑое колиÑеÑÑво ÑÑовней Ð¼Ð¾Ð¶ÐµÑ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½ÑÑÑ, когда пÑоÑеÑÑÑ ÑазвеÑвлÑÑÑÑÑ, а заÑем ÑазвеÑвлÑÑÑÑÑ ÐµÑÑ Ñаз (как поÑожденнÑе, Ñак и поÑождаÑÑие). ÐÑоÑÐ°Ñ Ð¿Ñоблема заклÑÑаеÑÑÑ Ð² Ñом, ÑÑо Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑÑолкнÑÑÑÑÑ Ñ Ð¼ÐµÑÑвÑми, недоÑÑÑпнÑми ÑÑÑаниÑами глÑбоко в иеÑаÑÑ Ð¸Ð¸ обÑекÑов VM. РнаÑем поÑледнем пÑимеÑе еÑли как Ñ Ð¾Ð´Ð¸ÑелÑ, Ñак и поÑомок изменÑÑÑ Ð¾Ð´Ð½Ñ Ð¸ ÑÑ Ð¶Ðµ ÑÑÑаниÑÑ, они оба полÑÑаÑÑ ÑобÑÑвеннÑе копии ÑÑÑаниÑÑ, а иÑÑ Ð¾Ð´Ð½Ð°Ñ ÑÑÑаниÑа в B ÑÑановиÑÑÑ Ð½Ð¸ÐºÐ¾Ð¼Ñ Ð½Ðµ доÑÑÑпной. ÑÐ°ÐºÐ°Ñ ÑÑÑаниÑа в B Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð²ÑÑвобождена. -FreeBSD ÑеÑÐ°ÐµÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ñ Ð³Ð»Ñбиной вложенноÑÑи Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð¿Ñиема опÑимизаÑии, коÑоÑÑй назÑваеÑÑÑ "All Shadowed Case". ÐÑÐ¾Ñ ÑлÑÑай возникаеÑ, еÑли в C1 либо C2 Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÐµÑ ÑÑолÑко ÑлÑÑаев копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ñи запиÑи, ÑÑо они полноÑÑÑÑ Ð·Ð°ÐºÑÑваÑÑ Ð²Ñе ÑÑÑаниÑÑ Ð² B. ÐопÑÑÑим, ÑÑо Ñакое пÑоизоÑло в C1. C1 Ð¼Ð¾Ð¶ÐµÑ ÑепеÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð·Ð°Ð¼ÐµÐ½Ð¸ÑÑ B, Ñак ÑÑо вмеÑÑо ÑепоÑек C1->B->A и C2->B->A Ð¼Ñ ÑепеÑÑ Ð¸Ð¼ÐµÐµÐ¼ ÑепоÑки C1->A и C2->B->A. Ðо поÑмоÑÑиÑе, ÑÑо полÑÑаеÑÑÑ-ÑепеÑÑ B Ð¸Ð¼ÐµÐµÑ ÑолÑко Ð¾Ð´Ð½Ñ ÑÑÑÐ»ÐºÑ (C2), Ñак ÑÑо Ð¼Ñ Ð¼Ð¾Ð¶ÐµÐ¼ обÑединиÑÑ B и C2. РконеÑном иÑоге B бÑÐ´ÐµÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ñдален и Ð¼Ñ Ð¸Ð¼ÐµÐµÐ¼ ÑеР¿Ð¾Ñки C1->A и C2->A. ЧаÑÑо B бÑÐ´ÐµÑ ÑодеÑжаÑÑ Ð±Ð¾Ð»ÑÑое колиÑеÑÑво ÑÑÑаниÑ, и ни C1, ни C2 не ÑмогÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð¸Ñ Ð·Ð°Ð¼ÐµÐ½Ð¸ÑÑ. ÐÑли Ð¼Ñ Ñнова поÑодим пÑоÑеÑÑ Ð¸ Ñоздадим Ð½Ð°Ð±Ð¾Ñ ÑÑовней D, пÑи ÑÑом, однако, более веÑоÑÑно, ÑÑо один из ÑÑовней D поÑÑепенно ÑÐ¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð·Ð°Ð¼ÐµÑÑиÑÑ Ð³Ð¾Ñаздо менÑÑий Ð½Ð°Ð±Ð¾Ñ Ð´Ð°Ð½Ð½ÑÑ , пÑедÑÑавленнÑй C1 и C2. Та же ÑÐ°Ð¼Ð°Ñ Ð¾Ð¿ÑимизаÑÐ¸Ñ Ð±ÑÐ´ÐµÑ ÑабоÑаÑÑ Ð² лÑбой ÑоÑке гÑаÑа и главнÑм ÑезÑлÑÑаÑом ÑÑого ÑвлÑеÑÑÑ Ñо, ÑÑо даже на ÑилÑно загÑÑже нной маÑине Ñ Ð¼Ð½Ð¾Ð¶ÐµÑÑвом поÑождаемÑÑ Ð¿ÑоÑеÑÑов ÑÑеки обÑекÑов VM не ÑаÑÑо бÑваÑÑ Ð³Ð»Ñбже ÑеÑÑÑÐµÑ ÑÑовнеР¹. ÐÑо Ñак как Ð´Ð»Ñ Ð¿Ð¾ÑождаÑÑего, Ñак и Ð´Ð»Ñ Ð¿Ð¾Ñожденного пÑоÑеÑÑов, и оÑÑаеÑÑÑ Ð² Ñиле как в ÑлÑÑае, когда веÑвление Ð´ÐµÐ»Ð°ÐµÑ ÑодиÑелÑ, Ñак и в ÑлÑÑае, когда веÑвление вÑполнÑÐµÑ Ð¿Ð¾Ñомок. +FreeBSD ÑеÑÐ°ÐµÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ñ Ð³Ð»Ñбиной вложенноÑÑи Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð¿Ñиема опÑимизаÑии, коÑоÑÑй назÑваеÑÑÑ "All Shadowed Case". ÐÑÐ¾Ñ ÑлÑÑай возникаеÑ, еÑли в C1 либо C2 Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÐµÑ ÑÑолÑко ÑлÑÑаев копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ñи запиÑи, ÑÑо они полноÑÑÑÑ Ð·Ð°ÐºÑÑваÑÑ Ð²Ñе ÑÑÑаниÑÑ Ð² B. ÐопÑÑÑим, ÑÑо Ñакое пÑоизоÑло в C1. C1 Ð¼Ð¾Ð¶ÐµÑ ÑепеÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð·Ð°Ð¼ÐµÐ½Ð¸ÑÑ B, Ñак ÑÑо вмеÑÑо ÑепоÑек C1->B->A и C2->B->A Ð¼Ñ ÑепеÑÑ Ð¸Ð¼ÐµÐµÐ¼ ÑепоÑки C1->A и C2->B->A. Ðо поÑмоÑÑиÑе, ÑÑо полÑÑаеÑÑÑ-ÑепеÑÑ B Ð¸Ð¼ÐµÐµÑ ÑолÑко Ð¾Ð´Ð½Ñ ÑÑÑÐ»ÐºÑ (C2), Ñак ÑÑо Ð¼Ñ Ð¼Ð¾Ð¶ÐµÐ¼ обÑединиÑÑ B и C2. РконеÑном иÑоге B бÑÐ´ÐµÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ñдален и Ð¼Ñ Ð¸Ð¼ÐµÐµÐ¼ ÑеР¿Ð¾Ñки C1->A и C2->A. ЧаÑÑо B бÑÐ´ÐµÑ ÑодеÑжаÑÑ Ð±Ð¾Ð»ÑÑое колиÑеÑÑво ÑÑÑаниÑ, и ни C1, ни C2 не ÑмогÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð¸Ñ Ð·Ð°Ð¼ÐµÐ½Ð¸ÑÑ. ÐÑли Ð¼Ñ Ñнова поÑодим пÑоÑеÑÑ Ð¸ Ñоздадим Ð½Ð°Ð±Ð¾Ñ ÑÑовней D, пÑи ÑÑом, однако, более веÑоÑÑно, ÑÑо один из ÑÑовней D поÑÑепенно ÑÐ¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð·Ð°Ð¼ÐµÑÑиÑÑ Ð³Ð¾Ñаздо менÑÑий Ð½Ð°Ð±Ð¾Ñ Ð´Ð°Ð½Ð½ÑÑ , пÑедÑÑавленнÑй C1 и C2. Та же ÑÐ°Ð¼Ð°Ñ Ð¾Ð¿ÑимизаÑÐ¸Ñ Ð±ÑÐ´ÐµÑ ÑабоÑаÑÑ Ð² лÑбой ÑоÑке гÑаÑа и главнÑм ÑезÑлÑÑаÑом ÑÑого ÑвлÑеÑÑÑ Ñо, ÑÑо даже на ÑилÑно загÑÑже нной маÑине Ñ Ð¼Ð½Ð¾Ð¶ÐµÑÑвом поÑождаемÑÑ Ð¿ÑоÑеÑÑов ÑÑеки обÑекÑов VM не ÑаÑÑо бÑваÑÑ Ð³Ð»Ñбже ÑеÑÑÑÑÑ ÑÑовнеР¹. ÐÑо Ñак как Ð´Ð»Ñ Ð¿Ð¾ÑождаÑÑего, Ñак и Ð´Ð»Ñ Ð¿Ð¾Ñожденного пÑоÑеÑÑов, и оÑÑаÑÑÑÑ Ð² Ñиле как в ÑлÑÑае, когда веÑвление Ð´ÐµÐ»Ð°ÐµÑ ÑодиÑелÑ, Ñак и в ÑлÑÑае, когда веÑвление вÑполнÑÐµÑ Ð¿Ð¾Ñомок. -ÐÑоблема Ñ Ð¼ÐµÑÑвой ÑÑÑаниÑей вÑе еÑе Ð¸Ð¼ÐµÐµÑ Ð¼ÐµÑÑо, когда C1 или C2 не полноÑÑÑÑ Ð¿ÐµÑекÑÑваÑÑ B. Ðз-за дÑÑÐ³Ð¸Ñ Ð¿ÑименÑемÑÑ Ð½Ð°Ð¼Ð¸ меÑодов опÑимизаÑии ÑÑÐ¾Ñ ÑлÑÑай не пÑедÑÑавлÑÐµÑ Ð±Ð¾Ð»ÑÑой пÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ð¸ Ð¼Ñ Ð¿ÑоÑÑо позволÑем Ñаким ÑÑÑаниÑам ÑÑÑеÑÑвоваÑÑ. ÐÑли ÑиÑÑема иÑпÑÑÑÐ²Ð°ÐµÑ Ð½ÐµÑ Ð²Ð°ÑÐºÑ Ð¾Ð¿ÐµÑаÑивной памÑÑи, она вÑполнÑÐµÑ Ð¸Ñ Ð²ÑгÑÑÐ·ÐºÑ Ð² облаÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки, ÑÑо Ð·Ð°Ð½Ð¸Ð¼Ð°ÐµÑ Ð½ÐµÐºÐ¾ÑоÑое пÑоÑÑÑанÑÑво в облаÑÑи подкаÑки, но ÑÑо вÑе. +ÐÑоблема Ñ Ð¼ÐµÑÑвой ÑÑÑаниÑей вÑе еÑÑ Ð¸Ð¼ÐµÐµÑ Ð¼ÐµÑÑо, когда C1 или C2 не полноÑÑÑÑ Ð¿ÐµÑекÑÑваÑÑ B. Ðз-за дÑÑÐ³Ð¸Ñ Ð¿ÑименÑемÑÑ Ð½Ð°Ð¼Ð¸ меÑодов опÑимизаÑии ÑÑÐ¾Ñ ÑлÑÑай не пÑедÑÑавлÑÐµÑ Ð±Ð¾Ð»ÑÑой пÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ð¸ Ð¼Ñ Ð¿ÑоÑÑо позволÑем Ñаким ÑÑÑаниÑам ÑÑÑеÑÑвоваÑÑ. ÐÑли ÑиÑÑема иÑпÑÑÑÐ²Ð°ÐµÑ Ð½ÐµÑ Ð²Ð°ÑÐºÑ Ð¾Ð¿ÐµÑаÑивной памÑÑи, она вÑполнÑÐµÑ Ð¸Ñ Ð²ÑгÑÑÐ·ÐºÑ Ð² облаÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки, ÑÑо Ð·Ð°Ð½Ð¸Ð¼Ð°ÐµÑ Ð½ÐµÐºÐ¾ÑоÑое пÑоÑÑÑанÑÑво в облаÑÑи подкаÑки, но ÑÑо вÑе. ÐÑеимÑÑеÑÑво модели VM-обÑекÑов заклÑÑаеÑÑÑ Ð² оÑÐµÐ½Ñ Ð±ÑÑÑÑом вÑполнении ÑÑнкÑии `fork()`, Ñак как пÑи ÑÑом не вÑполнÑеÑÑÑ ÑеалÑного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ . ÐинÑÑом ÑÑого Ð¿Ð¾Ð´Ñ Ð¾Ð´Ð° ÑвлÑеÑÑÑ Ñо, ÑÑо Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе поÑÑÑоиÑÑ ÑÑавниÑелÑно ÑложнÑÑ Ð¸ÐµÑаÑÑ Ð¸Ñ Ð¾Ð±ÑекÑов VM, коÑоÑÐ°Ñ Ð½ÐµÑколÑко замедлÑÐµÑ Ð¾Ð±ÑабоÑÐºÑ ÑиÑÑаÑий оÑÑÑÑÑÑÐ²Ð¸Ñ ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи, и к ÑÐ¾Ð¼Ñ Ð¶Ðµ ÑÑаÑиÑÑÑ Ð¿Ð°Ð¼ÑÑÑ Ð½Ð° ÑпÑавление ÑÑÑÑкÑÑÑами обÑекÑов VM. ÐÑÐ¸ÐµÐ¼Ñ Ð¾Ð¿ÑимизаÑии, пÑименÑемÑе во FreeBSD, позво лÑÑÑ ÑнизиÑÑ Ð·Ð½Ð°ÑимоÑÑÑ ÑÑÐ¸Ñ Ð¿Ñоблем до ÑÑепени, когда Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ без оÑобÑÑ Ð¿Ð¾ÑеÑÑ Ð¸Ð³Ð½Ð¾ÑиÑоваÑÑ. [[swap-layers]] == УÑовни облаÑÑи подкаÑки -СÑÑаниÑÑ Ñ ÑобÑÑвеннÑми даннÑми пеÑвонаÑалÑно ÑвлÑÑÑÑÑ ÑÑÑаниÑами, копиÑÑемÑми пÑи запиÑи или заполнÑемÑми нÑлÑми. Ðогда вÑполнÑеÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ðµ, и, ÑооÑвеÑÑÑвенно, копиÑование, наÑалÑное Ñ ÑанилиÑе обÑекÑа (обÑÑно Ñайл) не Ð¼Ð¾Ð¶ÐµÑ Ð±Ð¾Ð»ÑÑе иÑполÑзоваÑÑÑÑ Ð´Ð»Ñ Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸ ÑÑÑаниÑÑ, когда VM-ÑиÑÑеме нÑжно иÑполÑзоваÑÑ ÐµÐµ повÑоÑно Ð´Ð»Ñ Ð´ÑÑÐ³Ð¸Ñ Ñелей. Ð ÑÑÐ¾Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð½Ð° помоÑÑ Ð¿ÑÐ¸Ñ Ð¾Ð´Ð¸Ñ Ð¾Ð±Ð»Ð°ÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки. ÐблаÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки вÑделÑеÑÑÑ Ð´Ð»Ñ Ð¾Ñгани заÑии Ñ ÑанилиÑа памÑÑи, коÑоÑÐ°Ñ Ð¸Ð½Ð°Ñе не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð´Ð¾ÑÑÑпна. FreeBSD ÑÐ¾Ð·Ð´Ð°ÐµÑ ÑÑÑÑкÑÑÑÑ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´ÐºÐ°ÑÐ ºÐ¾Ð¹ Ð´Ð»Ñ Ð¾Ð±ÑекÑа VM, ÑолÑко когда ÑÑо дейÑÑвиÑелÑно нÑжно. Ðднако ÑÑÑÑкÑÑÑа ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´ÐºÐ°Ñкой иÑÑоÑиÑеÑки имела некоÑоÑÑе пÑоблемÑ: +СÑÑаниÑÑ Ñ ÑобÑÑвеннÑми даннÑми пеÑвонаÑалÑно ÑвлÑÑÑÑÑ ÑÑÑаниÑами, копиÑÑемÑми пÑи запиÑи или заполнÑемÑми нÑлÑми. Ðогда вÑполнÑеÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ðµ, и, ÑооÑвеÑÑÑвенно, копиÑование, наÑалÑное Ñ ÑанилиÑе обÑекÑа (обÑÑно Ñайл) не Ð¼Ð¾Ð¶ÐµÑ Ð±Ð¾Ð»ÑÑе иÑполÑзоваÑÑÑÑ Ð´Ð»Ñ Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸ ÑÑÑаниÑÑ, когда VM-ÑиÑÑеме нÑжно иÑполÑзоваÑÑ ÐµÑ Ð¿Ð¾Ð²ÑоÑно Ð´Ð»Ñ Ð´ÑÑÐ³Ð¸Ñ Ñелей. Ð ÑÑÐ¾Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð½Ð° помоÑÑ Ð¿ÑÐ¸Ñ Ð¾Ð´Ð¸Ñ Ð¾Ð±Ð»Ð°ÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки. ÐблаÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки вÑделÑеÑÑÑ Ð´Ð»Ñ Ð¾Ñгани заÑии Ñ ÑанилиÑа памÑÑи, коÑоÑÐ°Ñ Ð¸Ð½Ð°Ñе не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð´Ð¾ÑÑÑпна. FreeBSD ÑÐ¾Ð·Ð´Ð°ÐµÑ ÑÑÑÑкÑÑÑÑ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´ÐºÐ°ÑÐ ºÐ¾Ð¹ Ð´Ð»Ñ Ð¾Ð±ÑекÑа VM, ÑолÑко когда ÑÑо дейÑÑвиÑелÑно нÑжно. Ðднако ÑÑÑÑкÑÑÑа ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´ÐºÐ°Ñкой иÑÑоÑиÑеÑки имела некоÑоÑÑе пÑоблемÑ: -* Ðо FreeBSD 3.X в ÑÑÑÑкÑÑÑе ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ð±Ð»Ð°ÑÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки пÑедваÑиÑелÑно вÑделÑеÑÑÑ Ð¼Ð°ÑÑив, коÑоÑÑй пÑедÑÑавлÑÐµÑ ÑелÑй обÑекÑ, ÑÑебÑÑÑий Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð² облаÑÑи подкаÑки-даже еÑли ÑолÑко неÑколÑко ÑÑÑÐ°Ð½Ð¸Ñ ÑÑого обÑекÑа Ñ ÑанÑÑÑÑ Ð² облаÑÑи подкаÑки. ÐÑо ÑÐ¾Ð·Ð´Ð°ÐµÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ ÑÑагменÑаÑии памÑÑи ÑдÑа в ÑлÑÑае, когда в памÑÑÑ Ð¾ÑобÑажаÑÑÑÑ Ð±Ð¾Ð»ÑÑие обÑекÑÑ Ð¸Ð»Ð¸ когда веÑвÑÑÑÑ Ð¿ÑоÑеÑÑÑ, занимаÑÑие болÑÑой обÑем памÑÑи пÑи ÑабоÑе (RSS). -* Также Ð´Ð»Ñ Ð¾ÑÑÐ»ÐµÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи подкаÑки в памÑÑи ÑдÑа поддеÑживаеÑÑÑ "ÑпиÑок дÑÑ", и он Ñакже неÑколÑко ÑÑагменÑиÑован. Так как "ÑпиÑок дÑÑ" ÑвлÑеÑÑÑ Ð¿Ð¾ÑледоваÑелÑнÑм ÑпиÑком, Ñо пÑоизводиÑелÑноÑÑÑ Ð¿Ñи ÑаÑпÑеделении и вÑÑвобождении памÑÑи в облаÑÑи подкаÑки неопÑималÑно и ее ÑложноÑÑÑ Ð·Ð°Ð²Ð¸ÑÐ¸Ñ Ð¾Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑва ÑÑÑÐ°Ð½Ð¸Ñ ÐºÐ°Ðº O(n). +* Ðо FreeBSD 3.X в ÑÑÑÑкÑÑÑе ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ð±Ð»Ð°ÑÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки пÑедваÑиÑелÑно вÑделÑеÑÑÑ Ð¼Ð°ÑÑив, коÑоÑÑй пÑедÑÑавлÑÐµÑ ÑелÑй обÑекÑ, ÑÑебÑÑÑий Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð² облаÑÑи подкаÑки-даже еÑли ÑолÑко неÑколÑко ÑÑÑÐ°Ð½Ð¸Ñ ÑÑого обÑекÑа Ñ ÑанÑÑÑÑ Ð² облаÑÑи подкаÑки. ÐÑо ÑÐ¾Ð·Ð´Ð°ÐµÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ ÑÑагменÑаÑии памÑÑи ÑдÑа в ÑлÑÑае, когда в памÑÑÑ Ð¾ÑобÑажаÑÑÑÑ Ð±Ð¾Ð»ÑÑие обÑекÑÑ Ð¸Ð»Ð¸ когда веÑвÑÑÑÑ Ð¿ÑоÑеÑÑÑ, занимаÑÑие болÑÑой обÑÑм памÑÑи пÑи ÑабоÑе (RSS). +* Также Ð´Ð»Ñ Ð¾ÑÑÐ»ÐµÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи подкаÑки в памÑÑи ÑдÑа поддеÑживаеÑÑÑ "ÑпиÑок дÑÑ", и он Ñакже неÑколÑко ÑÑагменÑиÑован. Так как "ÑпиÑок дÑÑ" ÑвлÑеÑÑÑ Ð¿Ð¾ÑледоваÑелÑнÑм ÑпиÑком, Ñо пÑоизводиÑелÑноÑÑÑ Ð¿Ñи ÑаÑпÑеделении и вÑÑвобождении памÑÑи в облаÑÑи подкаÑки неопÑималÑно и ÐµÑ ÑложноÑÑÑ Ð·Ð°Ð²Ð¸ÑÐ¸Ñ Ð¾Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑва ÑÑÑÐ°Ð½Ð¸Ñ ÐºÐ°Ðº O(n). * Также в пÑоÑеÑÑе вÑÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи в облаÑÑи подкаÑки ÑÑебÑеÑÑÑ Ð²Ñделение памÑÑи в ÑдÑе, и ÑÑо пÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº пÑоблемам блокиÑовки пÑи недоÑÑаÑке памÑÑи. -* ÐÑоблема еÑе более обоÑÑÑÑеÑÑÑ Ð¸Ð·-за дÑÑ, ÑоздаваемÑÑ Ð¿Ð¾ ÑеÑедÑÑÑемÑÑÑ Ð°Ð»Ð³Ð¾ÑиÑмÑ. +* ÐÑоблема еÑÑ Ð±Ð¾Ð»ÐµÐµ обоÑÑÑÑеÑÑÑ Ð¸Ð·-за дÑÑ, ÑоздаваемÑÑ Ð¿Ð¾ ÑеÑедÑÑÑемÑÑÑ Ð°Ð»Ð³Ð¾ÑиÑмÑ. * ÐÑоме Ñого, ÑпиÑок ÑаÑпÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð±Ð»Ð¾ÐºÐ¾Ð² в облаÑÑи подкаÑки легко оказÑваеÑÑÑ ÑÑагменÑиÑованнÑм, ÑÑо пÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº ÑаÑпÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð½ÐµÐ¿Ð¾ÑледоваÑелÑнÑÑ Ð¾Ð±Ð»Ð°ÑÑей. * ÐамÑÑÑ ÑдÑа Ñакже должна ÑаÑпÑеделÑÑÑÑÑ Ð¿Ð¾ Ñ Ð¾Ð´Ñ ÑабоÑÑ Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ ÑÑÑÑкÑÑÑ Ð¿Ð¾ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ð±Ð»Ð°ÑÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки пÑи вÑгÑÑзке ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи в ÑÑÑ Ð¾Ð±Ð»Ð°ÑÑÑ. ÐÑевидно, ÑÑо меÑÑ Ð´Ð»Ñ ÑÑовеÑÑенÑÑвований пÑедоÑÑаÑоÑно. Ðо FreeBSD 4.X подÑиÑÑема ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ð±Ð»Ð°ÑÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки бÑла полноÑÑÑÑ Ð¿ÐµÑепиÑана мноÑ: -* СÑÑÑкÑÑÑÑ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ð±Ð»Ð°ÑÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки ÑаÑпÑеделÑÑÑÑÑ Ð¿Ñи помоÑи Ñ ÑÑ-ÑаблиÑÑ, а не ÑеÑез линейнÑй маÑÑив, ÑÑо Ð´Ð°ÐµÑ Ð¸Ð¼ ÑикÑиÑованнÑй ÑÐ°Ð·Ð¼ÐµÑ Ð¿Ñи ÑаÑпÑеделении и ÑабоÑÑ Ñ Ð³Ð¾Ñаздо менÑÑими ÑÑÑÑкÑÑÑами. +* СÑÑÑкÑÑÑÑ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ð±Ð»Ð°ÑÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки ÑаÑпÑеделÑÑÑÑÑ Ð¿Ñи помоÑи Ñ ÑÑ-ÑаблиÑÑ, а не ÑеÑез линейнÑй маÑÑив, ÑÑо даÑÑ Ð¸Ð¼ ÑикÑиÑованнÑй ÑÐ°Ð·Ð¼ÐµÑ Ð¿Ñи ÑаÑпÑеделении и ÑабоÑÑ Ñ Ð³Ð¾Ñаздо менÑÑими ÑÑÑÑкÑÑÑами. * ÐмеÑÑо Ñого, ÑÑÐ¾Ð±Ñ Ð¸ÑполÑзоваÑÑ Ð¾Ð´Ð½Ð¾Ð½Ð°Ð¿ÑавленнÑй ÑвÑзнÑй ÑпиÑок Ð´Ð»Ñ Ð¾ÑÑÐ»ÐµÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð²ÑÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿ÑоÑÑÑанÑÑва в облаÑÑи подкаÑки, ÑепеÑÑ Ð¸ÑполÑзÑеÑÑÑ Ð¿Ð¾Ð±Ð¸ÑÐ¾Ð²Ð°Ñ ÐºÐ°ÑÑа блоков облаÑÑи подкаÑки, вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð½Ð°Ñ Ð² оÑновном в виде дÑевовидной ÑÑÑÑкÑÑÑÑ Ñ Ð¸Ð½ÑоÑмаÑией о Ñвободном пÑоÑÑÑанÑÑве, Ð½Ð°Ñ Ð¾Ð´ÑÑейÑÑ Ð² ÑÐ·Ð»Ð°Ñ ÑÑÑÑкÑÑÑ. ÐÑо пÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº ÑомÑ, ÑÑо вÑделение и вÑÑвобождение памÑÑи в облаÑÑи подкаÑки ÑÑановиÑÑÑ Ð¾Ð¿ÐµÑаÑией ÑложноÑÑи O(1). -* ÐÑе деÑево Ñакже ÑаÑпÑеделÑеÑÑÑ Ð·Ð°Ñанее Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð¸Ð·Ð±ÐµÐ¶Ð°ÑÑ ÑаÑпÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи ÑдÑа во вÑÐµÐ¼Ñ Ð¾Ð¿ÐµÑаÑий Ñ Ð¾Ð±Ð»Ð°ÑÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки пÑи кÑиÑиÑеÑки малом обÑеме Ñвободной памÑÑи. РконÑе конÑов, ÑиÑÑема обÑаÑаеÑÑÑ Ðº облаÑÑи подкаÑки пÑи Ð½ÐµÑ Ð²Ð°Ñке памÑÑи, Ñак ÑÑо Ð¼Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸Ð·Ð±ÐµÐ¶Ð°ÑÑ ÑаÑпÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи ÑдÑа в Ñакие моменÑÑ Ð´Ð»Ñ Ð¸Ð·Ð±ÐµÐ¶Ð°Ð½Ð¸Ñ Ð¿Ð¾ÑенÑиалÑнÑÑ Ð±Ð»Ð¾ÐºÐ¸Ñовок. +* ÐÑе деÑево Ñакже ÑаÑпÑеделÑеÑÑÑ Ð·Ð°Ñанее Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð¸Ð·Ð±ÐµÐ¶Ð°ÑÑ ÑаÑпÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи ÑдÑа во вÑÐµÐ¼Ñ Ð¾Ð¿ÐµÑаÑий Ñ Ð¾Ð±Ð»Ð°ÑÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки пÑи кÑиÑиÑеÑки малом обÑÑме Ñвободной памÑÑи. РконÑе конÑов, ÑиÑÑема обÑаÑаеÑÑÑ Ðº облаÑÑи подкаÑки пÑи Ð½ÐµÑ Ð²Ð°Ñке памÑÑи, Ñак ÑÑо Ð¼Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸Ð·Ð±ÐµÐ¶Ð°ÑÑ ÑаÑпÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи ÑдÑа в Ñакие моменÑÑ Ð´Ð»Ñ Ð¸Ð·Ð±ÐµÐ¶Ð°Ð½Ð¸Ñ Ð¿Ð¾ÑенÑиалÑнÑÑ Ð±Ð»Ð¾ÐºÐ¸Ñовок. * ÐÐ»Ñ ÑменÑÑÐµÐ½Ð¸Ñ ÑÑагменÑаÑии деÑево Ð¼Ð¾Ð¶ÐµÑ ÑаÑпÑеделÑÑÑ Ð±Ð¾Ð»ÑÑой поÑледоваÑелÑнÑй кÑÑок за Ñаз, пÑопÑÑÐºÐ°Ñ Ð¼ÐµÐ½ÑÑие ÑÑагменÑиÑованнÑе облаÑÑи. Я не Ñделал поÑледний Ñаг к Ð·Ð°Ð²ÐµÐ´ÐµÐ½Ð¸Ñ "ÑказаÑÐµÐ»Ñ Ð½Ð° ÑаÑпÑеделение", коÑоÑÑй бÑÐ´ÐµÑ Ð¿ÐµÑедвигаÑÑÑÑ Ð¿Ð¾ ÑÑаÑÑÐºÑ Ð¾Ð±Ð»Ð°ÑÑи подкаÑки пÑи вÑделении памÑÑи Ð´Ð»Ñ Ð¾Ð±ÐµÑпеÑÐµÐ½Ð¸Ñ Ð² бÑдÑÑем ÑаÑпÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ð¾ÑледоваÑелÑнÑÑ ÑÑаÑÑков, или по кÑайней меÑе меÑÑÐ¾Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ ÑÑÑлки, но Ñ Ñбежден, ÑÑо ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ñделано. @@ -135,25 +135,25 @@ FreeBSD ÑеÑÐ°ÐµÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ñ Ð³Ð»Ñбиной вложенноÑÑи РлÑбом ÑлÑÑае, Ð±Ð¸Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÑÑаниÑÑ Ð¾ÑиÑаеÑÑÑ, и в некоÑоÑÑй более поздний Ð¼Ð¾Ð¼ÐµÐ½Ñ VM-ÑиÑÑема обÑаÑаеÑÑÑ Ðº ÑÑÑаниÑе Ñнова и обнаÑÑживаеÑ, ÑÑо ÑÑÐ¾Ñ Ð±Ð¸Ñ ÑÑÑановлен. ÐÑо ÑказÑÐ²Ð°ÐµÑ Ð½Ð° Ñо, ÑÑо ÑÑÑаниÑа акÑивно иÑполÑзÑеÑÑÑ. ÐеÑиодиÑеÑки пÑовеÑÑÑ ÑÑÐ¾Ñ Ð±Ð¸Ñ, накапливаеÑÑÑ Ð¸ÑÑоÑÐ¸Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ (в виде ÑÑеÑÑика) ÑизиÑеÑкой ÑÑÑаниÑÑ. Ðогда позже VM-ÑиÑÑеме ÑÑебÑеÑÑÑ Ð²ÑÑвободиÑÑ Ð½ÐµÐºÐ¾ÑоÑÑе ÑÑÑаниÑÑ, пÑовеÑка иÑÑоÑии вÑÑÑÑÐ¿Ð°ÐµÑ ÑказаÑелем Ð ¿Ñи опÑеделении наиболее веÑоÑÑной кандидаÑÑÑÑ Ð´Ð»Ñ Ð¿Ð¾Ð²ÑоÑного иÑполÑзованиÑ. -ÐÐ»Ñ ÑÐµÑ Ð¿Ð»Ð°ÑÑоÑм, ÑÑо не имеÑÑ ÑÑой возможноÑÑи, ÑиÑÑема ÑмÑлиÑÑÐµÑ ÑÑÐ¾Ñ Ð±Ð¸Ñ. Ðна ÑÐ½Ð¸Ð¼Ð°ÐµÑ Ð¾ÑобÑажение или заÑиÑÐ°ÐµÑ ÑÑÑаниÑÑ, ÑÑо пÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº оÑибке доÑÑÑпа к ÑÑÑаниÑе, еÑли к ÑÑÑаниÑе вÑполнÑеÑÑÑ Ð¿Ð¾Ð²ÑоÑное обÑаÑение. ÐÑи возникновении ÑÑой оÑибки ÑиÑÑема пÑоÑÑо помеÑÐ°ÐµÑ ÑÑÑаниÑÑ ÐºÐ°Ðº иÑполÑзÑемÑÑ Ð¸ ÑÐ½Ð¸Ð¼Ð°ÐµÑ Ð·Ð°ÑиÑÑ Ñо ÑÑÑаниÑÑ, Ñак ÑÑо она Ð¼Ð¾Ð¶ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ. ХоÑÑ Ð¸ÑполÑзование Ñакого пÑиема ÑолÑко Ð´Ð»Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÑÑа ниÑÑ Ð²ÐµÑÑма накладно, ÑÑо вÑгоднее, Ñем повÑоÑно иÑполÑзоваÑÑ ÑÑÑаниÑÑ Ð´Ð»Ñ Ð´ÑÑÐ³Ð¸Ñ Ñелей и обнаÑÑжиÑÑ, Ñ Ñо она Ñнова нÑжна пÑоÑеÑÑÑ Ð¸ подгÑÑжаÑÑ ÐµÐµ Ñ Ð´Ð¸Ñка. +ÐÐ»Ñ ÑÐµÑ Ð¿Ð»Ð°ÑÑоÑм, ÑÑо не имеÑÑ ÑÑой возможноÑÑи, ÑиÑÑема ÑмÑлиÑÑÐµÑ ÑÑÐ¾Ñ Ð±Ð¸Ñ. Ðна ÑÐ½Ð¸Ð¼Ð°ÐµÑ Ð¾ÑобÑажение или заÑиÑÐ°ÐµÑ ÑÑÑаниÑÑ, ÑÑо пÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº оÑибке доÑÑÑпа к ÑÑÑаниÑе, еÑли к ÑÑÑаниÑе вÑполнÑеÑÑÑ Ð¿Ð¾Ð²ÑоÑное обÑаÑение. ÐÑи возникновении ÑÑой оÑибки ÑиÑÑема пÑоÑÑо помеÑÐ°ÐµÑ ÑÑÑаниÑÑ ÐºÐ°Ðº иÑполÑзÑемÑÑ Ð¸ ÑÐ½Ð¸Ð¼Ð°ÐµÑ Ð·Ð°ÑиÑÑ Ñо ÑÑÑаниÑÑ, Ñак ÑÑо она Ð¼Ð¾Ð¶ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ. ХоÑÑ Ð¸ÑполÑзование Ñакого пÑиема ÑолÑко Ð´Ð»Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÑÑа ниÑÑ Ð²ÐµÑÑма накладно, ÑÑо вÑгоднее, Ñем повÑоÑно иÑполÑзоваÑÑ ÑÑÑаниÑÑ Ð´Ð»Ñ Ð´ÑÑÐ³Ð¸Ñ Ñелей и обнаÑÑжиÑÑ, Ñ Ñо она Ñнова нÑжна пÑоÑеÑÑÑ Ð¸ подгÑÑжаÑÑ ÐµÑ Ñ Ð´Ð¸Ñка. -FreeBSD иÑполÑзÑÐµÑ Ð½ÐµÑколÑко оÑеÑедей ÑÑÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð²ÑбоÑа ÑÑÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ Ð¿Ð¾Ð²ÑоÑного иÑполÑзованиÑ, а Ñакже Ð´Ð»Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñого, когда же гÑÑзнÑе ÑÑÑаниÑÑ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ ÑбÑоÑÐµÐ½Ñ Ð² Ñ ÑанилиÑе. Так как ÑаблиÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ð²Ð¾ FreeBSD ÑвлÑÑÑÑÑ Ð´Ð¸Ð½Ð°Ð¼Ð¸ÑеÑкими обÑекÑами, пÑакÑиÑеÑки ниÑего не ÑÑÐ¾Ð¸Ñ Ð²ÑÑезаÑÑ ÑÑÑаниÑÑ Ð¸Ð· адÑеÑного пÑоÑÑÑанÑÑва лÑбого иÑполÑзÑÑÑего ее пÑоÑеÑÑа. ÐоÑле Ñого, как Ð¿Ð¾Ð´Ñ Ð¾Ð´ÑÑÐ°Ñ ÑÑÑаниÑа, на оÑнове ÑÑеÑÑика иÑполÑзован иÑ, вÑбÑана, именно ÑÑо и вÑполнÑеÑÑÑ. СиÑÑема должна оÑлиÑаÑÑ Ð¼ÐµÐ¶Ð´Ñ ÑиÑÑÑми ÑÑÑаниÑами, коÑоÑÑе ÑеоÑÐµÑ Ð¸ÑеÑки могÑÑ Ð±ÑÑÑ Ð²ÑÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ñ Ð² лÑбое вÑемÑ, и гÑÑзнÑми ÑÑÑаниÑами, коÑоÑÑе ÑнаÑала Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ Ð¿ÐµÑепиÑÐ°Ð½Ñ Ð² Ñ ÑанилиÑе пеÑед Ñем, как Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑ Ð¿Ð¾Ð²ÑоÑно. ÐоÑле Ð½Ð°Ñ Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´Ñ Ð¾Ð´ÑÑей ÑÑÑаниÑÑ Ð¾Ð½Ð° пеÑемеÑаеÑÑÑ Ð² неакÑивнÑÑ Ð¾ÑеÑедÑ, еÑли она ÑвлÑеÑÑÑ Ð³ÑÑзной, или в оÑеÑÐµÐ´Ñ ÐºÑÑа, еÑли она ÑиÑÑаÑ. ÐÑделÑнÑй алгоÑиÑм, оÑновÑваÑÑийÑÑ Ð½Ð° оÑноÑении колиÑеÑÑва гÑÑзнÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ðº ÑиÑÑÑм, опÑеделÑеÑ, когда гÑÑзнÑе ÑÑÑаниÑÑ Ð² Ð ½ÐµÐ°ÐºÑивной оÑеÑеди Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ ÑбÑоÑÐµÐ½Ñ Ð½Ð° диÑк. Ðогда ÑÑо вÑполниÑÑÑ, ÑбÑоÑеннÑе ÑÑÑаниÑÑ Ð¿ÐµÑемеÑаÑÑÑ Ñ Ð¸Ð· неакÑивной оÑеÑеди в оÑеÑÐµÐ´Ñ ÐºÑÑа. Ð ÑÑÐ¾Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñ ÑÑÑаниÑÑ Ð² оÑеÑеди кÑÑа могÑÑ Ð±ÑÑÑ Ð¿Ð¾Ð²ÑоÑно акÑивизиÑÐ¾Ð²Ð°Ð½Ñ VM Ñо ÑÑавниÑелÑно малÑми накладнÑми ÑаÑÑ Ð¾Ð´Ð°Ð¼Ð¸. Ðднако ÑÑÑаниÑÑ Ð² оÑеÑеди кÑÑа пÑедполагаеÑÑÑ "вÑÑвобождаÑÑ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾" и повÑоÑно иÑполÑзоваÑÑ Ð² LRU-поÑÑдке (менÑÑе вÑего иÑполÑзÑемÑй), когда ÑиÑÑеме поÑÑебÑеÑÑÑ Ð²Ñделение дополниÑелÑной памÑÑи. +FreeBSD иÑполÑзÑÐµÑ Ð½ÐµÑколÑко оÑеÑедей ÑÑÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð²ÑбоÑа ÑÑÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ Ð¿Ð¾Ð²ÑоÑного иÑполÑзованиÑ, а Ñакже Ð´Ð»Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñого, когда же гÑÑзнÑе ÑÑÑаниÑÑ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ ÑбÑоÑÐµÐ½Ñ Ð² Ñ ÑанилиÑе. Так как ÑаблиÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ð²Ð¾ FreeBSD ÑвлÑÑÑÑÑ Ð´Ð¸Ð½Ð°Ð¼Ð¸ÑеÑкими обÑекÑами, пÑакÑиÑеÑки ниÑего не ÑÑÐ¾Ð¸Ñ Ð²ÑÑезаÑÑ ÑÑÑаниÑÑ Ð¸Ð· адÑеÑного пÑоÑÑÑанÑÑва лÑбого иÑполÑзÑÑÑего ÐµÑ Ð¿ÑоÑеÑÑа. ÐоÑле Ñого, как Ð¿Ð¾Ð´Ñ Ð¾Ð´ÑÑÐ°Ñ ÑÑÑаниÑа, на оÑнове ÑÑеÑÑика иÑполÑзован иÑ, вÑбÑана, именно ÑÑо и вÑполнÑеÑÑÑ. СиÑÑема должна оÑлиÑаÑÑ Ð¼ÐµÐ¶Ð´Ñ ÑиÑÑÑми ÑÑÑаниÑами, коÑоÑÑе ÑеоÑÐµÑ Ð¸ÑеÑки могÑÑ Ð±ÑÑÑ Ð²ÑÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ñ Ð² лÑбое вÑемÑ, и гÑÑзнÑми ÑÑÑаниÑами, коÑоÑÑе ÑнаÑала Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ Ð¿ÐµÑепиÑÐ°Ð½Ñ Ð² Ñ ÑанилиÑе пеÑед Ñем, как Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑ Ð¿Ð¾Ð²ÑоÑно. ÐоÑле Ð½Ð°Ñ Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´Ñ Ð¾Ð´ÑÑей ÑÑÑаниÑÑ Ð¾Ð½Ð° пеÑемеÑаеÑÑÑ Ð² неакÑивнÑÑ Ð¾ÑеÑедÑ, еÑли она ÑвлÑеÑÑÑ Ð³ÑÑзной, или в оÑеÑÐµÐ´Ñ ÐºÑÑа, еÑли она ÑиÑÑаÑ. ÐÑделÑнÑй алгоÑиÑм, оÑновÑваÑÑийÑÑ Ð½Ð° оÑноÑении колиÑеÑÑва гÑÑзнÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ðº ÑиÑÑÑм, опÑеделÑеÑ, когда гÑÑзнÑе ÑÑÑаниÑÑ Ð² Ð ½ÐµÐ°ÐºÑивной оÑеÑеди Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ ÑбÑоÑÐµÐ½Ñ Ð½Ð° диÑк. Ðогда ÑÑо вÑполниÑÑÑ, ÑбÑоÑеннÑе ÑÑÑаниÑÑ Ð¿ÐµÑемеÑаÑÑÑ Ñ Ð¸Ð· неакÑивной оÑеÑеди в оÑеÑÐµÐ´Ñ ÐºÑÑа. Ð ÑÑÐ¾Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñ ÑÑÑаниÑÑ Ð² оÑеÑеди кÑÑа могÑÑ Ð±ÑÑÑ Ð¿Ð¾Ð²ÑоÑно акÑивизиÑÐ¾Ð²Ð°Ð½Ñ VM Ñо ÑÑавниÑелÑно малÑми накладнÑми ÑаÑÑ Ð¾Ð´Ð°Ð¼Ð¸. Ðднако ÑÑÑаниÑÑ Ð² оÑеÑеди кÑÑа пÑедполагаеÑÑÑ "вÑÑвобождаÑÑ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾" и повÑоÑно иÑполÑзоваÑÑ Ð² LRU-поÑÑдке (менÑÑе вÑего иÑполÑзÑемÑй), когда ÑиÑÑеме поÑÑебÑеÑÑÑ Ð²Ñделение дополниÑелÑной памÑÑи. СÑÐ¾Ð¸Ñ Ð¾ÑмеÑиÑÑ, ÑÑо во FreeBSD VM-ÑиÑÑема пÑÑаеÑÑÑ ÑазделиÑÑ ÑиÑÑÑе и гÑÑзнÑе ÑÑÑаниÑÑ Ð²Ð¾ избежание ÑÑоÑной Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи в ненÑжнÑÑ ÑбÑоÑÐ°Ñ Ð³ÑÑзнÑÑ ÑÑÑÐ°Ð½Ð¸Ñ (ÑÑо оÑÑажаеÑÑÑ Ð½Ð° пÑопÑÑкной ÑпоÑобноÑÑи ввода/вÑвода) и не пеÑемеÑÐ°ÐµÑ Ð±ÐµÑпÑиÑинно ÑÑÑаниÑÑ Ð¼ÐµÐ¶Ð´Ñ ÑазнÑми оÑеÑедÑми, когда подÑиÑÑема ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð°Ð¼ÑÑÑÑ Ð½Ðµ иÑпÑÑÑÐ²Ð°ÐµÑ Ð½ÐµÑ Ð²Ð°ÑÐºÑ ÑеÑÑÑÑов. ÐÐ¾Ñ Ð¿Ð¾ÑÐµÐ¼Ñ Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе видеÑÑ, ÑÑо пÑи вÑполнении ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ `systat -vm` в некоÑоÑÑÑ ÑиÑÑÐµÐ¼Ð°Ñ Ð·Ð½Ð°Ñение ÑÑеÑÑика оÑеÑеди кÑÑа мало, а ÑÑеÑÑик акÑивной оÑеÑеди болÑÑой. ÐÑи повÑÑении нагÑÑзки на VM-ÑиÑÑÐµÐ¼Ñ Ð¾Ð½Ð ° пÑÐ¸Ð»Ð°Ð³Ð°ÐµÑ Ð±Ð¾Ð»ÑÑие ÑÑÐ¸Ð»Ð¸Ñ Ð½Ð° поддеÑÐ¶ÐºÑ ÑазлиÑнÑÑ Ð¾ÑеÑедей ÑÑÑÐ°Ð½Ð¸Ñ Ð² ÑооÑноÑениÑÑ , коÑоÑÑе ÑвлÑÑÑÑÑ Ð½Ð°Ð¸Ð±Ð¾Ð»ÐµÐµ ÑÑÑекÑивнÑми. -Ðодами Ñ Ð¾Ð´Ð¸Ð»Ð¸ ÑовÑеменнÑе легендÑ, ÑÑо Linux вÑполнÑÐµÑ ÑабоÑÑ Ð¿Ð¾ пÑедоÑвÑаÑÐµÐ½Ð¸Ñ Ð²ÑгÑÑзки на диÑк лÑÑÑе, Ñем FreeBSD, но ÑÑо не Ñак. Ðа Ñамом деле FreeBSD ÑÑаÑаеÑÑÑ ÑбÑоÑиÑÑ Ð½Ð° диÑк неиÑполÑзÑемÑе ÑÑÑаниÑÑ Ð´Ð»Ñ Ð¾ÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¼ÐµÑÑа под диÑковÑй кÑÑ, когда как Linux Ñ ÑÐ°Ð½Ð¸Ñ Ð½ÐµÐ¸ÑполÑзÑемÑе ÑÑÑаниÑÑ Ð² памÑÑи и оÑÑавлÑÐµÑ Ð¿Ð¾Ð´ кÑÑ Ð¸ ÑÑÑаниÑÑ Ð¿ÑоÑеÑÑов менÑÑе памÑÑи. Я не знаÑ, оÑÑаеÑÑÑ Ð»Ð¸ ÑÑо пÑавдой на ÑегоднÑÑний денÑ. +Ðодами Ñ Ð¾Ð´Ð¸Ð»Ð¸ ÑовÑеменнÑе легендÑ, ÑÑо Linux вÑполнÑÐµÑ ÑабоÑÑ Ð¿Ð¾ пÑедоÑвÑаÑÐµÐ½Ð¸Ñ Ð²ÑгÑÑзки на диÑк лÑÑÑе, Ñем FreeBSD, но ÑÑо не Ñак. Ðа Ñамом деле FreeBSD ÑÑаÑаеÑÑÑ ÑбÑоÑиÑÑ Ð½Ð° диÑк неиÑполÑзÑемÑе ÑÑÑаниÑÑ Ð´Ð»Ñ Ð¾ÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¼ÐµÑÑа под диÑковÑй кÑÑ, когда как Linux Ñ ÑÐ°Ð½Ð¸Ñ Ð½ÐµÐ¸ÑполÑзÑемÑе ÑÑÑаниÑÑ Ð² памÑÑи и оÑÑавлÑÐµÑ Ð¿Ð¾Ð´ кÑÑ Ð¸ ÑÑÑаниÑÑ Ð¿ÑоÑеÑÑов менÑÑе памÑÑи. Я не знаÑ, оÑÑаÑÑÑÑ Ð»Ð¸ ÑÑо пÑавдой на ÑегоднÑÑний денÑ. [[prefault-optimizations]] == ÐпÑимизаÑÐ¸Ñ Ð¾Ñибок доÑÑÑпа к ÑÑÑаниÑам и Ð¸Ñ Ð¾Ð±Ð½ÑÐ»ÐµÐ½Ð¸Ñ -ÐолагаÑ, ÑÑо оÑибка доÑÑÑпа к ÑÑÑаниÑе памÑÑи в VM не ÑвлÑеÑÑÑ Ð¾Ð¿ÐµÑаÑией Ñ Ð±Ð¾Ð»ÑÑими накладнÑми ÑаÑÑ Ð¾Ð´Ð°Ð¼Ð¸, еÑли ÑÑÑаниÑа Ñже Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð² оÑновной памÑÑи и Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÑоÑÑо оÑобÑажена в адÑеÑное пÑоÑÑÑанÑÑво пÑоÑеÑÑа, Ð¼Ð¾Ð¶ÐµÑ Ð¾ÐºÐ°Ð·Ð°ÑÑÑÑ, ÑÑо ÑÑо ÑÑÐ°Ð½ÐµÑ Ð²ÐµÑÑма накладно, еÑли Ð¸Ñ Ð±ÑÐ´ÐµÑ Ð¾ÐºÐ°Ð·ÑваÑÑÑÑ ÑегÑлÑÑно много. ХоÑоÑим пÑимеÑом ÑÑой ÑиÑÑаÑии ÑвлÑеÑÑÑ Ð·Ð°Ð¿ÑÑк ÑÐ°ÐºÐ¸Ñ Ð¿ÑогÑамм, как man:ls[1] или man:ps[1], Ñнова и Ñнова. ÐÑли бинаÑнÑй Ñайл пÑогÑÐ°Ð¼Ð¼Ñ Ð¾ ÑобÑажен в памÑÑÑ, но не оÑобÑажен в ÑаблиÑÑ ÑÑÑаниÑ, Ñо вÑе ÑÑÑаниÑÑ, к коÑоÑÑм обÑаÑалаÑÑ Ð¿ÑогÑамма, оРºÐ°Ð¶ÑÑÑÑ Ð½ÐµÐ´Ð¾ÑÑÑпнÑми пÑи каждом запÑÑке пÑогÑаммÑ. ÐÑо не Ñак Ñж Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾, еÑли ÑÑи ÑÑÑаниÑÑ Ñже пÑиÑÑÑÑÑвÑÑÑ Ð² кÑÑе VM, Ñак ÑÑо FreeBSD бÑÐ´ÐµÑ Ð¿ÑÑаÑÑÑÑ Ð²Ð¾ÑÑÑанавливаÑÑ ÑаблиÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ð¿ÑоÑеÑÑа из ÑÐµÑ ÑÑÑаниÑ, ÑÑо Ñже ÑаÑполагаÑÑÑÑ Ð² VM-кÑÑе. Ðднако во FreeBSD пока не вÑполнÑеÑÑÑ Ð¿ÑедваÑиÑелÑное копиÑование пÑи запиÑи опÑеделеннÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ñи вÑполнении вÑзова exec. ÐапÑимеÑ, еÑли Ð²Ñ Ð·Ð°Ð¿ÑÑкаеÑе пÑогÑÐ°Ð¼Ð¼Ñ man:ls[1] одновÑеменно Ñ ÑабоÑаÑÑей `vmstat 1`, Ñо замеÑиÑе, ÑÑо она вÑегда вÑÐ´Ð°ÐµÑ Ð½ÐµÐºÐ¾ÑоÑое колиÑеÑÑво оÑибок доÑÑÑпа к ÑÑÑаниÑам, даже когда Ð²Ñ Ð·Ð°Ð¿ÑÑ ÐºÐ°ÐµÑе ее Ñнова и Ñнова. ÐÑо оÑибки Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð½ÑлÑми, а не оÑибки кода пÑогÑÐ°Ð¼Ð¼Ñ (коÑоÑÑе Ñже бÑли обÑабоÑанÑ). ÐÑедваÑиÑелÑное копиÑование ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ñи вÑполнении вÑзовов exec или fork Ð½Ð°Ñ Ð¾Ð´ÑÑÑÑ Ð² облаÑÑи, ÑÑебÑÑÑей более ÑÑаÑелÑного изÑÑениÑ. +ÐолагаÑ, ÑÑо оÑибка доÑÑÑпа к ÑÑÑаниÑе памÑÑи в VM не ÑвлÑеÑÑÑ Ð¾Ð¿ÐµÑаÑией Ñ Ð±Ð¾Ð»ÑÑими накладнÑми ÑаÑÑ Ð¾Ð´Ð°Ð¼Ð¸, еÑли ÑÑÑаниÑа Ñже Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð² оÑновной памÑÑи и Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÑоÑÑо оÑобÑажена в адÑеÑное пÑоÑÑÑанÑÑво пÑоÑеÑÑа, Ð¼Ð¾Ð¶ÐµÑ Ð¾ÐºÐ°Ð·Ð°ÑÑÑÑ, ÑÑо ÑÑо ÑÑÐ°Ð½ÐµÑ Ð²ÐµÑÑма накладно, еÑли Ð¸Ñ Ð±ÑÐ´ÐµÑ Ð¾ÐºÐ°Ð·ÑваÑÑÑÑ ÑегÑлÑÑно много. ХоÑоÑим пÑимеÑом ÑÑой ÑиÑÑаÑии ÑвлÑеÑÑÑ Ð·Ð°Ð¿ÑÑк ÑÐ°ÐºÐ¸Ñ Ð¿ÑогÑамм, как man:ls[1] или man:ps[1], Ñнова и Ñнова. ÐÑли бинаÑнÑй Ñайл пÑогÑÐ°Ð¼Ð¼Ñ Ð¾ ÑобÑажен в памÑÑÑ, но не оÑобÑажен в ÑаблиÑÑ ÑÑÑаниÑ, Ñо вÑе ÑÑÑаниÑÑ, к коÑоÑÑм обÑаÑалаÑÑ Ð¿ÑогÑамма, оРºÐ°Ð¶ÑÑÑÑ Ð½ÐµÐ´Ð¾ÑÑÑпнÑми пÑи каждом запÑÑке пÑогÑаммÑ. ÐÑо не Ñак Ñж Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾, еÑли ÑÑи ÑÑÑаниÑÑ Ñже пÑиÑÑÑÑÑвÑÑÑ Ð² кÑÑе VM, Ñак ÑÑо FreeBSD бÑÐ´ÐµÑ Ð¿ÑÑаÑÑÑÑ Ð²Ð¾ÑÑÑанавливаÑÑ ÑаблиÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ð¿ÑоÑеÑÑа из ÑÐµÑ ÑÑÑаниÑ, ÑÑо Ñже ÑаÑполагаÑÑÑÑ Ð² VM-кÑÑе. Ðднако во FreeBSD пока не вÑполнÑеÑÑÑ Ð¿ÑедваÑиÑелÑное копиÑование пÑи запиÑи опÑеделÑннÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ñи вÑполнении вÑзова exec. ÐапÑимеÑ, еÑли Ð²Ñ Ð·Ð°Ð¿ÑÑкаеÑе пÑогÑÐ°Ð¼Ð¼Ñ man:ls[1] одновÑеменно Ñ ÑабоÑаÑÑей `vmstat 1`, Ñо замеÑиÑе, ÑÑо она вÑегда вÑÐ´Ð°ÐµÑ Ð½ÐµÐºÐ¾ÑоÑое колиÑеÑÑво оÑибок доÑÑÑпа к ÑÑÑаниÑам, даже когда Ð²Ñ Ð·Ð°Ð¿ÑÑ ÐºÐ°ÐµÑе ÐµÑ Ñнова и Ñнова. ÐÑо оÑибки Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð½ÑлÑми, а не оÑибки кода пÑогÑÐ°Ð¼Ð¼Ñ (коÑоÑÑе Ñже бÑли обÑабоÑанÑ). ÐÑедваÑиÑелÑное копиÑование ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ñи вÑполнении вÑзовов exec или fork Ð½Ð°Ñ Ð¾Ð´ÑÑÑÑ Ð² облаÑÑи, ÑÑебÑÑÑей более ÑÑаÑелÑного изÑÑениÑ. -ÐолÑÑой пÑоÑÐµÐ½Ñ Ð¾Ñибок доÑÑÑпа к ÑÑÑаниÑам, оÑноÑиÑÑÑ Ðº оÑибкам пÑи заполнении нÑлÑми. ÐÑ Ð¼Ð¾Ð¶ÐµÑе обÑÑно видеÑÑ ÑÑо, пÑоÑмаÑÑÐ¸Ð²Ð°Ñ Ð²Ñвод ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ `vmstat -s`. ÐÑо пÑоиÑÑ Ð¾Ð´Ð¸Ñ, когда пÑоÑеÑÑ Ð¾Ð±ÑаÑаеÑÑÑ Ðº ÑÑÑаниÑам в Ñвоей облаÑÑи BSS. ÐблаÑÑÑ BSS пÑедполагаеÑÑÑ Ð¸Ð·Ð½Ð°ÑалÑно заполненной нÑлÑми, но VM-ÑиÑÑема не забоÑиÑÑÑ Ð¾ вÑделении памÑÑи до ÑÐµÑ Ð¿Ð¾Ñ, пока пÑоÑеÑÑ ÑеалÑно к ней не обÑаÑиÑÑÑ. ÐÑи возникновении оÑибки VM-ÑиÑÑема должна не ÑолÑко вÑÐ´ÐµÐ»Ð¸Ñ Ñ Ð½Ð¾Ð²ÑÑ ÑÑÑаниÑÑ, но и заполниÑÑ ÐµÐµ нÑлÑми. ÐÐ»Ñ Ð¾Ð¿ÑимизаÑии опеÑаÑии по Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð½ÑлÑми в ÑиÑÑеме VM иР¼ÐµÐµÑÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð¿ÑедваÑиÑелÑно обнÑлÑÑÑ ÑÑÑаниÑÑ Ð¸ помеÑаÑÑ Ð¸Ñ , и запÑаÑиваÑÑ Ñже обнÑленнÑе ÑÑÑаниÑÑ Ð¿Ñи возникновении оÑибок Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð½ÑлÑми. ÐÑедваÑиÑелÑное заполнение нÑлÑми пÑоиÑÑ Ð¾Ð´Ð¸Ñ, когда CPU пÑоÑÑаиваеÑ, однако колиÑеÑÑво ÑÑÑаниÑ, коÑоÑÑе ÑиÑÑема заÑанее заполнÑÐµÑ Ð½ÑлÑми, огÑаниÑено, Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð½Ðµ пеÑеполниÑÑ ÐºÑÑи памÑÑи. ÐÑо пÑекÑаÑнÑй пÑÐ¸Ð¼ÐµÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑложноÑÑи в VM-ÑиÑÑÐµÐ¼Ñ Ñади опÑимизаÑии кÑиÑиÑеÑкого пÑÑи. +ÐолÑÑой пÑоÑÐµÐ½Ñ Ð¾Ñибок доÑÑÑпа к ÑÑÑаниÑам, оÑноÑиÑÑÑ Ðº оÑибкам пÑи заполнении нÑлÑми. ÐÑ Ð¼Ð¾Ð¶ÐµÑе обÑÑно видеÑÑ ÑÑо, пÑоÑмаÑÑÐ¸Ð²Ð°Ñ Ð²Ñвод ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ `vmstat -s`. ÐÑо пÑоиÑÑ Ð¾Ð´Ð¸Ñ, когда пÑоÑеÑÑ Ð¾Ð±ÑаÑаеÑÑÑ Ðº ÑÑÑаниÑам в Ñвоей облаÑÑи BSS. ÐблаÑÑÑ BSS пÑедполагаеÑÑÑ Ð¸Ð·Ð½Ð°ÑалÑно заполненной нÑлÑми, но VM-ÑиÑÑема не забоÑиÑÑÑ Ð¾ вÑделении памÑÑи до ÑÐµÑ Ð¿Ð¾Ñ, пока пÑоÑеÑÑ ÑеалÑно к ней не обÑаÑиÑÑÑ. ÐÑи возникновении оÑибки VM-ÑиÑÑема должна не ÑолÑко вÑÐ´ÐµÐ»Ð¸Ñ Ñ Ð½Ð¾Ð²ÑÑ ÑÑÑаниÑÑ, но и заполниÑÑ ÐµÑ Ð½ÑлÑми. ÐÐ»Ñ Ð¾Ð¿ÑимизаÑии опеÑаÑии по Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð½ÑлÑми в ÑиÑÑеме VM иР¼ÐµÐµÑÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð¿ÑедваÑиÑелÑно обнÑлÑÑÑ ÑÑÑаниÑÑ Ð¸ помеÑаÑÑ Ð¸Ñ , и запÑаÑиваÑÑ Ñже обнÑленнÑе ÑÑÑаниÑÑ Ð¿Ñи возникновении оÑибок Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð½ÑлÑми. ÐÑедваÑиÑелÑное заполнение нÑлÑми пÑоиÑÑ Ð¾Ð´Ð¸Ñ, когда CPU пÑоÑÑаиваеÑ, однако колиÑеÑÑво ÑÑÑаниÑ, коÑоÑÑе ÑиÑÑема заÑанее заполнÑÐµÑ Ð½ÑлÑми, огÑаниÑено, Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð½Ðµ пеÑеполниÑÑ ÐºÑÑи памÑÑи. ÐÑо пÑекÑаÑнÑй пÑÐ¸Ð¼ÐµÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑложноÑÑи в VM-ÑиÑÑÐµÐ¼Ñ Ñади опÑимизаÑии кÑиÑиÑеÑкого пÑÑи. [[page-table-optimizations]] == ÐпÑимизаÑÐ¸Ñ ÑаблиÑÑ ÑÑÑÐ°Ð½Ð¸Ñ -ÐпÑимизаÑÐ¸Ñ ÑаблиÑÑ ÑÑÑÐ°Ð½Ð¸Ñ ÑоÑÑавлÑÐµÑ ÑамÑÑ ÑодеÑжаÑелÑнÑÑ ÑаÑÑÑ Ð°ÑÑ Ð¸ÑекÑÑÑÑ VM во FreeBSD и она пÑоÑвлÑеÑÑÑ Ð¿Ñи поÑвлении нагÑÑзки пÑи знаÑиÑелÑном иÑполÑзовании `mmap()`. Я дÑмаÑ, ÑÑо ÑÑо на Ñамом деле оÑобенноÑÑÑ ÑабоÑÑ Ð±Ð¾Ð»ÑÑинÑÑва BSD-ÑиÑÑем, Ñ Ð¾ÑÑ Ñ Ð½Ðµ ÑвеÑен, когда ÑÑо пÑоÑвилоÑÑ Ð²Ð¿ÐµÑвÑе. ÐÑÑÑ Ð´Ð²Ð° оÑновнÑÑ Ð¿Ð¾Ð´Ñ Ð¾Ð´Ð° к опÑимизаÑии. ÐеÑвÑй заклÑÑаеÑÑÑ Ð² Ñом, ÑÑо аппаÑаÑнÑе ÑаблиÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ð½Ðµ ÑодеÑÐ¶Ð°Ñ Ð¿Ð¾ÑÑоÑнного ÑоÑÑоÑниÑ, а вмеÑÑо ÑÑого Ð ¼Ð¾Ð³ÑÑ Ð±ÑÑÑ ÑбÑоÑÐµÐ½Ñ Ð² лÑбой Ð¼Ð¾Ð¼ÐµÐ½Ñ Ñ Ð¼Ð°Ð»Ñми накладнÑми ÑаÑÑ Ð¾Ð´Ð°Ð¼Ð¸. ÐÑоÑой Ð¿Ð¾Ð´Ñ Ð¾Ð´ ÑоÑÑÐ¾Ð¸Ñ Ð² Ñом, ÑÑо кажда Ñ Ð°ÐºÑÐ¸Ð²Ð½Ð°Ñ ÑаблиÑа ÑÑÑÐ°Ð½Ð¸Ñ Ð² ÑиÑÑеме Ð¸Ð¼ÐµÐµÑ ÑпÑавлÑÑÑÑÑ ÑÑÑÑкÑÑÑÑ `pv_entry`, коÑоÑÐ°Ñ ÑвÑзана в ÑÑÑÑкÑÑÑÑ `vm_page`. FreeBSD Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑоÑÑо пÑоÑмаÑÑиваÑÑ ÑÑи оÑобÑажениÑ, коÑоÑÑе ÑÑÑеÑÑвÑÑÑ, когда как в Linux Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¿ÑовеÑÑÑÑÑÑ Ð²Ñе ÑаблиÑÑ ÑÑÑаниÑ, коÑоÑÑе _могÑÑ_ ÑодеÑжаÑÑ Ð½Ñжное оÑобÑажение, ÑÑо в некоÑоÑÑÑ ÑиÑÑаÑÐ¸Ñ Ð´Ð°ÐµÑ ÑвелиÑение ÑложноÑÑи O(n^2). Ðз-за Ñого, ÑÑо FreeBSD ÑÑÑемиÑÑÑ Ð²ÑбÑаÑÑ Ð½Ð°Ð¸Ð±Ð¾Ð»ÐµÐµ Ð¿Ð¾Ð´Ñ Ð¾Ð´ÑÑÑÑ Ðº повÑоÑÐ½Ð¾Ð¼Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð»Ð¸ ÑбÑоÑÑ Ð² обла ÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки ÑÑÑаниÑÑ, когда оÑÑÑаеÑÑÑ Ð½ÐµÑ Ð²Ð°Ñка памÑÑи, ÑиÑÑема Ð´Ð°ÐµÑ Ð»ÑÑÑÑÑ Ð¿ÑоизводиÑелÑноÑÑÑ Ð¿Ñи наР³ÑÑзке. Ðднако во FreeBSD ÑÑебÑеÑÑÑ ÑÐ¾Ð½ÐºÐ°Ñ Ð½Ð°ÑÑÑойка ÑдÑа Ð´Ð»Ñ ÑооÑвеÑÑÑÐ²Ð¸Ñ ÑиÑÑаÑиÑм Ñ Ð±Ð¾Ð»ÑÑим ÑовмеÑÑно иÑполÑзÑемÑм адÑеÑнÑм пÑоÑÑÑанÑÑвом, коÑоÑÑе могÑÑ ÑлÑÑиÑÑÑÑ Ð² ÑиÑÑеме, обÑлÑживаÑÑей ÑеÑÐ²ÐµÑ ÑелеконÑеÑенÑий, поÑÐ¾Ð¼Ñ ÑÑо ÑÑÑÑкÑÑÑÑ `pv_entry` могÑÑ Ð¾ÐºÐ°Ð·Ð°ÑÑÑÑ Ð¸ÑÑеÑпаннÑми. +ÐпÑимизаÑÐ¸Ñ ÑаблиÑÑ ÑÑÑÐ°Ð½Ð¸Ñ ÑоÑÑавлÑÐµÑ ÑамÑÑ ÑодеÑжаÑелÑнÑÑ ÑаÑÑÑ Ð°ÑÑ Ð¸ÑекÑÑÑÑ VM во FreeBSD и она пÑоÑвлÑеÑÑÑ Ð¿Ñи поÑвлении нагÑÑзки пÑи знаÑиÑелÑном иÑполÑзовании `mmap()`. Я дÑмаÑ, ÑÑо ÑÑо на Ñамом деле оÑобенноÑÑÑ ÑабоÑÑ Ð±Ð¾Ð»ÑÑинÑÑва BSD-ÑиÑÑем, Ñ Ð¾ÑÑ Ñ Ð½Ðµ ÑвеÑен, когда ÑÑо пÑоÑвилоÑÑ Ð²Ð¿ÐµÑвÑе. ÐÑÑÑ Ð´Ð²Ð° оÑновнÑÑ Ð¿Ð¾Ð´Ñ Ð¾Ð´Ð° к опÑимизаÑии. ÐеÑвÑй заклÑÑаеÑÑÑ Ð² Ñом, ÑÑо аппаÑаÑнÑе ÑаблиÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ð½Ðµ ÑодеÑÐ¶Ð°Ñ Ð¿Ð¾ÑÑоÑнного ÑоÑÑоÑниÑ, а вмеÑÑо ÑÑого Ð ¼Ð¾Ð³ÑÑ Ð±ÑÑÑ ÑбÑоÑÐµÐ½Ñ Ð² лÑбой Ð¼Ð¾Ð¼ÐµÐ½Ñ Ñ Ð¼Ð°Ð»Ñми накладнÑми ÑаÑÑ Ð¾Ð´Ð°Ð¼Ð¸. ÐÑоÑой Ð¿Ð¾Ð´Ñ Ð¾Ð´ ÑоÑÑÐ¾Ð¸Ñ Ð² Ñом, ÑÑо кажда Ñ Ð°ÐºÑÐ¸Ð²Ð½Ð°Ñ ÑаблиÑа ÑÑÑÐ°Ð½Ð¸Ñ Ð² ÑиÑÑеме Ð¸Ð¼ÐµÐµÑ ÑпÑавлÑÑÑÑÑ ÑÑÑÑкÑÑÑÑ `pv_entry`, коÑоÑÐ°Ñ ÑвÑзана в ÑÑÑÑкÑÑÑÑ `vm_page`. FreeBSD Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑоÑÑо пÑоÑмаÑÑиваÑÑ ÑÑи оÑобÑажениÑ, коÑоÑÑе ÑÑÑеÑÑвÑÑÑ, когда как в Linux Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¿ÑовеÑÑÑÑÑÑ Ð²Ñе ÑаблиÑÑ ÑÑÑаниÑ, коÑоÑÑе _могÑÑ_ ÑодеÑжаÑÑ Ð½Ñжное оÑобÑажение, ÑÑо в некоÑоÑÑÑ ÑиÑÑаÑÐ¸Ñ Ð´Ð°ÑÑ ÑвелиÑение ÑложноÑÑи O(n^2). Ðз-за Ñого, ÑÑо FreeBSD ÑÑÑемиÑÑÑ Ð²ÑбÑаÑÑ Ð½Ð°Ð¸Ð±Ð¾Ð»ÐµÐµ Ð¿Ð¾Ð´Ñ Ð¾Ð´ÑÑÑÑ Ðº повÑоÑÐ½Ð¾Ð¼Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð»Ð¸ ÑбÑоÑÑ Ð² обла ÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки ÑÑÑаниÑÑ, когда оÑÑÑаеÑÑÑ Ð½ÐµÑ Ð²Ð°Ñка памÑÑи, ÑиÑÑема даÑÑ Ð»ÑÑÑÑÑ Ð¿ÑоизводиÑелÑноÑÑÑ Ð¿Ñи наР³ÑÑзке. Ðднако во FreeBSD ÑÑебÑеÑÑÑ ÑÐ¾Ð½ÐºÐ°Ñ Ð½Ð°ÑÑÑойка ÑдÑа Ð´Ð»Ñ ÑооÑвеÑÑÑÐ²Ð¸Ñ ÑиÑÑаÑиÑм Ñ Ð±Ð¾Ð»ÑÑим ÑовмеÑÑно иÑполÑзÑемÑм адÑеÑнÑм пÑоÑÑÑанÑÑвом, коÑоÑÑе могÑÑ ÑлÑÑиÑÑÑÑ Ð² ÑиÑÑеме, обÑлÑживаÑÑей ÑеÑÐ²ÐµÑ ÑелеконÑеÑенÑий, поÑÐ¾Ð¼Ñ ÑÑо ÑÑÑÑкÑÑÑÑ `pv_entry` могÑÑ Ð¾ÐºÐ°Ð·Ð°ÑÑÑÑ Ð¸ÑÑеÑпаннÑми. Рв Linux, и во FreeBSD ÑÑебÑÑÑÑÑ Ð´Ð¾ÑабоÑки в ÑÑой облаÑÑи. FreeBSD пÑÑаеÑÑÑ Ð¼Ð°ÐºÑимизиÑоваÑÑ Ð¿ÑеимÑÑеÑÑва Ð¾Ñ Ð¿Ð¾ÑенÑиалÑно Ñедко пÑименÑемой модели акÑивного оÑобÑÐ°Ð¶ÐµÐ½Ð¸Ñ (к пÑимеÑÑ, не вÑем пÑоÑеÑÑам нÑжно оÑобÑажаÑÑ Ð²Ñе ÑÑÑаниÑÑ Ð´Ð¸Ð½Ð°Ð¼Ð¸ÑеÑкой библиоÑеки), когда как Linux пÑÑаеÑÑÑ ÑпÑоÑÑиÑÑ Ñвои алгоÑиÑмÑ. FreeBSD Ð¸Ð¼ÐµÐµÑ Ð·Ð´ÐµÑÑ Ð¾Ð±Ñее пÑеимÑÑеÑÑво в пÑоизводиÑелÑноÑÑи за ÑÑÐµÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑной памÑÑи, но FreeBSD вÑглÑÐ´Ð¸Ñ Ñ Ñже в ÑлÑÑае, когда Ð ±Ð¾Ð»ÑÑой Ñайл ÑовмеÑÑно иÑполÑзÑеÑÑÑ ÑоÑнÑми пÑоÑеÑÑов. Linux, Ñ Ð´ÑÑгой ÑÑоÑонÑ, вÑглÑÐ´Ð¸Ñ Ñ Ñже в ÑлÑÑае, коР³Ð´Ð° много пÑоÑеÑÑов ÑаÑÑиÑно иÑполÑзÑÑÑ Ð¾Ð´Ð½Ñ Ð¸ ÑÑ Ð¶Ðµ динамиÑеÑкÑÑ Ð±Ð¸Ð±Ð»Ð¸Ð¾ÑекÑ, а Ñакже ÑабоÑÐ°ÐµÑ Ð½ÐµÐ¾Ð¿ÑималÑно пÑи попÑÑке опÑеделиÑÑ, Ð¼Ð¾Ð¶ÐµÑ Ð»Ð¸ ÑÑÑаниÑа повÑоÑно иÑполÑзоваÑÑÑÑ, или неÑ. @@ -167,19 +167,19 @@ FreeBSD иÑполÑзÑÐµÑ Ð½ÐµÑколÑко оÑеÑедей ÑÑÑÐ°Ð½Ð¸Ñ === ЧÑо ÑÑо за алгоÑиÑм ÑеÑедованиÑ, коÑоÑÑй Ð²Ñ Ñпоминали в ÑпиÑке недоÑÑаÑков подÑиÑÑÐµÐ¼Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ñазделом подкаÑки во FreeBSD 3.X? -FreeBSD иÑполÑзÑÐµÑ Ð² облаÑÑи подкаÑки Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼ ÑеÑедованиÑ, Ñ Ð¸Ð½Ð´ÐµÐºÑом по ÑмолÑаниÑ, ÑавнÑм ÑеÑÑÑем. ÐÑо ознаÑаеÑ, ÑÑо FreeBSD ÑезеÑвиÑÑÐµÑ Ð¿ÑоÑÑÑанÑÑво Ð´Ð»Ñ ÑеÑÑÑÐµÑ Ð¾Ð±Ð»Ð°ÑÑей подкаÑки, даже еÑли Ñ Ð²Ð°Ñ Ð¸Ð¼ÐµÐµÑÑÑ Ð²Ñего лиÑÑ Ð¾Ð´Ð½Ð°, две или ÑÑи облаÑÑи. Так как в облаÑÑи подкаÑки имееÑÑÑ ÑеÑедование, Ñо линейное адÑеÑное пÑоÑÑÑанÑÑво, пÑедÑÑавлÑÑÑее "ÑеÑÑÑе облаÑÑи подкаÑки", бÑÐ´ÐµÑ ÑÑагменÑиÑоваÑÑÑÑ, еÑли Ñ Ð²Ð°Ñ Ð½ÐµÑ Ð½Ð° Ñамом деле ÑеÑÑÑÐµÑ Ð¾Ð±Ð»Ð°ÑÑей поР´ÐºÐ°Ñки. ÐапÑимеÑ, еÑли Ñ Ð²Ð°Ñ Ð´Ð²Ðµ облаÑÑи A и B, Ñо пÑедÑÑавление адÑеÑного пÑоÑÑÑанÑÑва Ð´Ð»Ñ ÑÑой облаÑÑи п одкаÑки во FreeBSD бÑÐ´ÐµÑ Ð¾Ñганизовано Ñ ÑеÑедованием блоков из 16 ÑÑÑаниÑ: +FreeBSD иÑполÑзÑÐµÑ Ð² облаÑÑи подкаÑки Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼ ÑеÑедованиÑ, Ñ Ð¸Ð½Ð´ÐµÐºÑом по ÑмолÑаниÑ, ÑавнÑм ÑеÑÑÑем. ÐÑо ознаÑаеÑ, ÑÑо FreeBSD ÑезеÑвиÑÑÐµÑ Ð¿ÑоÑÑÑанÑÑво Ð´Ð»Ñ ÑеÑÑÑÑÑ Ð¾Ð±Ð»Ð°ÑÑей подкаÑки, даже еÑли Ñ Ð²Ð°Ñ Ð¸Ð¼ÐµÐµÑÑÑ Ð²Ñего лиÑÑ Ð¾Ð´Ð½Ð°, две или ÑÑи облаÑÑи. Так как в облаÑÑи подкаÑки имееÑÑÑ ÑеÑедование, Ñо линейное адÑеÑное пÑоÑÑÑанÑÑво, пÑедÑÑавлÑÑÑее "ÑеÑÑÑе облаÑÑи подкаÑки", бÑÐ´ÐµÑ ÑÑагменÑиÑоваÑÑÑÑ, еÑли Ñ Ð²Ð°Ñ Ð½ÐµÑ Ð½Ð° Ñамом деле ÑеÑÑÑÑÑ Ð¾Ð±Ð»Ð°ÑÑей поР´ÐºÐ°Ñки. ÐапÑимеÑ, еÑли Ñ Ð²Ð°Ñ Ð´Ð²Ðµ облаÑÑи A и B, Ñо пÑедÑÑавление адÑеÑного пÑоÑÑÑанÑÑва Ð´Ð»Ñ ÑÑой облаÑÑи п одкаÑки во FreeBSD бÑÐ´ÐµÑ Ð¾Ñганизовано Ñ ÑеÑедованием блоков из 16 ÑÑÑаниÑ: .... A B C D A B C D A B C D A B C D .... -FreeBSD 3.X иÑполÑзÑÐµÑ "поÑледоваÑелÑнÑй ÑпиÑок ÑвободнÑÑ Ð¾Ð±Ð»Ð°ÑÑей" Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑвободнÑми облаÑÑÑми в Ñазделе подкаÑки. ÐÐ´ÐµÑ ÑоÑÑÐ¾Ð¸Ñ Ð² Ñом, ÑÑо болÑÑие поÑледоваÑелÑнÑе блоки Ñвободного пÑоÑÑÑанÑÑва могÑÑ Ð±ÑÑÑ Ð¿ÑедÑÑÐ°Ð²Ð»ÐµÐ½Ñ Ð¿Ñи помоÑи Ñзла одноÑвÑзного ÑпиÑка ([.filename]#kern/subr_rlist.c#). Ðо из-за ÑÑагменÑаÑии поÑледоваÑелÑнÑй ÑпиÑок Ñам ÑÑановиÑÑÑ ÑÑагменÑиÑованнÑм. РпÑимеÑе вÑÑе полноÑÑÑÑ Ð½ÐµÐ¸ÑполÑзÑемое пÑоÑÑÑанÑÑво в A и B бÑÐ´ÐµÑ Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½ о как "Ñвободное", а C и D как "полноÑÑÑÑ Ð·Ð°Ð½ÑÑое". Ðаждой поÑледоваÑелÑноÑÑи A-B ÑÑебÑеÑÑÑ Ð´Ð»Ñ ÑÑеÑа Ñзел ÑÐ ¿Ð¸Ñка, поÑÐ¾Ð¼Ñ ÑÑо C и D ÑвлÑÑÑÑÑ Ð´ÑÑами, Ñак ÑÑо Ñзел ÑпиÑка не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑвÑзан Ñо ÑледÑÑÑей поÑледоваÑелÑноÑÑÑÑ A-B. +FreeBSD 3.X иÑполÑзÑÐµÑ "поÑледоваÑелÑнÑй ÑпиÑок ÑвободнÑÑ Ð¾Ð±Ð»Ð°ÑÑей" Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑвободнÑми облаÑÑÑми в Ñазделе подкаÑки. ÐÐ´ÐµÑ ÑоÑÑÐ¾Ð¸Ñ Ð² Ñом, ÑÑо болÑÑие поÑледоваÑелÑнÑе блоки Ñвободного пÑоÑÑÑанÑÑва могÑÑ Ð±ÑÑÑ Ð¿ÑедÑÑÐ°Ð²Ð»ÐµÐ½Ñ Ð¿Ñи помоÑи Ñзла одноÑвÑзного ÑпиÑка ([.filename]#kern/subr_rlist.c#). Ðо из-за ÑÑагменÑаÑии поÑледоваÑелÑнÑй ÑпиÑок Ñам ÑÑановиÑÑÑ ÑÑагменÑиÑованнÑм. РпÑимеÑе вÑÑе полноÑÑÑÑ Ð½ÐµÐ¸ÑполÑзÑемое пÑоÑÑÑанÑÑво в A и B бÑÐ´ÐµÑ Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½ о как "Ñвободное", а C и D как "полноÑÑÑÑ Ð·Ð°Ð½ÑÑое". Ðаждой поÑледоваÑелÑноÑÑи A-B ÑÑебÑеÑÑÑ Ð´Ð»Ñ ÑÑÑÑа Ñзел ÑÐ ¿Ð¸Ñка, поÑÐ¾Ð¼Ñ ÑÑо C и D ÑвлÑÑÑÑÑ Ð´ÑÑами, Ñак ÑÑо Ñзел ÑпиÑка не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑвÑзан Ñо ÑледÑÑÑей поÑледоваÑелÑноÑÑÑÑ A-B. ÐоÑÐµÐ¼Ñ Ð¼Ñ Ð¾ÑганизÑем ÑеÑедование в облаÑÑи подкаÑки вмеÑÑо Ñого, ÑÑÐ¾Ð±Ñ Ð¿ÑоÑÑо обÑединиÑÑ Ð¾Ð±Ð»Ð°ÑÑи подкаÑки в одно Ñелое и пÑидÑмаÑÑ ÑÑо-Ñо более Ñмное? ÐоÑÐ¾Ð¼Ñ ÑÑо гоÑаздо легÑе вÑделÑÑÑ Ð¿Ð¾ÑледоваÑелÑнÑе полоÑÑ Ð°Ð´ÑеÑного пÑоÑÑÑанÑÑва и полÑÑаÑÑ Ð² ÑезÑлÑÑаÑе авÑомаÑиÑеÑкое ÑеÑедование Ð¼ÐµÐ¶Ð´Ñ Ð½ÐµÑколÑкими диÑками, Ñем пÑÑаÑÑÑÑ Ð²ÑдÑмÑваÑÑ ÑложноÑÑи в дÑÑгом меÑÑе. ФÑагменÑаÑÐ¸Ñ Ð²ÑзÑÐ²Ð°ÐµÑ Ð´ÑÑгие пÑоблемÑ. ЯвлÑÑÑÑ Ð¿Ð¾ÑледоваÑелÑнÑм ÑпиÑком в 3.X и Ð¸Ð¼ÐµÑ Ñакое огÑомнÑÑ ÑÑагменÑаÑиÑ, вÑделение и оÑвобождение в облаÑÑи подкаÑки ÑÑановиÑÑÑ Ð°Ð»Ð³Ð¾ÑиÑмом ÑложноÑÑи O(N), а не O(1). ÐмеÑÑе Ñ Ð´ÑÑгими ÑакÑоÑами (ÑаÑÑое обÑаÑение к облаÑÑи подкаÑки) Ð²Ñ Ð¿Ð¾Ð»ÑÑаеÑе ÑложноÑÑÑ ÑÑовней O(N^2) и O(N^3), ÑÑо Ð¿Ð»Ð¾Ñ Ð¾. Ð ÑиÑÑеме 3.X Ñакже Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾ÑÑебоваÑÑÑÑ Ð²Ñделение KVM во вÑÐµÐ¼Ñ ÑабоÑÑ Ñ Ð¾Ð±Ð»Ð°ÑÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ Ñзла ÑÐ¿Ð¸Ñ ÐºÐ°, ÑÑо в ÑÑловии Ð½ÐµÑ Ð²Ð°Ñки памÑÑи Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑивеÑÑи к блокиÑовке, еÑли ÑиÑÑема попÑÑаеÑÑÑ ÑбÑоÑиÑÑ ÑÑÑани ÑÑ Ð² облаÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки. -Ð 4.X Ð¼Ñ Ð½Ðµ иÑполÑзÑем поÑледоваÑелÑнÑй ÑпиÑок. ÐмеÑÑо ÑÑого Ð¼Ñ Ð¸ÑполÑзÑем базиÑное деÑево и биÑовÑе каÑÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð² облаÑÑи подкаÑки, а не огÑаниÑеннÑй ÑпиÑок Ñзлов. ÐÑ Ð¿Ñинимаем пÑедваÑиÑелÑное вÑделение вÑÐµÑ Ð±Ð¸ÑовÑÑ ÐºÐ°ÑÑ, ÑÑебÑемÑÑ Ð´Ð»Ñ Ð²Ñей облаÑÑи подкаÑки, но пÑи ÑÑом ÑÑаÑиÑÑÑ Ð¼ÐµÐ½ÑÑе памÑÑи, поÑÐ¾Ð¼Ñ ÑÑо Ð¼Ñ Ð¸ÑполÑзÑем биÑовÑе каÑÑÑ (один Ð±Ð¸Ñ Ð½Ð° блок), а не ÑвÑзаннÑй ÑпиÑок Ñзлов. ÐÑполÑзование базиÑного деÑева вмеÑÑо поÑледоваÑелÑноР³Ð¾ ÑпиÑка Ð´Ð°ÐµÑ Ð½Ð°Ð¼ пÑоизводиÑелÑноÑÑÑ O(1) вне завиÑимоÑÑи Ð¾Ñ ÑÑагменÑаÑии деÑева. +Ð 4.X Ð¼Ñ Ð½Ðµ иÑполÑзÑем поÑледоваÑелÑнÑй ÑпиÑок. ÐмеÑÑо ÑÑого Ð¼Ñ Ð¸ÑполÑзÑем базиÑное деÑево и биÑовÑе каÑÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð² облаÑÑи подкаÑки, а не огÑаниÑеннÑй ÑпиÑок Ñзлов. ÐÑ Ð¿Ñинимаем пÑедваÑиÑелÑное вÑделение вÑÐµÑ Ð±Ð¸ÑовÑÑ ÐºÐ°ÑÑ, ÑÑебÑемÑÑ Ð´Ð»Ñ Ð²Ñей облаÑÑи подкаÑки, но пÑи ÑÑом ÑÑаÑиÑÑÑ Ð¼ÐµÐ½ÑÑе памÑÑи, поÑÐ¾Ð¼Ñ ÑÑо Ð¼Ñ Ð¸ÑполÑзÑем биÑовÑе каÑÑÑ (один Ð±Ð¸Ñ Ð½Ð° блок), а не ÑвÑзаннÑй ÑпиÑок Ñзлов. ÐÑполÑзование базиÑного деÑева вмеÑÑо поÑледоваÑелÑноР³Ð¾ ÑпиÑка даÑÑ Ð½Ð°Ð¼ пÑоизводиÑелÑноÑÑÑ O(1) вне завиÑимоÑÑи Ð¾Ñ ÑÑагменÑаÑии деÑева. === Ðак Ñазделение ÑиÑÑÑÑ Ð¸ гÑÑзнÑÑ (неакÑивнÑÑ ) ÑÑÑÐ°Ð½Ð¸Ñ ÑвÑзано Ñ ÑиÑÑаÑией, когда Ð²Ñ Ð²Ð¸Ð´Ð¸Ñе маленÑкий ÑÑеÑÑик оÑеÑеди кÑÑа и болÑÑой ÑÑеÑÑик акÑивной оÑеÑеди в вÑдаÑе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ systat -vm? Разве ÑиÑÑÐµÐ¼Ð½Ð°Ñ ÑÑаÑиÑÑика не ÑÑиÑÐ°ÐµÑ Ð°ÐºÑивнÑе и гÑÑзнÑе ÑÑÑаниÑÑ Ð²Ð¼ÐµÑÑе за ÑÑеÑÑик акÑивной оÑеÑеди? @@ -189,18 +189,18 @@ FreeBSD 3.X иÑполÑзÑÐµÑ "поÑледоваÑелÑнÑй ÑпиÑок === РпÑимеÑе Ñ / vmstat 1 могÑÑ Ð»Ð¸ некоÑоÑÑе оÑибки доÑÑÑпа к ÑÑÑаниÑе бÑÑÑ Ð¾Ñибками ÑÑÑÐ°Ð½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ (COW из вÑполнимого Ñайла в пÑиваÑнÑе ÑÑÑаниÑÑ)? То еÑÑÑ Ñ Ð¿Ð¾Ð»Ð°Ð³Ð°Ñ, ÑÑо оÑибки доÑÑÑпа к ÑÑÑаниÑам ÑвлÑÑÑÑÑ ÑаÑÑиÑно оÑибками пÑи заполнении нÑлÑми, а ÑаÑÑиÑно даннÑÑ Ð¿ÑогÑаммÑ. Ðли Ð²Ñ Ð³Ð°ÑанÑиÑÑеÑе, ÑÑо FreeBSD вÑполнÑÐµÑ Ð¿ÑедваÑиÑелÑно COW Ð´Ð»Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¿ÑогÑаммÑ? -ÐÑибка COW Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¾Ñибкой пÑи заполнении нÑлÑми или даннÑÑ Ð¿ÑогÑаммÑ. ÐÐµÑ Ð°Ð½Ð¸Ð·Ð¼ в лÑбом ÑлÑÑае один и ÑÐ¾Ñ Ð¶Ðµ, поÑÐ¾Ð¼Ñ ÑÑо Ñ ÑанилиÑе даннÑÑ Ð¿ÑогÑÐ°Ð¼Ð¼Ñ Ñже в кÑÑе. Я на Ñамом деле не Ñад ни ÑомÑ, ни дÑÑгомÑ. FreeBSD не вÑполнÑÐµÑ Ð¿ÑедваÑиÑелÑное COW даннÑÑ Ð¿ÑогÑÐ°Ð¼Ð¼Ñ Ð¸ заполнение нÑлÑми, но она _вÑполнÑеÑ_ пÑедваÑиÑелÑно оÑобÑажение ÑÑÑаниÑ, коÑоÑÑе имеÑÑÑÑ Ð² ее кÑÑе. +ÐÑибка COW Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¾Ñибкой пÑи заполнении нÑлÑми или даннÑÑ Ð¿ÑогÑаммÑ. ÐÐµÑ Ð°Ð½Ð¸Ð·Ð¼ в лÑбом ÑлÑÑае один и ÑÐ¾Ñ Ð¶Ðµ, поÑÐ¾Ð¼Ñ ÑÑо Ñ ÑанилиÑе даннÑÑ Ð¿ÑогÑÐ°Ð¼Ð¼Ñ Ñже в кÑÑе. Я на Ñамом деле не Ñад ни ÑомÑ, ни дÑÑгомÑ. FreeBSD не вÑполнÑÐµÑ Ð¿ÑедваÑиÑелÑное COW даннÑÑ Ð¿ÑогÑÐ°Ð¼Ð¼Ñ Ð¸ заполнение нÑлÑми, но она _вÑполнÑеÑ_ пÑедваÑиÑелÑно оÑобÑажение ÑÑÑаниÑ, коÑоÑÑе имеÑÑÑÑ Ð² ÐµÑ ÐºÑÑе. === РваÑем Ñазделе об опÑимизаÑии ÑаблиÑÑ ÑÑÑаниÑ, не могли Ð±Ñ Ð²Ñ Ð±Ð¾Ð»ÐµÐµ подÑобно ÑаÑÑказаÑÑ Ð¾ pv_entry и vm_page (или vm_page должна бÑÑÑ vm_pmap-как в 4.4, cf. pp. 180-181 of McKusick, Bostic, Karel, Quarterman)? Рименно какое дейÑÑвие/ÑеакÑÐ¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ð¾ поÑÑебоваÑÑÑÑ Ð´Ð»Ñ ÑканиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¾ÑобÑажений? -`vm_page` пÑедÑÑавлÑÐµÑ Ñобой паÑÑ (object,index#). `pv_entry` ÑвлÑеÑÑÑ Ð·Ð°Ð¿Ð¸ÑÑÑ Ð¸Ð· аппаÑаÑной ÑаблиÑÑ ÑÑÑÐ°Ð½Ð¸Ñ (pte). ÐÑли Ñ Ð²Ð°Ñ Ð¸Ð¼ÐµÐµÑÑÑ Ð¿ÑÑÑ Ð¿ÑоÑеÑÑов, ÑовмеÑÑно иÑполÑзÑÑÑÐ¸Ñ Ð¾Ð´Ð½Ñ Ð¸ ÑÑ Ð¶Ðµ ÑизиÑеÑкÑÑ ÑÑÑаниÑÑ, и в ÑÑÐµÑ ÑаблиÑÐ°Ñ ÑÑÑÐ°Ð½Ð¸Ñ ÑÑÐ¸Ñ Ð¿ÑоÑеÑÑов на Ñамом деле оÑобÑажаеÑÑÑ ÑÑÑаниÑа, Ñо ÑÑÑаниÑа бÑÐ´ÐµÑ Ð¿ÑедÑÑавлÑÑÑÑÑ Ð¾Ð´Ð½Ð¾Ð¹ ÑÑÑÑкÑÑÑой `vm_page` и ÑÑÐµÐ¼Ñ ÑÑÑÑкÑÑÑами `pv_entry`. +`vm_page` пÑедÑÑавлÑÐµÑ Ñобой паÑÑ (object,index#). `pv_entry` ÑвлÑеÑÑÑ Ð·Ð°Ð¿Ð¸ÑÑÑ Ð¸Ð· аппаÑаÑной ÑаблиÑÑ ÑÑÑÐ°Ð½Ð¸Ñ (pte). ÐÑли Ñ Ð²Ð°Ñ Ð¸Ð¼ÐµÐµÑÑÑ Ð¿ÑÑÑ Ð¿ÑоÑеÑÑов, ÑовмеÑÑно иÑполÑзÑÑÑÐ¸Ñ Ð¾Ð´Ð½Ñ Ð¸ ÑÑ Ð¶Ðµ ÑизиÑеÑкÑÑ ÑÑÑаниÑÑ, и в ÑÑÑÑ ÑаблиÑÐ°Ñ ÑÑÑÐ°Ð½Ð¸Ñ ÑÑÐ¸Ñ Ð¿ÑоÑеÑÑов на Ñамом деле оÑобÑажаеÑÑÑ ÑÑÑаниÑа, Ñо ÑÑÑаниÑа бÑÐ´ÐµÑ Ð¿ÑедÑÑавлÑÑÑÑÑ Ð¾Ð´Ð½Ð¾Ð¹ ÑÑÑÑкÑÑÑой `vm_page` и ÑÑÐµÐ¼Ñ ÑÑÑÑкÑÑÑами `pv_entry`. -СÑÑÑкÑÑÑÑ `pv_entry` пÑедÑÑавлÑÑÑ ÑÑÑаниÑÑ, оÑобÑажаемÑе MMU (одна ÑÑÑÑкÑÑÑа `pv_entry` ÑооÑвеÑÑÑвÑÐµÑ Ð¾Ð´Ð½Ð¾Ð¹ pte). ÐÑо ознаÑаеÑ, ÑÑо, когда нам нÑжно ÑбÑаÑÑ Ð²Ñе аппаÑаÑнÑе ÑÑÑлки на `vm_page` (Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð²ÑоÑно иÑполÑзоваÑÑ ÑÑÑаниÑÑ Ð´Ð»Ñ Ñего-Ñо еÑе, вÑгÑÑзиÑÑ ÐµÐµ, оÑиÑÑиÑÑ, помеÑиÑÑ ÐºÐ°Ðº гÑÑзнÑÑ Ð¸ Ñак далее), Ð¼Ñ Ð¼Ð¾Ð¶ÐµÐ¼ пÑоÑÑо пÑоÑмоÑÑеÑÑ ÑвÑзнÑй ÑпиÑок ÑÑÑÑкÑÑÑ `pv_entry`, ÑвÑзаннÑÑ Ñ ÑÑой `vm_page`, Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ ÑдалиÑÑ Ð¸Ð»Ð¸ измениÑÑ pte из Ð¸Ñ ÑÐ°Ð±Ð»Ð¸Ñ ÑÑÑаниÑ. +СÑÑÑкÑÑÑÑ `pv_entry` пÑедÑÑавлÑÑÑ ÑÑÑаниÑÑ, оÑобÑажаемÑе MMU (одна ÑÑÑÑкÑÑÑа `pv_entry` ÑооÑвеÑÑÑвÑÐµÑ Ð¾Ð´Ð½Ð¾Ð¹ pte). ÐÑо ознаÑаеÑ, ÑÑо, когда нам нÑжно ÑбÑаÑÑ Ð²Ñе аппаÑаÑнÑе ÑÑÑлки на `vm_page` (Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð²ÑоÑно иÑполÑзоваÑÑ ÑÑÑаниÑÑ Ð´Ð»Ñ Ñего-Ñо еÑÑ, вÑгÑÑзиÑÑ ÐµÑ, оÑиÑÑиÑÑ, помеÑиÑÑ ÐºÐ°Ðº гÑÑзнÑÑ Ð¸ Ñак далее), Ð¼Ñ Ð¼Ð¾Ð¶ÐµÐ¼ пÑоÑÑо пÑоÑмоÑÑеÑÑ ÑвÑзнÑй ÑпиÑок ÑÑÑÑкÑÑÑ `pv_entry`, ÑвÑзаннÑÑ Ñ ÑÑой `vm_page`, Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ ÑдалиÑÑ Ð¸Ð»Ð¸ измениÑÑ pte из Ð¸Ñ ÑÐ°Ð±Ð»Ð¸Ñ ÑÑÑаниÑ. Ð Linux Ð½ÐµÑ Ñакого ÑвÑзного ÑпиÑка. ÐÐ»Ñ Ñого, ÑÑÐ¾Ð±Ñ ÑдалиÑÑ Ð²Ñе оÑобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð°Ð¿Ð¿Ð°ÑаÑной ÑаблиÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ `vm_page`, linux должен пÑойÑи по индекÑÑ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ обÑекÑа VM, коÑоÑÑй _можеÑ_ оÑобÑажаÑÑ ÑÑÑаниÑÑ. РпÑимеÑÑ, еÑли Ñ Ð²Ð°Ñ Ð¸Ð¼ÐµÐµÑÑÑ 50 пÑоÑеÑÑов, коÑоÑÑе вÑе оÑобÑажаÑÑ ÑÑ Ð¶Ðµ ÑамÑÑ Ð´Ð¸Ð½Ð°Ð¼Ð¸ÑеÑкÑÑ Ð±Ð¸Ð±Ð»Ð¸Ð¾ÑÐµÐºÑ Ð¸ Ñ Ð¾ÑиÑе избавиÑÑÑÑ Ð¾Ñ ÑÑÑаниÑÑ X в ÑÑой библиоÑеке, Ñо вам нÑжно пÑойÑиÑÑ Ð¿Ð¾ индекÑÑ Ð²Ñей ÑаблиÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ из ÑÑÐ¸Ñ 50 пÑоÑеÑÑов, даР¶Ðµ еÑли ÑолÑко 10 из Ð½Ð¸Ñ Ð½Ð° Ñамом деле оÑобÑажаÑÑ ÑÑÑаниÑÑ. Так ÑÑо Linux иÑполÑзÑÐµÑ Ð¿ÑоÑÑоÑÑ Ð¿Ð¾Ð´Ñ Ð¾Ð´Ð° за ÑÑе Ñ Ð¿ÑоизводиÑелÑноÑÑи. Ðногие алгоÑиÑÐ¼Ñ VM, коÑоÑÑе имеÑÑ ÑложноÑÑÑ O(1) или (N малое) во FreeBSD, в Linux пÑиобÑеÑаÑÑ ÑложноÑÑÑ O(N), O(N^2) или Ñ Ñже. Так как pte, пÑедÑÑавлÑÑÑий конкÑеÑнÑÑ ÑÑÑаниÑÑ Ð² обÑекÑе, ÑкоÑее вÑего, бÑÐ´ÐµÑ Ñ Ñем же ÑмеÑением во вÑÐµÑ ÑаблиÑÐ°Ñ ÑÑÑаниÑ, в коÑоÑÑÑ Ð¾Ð½Ð¸ оÑобÑажаÑÑÑÑ, Ñо ÑменÑÑение колиÑеÑÑва обÑаÑений в ÑаблиÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ð¾ ÑÐ¾Ð¼Ñ Ð¶Ðµ ÑÐ°Ð¼Ð¾Ð¼Ñ ÑмеÑÐµÐ½Ð¸Ñ ÑаÑÑо позволÑÐµÑ Ð¸Ð·Ð±ÐµÐ¶Ð°ÑÑ ÑазÑаÑÑÐ°Ð½Ð¸Ñ ÐºÑÑа L1 Ð´Ð»Ñ ÑÑого ÑмеÑениÑ, ÑÑо пÑиво Ð´Ð¸Ñ Ðº ÑлÑÑÑÐµÐ½Ð¸Ñ Ð¿ÑоизводиÑелÑноÑÑи. Ðо FreeBSD Ð²Ð²ÐµÐ´ÐµÐ½Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе ÑложноÑÑи (ÑÑ ÐµÐ¼Ð° Ñ `pv_entry`) Ð´Ð»Ñ ÑвелиÑÐµÐ½Ð¸Ñ Ð¿ÑоизводиÑелÑноÑÑи (ÑменÑÑÐ°Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑво обÑаÑений _ÑолÑко_ к Ñем pte, коÑоÑÑе нÑжно модиÑиÑиÑоваÑÑ). -Ðо во FreeBSD имееÑÑÑ Ð¿Ñоблема маÑÑÑабиÑованиÑ, коÑоÑой Ð½ÐµÑ Ð² Linux, поÑÐ¾Ð¼Ñ ÑÑо имееÑÑÑ Ð¾Ð³ÑаниÑенное ÑиÑло ÑÑÑÑкÑÑÑ `pv_entry`, и ÑÑо пÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½Ð¾Ð²ÐµÐ½Ð¸Ñ Ð¿Ñоблем пÑи болÑÑом обÑеме ÑовмеÑÑно иÑполÑзÑемÑÑ Ð´Ð°Ð½Ð½ÑÑ . Ð ÑÑом ÑлÑÑае Ñ Ð²Ð°Ñ Ð¼Ð¾Ð¶ÐµÑ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½ÑÑÑ Ð½ÐµÑ Ð²Ð°Ñка ÑÑÑÑкÑÑÑ `pv_entry`, даже еÑли Ñвободной памÑÑи Ñ Ð²Ð°ÑаеÑ. ÐÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð´Ð¾ÑÑаÑоÑно легко иÑпÑавлено ÑвелиÑением колиÑеÑÑва ÑÑÑÑкÑÑÑ `pv_entry` пÑи наÑÑÑойке, но на Ñамом деле нам нÑжно найÑи Ð»Ñ ÑÑий ÑпоÑоб делаÑÑ ÑÑо. +Ðо во FreeBSD имееÑÑÑ Ð¿Ñоблема маÑÑÑабиÑованиÑ, коÑоÑой Ð½ÐµÑ Ð² Linux, поÑÐ¾Ð¼Ñ ÑÑо имееÑÑÑ Ð¾Ð³ÑаниÑенное ÑиÑло ÑÑÑÑкÑÑÑ `pv_entry`, и ÑÑо пÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½Ð¾Ð²ÐµÐ½Ð¸Ñ Ð¿Ñоблем пÑи болÑÑом обÑÑме ÑовмеÑÑно иÑполÑзÑемÑÑ Ð´Ð°Ð½Ð½ÑÑ . Ð ÑÑом ÑлÑÑае Ñ Ð²Ð°Ñ Ð¼Ð¾Ð¶ÐµÑ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½ÑÑÑ Ð½ÐµÑ Ð²Ð°Ñка ÑÑÑÑкÑÑÑ `pv_entry`, даже еÑли Ñвободной памÑÑи Ñ Ð²Ð°ÑаеÑ. ÐÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð´Ð¾ÑÑаÑоÑно легко иÑпÑавлено ÑвелиÑением колиÑеÑÑва ÑÑÑÑкÑÑÑ `pv_entry` пÑи наÑÑÑойке, но на Ñамом деле нам нÑжно найÑи Ð»Ñ ÑÑий ÑпоÑоб делаÑÑ ÑÑо. ЧÑо каÑаеÑÑÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи под ÑаблиÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ð¿ÑоÑив ÑÑ ÐµÐ¼Ñ Ñ `pv_entry`: Linux иÑполÑзÑÐµÑ "поÑÑоÑннÑе" ÑаблиÑÑ ÑÑÑаниÑ, коÑоÑÑе не ÑбÑаÑÑваÑÑÑÑ, но ÐµÐ¼Ñ Ð½Ðµ нÑÐ¶Ð½Ñ `pv_entry` Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ поÑенÑиалÑно оÑобÑажаемого pte. FreeBSD иÑполÑзÑÐµÑ "ÑбÑаÑÑваемÑе" ÑаблиÑÑ ÑÑÑаниÑ, но Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑеалÑно оÑобÑажаемого pte добавлÑеÑÑÑ ÑÑÑÑкÑÑÑа `pv_entry`. Я дÑмаÑ, ÑÑо иÑполÑзование памÑÑи бÑÐ´ÐµÑ Ð¿ÑимеÑно одинакова, Ñем более ÑÑо Ñ FreeBSD еÑÑÑ Ð°Ð»Ð³Ð¾ÑиÑмиÑеÑкое пÑеимÑÑ ÐµÑÑво, заклÑÑаÑÑееÑÑ Ð² ÑпоÑобноÑÑи ÑбÑаÑÑваÑÑ ÑаблиÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ñ Ð¾ÑÐµÐ½Ñ Ð¼Ð°Ð»Ñми накладнÑми ÑаÑÑ Ð¾Ð´Ð°Ð¼Ð¸. diff --git a/documentation/content/ru/articles/vm-design/_index.po b/documentation/content/ru/articles/vm-design/_index.po index 089a4d860c..5127516f19 100644 --- a/documentation/content/ru/articles/vm-design/_index.po +++ b/documentation/content/ru/articles/vm-design/_index.po @@ -1,12 +1,12 @@ # SOME DESCRIPTIVE TITLE # Copyright (C) YEAR The FreeBSD Project # This file is distributed under the same license as the FreeBSD Documentation package. -# Vladlen Popolitov <[email protected]>, 2025. +# Vladlen Popolitov <[email protected]>, 2025, 2026. msgid "" msgstr "" "Project-Id-Version: FreeBSD Documentation VERSION\n" "POT-Creation-Date: 2025-06-29 21:20+0100\n" -"PO-Revision-Date: 2025-07-05 04:45+0000\n" +"PO-Revision-Date: 2026-03-08 09:11+0000\n" "Last-Translator: Vladlen Popolitov <[email protected]>\n" "Language-Team: Russian <https://translate-dev.freebsd.org/projects/" "documentation/articlesvm-design_index/ru/>\n" @@ -133,9 +133,9 @@ msgstr "" "Ðнимание, Ñделенное аÑÑ Ð¸ÑекÑÑÑе, в обÑем оÑÑажаеÑÑÑ Ð½Ð° ÑÑноÑÑи и гибкоÑÑи " "кода, коÑоÑÑй Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð´Ð¾ÑÑаÑоÑно легко изменен, ÑаÑÑиÑен или Ñ ÑеÑением " "вÑемени заменен. ХоÑÑ Ð½ÐµÐºÐ¾ÑоÑÑе ÑÑиÑаÑÑ BSD \"ÑÑаÑой\" опеÑаÑионной " -"ÑиÑÑемой, Ñе Ð¸Ñ Ð½Ð°Ñ, кÑо ÑабоÑÐ°ÐµÑ Ð½Ð°Ð´ ней, видÑÑ ÐµÐµ ÑкоÑее ÑиÑÑемой Ñо " +"ÑиÑÑемой, Ñе Ð¸Ñ Ð½Ð°Ñ, кÑо ÑабоÑÐ°ÐµÑ Ð½Ð°Ð´ ней, видÑÑ ÐµÑ ÑкоÑее ÑиÑÑемой Ñо " "\"зÑелÑм\" кодом Ñ ÑазлиÑнÑми компоненÑами, коÑоÑÑе бÑли замененÑ, ÑаÑÑиÑÐµÐ½Ñ " -"или Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ñ ÑовÑеменнÑм кодом. Ðн ÑазвиваеÑÑÑ, и FreeBSD оÑÑаеÑÑÑ Ð¿ÐµÑедовой " +"или Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ñ ÑовÑеменнÑм кодом. Ðн ÑазвиваеÑÑÑ, и FreeBSD оÑÑаÑÑÑÑ Ð¿ÐµÑедовой " "ÑиÑÑемой, вне завиÑимоÑÑи Ð¾Ñ Ñого, наÑколÑко ÑÑаÑой Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑаÑÑÑ ÐºÐ¾Ð´Ð°. " "ÐÑо важное оÑлиÑие, коÑоÑое, к ÑожалениÑ, не вÑеми понимаеÑÑÑ. Самой болÑÑой " "оÑибкой, коÑоÑÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð´Ð¾Ð¿ÑÑÑиÑÑ Ð¿ÑогÑаммиÑÑ, ÑвлÑеÑÑÑ Ð¸Ð³Ð½Ð¾ÑиÑование " @@ -182,7 +182,7 @@ msgid "" msgstr "" "СамÑм важнÑм аÑпекÑом пÑи пÑоекÑиÑовании пÑоизводиÑелÑноÑÑи ÑвлÑеÑÑÑ Ñо, ÑÑо " "назÑваеÑÑÑ \"опÑимизаÑией кÑиÑиÑеÑкого маÑÑÑÑÑа\". ЧаÑÑо ÑлÑÑаеÑÑÑ, ÑÑо " -"опÑимизаÑÐ¸Ñ Ð¿ÑоизводиÑелÑноÑÑи Ð´Ð°ÐµÑ Ð¿ÑиÑоÑÑ Ð¾Ð±Ñема кода Ñади Ñого, ÑÑÐ¾Ð±Ñ " +"опÑимизаÑÐ¸Ñ Ð¿ÑоизводиÑелÑноÑÑи даÑÑ Ð¿ÑиÑоÑÑ Ð¾Ð±ÑÑма кода Ñади Ñого, ÑÑÐ¾Ð±Ñ " "кÑиÑиÑеÑкий маÑÑÑÑÑ ÑабоÑал бÑÑÑÑее." #. type: Plain text @@ -244,7 +244,7 @@ msgstr "" "ÑоÑки зÑÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑзоваÑелÑÑкого пÑоÑеÑÑа. ÐаждÑй полÑзоваÑелÑÑкий пÑоÑеÑÑ " "Ð¸Ð¼ÐµÐµÑ ÐµÐ´Ð¸Ð½Ð¾Ðµ, пÑинадлежаÑее ÑолÑко ÐµÐ¼Ñ Ð¸ неÑазÑÑвное адÑеÑное пÑоÑÑÑанÑÑво " "VM, ÑодеÑжаÑее неÑколÑко Ñипов обÑекÑов памÑÑи. ÐÑи обÑекÑÑ Ð¸Ð¼ÐµÑÑ ÑазлиÑнÑе " -"Ñ Ð°ÑакÑеÑиÑÑики. Ðод пÑогÑÐ°Ð¼Ð¼Ñ Ð¸ ее даннÑе ÑвлÑÑÑÑÑ ÐµÐ´Ð¸Ð½Ñм Ñайлом, " +"Ñ Ð°ÑакÑеÑиÑÑики. Ðод пÑогÑÐ°Ð¼Ð¼Ñ Ð¸ ÐµÑ Ð´Ð°Ð½Ð½Ñе ÑвлÑÑÑÑÑ ÐµÐ´Ð¸Ð½Ñм Ñайлом, " "оÑобÑажаемÑм в памÑÑÑ (ÑÑо вÑполнÑÑÑийÑÑ Ð´Ð²Ð¾Ð¸ÑнÑй Ñайл), однако код " "пÑогÑÐ°Ð¼Ð¼Ñ Ð´Ð¾ÑÑÑпен ÑолÑко Ð´Ð»Ñ ÑÑениÑ, когда как даннÑе пÑогÑÐ°Ð¼Ð¼Ñ ÑазмеÑаÑÑÑÑ " "в Ñежиме копиÑованиÑ-пÑи-запиÑи. BSS пÑогÑÐ°Ð¼Ð¼Ñ Ð¿ÑедÑÑавлÑÐµÑ Ñобой вÑего лиÑÑ " @@ -276,11 +276,11 @@ msgstr "" "непоÑÑедÑÑвенно из Ñайла пÑогÑаммÑ. Ðогда пÑогÑамма загÑÑжаеÑÑÑ Ð² Vm-" "пÑоÑÑÑанÑÑво пÑоÑеÑÑа, ÑÑа облаÑÑÑ ÑнаÑала оÑобÑажаеÑÑÑ Ð² памÑÑÑ Ð¸ " "поддеÑживаеÑÑÑ Ð±Ð¸Ð½Ð°ÑнÑм Ñайлом пÑогÑаммÑ, позволÑÑ VM-ÑиÑÑеме оÑвобождаÑÑ/" -"повÑоÑно иÑполÑзоваÑÑ ÑÑÑаниÑÑ, а поÑом загÑÑжаÑÑ ÐµÐµ Ñнова из бинаÑного " +"повÑоÑно иÑполÑзоваÑÑ ÑÑÑаниÑÑ, а поÑом загÑÑжаÑÑ ÐµÑ Ñнова из бинаÑного " "Ñайла. Ðднако в моменÑ, когда пÑоÑеÑÑ Ð¸Ð·Ð¼ÐµÐ½ÑÐµÑ ÑÑи даннÑе, VM-ÑиÑÑема должна " "ÑделаÑÑ ÐºÐ¾Ð¿Ð¸Ñ ÑÑÑаниÑÑ, пÑинадлежаÑÑÑ ÑолÑко ÑÑÐ¾Ð¼Ñ Ð¿ÑоÑеÑÑÑ. Так как ÑÑа " "ÐºÐ¾Ð¿Ð¸Ñ Ð±Ñла изменена, Ñо VM-ÑиÑÑема не Ð¼Ð¾Ð¶ÐµÑ Ð±Ð¾Ð»ÑÑе оÑвобождаÑÑ ÑÑÑ ÑÑÑаниÑÑ, " -"Ñак как впоÑледÑÑвии ее невозможно бÑÐ´ÐµÑ Ð²Ð¾ÑÑÑановиÑÑ." +"Ñак как впоÑледÑÑвии ÐµÑ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ бÑÐ´ÐµÑ Ð²Ð¾ÑÑÑановиÑÑ." #. type: Plain text #: documentation/content/en/articles/vm-design/_index.adoc:118 @@ -302,7 +302,7 @@ msgstr "" "ÐÑ ÑÑÑ Ð¶Ðµ замеÑиÑе, ÑÑо Ñо, ÑÑо ÑнаÑала бÑло пÑоÑÑÑм оÑобÑажением Ñайла в " "памÑÑÑ, ÑÑановиÑÑÑ Ð³Ð¾Ñаздо более ÑложнÑм пÑедмеÑом. ÐаннÑе могÑÑ " "модиÑиÑиÑоваÑÑÑÑ Ð¿Ð¾ÑÑÑаниÑно, когда как оÑобÑажение Ñайла вÑполнÑеÑÑÑ Ð´Ð»Ñ " -"Ð¼Ð½Ð¾Ð³Ð¸Ñ ÑÑÑÐ°Ð½Ð¸Ñ Ð·Ð° Ñаз. СложноÑÑÑ ÐµÑе более ÑвелиÑиваеÑÑÑ, когда пÑоÑеÑÑ " +"Ð¼Ð½Ð¾Ð³Ð¸Ñ ÑÑÑÐ°Ð½Ð¸Ñ Ð·Ð° Ñаз. СложноÑÑÑ ÐµÑÑ Ð±Ð¾Ð»ÐµÐµ ÑвелиÑиваеÑÑÑ, когда пÑоÑеÑÑ " "вÑполнÑÐµÑ Ð²Ñзов fork. ÐÑи ÑÑом поÑождаÑÑÑÑ Ð´Ð²Ð° пÑоÑеÑÑа-каждÑй Ñо Ñ " "ÑобÑÑвеннÑм адÑеÑнÑм пÑоÑÑÑанÑÑвом, вклÑÑаÑÑим вÑе изменениÑ, вÑполненнÑе " "иÑÑ Ð¾Ð´Ð½Ñм пÑоÑеÑÑом до вÑзова ÑÑнкÑии `fork()`. ÐÑло Ð±Ñ Ð³Ð»Ñпо Ð´Ð»Ñ VM-ÑиÑÑÐµÐ¼Ñ " @@ -463,7 +463,7 @@ msgstr "" "коÑоÑой Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑÑолкнÑÑÑÑÑ, заклÑÑаеÑÑÑ Ð² ÑÑавниÑелÑно болÑÑой " "поÑледоваÑелÑноÑÑи ÑÑовней обÑекÑов VM, на ÑканиÑование коÑоÑÑÑ ÑÑаÑиÑÑÑ " "вÑÐµÐ¼Ñ Ð¸ памÑÑÑ. ÐолÑÑое колиÑеÑÑво ÑÑовней Ð¼Ð¾Ð¶ÐµÑ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½ÑÑÑ, когда пÑоÑеÑÑÑ " -"ÑазвеÑвлÑÑÑÑÑ, а заÑем ÑазвеÑвлÑÑÑÑÑ ÐµÑе Ñаз (как поÑожденнÑе, Ñак и " +"ÑазвеÑвлÑÑÑÑÑ, а заÑем ÑазвеÑвлÑÑÑÑÑ ÐµÑÑ Ñаз (как поÑожденнÑе, Ñак и " "поÑождаÑÑие). ÐÑоÑÐ°Ñ Ð¿Ñоблема заклÑÑаеÑÑÑ Ð² Ñом, ÑÑо Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑÑолкнÑÑÑÑÑ Ñ " "меÑÑвÑми, недоÑÑÑпнÑми ÑÑÑаниÑами глÑбоко в иеÑаÑÑ Ð¸Ð¸ обÑекÑов VM. РнаÑем " "поÑледнем пÑимеÑе еÑли как ÑодиÑелÑ, Ñак и поÑомок изменÑÑÑ Ð¾Ð´Ð½Ñ Ð¸ ÑÑ Ð¶Ðµ " @@ -505,8 +505,8 @@ msgstr "" "пÑедÑÑавленнÑй C1 и C2. Та же ÑÐ°Ð¼Ð°Ñ Ð¾Ð¿ÑимизаÑÐ¸Ñ Ð±ÑÐ´ÐµÑ ÑабоÑаÑÑ Ð² лÑбой ÑоÑке " "гÑаÑа и главнÑм ÑезÑлÑÑаÑом ÑÑого ÑвлÑеÑÑÑ Ñо, ÑÑо даже на ÑилÑно " "загÑÑженной маÑине Ñ Ð¼Ð½Ð¾Ð¶ÐµÑÑвом поÑождаемÑÑ Ð¿ÑоÑеÑÑов ÑÑеки обÑекÑов VM не " -"ÑаÑÑо бÑваÑÑ Ð³Ð»Ñбже ÑеÑÑÑÐµÑ ÑÑовней. ÐÑо Ñак как Ð´Ð»Ñ Ð¿Ð¾ÑождаÑÑего, Ñак и Ð´Ð»Ñ " -"поÑожденного пÑоÑеÑÑов, и оÑÑаеÑÑÑ Ð² Ñиле как в ÑлÑÑае, когда веÑвление " +"ÑаÑÑо бÑваÑÑ Ð³Ð»Ñбже ÑеÑÑÑÑÑ ÑÑовней. ÐÑо Ñак как Ð´Ð»Ñ Ð¿Ð¾ÑождаÑÑего, Ñак и Ð´Ð»Ñ " +"поÑожденного пÑоÑеÑÑов, и оÑÑаÑÑÑÑ Ð² Ñиле как в ÑлÑÑае, когда веÑвление " "Ð´ÐµÐ»Ð°ÐµÑ ÑодиÑелÑ, Ñак и в ÑлÑÑае, когда веÑвление вÑполнÑÐµÑ Ð¿Ð¾Ñомок." #. type: Plain text @@ -518,7 +518,7 @@ msgid "" "the system runs low on memory it will swap them out, eating a little swap, " "but that is it." msgstr "" -"ÐÑоблема Ñ Ð¼ÐµÑÑвой ÑÑÑаниÑей вÑе еÑе Ð¸Ð¼ÐµÐµÑ Ð¼ÐµÑÑо, когда C1 или C2 не " +"ÐÑоблема Ñ Ð¼ÐµÑÑвой ÑÑÑаниÑей вÑе еÑÑ Ð¸Ð¼ÐµÐµÑ Ð¼ÐµÑÑо, когда C1 или C2 не " "полноÑÑÑÑ Ð¿ÐµÑекÑÑваÑÑ B. Ðз-за дÑÑÐ³Ð¸Ñ Ð¿ÑименÑемÑÑ Ð½Ð°Ð¼Ð¸ меÑодов опÑимизаÑии " "ÑÑÐ¾Ñ ÑлÑÑай не пÑедÑÑавлÑÐµÑ Ð±Ð¾Ð»ÑÑой пÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ð¸ Ð¼Ñ Ð¿ÑоÑÑо позволÑем Ñаким " "ÑÑÑаниÑам ÑÑÑеÑÑвоваÑÑ. ÐÑли ÑиÑÑема иÑпÑÑÑÐ²Ð°ÐµÑ Ð½ÐµÑ Ð²Ð°ÑÐºÑ Ð¾Ð¿ÐµÑаÑивной памÑÑи, " @@ -566,7 +566,7 @@ msgstr "" "копиÑÑемÑми пÑи запиÑи или заполнÑемÑми нÑлÑми. Ðогда вÑполнÑеÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ðµ, " "и, ÑооÑвеÑÑÑвенно, копиÑование, наÑалÑное Ñ ÑанилиÑе обÑекÑа (обÑÑно Ñайл) не " "Ð¼Ð¾Ð¶ÐµÑ Ð±Ð¾Ð»ÑÑе иÑполÑзоваÑÑÑÑ Ð´Ð»Ñ Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸ ÑÑÑаниÑÑ, когда VM-ÑиÑÑеме " -"нÑжно иÑполÑзоваÑÑ ÐµÐµ повÑоÑно Ð´Ð»Ñ Ð´ÑÑÐ³Ð¸Ñ Ñелей. Ð ÑÑÐ¾Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð½Ð° помоÑÑ " +"нÑжно иÑполÑзоваÑÑ ÐµÑ Ð¿Ð¾Ð²ÑоÑно Ð´Ð»Ñ Ð´ÑÑÐ³Ð¸Ñ Ñелей. Ð ÑÑÐ¾Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð½Ð° помоÑÑ " "пÑÐ¸Ñ Ð¾Ð´Ð¸Ñ Ð¾Ð±Ð»Ð°ÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки. ÐблаÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки вÑделÑеÑÑÑ Ð´Ð»Ñ Ð¾ÑганизаÑии " "Ñ ÑанилиÑа памÑÑи, коÑоÑÐ°Ñ Ð¸Ð½Ð°Ñе не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð´Ð¾ÑÑÑпна. FreeBSD ÑÐ¾Ð·Ð´Ð°ÐµÑ " "ÑÑÑÑкÑÑÑÑ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´ÐºÐ°Ñкой Ð´Ð»Ñ Ð¾Ð±ÑекÑа VM, ÑолÑко когда ÑÑо " @@ -587,7 +587,7 @@ msgstr "" "облаÑÑи подкаÑки-даже еÑли ÑолÑко неÑколÑко ÑÑÑÐ°Ð½Ð¸Ñ ÑÑого обÑекÑа Ñ ÑанÑÑÑÑ Ð² " "облаÑÑи подкаÑки. ÐÑо ÑÐ¾Ð·Ð´Ð°ÐµÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ ÑÑагменÑаÑии памÑÑи ÑдÑа в ÑлÑÑае, " "когда в памÑÑÑ Ð¾ÑобÑажаÑÑÑÑ Ð±Ð¾Ð»ÑÑие обÑекÑÑ Ð¸Ð»Ð¸ когда веÑвÑÑÑÑ Ð¿ÑоÑеÑÑÑ, " -"занимаÑÑие болÑÑой обÑем памÑÑи пÑи ÑабоÑе (RSS)." +"занимаÑÑие болÑÑой обÑÑм памÑÑи пÑи ÑабоÑе (RSS)." #. type: Plain text #: documentation/content/en/articles/vm-design/_index.adoc:197 @@ -600,7 +600,7 @@ msgstr "" "Также Ð´Ð»Ñ Ð¾ÑÑÐ»ÐµÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи подкаÑки в памÑÑи ÑдÑа поддеÑживаеÑÑÑ \"ÑпиÑок " "дÑÑ\", и он Ñакже неÑколÑко ÑÑагменÑиÑован. Так как \"ÑпиÑок дÑÑ\" ÑвлÑеÑÑÑ " "поÑледоваÑелÑнÑм ÑпиÑком, Ñо пÑоизводиÑелÑноÑÑÑ Ð¿Ñи ÑаÑпÑеделении и " -"вÑÑвобождении памÑÑи в облаÑÑи подкаÑки неопÑималÑно и ее ÑложноÑÑÑ Ð·Ð°Ð²Ð¸ÑÐ¸Ñ " +"вÑÑвобождении памÑÑи в облаÑÑи подкаÑки неопÑималÑно и ÐµÑ ÑложноÑÑÑ Ð·Ð°Ð²Ð¸ÑÐ¸Ñ " "Ð¾Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑва ÑÑÑÐ°Ð½Ð¸Ñ ÐºÐ°Ðº O(n)." #. type: Plain text @@ -618,7 +618,7 @@ msgid "" "The problem is further exacerbated by holes created due to the interleaving " "algorithm." msgstr "" -"ÐÑоблема еÑе более обоÑÑÑÑеÑÑÑ Ð¸Ð·-за дÑÑ, ÑоздаваемÑÑ Ð¿Ð¾ ÑеÑедÑÑÑемÑÑÑ " +"ÐÑоблема еÑÑ Ð±Ð¾Ð»ÐµÐµ обоÑÑÑÑеÑÑÑ Ð¸Ð·-за дÑÑ, ÑоздаваемÑÑ Ð¿Ð¾ ÑеÑедÑÑÑемÑÑÑ " "алгоÑиÑмÑ." #. type: Plain text @@ -656,7 +656,7 @@ msgid "" "linear array giving them a fixed allocation size and much finer granularity." msgstr "" "СÑÑÑкÑÑÑÑ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ð±Ð»Ð°ÑÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки ÑаÑпÑеделÑÑÑÑÑ Ð¿Ñи помоÑи Ñ ÑÑ-" -"ÑаблиÑÑ, а не ÑеÑез линейнÑй маÑÑив, ÑÑо Ð´Ð°ÐµÑ Ð¸Ð¼ ÑикÑиÑованнÑй ÑÐ°Ð·Ð¼ÐµÑ Ð¿Ñи " +"ÑаблиÑÑ, а не ÑеÑез линейнÑй маÑÑив, ÑÑо даÑÑ Ð¸Ð¼ ÑикÑиÑованнÑй ÑÐ°Ð·Ð¼ÐµÑ Ð¿Ñи " "ÑаÑпÑеделении и ÑабоÑÑ Ñ Ð³Ð¾Ñаздо менÑÑими ÑÑÑÑкÑÑÑами." #. type: Plain text @@ -684,7 +684,7 @@ msgid "" msgstr "" "ÐÑе деÑево Ñакже ÑаÑпÑеделÑеÑÑÑ Ð·Ð°Ñанее Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð¸Ð·Ð±ÐµÐ¶Ð°ÑÑ " "ÑаÑпÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи ÑдÑа во вÑÐµÐ¼Ñ Ð¾Ð¿ÐµÑаÑий Ñ Ð¾Ð±Ð»Ð°ÑÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки пÑи " -"кÑиÑиÑеÑки малом обÑеме Ñвободной памÑÑи. РконÑе конÑов, ÑиÑÑема обÑаÑаеÑÑÑ " +"кÑиÑиÑеÑки малом обÑÑме Ñвободной памÑÑи. РконÑе конÑов, ÑиÑÑема обÑаÑаеÑÑÑ " "к облаÑÑи подкаÑки пÑи Ð½ÐµÑ Ð²Ð°Ñке памÑÑи, Ñак ÑÑо Ð¼Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸Ð·Ð±ÐµÐ¶Ð°ÑÑ " "ÑаÑпÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи ÑдÑа в Ñакие моменÑÑ Ð´Ð»Ñ Ð¸Ð·Ð±ÐµÐ¶Ð°Ð½Ð¸Ñ Ð¿Ð¾ÑенÑиалÑнÑÑ " "блокиÑовок." @@ -806,7 +806,7 @@ msgstr "" "и ÑÐ½Ð¸Ð¼Ð°ÐµÑ Ð·Ð°ÑиÑÑ Ñо ÑÑÑаниÑÑ, Ñак ÑÑо она Ð¼Ð¾Ð¶ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ. ХоÑÑ " "иÑполÑзование Ñакого пÑиема ÑолÑко Ð´Ð»Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÑÑаниÑÑ " "веÑÑма накладно, ÑÑо вÑгоднее, Ñем повÑоÑно иÑполÑзоваÑÑ ÑÑÑаниÑÑ Ð´Ð»Ñ Ð´ÑÑÐ³Ð¸Ñ " -"Ñелей и обнаÑÑжиÑÑ, ÑÑо она Ñнова нÑжна пÑоÑеÑÑÑ Ð¸ подгÑÑжаÑÑ ÐµÐµ Ñ Ð´Ð¸Ñка." +"Ñелей и обнаÑÑжиÑÑ, ÑÑо она Ñнова нÑжна пÑоÑеÑÑÑ Ð¸ подгÑÑжаÑÑ ÐµÑ Ñ Ð´Ð¸Ñка." #. type: Plain text #: documentation/content/en/articles/vm-design/_index.adoc:245 @@ -834,7 +834,7 @@ msgstr "" "Ð´Ð»Ñ Ð¿Ð¾Ð²ÑоÑного иÑполÑзованиÑ, а Ñакже Ð´Ð»Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñого, когда же гÑÑзнÑе " "ÑÑÑаниÑÑ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ ÑбÑоÑÐµÐ½Ñ Ð² Ñ ÑанилиÑе. Так как ÑаблиÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ð²Ð¾ " "FreeBSD ÑвлÑÑÑÑÑ Ð´Ð¸Ð½Ð°Ð¼Ð¸ÑеÑкими обÑекÑами, пÑакÑиÑеÑки ниÑего не ÑÑÐ¾Ð¸Ñ " -"вÑÑезаÑÑ ÑÑÑаниÑÑ Ð¸Ð· адÑеÑного пÑоÑÑÑанÑÑва лÑбого иÑполÑзÑÑÑего ее " +"вÑÑезаÑÑ ÑÑÑаниÑÑ Ð¸Ð· адÑеÑного пÑоÑÑÑанÑÑва лÑбого иÑполÑзÑÑÑего ÐµÑ " "пÑоÑеÑÑа. ÐоÑле Ñого, как Ð¿Ð¾Ð´Ñ Ð¾Ð´ÑÑÐ°Ñ ÑÑÑаниÑа, на оÑнове ÑÑеÑÑика " "иÑполÑзованиÑ, вÑбÑана, именно ÑÑо и вÑполнÑеÑÑÑ. СиÑÑема должна оÑлиÑаÑÑ " "Ð¼ÐµÐ¶Ð´Ñ ÑиÑÑÑми ÑÑÑаниÑами, коÑоÑÑе ÑеоÑеÑиÑеÑки могÑÑ Ð±ÑÑÑ Ð²ÑÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ñ Ð² " @@ -889,7 +889,7 @@ msgstr "" "деле FreeBSD ÑÑаÑаеÑÑÑ ÑбÑоÑиÑÑ Ð½Ð° диÑк неиÑполÑзÑемÑе ÑÑÑаниÑÑ Ð´Ð»Ñ " "оÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¼ÐµÑÑа под диÑковÑй кÑÑ, когда как Linux Ñ ÑÐ°Ð½Ð¸Ñ Ð½ÐµÐ¸ÑполÑзÑемÑе " "ÑÑÑаниÑÑ Ð² памÑÑи и оÑÑавлÑÐµÑ Ð¿Ð¾Ð´ кÑÑ Ð¸ ÑÑÑаниÑÑ Ð¿ÑоÑеÑÑов менÑÑе памÑÑи. Я " -"не знаÑ, оÑÑаеÑÑÑ Ð»Ð¸ ÑÑо пÑавдой на ÑегоднÑÑний денÑ." +"не знаÑ, оÑÑаÑÑÑÑ Ð»Ð¸ ÑÑо пÑавдой на ÑегоднÑÑний денÑ." #. type: Title == #: documentation/content/en/articles/vm-design/_index.adoc:255 @@ -928,10 +928,10 @@ msgstr "" "пÑиÑÑÑÑÑвÑÑÑ Ð² кÑÑе VM, Ñак ÑÑо FreeBSD бÑÐ´ÐµÑ Ð¿ÑÑаÑÑÑÑ Ð²Ð¾ÑÑÑанавливаÑÑ " "ÑаблиÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ð¿ÑоÑеÑÑа из ÑÐµÑ ÑÑÑаниÑ, ÑÑо Ñже ÑаÑполагаÑÑÑÑ Ð² VM-кÑÑе. " "Ðднако во FreeBSD пока не вÑполнÑеÑÑÑ Ð¿ÑедваÑиÑелÑное копиÑование пÑи запиÑи " -"опÑеделеннÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ñи вÑполнении вÑзова exec. ÐапÑимеÑ, еÑли Ð²Ñ " +"опÑеделÑннÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ñи вÑполнении вÑзова exec. ÐапÑимеÑ, еÑли Ð²Ñ " "запÑÑкаеÑе пÑогÑÐ°Ð¼Ð¼Ñ man:ls[1] одновÑеменно Ñ ÑабоÑаÑÑей `vmstat 1`, Ñо " "замеÑиÑе, ÑÑо она вÑегда вÑÐ´Ð°ÐµÑ Ð½ÐµÐºÐ¾ÑоÑое колиÑеÑÑво оÑибок доÑÑÑпа к " -"ÑÑÑаниÑам, даже когда Ð²Ñ Ð·Ð°Ð¿ÑÑкаеÑе ее Ñнова и Ñнова. ÐÑо оÑибки Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ " +"ÑÑÑаниÑам, даже когда Ð²Ñ Ð·Ð°Ð¿ÑÑкаеÑе ÐµÑ Ñнова и Ñнова. ÐÑо оÑибки Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ " "нÑлÑми, а не оÑибки кода пÑогÑÐ°Ð¼Ð¼Ñ (коÑоÑÑе Ñже бÑли обÑабоÑанÑ). " "ÐÑедваÑиÑелÑное копиÑование ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ñи вÑполнении вÑзовов exec или fork " "Ð½Ð°Ñ Ð¾Ð´ÑÑÑÑ Ð² облаÑÑи, ÑÑебÑÑÑей более ÑÑаÑелÑного изÑÑениÑ." @@ -958,7 +958,7 @@ msgstr "" "облаÑÑи BSS. ÐблаÑÑÑ BSS пÑедполагаеÑÑÑ Ð¸Ð·Ð½Ð°ÑалÑно заполненной нÑлÑми, но VM-" "ÑиÑÑема не забоÑиÑÑÑ Ð¾ вÑделении памÑÑи до ÑÐµÑ Ð¿Ð¾Ñ, пока пÑоÑеÑÑ ÑеалÑно к " "ней не обÑаÑиÑÑÑ. ÐÑи возникновении оÑибки VM-ÑиÑÑема должна не ÑолÑко " -"вÑделиÑÑ Ð½Ð¾Ð²ÑÑ ÑÑÑаниÑÑ, но и заполниÑÑ ÐµÐµ нÑлÑми. ÐÐ»Ñ Ð¾Ð¿ÑимизаÑии опеÑаÑии " +"вÑделиÑÑ Ð½Ð¾Ð²ÑÑ ÑÑÑаниÑÑ, но и заполниÑÑ ÐµÑ Ð½ÑлÑми. ÐÐ»Ñ Ð¾Ð¿ÑимизаÑии опеÑаÑии " "по Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð½ÑлÑми в ÑиÑÑеме VM имееÑÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð¿ÑедваÑиÑелÑно " "обнÑлÑÑÑ ÑÑÑаниÑÑ Ð¸ помеÑаÑÑ Ð¸Ñ , и запÑаÑиваÑÑ Ñже обнÑленнÑе ÑÑÑаниÑÑ Ð¿Ñи " "возникновении оÑибок Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð½ÑлÑми. ÐÑедваÑиÑелÑное заполнение нÑлÑми " @@ -1006,9 +1006,9 @@ msgstr "" "ÑвÑзана в ÑÑÑÑкÑÑÑÑ `vm_page`. FreeBSD Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑоÑÑо пÑоÑмаÑÑиваÑÑ ÑÑи " "оÑобÑажениÑ, коÑоÑÑе ÑÑÑеÑÑвÑÑÑ, когда как в Linux Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¿ÑовеÑÑÑÑÑÑ Ð²Ñе " "ÑаблиÑÑ ÑÑÑаниÑ, коÑоÑÑе _могÑÑ_ ÑодеÑжаÑÑ Ð½Ñжное оÑобÑажение, ÑÑо в " -"некоÑоÑÑÑ ÑиÑÑаÑÐ¸Ñ Ð´Ð°ÐµÑ ÑвелиÑение ÑложноÑÑи O(n^2). Ðз-за Ñого, ÑÑо FreeBSD " +"некоÑоÑÑÑ ÑиÑÑаÑÐ¸Ñ Ð´Ð°ÑÑ ÑвелиÑение ÑложноÑÑи O(n^2). Ðз-за Ñого, ÑÑо FreeBSD " "ÑÑÑемиÑÑÑ Ð²ÑбÑаÑÑ Ð½Ð°Ð¸Ð±Ð¾Ð»ÐµÐµ Ð¿Ð¾Ð´Ñ Ð¾Ð´ÑÑÑÑ Ðº повÑоÑÐ½Ð¾Ð¼Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð»Ð¸ ÑбÑоÑÑ " -"в облаÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки ÑÑÑаниÑÑ, когда оÑÑÑаеÑÑÑ Ð½ÐµÑ Ð²Ð°Ñка памÑÑи, ÑиÑÑема Ð´Ð°ÐµÑ " +"в облаÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки ÑÑÑаниÑÑ, когда оÑÑÑаеÑÑÑ Ð½ÐµÑ Ð²Ð°Ñка памÑÑи, ÑиÑÑема даÑÑ " "лÑÑÑÑÑ Ð¿ÑоизводиÑелÑноÑÑÑ Ð¿Ñи нагÑÑзке. Ðднако во FreeBSD ÑÑебÑеÑÑÑ ÑÐ¾Ð½ÐºÐ°Ñ " "наÑÑÑойка ÑдÑа Ð´Ð»Ñ ÑооÑвеÑÑÑÐ²Ð¸Ñ ÑиÑÑаÑиÑм Ñ Ð±Ð¾Ð»ÑÑим ÑовмеÑÑно иÑполÑзÑемÑм " "адÑеÑнÑм пÑоÑÑÑанÑÑвом, коÑоÑÑе могÑÑ ÑлÑÑиÑÑÑÑ Ð² ÑиÑÑеме, обÑлÑживаÑÑей " @@ -1093,11 +1093,11 @@ msgid "" msgstr "" "FreeBSD иÑполÑзÑÐµÑ Ð² облаÑÑи подкаÑки Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼ ÑеÑедованиÑ, Ñ Ð¸Ð½Ð´ÐµÐºÑом по " "ÑмолÑаниÑ, ÑавнÑм ÑеÑÑÑем. ÐÑо ознаÑаеÑ, ÑÑо FreeBSD ÑезеÑвиÑÑÐµÑ " -"пÑоÑÑÑанÑÑво Ð´Ð»Ñ ÑеÑÑÑÐµÑ Ð¾Ð±Ð»Ð°ÑÑей подкаÑки, даже еÑли Ñ Ð²Ð°Ñ Ð¸Ð¼ÐµÐµÑÑÑ Ð²Ñего " +"пÑоÑÑÑанÑÑво Ð´Ð»Ñ ÑеÑÑÑÑÑ Ð¾Ð±Ð»Ð°ÑÑей подкаÑки, даже еÑли Ñ Ð²Ð°Ñ Ð¸Ð¼ÐµÐµÑÑÑ Ð²Ñего " "лиÑÑ Ð¾Ð´Ð½Ð°, две или ÑÑи облаÑÑи. Так как в облаÑÑи подкаÑки имееÑÑÑ " "ÑеÑедование, Ñо линейное адÑеÑное пÑоÑÑÑанÑÑво, пÑедÑÑавлÑÑÑее \"ÑеÑÑÑе " "облаÑÑи подкаÑки\", бÑÐ´ÐµÑ ÑÑагменÑиÑоваÑÑÑÑ, еÑли Ñ Ð²Ð°Ñ Ð½ÐµÑ Ð½Ð° Ñамом деле " -"ÑеÑÑÑÐµÑ Ð¾Ð±Ð»Ð°ÑÑей подкаÑки. ÐапÑимеÑ, еÑли Ñ Ð²Ð°Ñ Ð´Ð²Ðµ облаÑÑи A и B, Ñо " +"ÑеÑÑÑÑÑ Ð¾Ð±Ð»Ð°ÑÑей подкаÑки. ÐапÑимеÑ, еÑли Ñ Ð²Ð°Ñ Ð´Ð²Ðµ облаÑÑи A и B, Ñо " "пÑедÑÑавление адÑеÑного пÑоÑÑÑанÑÑва Ð´Ð»Ñ ÑÑой облаÑÑи подкаÑки во FreeBSD " "бÑÐ´ÐµÑ Ð¾Ñганизовано Ñ ÑеÑедованием блоков из 16 ÑÑÑаниÑ:" @@ -1126,7 +1126,7 @@ msgstr "" ".c#). Ðо из-за ÑÑагменÑаÑии поÑледоваÑелÑнÑй ÑпиÑок Ñам ÑÑановиÑÑÑ " "ÑÑагменÑиÑованнÑм. РпÑимеÑе вÑÑе полноÑÑÑÑ Ð½ÐµÐ¸ÑполÑзÑемое пÑоÑÑÑанÑÑво в A " "и B бÑÐ´ÐµÑ Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ð¾ как \"Ñвободное\", а C и D как \"полноÑÑÑÑ Ð·Ð°Ð½ÑÑое\". " -"Ðаждой поÑледоваÑелÑноÑÑи A-B ÑÑебÑеÑÑÑ Ð´Ð»Ñ ÑÑеÑа Ñзел ÑпиÑка, поÑÐ¾Ð¼Ñ ÑÑо C " +"Ðаждой поÑледоваÑелÑноÑÑи A-B ÑÑебÑеÑÑÑ Ð´Ð»Ñ ÑÑÑÑа Ñзел ÑпиÑка, поÑÐ¾Ð¼Ñ ÑÑо C " "и D ÑвлÑÑÑÑÑ Ð´ÑÑами, Ñак ÑÑо Ñзел ÑпиÑка не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑвÑзан Ñо ÑледÑÑÑей " "поÑледоваÑелÑноÑÑÑÑ A-B." @@ -1182,7 +1182,7 @@ msgstr "" "ÑÑебÑемÑÑ Ð´Ð»Ñ Ð²Ñей облаÑÑи подкаÑки, но пÑи ÑÑом ÑÑаÑиÑÑÑ Ð¼ÐµÐ½ÑÑе памÑÑи, " "поÑÐ¾Ð¼Ñ ÑÑо Ð¼Ñ Ð¸ÑполÑзÑем биÑовÑе каÑÑÑ (один Ð±Ð¸Ñ Ð½Ð° блок), а не ÑвÑзаннÑй " "ÑпиÑок Ñзлов. ÐÑполÑзование базиÑного деÑева вмеÑÑо поÑледоваÑелÑного ÑпиÑка " -"Ð´Ð°ÐµÑ Ð½Ð°Ð¼ пÑоизводиÑелÑноÑÑÑ O(1) вне завиÑимоÑÑи Ð¾Ñ ÑÑагменÑаÑии деÑева." +"даÑÑ Ð½Ð°Ð¼ пÑоизводиÑелÑноÑÑÑ O(1) вне завиÑимоÑÑи Ð¾Ñ ÑÑагменÑаÑии деÑева." #. type: Title === #: documentation/content/en/articles/vm-design/_index.adoc:331 @@ -1244,7 +1244,7 @@ msgstr "" "ÐÐµÑ Ð°Ð½Ð¸Ð·Ð¼ в лÑбом ÑлÑÑае один и ÑÐ¾Ñ Ð¶Ðµ, поÑÐ¾Ð¼Ñ ÑÑо Ñ ÑанилиÑе даннÑÑ Ð¿ÑогÑÐ°Ð¼Ð¼Ñ " "Ñже в кÑÑе. Я на Ñамом деле не Ñад ни ÑомÑ, ни дÑÑгомÑ. FreeBSD не вÑполнÑÐµÑ " "пÑедваÑиÑелÑное COW даннÑÑ Ð¿ÑогÑÐ°Ð¼Ð¼Ñ Ð¸ заполнение нÑлÑми, но она _вÑполнÑеÑ_ " -"пÑедваÑиÑелÑно оÑобÑажение ÑÑÑаниÑ, коÑоÑÑе имеÑÑÑÑ Ð² ее кÑÑе." +"пÑедваÑиÑелÑно оÑобÑажение ÑÑÑаниÑ, коÑоÑÑе имеÑÑÑÑ Ð² ÐµÑ ÐºÑÑе." #. type: Title === #: documentation/content/en/articles/vm-design/_index.adoc:346 @@ -1267,7 +1267,7 @@ msgid "" msgstr "" "`vm_page` пÑедÑÑавлÑÐµÑ Ñобой паÑÑ (object,index#). `pv_entry` ÑвлÑеÑÑÑ " "запиÑÑÑ Ð¸Ð· аппаÑаÑной ÑаблиÑÑ ÑÑÑÐ°Ð½Ð¸Ñ (pte). ÐÑли Ñ Ð²Ð°Ñ Ð¸Ð¼ÐµÐµÑÑÑ Ð¿ÑÑÑ " -"пÑоÑеÑÑов, ÑовмеÑÑно иÑполÑзÑÑÑÐ¸Ñ Ð¾Ð´Ð½Ñ Ð¸ ÑÑ Ð¶Ðµ ÑизиÑеÑкÑÑ ÑÑÑаниÑÑ, и в ÑÑÐµÑ " +"пÑоÑеÑÑов, ÑовмеÑÑно иÑполÑзÑÑÑÐ¸Ñ Ð¾Ð´Ð½Ñ Ð¸ ÑÑ Ð¶Ðµ ÑизиÑеÑкÑÑ ÑÑÑаниÑÑ, и в ÑÑÑÑ " "ÑаблиÑÐ°Ñ ÑÑÑÐ°Ð½Ð¸Ñ ÑÑÐ¸Ñ Ð¿ÑоÑеÑÑов на Ñамом деле оÑобÑажаеÑÑÑ ÑÑÑаниÑа, Ñо " "ÑÑÑаниÑа бÑÐ´ÐµÑ Ð¿ÑедÑÑавлÑÑÑÑÑ Ð¾Ð´Ð½Ð¾Ð¹ ÑÑÑÑкÑÑÑой `vm_page` и ÑÑÐµÐ¼Ñ ÑÑÑÑкÑÑÑами " "`pv_entry`." @@ -1285,7 +1285,7 @@ msgstr "" "СÑÑÑкÑÑÑÑ `pv_entry` пÑедÑÑавлÑÑÑ ÑÑÑаниÑÑ, оÑобÑажаемÑе MMU (одна ÑÑÑÑкÑÑÑа " "`pv_entry` ÑооÑвеÑÑÑвÑÐµÑ Ð¾Ð´Ð½Ð¾Ð¹ pte). ÐÑо ознаÑаеÑ, ÑÑо, когда нам нÑжно " "ÑбÑаÑÑ Ð²Ñе аппаÑаÑнÑе ÑÑÑлки на `vm_page` (Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð²ÑоÑно " -"иÑполÑзоваÑÑ ÑÑÑаниÑÑ Ð´Ð»Ñ Ñего-Ñо еÑе, вÑгÑÑзиÑÑ ÐµÐµ, оÑиÑÑиÑÑ, помеÑиÑÑ ÐºÐ°Ðº " +"иÑполÑзоваÑÑ ÑÑÑаниÑÑ Ð´Ð»Ñ Ñего-Ñо еÑÑ, вÑгÑÑзиÑÑ ÐµÑ, оÑиÑÑиÑÑ, помеÑиÑÑ ÐºÐ°Ðº " "гÑÑзнÑÑ Ð¸ Ñак далее), Ð¼Ñ Ð¼Ð¾Ð¶ÐµÐ¼ пÑоÑÑо пÑоÑмоÑÑеÑÑ ÑвÑзнÑй ÑпиÑок ÑÑÑÑкÑÑÑ " "`pv_entry`, ÑвÑзаннÑÑ Ñ ÑÑой `vm_page`, Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ ÑдалиÑÑ Ð¸Ð»Ð¸ измениÑÑ " "pte из Ð¸Ñ ÑÐ°Ð±Ð»Ð¸Ñ ÑÑÑаниÑ." @@ -1346,7 +1346,7 @@ msgid "" msgstr "" "Ðо во FreeBSD имееÑÑÑ Ð¿Ñоблема маÑÑÑабиÑованиÑ, коÑоÑой Ð½ÐµÑ Ð² Linux, поÑÐ¾Ð¼Ñ " "ÑÑо имееÑÑÑ Ð¾Ð³ÑаниÑенное ÑиÑло ÑÑÑÑкÑÑÑ `pv_entry`, и ÑÑо пÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº " -"Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½Ð¾Ð²ÐµÐ½Ð¸Ñ Ð¿Ñоблем пÑи болÑÑом обÑеме ÑовмеÑÑно иÑполÑзÑемÑÑ Ð´Ð°Ð½Ð½ÑÑ . Ð " +"Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½Ð¾Ð²ÐµÐ½Ð¸Ñ Ð¿Ñоблем пÑи болÑÑом обÑÑме ÑовмеÑÑно иÑполÑзÑемÑÑ Ð´Ð°Ð½Ð½ÑÑ . Ð " "ÑÑом ÑлÑÑае Ñ Ð²Ð°Ñ Ð¼Ð¾Ð¶ÐµÑ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½ÑÑÑ Ð½ÐµÑ Ð²Ð°Ñка ÑÑÑÑкÑÑÑ `pv_entry`, даже еÑли " "Ñвободной памÑÑи Ñ Ð²Ð°ÑаеÑ. ÐÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð´Ð¾ÑÑаÑоÑно легко иÑпÑавлено " "ÑвелиÑением колиÑеÑÑва ÑÑÑÑкÑÑÑ `pv_entry` пÑи наÑÑÑойке, но на Ñамом деле "