@python_beginnersЭта группа больше не существует

Страница 609 из 1885
Zart
23.10.2016
10:31:51
основы знать никогда не помешает

Stanislav
23.10.2016
10:31:59
Асм для 8086? Но зачем?
А это не одно и то же с х86?

Запутанные названия

Denis
23.10.2016
10:32:06
Еще бы 8086 сейчас найти

Google
Zart
23.10.2016
10:32:13
ммм

Vinc
23.10.2016
10:32:17
А это не одно и то же с х86?
там 16 разрядов было.

в той книжке

Zart
23.10.2016
10:32:26
в каждом х86 есть 8086

Stanislav
23.10.2016
10:32:27
Спектрум?

Zart
23.10.2016
10:32:42
просто все ос нынче переводят проц сразу в P или L режим

Vinc
23.10.2016
10:32:57
японец какой-то про микроконтроллеры название

Zart
23.10.2016
10:33:04
спектрумы были на Z80, который был 8битным процом с 16бит регистрами

а еще был 8088

который был таким же самым как 8086, но в корпусе поменьше и интерлив шиной данных на 8бит вместо 16

tufedtm
23.10.2016
10:34:14
раз уж пошла речь про асм, правильно ли я понимаю что к примеру есть расширение sse4, которое добавляет определенный набор инструкций 1. плюс в том, что эти инструкции выполняются в 1 такт на процах, что поддерживают sse4 2.1. а на процах, что не поддерживают sse4 эти же операции либо невозможно выполнить 2.2. либо возможно, если заморочиться и выполнить на имеющихся регистрах, но уже за несколько тактов?

Vinc
23.10.2016
10:34:24
дошли до печатанья символов и отображения кода вводимого символа. я запарился к тому моменту и теперь всё самостоятельно, но про то, что нравится

Google
Zart
23.10.2016
10:35:18
у проца есть набор команд, вшитых в силикон. большая часть операций вшита намертво, часть можно подправить чуток - микрокод прошивки для проца этим и занимаются

все эти 3днау, ссе1-4 и иже с ними - это дополнительные наборы команд

изначально это был прикольный хак, который использовал регистры FPU для альтернативных вещей

лирическое отступление - изначально флоат пойнт матан делался отдельными процессорами по факту этот процессор сидел на той же шине с основым процом и был подключен как паралелльный телефон основной проц выставлял адреса на шине памяти и считывал оттуда команды, фпу сидел и слушал весь этот поток и ждал пока не встретится специальный код после чего основной проц читал следующую команду и нихуя не делал, а фпу декодировал команду для него вот так они и делили работу пополам

Zart
23.10.2016
10:39:57
если же в системе не было фпу, то эти команды вызывали прерывание, которое либо выдавало ошибку, либо вызывало либу эмуляции, которая подглядывала в следующую команду, выполняла её на обычном проце (на порядок-два медленее) и возвращала результат

интел клепал 8087, 80187, 80287 и 80387 сопроцессоры конкурентом были сопроцессоры weitek, работавшие быстрее и точнее 8)

начиная с i486 изменилось и схема названия процов и фпу был интегрирован на тот же кристалл

8088/8086 - первый проц семейства. 16бит данные, 20 бит адрес, сегментная организация памяти - (т.е. работать можно было напрямую лишь с кусками по 64кб за раз)

80186 был выпущен мелкой партией, но вроде P-режим уже там появился 80286 - увеличил шину адреса с 20 бит (1мб) до 24 (16мб), ввел защищенный режим (P = Protected) и изменил концепцию работы с сегментами

Alexander
23.10.2016
10:45:11
не помню были ли FS/GS изначально...
Не были, они появились в 386

Zart
23.10.2016
10:45:15
80386 - поменял архитектуру на 32-бит, и для данных и для адреса (4гб). так как практический опыт показал что помимо защищенного режима нужна эмуляция R-режима, был добавлен V-режим (это когда проц выполняет 16битный код R-режима в P-режиме)

i486 - интегрировал FPU в проц, и добавил кэш не то первого, не то второго уровня на кристалл (что добавило необходимость управления TLB)

