Да, пожалуй, вы правы. (Хотя привязка к квартире выглядит логичной — ведь она, а не человек, является залогом, но везде свои нюансы, да).
Я без претензии, просто удивил этот момент, а так как вероятно буду брать ипотеку и в РФ, попутно выяснил местные особенности.
Спасибо за информацию.
Мне это нужно для poor man's препроцессинга как метки определенных точек.
Просто IE отказался читать такое, хотя вроде по стандарту комментарий может быть где угодно между term'ами. Вот и думаю — то ли IE сачкует, то ли я стандарт неправильно понимаю.
Понятно, значит, таковы особенности национального законодательства. Жаль, если в России так через ж. сделана эта отрасль. Теперь я понимаю, почему при обсуждении ипотеки в России противники приводят аргумент «а если продать надо — то что?».
Есть и еще нюансы. Вы предполагаете что у банка из-за ипотеки есть первоочередное право на доступ к деньгам — это не так, деньги на счету покупателя это деньги покупателя.
Ну ясно. Когда я брал ипотеку в ЕС, мне, как покупателю, деньги перевели на счет дай бог на миллисекунду — я их и понюхать не успел. Все сделано одной транзакцией, нет пространства для кидка или форс-мажора какого-то, учитывая, что делается все через нотариуса одним актом, что сама купля-продажа, что переоформление ипотеки с банка на банк, идут пачкой.
С MBR на удивление не сложно именно загрузиться, даже с флэшки. Заморочки, как я понял, только на флопиках были, там какая-то дополнительная структура нужна.
Везде одинаково: BIOS грузит нулевой сектор по 7c00h и передает туда управление. Все остальное — личное интимное дело конкретной системы.
требующие скармливания дополнительных инструкций линкеру. В самом общем случае под большинство ОС программы предпочитают начинаться с начала адресного пространства. В том же Windows дела обстоят так: 0x00000000 — 0x0000FFFF: нулевые указатели, 0x00010000 — 0x7FFEFFFF: память программы, 0x80000000 — 0xFFFFFFFF: память ядра.
Ну, положим, то, где начинается память, зависит от того, где ОС ее выдаст, тут линкер ни при чем. Линкер всего-навсего поменяет base address, это один дополнительный ключ.
Про нулевые указатели — guard page — я писал выше и так
Интересно, а транслятор сможет это оптимизировать в out dx, al
Без наложения маски и инлайном? Я не к тому, что это надо, просто интересно.
Сегменты и их типы (код, данные, трапы, гейты) должны быть описаны в глобальной дескрипторной таблице GDT, виртуальный адрес и размер которой загружается в регистр GDTR
Или в локальной LDT.
Если мы собираемся использовать не плоские глобальные сегменты, а выдавать каждой задаче свои, то места в GDT всем не хватит. Разместив дескрипторы в LDT (скажем, код-данные-стек-служебное что-то), мы займем в GDT только одну ячейку и 4 — в LDT данной задачи.
Да, можно инициализировать сегменты сначала, а страничную адресацию — потом, или вовсе ею не пользоваться.
Нет, не только для свопа. ВАП нужно, в первую очередь (имхо), для 1) расположения некоторых модулей по пересекающимся адресам, 2)реализации поведения copy-on-write, 3) для преодоления фрагментации физической памяти. При страничной адресации у вас по-прежнему может фрагментироваться ВАП одного процесса, но это будут лишь его личне половые проблемы. Без страничной адресации вы быстро попадаете на ситуацию вида:
1. гигабайт — занят
2. гигабайт — свободен
3. гигабайт — занят
4. гигабайт — свободен
У вас 2 гига свободной памяти, а дать программе буффер в 1.5 гига вы не можете.
4) guard pages для стеков и для поимки null-pointer dereference
…
…
Если посмотреть, как именно компиляторы собирают программы на этапе линковки, то окажется, что они начинаются с линейного адреса ноль или около ноля. Это значит, что если образ ядра займет пространство памяти около ноля, программы собранные таким образом не смогут исполняться, любая jmp инструкция программы приведет ко входу в защищенную память ядра и ошибке защиты. Поэтому если мы хотим в будущем пользоваться не только самописными программами, разумно отдать приложению как можно больший кусок памяти около ноля, а образ ядра разместить повыше.
Вот этот кусок понять не смог.
Линкер собирает программу с опорой на BaseAddress, который в общем случае, может быть любым. Нам ведь никто не запрещает разместить ядро по адресу, скажем, 1000h (нулевая страница — guard), а все прикладные программы компоновать с адресом загрузки 80000000h.
Проблема будет лишь в том случае, если вы хотите запустить программу, написанную и собранную под другую ОС без перекомпоновки (что возможно только если ваш API полностью бинарно совместим, а это вряд ли).
Главное, чем хочу поделиться — страницы это не сегменты! Пожалуйста, не повторяйте мою ошибку и не грузите адрес таблицы страниц в GDTR! Для таблицы страниц предназначен регистр CR3!
Даже затрудняюсь представить, как можно было так подумать…
для простоты работы (чтобы иметь только одну таблицу страниц), я выбрал размер в 4 МиБ за счет включения PSE.
А как же потери при небольших размещениях? Не велика гранулярность для 32 бит?
И для многих денег даже не хватает на неизбежные расходы сейчас. Не верите мне? Вот вам пруф:
Не совсем. Если посмотреть отчет — он там доступен по ссылке, то 38% из резюме отчета — они из таблицы А2:
Субъективная оценка бедности: крайне бедные (денег не хватает даже на продукты) или бедные (денег не хватает на одежду) 38%
При этом:
В том числе, крайне бедные (денег не хватает даже на продукты) — 8,4%
Т.е. 30% из них не могут купить ту или иную одежду — без уточнения, какую именно.
Это очень плохо, но «не хватает на неизбежные расходы» и тем более «38% не могут купить продукты» немного некорректно.
При этом, если вы посмотрите разбивку по местности, то при средних 38% на миллионники приходится 29,7%, остальные города — 37,6, сельскую местность — 44,1%. Это к вопросу «как там в крупных городах».
Более важный, на мой взгляд, показатель — задержка с коммунальными платежами и покупкой лекарств: 42,31% в среднем, 44% для миллионников.
Хм… пришел, загрузил килограмм 7-10 белья рублей за 100-150 (наверно, давно не пользовался) — по-моему, bargain.
А стирать одну вещь в прачечной — спецолимпиада вообще. Тут тазик и порошок в помощь.
О той, очевидно, когда один ипотечник продает квартиру другому ипотечнику. Не понимаю, в чем проблема.
Покупатель или продавец делают оценочный акт, любой банк одобряет ипотеку поткупателю на эту квартиру. Дальше все последовательно — банк покупателя переводит покупателю же деньги на его счет с блокировкой, оттуда по платежному поручению — сразу продавцу. Он, поскольку квартира обременена ипотекой, тоже не получает доступа к этим деньгам — у банка первоочередное право, он вычитает из этой суммы остаток долга продавца по ипотеке. Здесь же нотариально снимается старая ипотека и ставится новая.
Почему это должно вызывать хоть какие-то проблемы? Как кто-то что-то может потерять?
Но дело не в записях в базу
А я и не говорю о записях в базу.
Я говорю, что процесс в реальной жизни происходит как транзакция в БД — процесс не может повиснуть на середине, допустимы только два крайних состояния.
Стирать — в прачечной самообслуживания, на крайняк — руками. С холодильником сложнее, зависит от того, какого возраста дети, можно ли переждать без него.
В противном случае банк имеет риск снять залог с квартиры, но из-за срыва сделки по какой-нибудь причине не получить денег по кредиту выданному под нее
Так как, если это все делается через нотариуса, одним действием, как в SQL транзакции? Будут на сделке представители обоих банков — прежнего держателя ипотеки и нового. Нет?
Да и не один надо хранить! А то будет правило типа «пароль не должен совпадать со старыми, хотя бы тремя предыдущими» — надо ж их хранить для сравнения!!!!11!1!
Я без претензии, просто удивил этот момент, а так как вероятно буду брать ипотеку и в РФ, попутно выяснил местные особенности.
Спасибо за информацию.
Просто IE отказался читать такое, хотя вроде по стандарту комментарий может быть где угодно между term'ами. Вот и думаю — то ли IE сачкует, то ли я стандарт неправильно понимаю.
Ну ясно. Когда я брал ипотеку в ЕС, мне, как покупателю, деньги перевели на счет дай бог на миллисекунду — я их и понюхать не успел. Все сделано одной транзакцией, нет пространства для кидка или форс-мажора какого-то, учитывая, что делается все через нотариуса одним актом, что сама купля-продажа, что переоформление ипотеки с банка на банк, идут пачкой.
Везде одинаково: BIOS грузит нулевой сектор по 7c00h и передает туда управление. Все остальное — личное интимное дело конкретной системы.
Ну, положим, то, где начинается память, зависит от того, где ОС ее выдаст, тут линкер ни при чем. Линкер всего-навсего поменяет base address, это один дополнительный ключ.
Про нулевые указатели — guard page — я писал выше и так
Интересно, а транслятор сможет это оптимизировать в
out dx, alБез наложения маски и инлайном? Я не к тому, что это надо, просто интересно.
Или в локальной LDT.
Если мы собираемся использовать не плоские глобальные сегменты, а выдавать каждой задаче свои, то места в GDT всем не хватит. Разместив дескрипторы в LDT (скажем, код-данные-стек-служебное что-то), мы займем в GDT только одну ячейку и 4 — в LDT данной задачи.
Нет, не только для свопа. ВАП нужно, в первую очередь (имхо), для 1) расположения некоторых модулей по пересекающимся адресам, 2)реализации поведения copy-on-write, 3) для преодоления фрагментации физической памяти. При страничной адресации у вас по-прежнему может фрагментироваться ВАП одного процесса, но это будут лишь его личне половые проблемы. Без страничной адресации вы быстро попадаете на ситуацию вида:
1. гигабайт — занят
2. гигабайт — свободен
3. гигабайт — занят
4. гигабайт — свободен
У вас 2 гига свободной памяти, а дать программе буффер в 1.5 гига вы не можете.
4) guard pages для стеков и для поимки null-pointer dereference
…
…
Эм, 80*25*2 байт. Байт на символ и байт на атрибуты (цвет).
Вот этот кусок понять не смог.
Линкер собирает программу с опорой на BaseAddress, который в общем случае, может быть любым. Нам ведь никто не запрещает разместить ядро по адресу, скажем, 1000h (нулевая страница — guard), а все прикладные программы компоновать с адресом загрузки 80000000h.
Проблема будет лишь в том случае, если вы хотите запустить программу, написанную и собранную под другую ОС без перекомпоновки (что возможно только если ваш API полностью бинарно совместим, а это вряд ли).
Даже затрудняюсь представить, как можно было так подумать…
А как же потери при небольших размещениях? Не велика гранулярность для 32 бит?
Не совсем. Если посмотреть отчет — он там доступен по ссылке, то 38% из резюме отчета — они из таблицы А2:
При этом:
Т.е. 30% из них не могут купить ту или иную одежду — без уточнения, какую именно.
Это очень плохо, но «не хватает на неизбежные расходы» и тем более «38% не могут купить продукты» немного некорректно.
При этом, если вы посмотрите разбивку по местности, то при средних 38% на миллионники приходится 29,7%, остальные города — 37,6, сельскую местность — 44,1%. Это к вопросу «как там в крупных городах».
Более важный, на мой взгляд, показатель — задержка с коммунальными платежами и покупкой лекарств: 42,31% в среднем, 44% для миллионников.
Допустимы ли inline комментарии наподобие:
А стирать одну вещь в прачечной — спецолимпиада вообще. Тут тазик и порошок в помощь.
О той, очевидно, когда один ипотечник продает квартиру другому ипотечнику. Не понимаю, в чем проблема.
Покупатель или продавец делают оценочный акт, любой банк одобряет ипотеку поткупателю на эту квартиру. Дальше все последовательно — банк покупателя переводит покупателю же деньги на его счет с блокировкой, оттуда по платежному поручению — сразу продавцу. Он, поскольку квартира обременена ипотекой, тоже не получает доступа к этим деньгам — у банка первоочередное право, он вычитает из этой суммы остаток долга продавца по ипотеке. Здесь же нотариально снимается старая ипотека и ставится новая.
Почему это должно вызывать хоть какие-то проблемы? Как кто-то что-то может потерять?
А я и не говорю о записях в базу.
Я говорю, что процесс в реальной жизни происходит как транзакция в БД — процесс не может повиснуть на середине, допустимы только два крайних состояния.
Так как, если это все делается через нотариуса, одним действием, как в SQL транзакции? Будут на сделке представители обоих банков — прежнего держателя ипотеки и нового. Нет?
А какая разница ипотечная или нет? В России это создает какие-то проблемы?
Хм, а если поподробнее? Я не интересовался специально, но емнип, ставка по депозитам в крупных банках в том году была порядка 6%, не?