Alexander
23.10.2016
10:46:41
Zart
23.10.2016
10:46:56
первые пентиумы - переход к суперскалярной архитектуре. что там внутри стало, я уже не настолько хорошо знаю 8\

потом первым 686 стал pentium pro, но хотя его логическую модель и стали допиливать потом во всех этих пень2/пень3, внутрянку поменяли радикально

я уже не помню толком чем примечательны п2/п3/п4 с точки зрения именно архитектуры

Google
Zart
23.10.2016
10:50:05
война расширений между интел и амд привела ко всем этим 3днау/ссе

а, первый пень же был примечателен тем что позднее добавил mmx модели

Zart
23.10.2016
10:50:50
Alexander
23.10.2016
10:51:07
Да-да

Zart
23.10.2016
10:51:31
один хрен на них клепали только IBM PCjr модели, которые дальше североамериканского рынка не ушли

Alexander
23.10.2016
10:51:57
А MSW регистр и сопутствующая обвязка Pmode появился в 286

Zart
23.10.2016
10:52:30
про выход из P-режима инженеры не подумали, да поэтому в контроллер клавиатуры встроили резетилку, лол

мне до сих пор смешно, про этот факт

Alexander
23.10.2016
10:53:52
Ещё можно упомянуть HMA и адский "гейт A20", позволивщие добавить ещё 64Кб памяти (без 16 байт) к стандартному мегабайту real mode

Zart
23.10.2016
10:54:06
бгыгы

Zart
23.10.2016
10:54:38
conventional memory ems xms umb hma shadow vram

что забыл?

Alexander
23.10.2016
10:55:54
Видеопамять! Ее тоже юзали))

Zart
23.10.2016
10:56:39
ну шадов врам оно и есть. хотя шадоу применяли в первую очередь для ппзу областей

Alexander
23.10.2016
10:57:09
А, точно

Zart
23.10.2016
10:58:12
я когда С/С++ учил, как раз и занимался копированием из XMS в видео... чтобы вывести картинку в труколоре 8)

труколорная 800х600 по три байта - это уже полтора мегабайта, которые в обычную память тупо не влезали

Alexander
23.10.2016
11:02:46
В 2016-м году Windows Explorer и Windows Power Shell все еще считают, что 260 байт в пути к файлу хватит всем

Google
Zart
23.10.2016
11:03:26
это не связано с процессором

в общем учить асм 8086 вполне можно и нужно но не стоит его отделять от х86 вообще - потому что команды всё те же самые - mov, add, sub, push, call, jz, етц меняются размеры операндов и семантика отдельных вещей, а основы те же

Alexander
23.10.2016
11:04:41
Это одна из тех шуток, которые духовно близки к мему '640 кбайт достаточно всем'

Zart
23.10.2016
11:08:45
>>> for i in range(1, 300): ... print(i, open('_'*i, 'w')) ... (255, <open file '_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________', mode 'w' at 0x032EC230>) Traceback (most recent call last): File "<stdin>", line 2, in <module> IOError: [Errno 22] invalid mode ('w') or filename: '________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________' >>>

Zart
23.10.2016
11:13:13
открыло

Stanislav
23.10.2016
11:13:15
А этот нет

Zart
23.10.2016
11:13:23
вылетела ошибка когда имя файла достигло 256

Admin
ERROR: S client not available

Zart
23.10.2016
11:13:30
ограничение ANSI апи

Zart
23.10.2016
11:15:51
А в юникс подобных?
http://man7.org/linux/man-pages/man3/pathconf.3.html см. _PC_NAME_MAX и _PC_PATH_MAX

позикс требует чтобы эти числа были не меньше 240 кажется

плюс эти циферки могут зависеть от той фс которая смонтирована

почему pathconf и принимает path аргумент

запустил на винде код >>> for i in range(1, 10000): ... print(i, open(u'\\\\?\\' + u'_'*i, 'w')) ... всё еще крутится, дошел до 9к уже

Google
Zart
23.10.2016
11:21:15
а, блин. там же абсолютный путь надо 8\

tufedtm
23.10.2016
11:23:24
есть у нас avx, fasm, gcc и есть у нас, к примеру, исходники postgres так вот в ассемблерных вставках в исходниках postgres мы можем использовать доп.команды avx при компиляции gcc вызовет fasm, скомпилирует, и мы получим новую версию работающую на меньшем количестве процессоров, но быстрее, на тех процах, что поддерживают avx правильно?

Zart
23.10.2016
11:23:52
gcc fasm не вызывает. мейк поди

смотря как реализовывать - ассемблерные вставки можно либо компилировать условной компиляцией и получать разные бинарники можно добавить рантайм проверку и по ней вызывать разные реализации

tufedtm
23.10.2016
11:31:00
понял, спасибо

/dev
23.10.2016
11:38:33
Например, по результатам проверки можно ту или иную имплементацию либы динамически линковать, тогда и оверхед на проверку только один раз в самом начале проявится

Zart
23.10.2016
12:04:07
и нахуя это всё?

/dev
23.10.2016
12:05:26
и нахуя это всё?
Нахуя под разные архитектуры имплементации городить и оверхед уменьшать. Ну действительно, нахуя.

Zart
23.10.2016
12:05:46
там кода будет скорее всего меньше чем в одном лишь заголовке ёбля с генерацией дллок, рантайм загрузка и прочая - не нужны, если только тебе позарез не надо возможность собрать новую длл позже под новые процы

/dev
23.10.2016
12:05:56
Нахуя нам нужна производительность на конкретном железе

Zart
23.10.2016
12:06:14
не, я к тому что динамическая линковка в этом случае нахер не нужна от слова "совсем"

а не про вставки

Letalis
23.10.2016
13:09:56
Господа! В чем может быть проблема: Сделал новое виртуальное окружение в отдельной папке. Захожу туда через консоль виндовс, и смотрю там версию пип: pip —version. Показывает 6.0.2 и говорит, что можно проапгрейдиться. Закрываю консоль, открываю в корневом каталоге заново, пишу: python -m pip —version, пишет, что там версия 8.1.2. Вопрос: почему такая разница? Операционка Шиндовс 8.1, питон стоит версии 3.4.2. Стоит мне сделать виртуальное окруение в иной папке - там пип 6.0.2. Причем, его невозможно проапгрейдить, через команду консольную: он удаляет старую версию но потом не может записать новую, из-за каких-то там прав (консоль из-под админа запускается всегда). Что делать, почему так? (надеюсь внятно пояснил)

Igor
23.10.2016
13:11:34
ты точно activate делаешь? если нет - попробуй когда находишься в папке с окружением запустить bin/pip --version например

Zart
23.10.2016
13:11:46
в виндовых венвах нет bin

Господа! В чем может быть проблема: Сделал новое виртуальное окружение в отдельной папке. Захожу туда через консоль виндовс, и смотрю там версию пип: pip —version. Показывает 6.0.2 и говорит, что можно проапгрейдиться. Закрываю консоль, открываю в корневом каталоге заново, пишу: python -m pip —version, пишет, что там версия 8.1.2. Вопрос: почему такая разница? Операционка Шиндовс 8.1, питон стоит версии 3.4.2. Стоит мне сделать виртуальное окруение в иной папке - там пип 6.0.2. Причем, его невозможно проапгрейдить, через команду консольную: он удаляет старую версию но потом не может записать новую, из-за каких-то там прав (консоль из-под админа запускается всегда). Что делать, почему так? (надеюсь внятно пояснил)
питон идёт со своей копией пип нынче. при создании венва в него ставится версия пип, которая идёт в комплекте с виртуаленвом, и обычно быстро протухает обнови, делов-то

админский доступ дляэ своих венвов не нужен, и наоборот вреден

Letalis
23.10.2016
13:13:14
http://s019.radikal.ru/i601/1610/83/c4c92549bcc1.png

вот наглядно

Zart
23.10.2016
13:13:31
и?

это наглядно демонстрирует то, для чего венвы нужны вообще изолируют от системной копии

Letalis
23.10.2016
13:14:11
> обнови, делов-то не обновляет через команду

Zart
23.10.2016
13:14:17
какую?

Страница 609 из 1885

Эта группа больше не существует Эта группа больше не существует