- 1
- 2
- 3
int hcreate(size_t nel);
ENTRY *hsearch(ENTRY item, ACTION action);
void hdestroy(void);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+5
int hcreate(size_t nel);
ENTRY *hsearch(ENTRY item, ACTION action);
void hdestroy(void);
Using these functions, only one hash table can be used at a time.
The argument nel specifies the maximum number of entries in the table. (This maximum cannot be changed later, so choose it wisely).
Individual hash table entries can be added, but not deleted.
Одной хеш таблицы хватит для всех, ресайзить её или удалять элементы - нинужная фича.
КОКОКО ЛИНУКС НЕ СТАНДАРТ ТАК НЕПРАВИЛЬНО ОДНОЙ ТАБЛИЦЫ ХВАТИТ НА ВСЕХ!!!пыщ-пыщ-пыщ
K&R ведь при создании языка главным критерием считали простоту создания конпелятора.
https://en.wikipedia.org/wiki/Open_Firmware
Сан-Андреас вышел на ПК и Солнце закатилось для этого уникального произведения
+ Eserv, nnCron
На факторе не видел пока...
Как-будто где-то кроме x86 есть математический сопроцессор со стеком...
*****
Глянул руководство по VFP, используемому на ARM — и правда, там все инструкции ссылаются на произвольные регистры, а не на стек.
А какие процессоры с сопроцессорами сейчас распространены?
Кстати, а ведь когда-то время жизни программ было другим. Не было монстроподобных программ типа Open Office, зато были мелкие консольные утилиты, выполняющие одну мелкую операцию, типа cat, grep, sed, diff, patch, head, tail, split. Возможно, когда изобретали POSIX, думали, что сложные процессы будут составляться из запусков маленьких программок, которые будут жить недолго.
– и общаться посредством произвольного выбранного текстового формата
IPC это вообще кладезь интересных историй о том, как
ну а елси надо поменять порядок то всегда есть awk
Unix way вообще очень стройно и красиво описывает реалии полувековой давности
проблема csv
Клавіша змиву Geberit Sigma01 square 115.660.JQ.1 хром матовий
3 912,00 грн / шт
О_о срать дорого
Дерни ручку унитаза
Если нету таковой,
Протолкни говно ногой.
Если нет воды в бачке,
Пошуруй рукой в толчке!
именно по этому я
ну а что он грузится семь секунд -- так это на самом деле он твой скрипт AOTит под твою архитектуру, ты просто невдуплил
но в целом проблему не отрицаю
но это в общем даже не шелла задача, а окружения как такового
С каким осуждением-то написано: мол, какие-то дебилы постоянно пересоздают свою хэштаблицу, вместо того чтобы как нормальные люди взять одну на всё время работы программы!
Ein Thread!
Eine Haschtabelle!
Что же касается заимствований Thread и Hasch, то я мог бы написать исконно немецкие варианты, но, во-первых, большинству читателей ГК будет труднее, во-вторых, я не знаю, какое из слов, обозначающих нить, используется в компьютерной терминологии.
Кстати:
http://www.linguee.com/english-german/search?source=auto&query=thread
И самое смешное (осторожно, среди примеров есть сленг):
http://www.linguee.com/english-german/search?source=auto&query=hash
th как think
th как that
s как доллар
three - [hri]
throw - [hro]
through, threw - [hrʉ] (Википедия про th)
threwknee!
Как th в слове that читается буква «дельта».
В немецком полно заимствованных слов, которые читаются не по правилам. der Thread, кмк, оптимальный перевод.
Een draad
Een hashtabel
А теперь выйди из Эмакса.
Впрочем, я с микрушнёй не работала, спорить не буду.
у нас в одной либе большие аргументы (мегабайт-два) передаются из функции в функцию через файл, потому что памяти мало
а чтобы быстрее работало, файл создается на рамдиске
Любая ОС без MMU.
>youngmonkey
Chabad.org is the flagship website of the Chabad Hasidic Judaism movement.[28]
> By June 1995, the number of websites had expanded significantly, with some 23,500 sites.
– там php изобрели в промежутке или что
Но о чём его ни спросишь, получаются хуи.
да сука
А почему только 1998, а не всё?
https://pbs.twimg.com/media/GUfSfLEWUAEhjtk?format=png
https://trinixy.ru/
https://svalko.org/
джойреактор
MMU это фича процессора. Сделать ОС со свопом для работы на процессоре без MMU вполне возможно. Есть ли реально такие ОС - хуй знает
Необязательно. В контроллере у тебя в адресное пространство и так может быть флеш-память отображена, так что своп у тебя как бы и так есть. А еще можно особым образом переключать банки внешней флеш-памяти. В спектруме например была реализована такая хуйня
> Процессор Z80 имеет 16-разрядную шину адреса, что означает, что он может адресовать только 64 КБ памяти. Для доступа к дополнительным 80 КБ ОЗУ было внедрено переключение банков памяти (англ. bank switching), таким образом, вся оперативная память разделена на восемь страниц, каждая из которых может быть отображена в верхней части адресного пространства. Подобным образом реализовано переключение между новыми 16 КБ ПЗУ и оригинальными 16 КБ ПЗУ в нижней части адресного пространства[23].
Аналогичным образом можно переключать внешнюю флеш память, чтобы она была тупо как обычная память, и такую хуйню можно назвать свопом. При этом оно будет напрямую в адресном пространстве доступно. Ну это конечно если контроллер такую хуйню аппаратно поддерживает, сделать такой контроллер вполне реально
>Newer families, such as the 'L4 and 'F7, and the upper-end and lower-end 'F4, have a QSPI controller which can be part of the memory map and code can be run directly from there.
>The QSPI support in some of the F4 and F7 parts maps the external memory into the address space of the processor (0x90000000), and from there you can jump to it like any other code, and execute-in-place (XIP)
Т.е. внешнюю флешку можно так подключить, и потом менять, аналогично "bank switching" в спектрумах. Вот тебе и своп
Смысл виртуальной памяти в том, что:
1. Софт ничего не знает про своп. Page fault для него прозрачен совершенно. Он просто читает байты, и течет. А что там, за зановеской, ему грузят в память странички из вторичной памяти -- его не ебет.
2. Можно шарить какие-то куски памяти добавляя одну и ту же странчку в разные PTE разныхз процессов. `vdso(7)` же так работает, не?
3. ну и так, по-мелочи конфетки всякие: R/O, X^W, COW (который тоже через R/O реализован, и пр)
Хуй с ним с 3. А два можно реализовать выдавая процессам оданаковый адрес (процессы память запрашивают через спец прерывание, например).
Но как быть с 1?
Как сделать так, чтобы софт не отвечал за банк свитчинг, а это делал монитор (так в древние времена называли операционку)?
> Как сделать так, чтобы софт не отвечал за банк свитчинг, а это делал монитор (так в древние времена называли операционку)?
Можно обрабатывать прерывание при доступе к памяти, которая на флешку не отображена. Если есть некий 64-битный контроллер без MMU, но с возможностью отображения адресного пространства на внешнюю флеш-память, можно ее тупо всю отобразить, с динамической подгрузкой хуйни из флешки во внутреннюю оперативную память будет разбираться периферия. При этом никакого MMU тут формально нет. А если такой умной периферии нет, можно ловить условное прерывание "page fault" и в нем копировать хуйню из флешки в оперативку, потом возвращать управление процессу
Можно еще загружать/выгружать состояние процесса из/в флешки, т.е. при переключении с одного процесса на другой, какая-то хуйня (а точнее планировщик процессов) всё останавливает, бекапает состояние всей хуйни текущего процесса и грузит всю хуйню другого процесса.
Для VM это незаметно, но даже CLI вызывает прерывание
ну блядь, я могу, знаешь, дебаг включить в регистре, и буквально на каждый степ будет у меня прерывание, и я могу там хоть с интернета страничку загружать, но как-бы как-то это не быстро
Для такой хуйни MMU не требуется, а требуется лишь функционал "отобрази такой-то диапазон адресов на такую-то внешнюю память, ну и чтоб если читаешь или пишешь байтики оттуда, это все прозрачно переводится в операции чтения-записи на эту внешнюю память". Для разных процессов можно разные куски этой внешней памяти отображать
https://i.ebayimg.com/images/g/PboAAOSwkQNl5QtF/s-l1600.webp
ебать ты олд.
Я думаю что Джей, как носитель математического менталитета, имеет ввиду, что теоретически это реально.
А что это будет тормозить как говно, и впринципе будет неюзабельно, его не ебет.
Анекдот. Холмс и Ватсон летели на воздушном шаре и заблудились. Спустились, чтобы у кого-нибудь спросить, где они находятся. Холмс спросил у одного мужика и говорит Ватсону:
— Нам не повезло, мы наткнулись на ма-те-ма-ти-ка.
— Но как Вы это поняли, Холмс?
— Он сказал, что мы находимся в корзине воздушного шара.
А зачем часики воткнули? Как ими пользоваться?
У впервых писи не было CMOS.
Ты включал комптютер, и устанавливал время. (астольные настройки ты устанавливал джумперами)
С этой мандалой шла утилита ASTCLOCK которую надо пихнуть в autoexec.bat.
ASTCLOCK eliminates the need for manually
entering the correct time and date through the keyboard whenever the PC is turned on or rebooted.
В секции 5 всё очень подробно описано
https://minuszerodegrees.net/manuals/AST_SixPakPlus_LONG_Users_Manual.pdf
Это было во времена, когда люди еще умели писать мануалы (теперь это умение давно утрачено)
Вспомнил чувака, который не мог зайти ни на один https-сайт, потому что у него сдохла батарейка в часах, и браузер ворчал о недействительном сертификате, а менять батарейку ему было впадлу.
Там в мануале написано как записать это говно в autoexec.bat, нашел?
>ни на один https-сайт,
Kerberos тоже не работает, если у KDC и клиента время отличается (там в тикете таймстемп). Потому в сетях MS типа очень важно запускать NTP с DC.
ps:
>то можешь перемычками привязать её часики к IRQ и обрабатывать на компе резидентной программой.
ну да, это типа "API" этой железки, лол
Уже поржал над «copy con autoexec.bat». Типа текстовых редакторов тогда не было. Кто-то ведь так и сделает и затрёт свой autoexec.bat...
>>>
To see the current contents of your AUTOEXEC file,
insert the working DOS diskette in drive A: and from the A>
prompt, type the following command line:
>>>
Я правда не понял, а потом все их руками ввести еще раз?
Типа апенда (>>) не было тогда?
>> Типа текстовых редакторов тогда не было.
edit.com появился в MS-DOS 5.0, в 1991-м г.
А так-то в юниксе тоже файлы иногда через `cat(1)` пишут...
P.S. Edlin поставлялся с DOS с 1980!
Ты знаешь про `ex(1)` и `ed(1)` же?
Вот `ed(1)` заложил моду на все эти команды типа `s/шило/мыло` и `d42`.
Из него вырос sed (namelijk: потоковый ed) и конечно ex режим vimа.
Ну и регулярки конечно тоже.
`ed(1)` был однострочным (как edlin, да), и не требовал умного терминала (собссно ради визуальности на терминалах Джой и изобрел `termcap(5)`)
https://medium.com/predict/using-ed-the-unix-line-editor-557ed6466660
У них был интерактивный режим, в котором можно было вводить программу:
LIST — для вывода программы на экран (можно было указать диапазон номеров строк для вывода фрагмента).
RUN — для запуска.
NEW — для удаления программы.
LOAD и SAVE — для загрузки из файла и выгрузки в файл.
<номер строки><пробел><код на Бейсике> — для добавления или замены строки. Если код пустой, строка с указанным номером удалялась. То есть добавление, замена и
удаление производились одной командой!
Такой-то дух ed(1)/edlin! Только возможности были скромнее. Нельзя было раздвигать строки, поэтому обычно их нумеровали с шагом 10, чтобы было пространство для манёвров.
Не знаешь, у каких ещё ЯП такое было? Может, у старого неструктурного Фортрана, в котором были номера строк, как в Бейсике? Или у какого-нибудь Кобола?
https://vtech.fandom.com/wiki/PreComputer_1000
В нем был как раз такой бейсик.
Но там можно было переписать строку только целиком, и там очень важны были номера строк, чтобы как раз добавлять новые.
LIST -- выводил все строки
RUN запускал
После каждой строки надо было жать ENTER.
Типичная программа выглядела так
я забыл правда как была конкатенация строк сделана.
Почему доллар?
Потому что без доллара были инты.
Ты прав.
Как-то забыл за тридцать семь лет...
ALSO: в перл они попали из авка
В авк -- из шела
В Бейсике значки ставятся после и означают тип скаляра: % — целое, $ — строка, ! — плавающий питух. В Кубейсике есть & для двойных целых и # для даблов. В некоторых Бейсиках некоторые значки могут отсутствовать, в некоторых, наоборот, могут быть свои дополнения. Но доллар для строк есть всегда. Причём эти значки прицепляются не только к пельменным, но и к именам функций: функция MID$ возвращает подстроку.
значки перед именем пельменной и означают конь-текст: скалярный, векторный
>>
Да. Эта хуйня называется SIGIL.
На самом деле, переменные образуют неймспейсы.
"$petuh": я говорю о скаляре петухе. Это может быть строка, число, или указатель.
@petuh : я говорю о массиве-петухе.
%petuh: хеш-петух
&petuh: фунция петух
и пр.
Интересно, что обьращаясь к конкретному элементу массива или хеша надо говорить всё так что это скаляр (в массиве только скаляры лежат могут)
Сам петух!
А теперь вопрос для знатоков: как сделать многомерный массив?
Я уже догадываюсь, что внешний массив будет массивом ссылок, а на самом внутреннем уровне будут массивы скаляров.
"$" потому что возвращает строку?
Это как "?" у булов в руби
Вроде во всех неструктурных Бейсиках так было. Поэтому я и написал, что дух ed был, но возможности скромнее.
Старый неструктурный Бейсик мне сломал мозг: я долго не мог понять, как же в других ЯП пишут без номеров строк.
Но в основном окошке Кубейсика можно набрать программу хоть с номерами строк, хоть без.
Надмозг, конечно, statements.
Помню багор, когда делал загрузочный диск со всем необходимым, скопировал туда edit.com томущо самый маленький, а на месте оказалось, что edit.com хочет загружать qbasic.exe оверлеем(?) а этот файл у меня естественно не влезал
В каких-то версиях DOS был автономный edit.com, но в каких именно, не помню, надо проверять.
Вроде в IBM PC-DOS не было Кубейсика, поэтому там лежал автономный edit.com.
ROM-BASIC можно было вызвать принудительно каким-то прерыванием, но начиная с машин на 80386, его перестали вкладывать, и это прерывание стало выводить: «ROM-BASIC not found, press any key to loose reboot».
А REXX появился в поздних версиях DOS (и в OS/2), где-то к 1990-му году.
https://www.ardent-tool.com/tech/IBM_Cassette_BASIC.gif
Удобно. Если случайно испортилась дискета с досом, то всегда можно загрузить ROM BASIC и написать нужную программу
Почему сейчас не выпускают прошивки с чем-то подобным ROM-Бейсику?
Боль-мень прилично разве что в прошивках серверных плат (представляешь, они до сих пор используют слова BIOS и North Bridge, ебанаты*)
*ну, ёбнутые:
https://www.supermicro.com/support/faqs/img_lib/26222.jpg
PS: но если без шуток, просто кому это надо-то? и что туда пихать? питон? зачем? Это же поддерживать сборку Cpython под EFI надо.
Сейчас компов без ОС и не бывает: ты его купил, и там винда сразу
Даже вон упомянутый выше Pre Compuer 1000 тоже имел бейсик.
Бизнес-смысла покупать домой машину за одну месячную зарплату смысла не было, потому микро-комп позиционировался как "поможет вашему ребенку изучить программирование" (романтический ореол "профессии будущего" тогда летал вокруг программирования).
ну поскольку дети учили BASIC на уроках информатики, то понятно дело именно его туда и надо было пихать.
Года с 1987-го микро-комп уже продавался как бизес-помощник" (текстовые и табличные процессоры типа Lotuis 123, возможность печатать на принтер, носить файлы на дискетах, доступ к compu serve! и пр). И на бейсик всем стало уже похуй.
А вот у Агата РОМ-Бейсика не было, но были дискетки с Бейсиком, а также с комплектом «Школьница» (феминитив, гы!), в котором помимо Бейсика были РАПИРА и РОБИК.
Был микрокалькулятор МК-85 со встроенным Бейсиком:
https://ru.m.wikipedia.org/wiki/Электроника_МК-85
Да, процессор был с сеткой команд PDP-11 (как у БК-0010), но был микропроцессором, а не шкафом, как оригинальный PDP-11.
Корпус спизжен у Casio FX-700P, который тоже был со встроенным Бейсиком, но начинка другая.
https://commons.m.wikimedia.org/wiki/File:Casio_FX-700P.JPG
Вроде для каких-то игровых приставок были картриджи с Бейсиком, но этими картриджами никто не пользовался, потому что приставки покупали, чтобы деградировать.
«Прекомпьютер» позже стало нарицательным словом, появились похожие игрушки для детей.
>Вроде для каких-то игровых приставок были картриджи с Бейсиком
Было в симпсонах на говнокоде
https://govnokod.ru/27857#comment749274
Сюбор
https://youtu.be/XlTCDGBedgU
— And I'm telegram domestic terrorist.
Теперь понятно, почему в 90-е в СНГ про NES никто не знал.
https://en.m.wikipedia.org/wiki/Family_BASIC
а что у нас не клон-то?
Я вообще подозреваю, что ромвасиком на матерях пожертвовали ради встроенного графического сетапа, в AT вроде еще было наоборот и сетап был на дискете.
Там еще Гейтс игру про осла написал! Donkey.bas
Да, ты прав, продавали.
куууик)) люблю ее
погугли donkey.bas, она тоже прикольная
Интересно, если я напишу на бейске такую же игру, то станут богатым, как билл гейтс?
Богатым не станешь, но получишь денюжку и пойдёшь пропьёшь
Вот это интересно, потому что майковский редактор большое влияние оказал, сочетания клавиш, интерактивная онлайн-справка, вот это всё.
Чем не своп?
Оверлеи много у кого были, и у всех были собственные механизмы. Возможно, DLL и so изобрели под впечатлением от оверлеев (хотя в обычном режиме DLL и so никуда не выгружают, а держат всё время работы программы).
Он там пишет, как IBM в 60-е для OS/360 делало оверлеи. И задается вопросом: а нахуя? Ведь уже тогда всем было очевидно, что будущее за виртуальной памятью.*
Позже этот путь повторили мини компьютеры.
А после -- домашние тоже.
*причину он видит в известном баге в голове программистов. Т.н. "эффекте второй системы", когда программист пытается впинюрить в программу все, что когда-то не успел впендюрить в молодости.
Забыл, как драйвер называется.
Из-за этой хуйни брат умер «Яндекс-карты» запускаются три минуты. Пока ждёшь запуска, чтобы посмотреть расписание автобусов, твой автобус уходит.
Пиздец, короче. Реальная история. Я не тролль.
slow call, по аналогии со fast call
Правда, придется при каждом вызове метода обращаться к оператору, призывая его звоночком чтобы он перестал пить чай, и заправил кассету
Оператор может дешевле обойтись если скорость не нужна...
оператор нужен, чтобы записанные LTO кассеты забирать и увозить в банковское хранилище
недавно со мной рядом сокрушались, что когда-то была ещё и возможность архивировать на оптику, было очень прельстиво - сразу несколько физически разных носителей для ценных бекапов использовать - а сейчас уже болванки умерли, грусть печаль
Все мои надежды у побережье рек
Все мои данные на дне озер
Можно увидеть,
Как по ней проплывает
Бэкап твоего врага.
Из села Кукуево
Объясни дураку, почему в SSDT написано что встроенная в процессор карта сидит на шине PCI?
Вообще если читать эту таблицу (или читать device manager / devices by connections в винде или dmesg на bsd) то можно увидеть что прямо из ACPI растет PCI и на ней сидят все, включая PCI-E.
Зачем?!
Если не туплю, то это PCI Express Root Complex (раньше назывался PCI Host Bridge, линукс его так и показывает).
> встроенная карта сидит на PCI
Вай нот? Чтобы операционки её видели и конфигурили как нормальный PCI девайс, удобно же.
Ну, тут я понимаю, только он не "раньше так назывался" а так он назывался в PCI: контроллер PCI сидел в северном мосту (позднее в мемори хабе) и назывался PCI Host Bridge (мост между хостом(процессором) и PCI).
У PCI-Expressа подобный "корень" называется root complex и сидит (уже довольно давно) на кристалле.
Тем не менее рут комплекс косплеит PCI host (мой sl):
>>Вай нот?
Значит, шоб не быть голословным -- вот он
(кстати, что такое _ADR? Device 2 в терминах PCI?). Теперь, чего я собссно не понимаю:
1) мне казалось что ACPI нужен чтобы найти корень, а там уже опросить шину специальным PCI способом (с помощью интерфейса того самого рута/бриджа).
Можно представить что он реально сидит на PCI-Express (внутри кристала) но тогда накой хуй его хардкодить?? Его комплекс бы и так нашел. Выходит, что на PCI-Express его правда нет.
2) Но если его нет, то как у него может быть device number?
Разве не рут комплекс должен "знать" топологию своей шины?
Его обманули и заставили верить чот у него там еще девайс сидит?
А если я отключу его методом из ACPI то у меня и моник погаснет?
3) Как фирмварь знает про мой встроенный видео? Или она в момент POSTа узнала про мой проц, и НАЛЕТУ ПРОПАТЧИЛА ACPI таблицу?
--
Вообще на каких форумах (можно англицких) про это лучше всего пиздеть? 99% "комптюетрщиков" нихуя не понимаю про ACPI:(
Ещё ради управления питанием, кулерами и прочим говном. Ну и чтобы найти адреса всякой мелочи типа ACPI таймера или легаси железок, которые не видно в PCI.
> Его комплекс бы и так нашел.
Ну описали и описали. Тебе мешает? По-любому оно и по нормальной енумерации находится.
> НАЛЕТУ ПРОПАТЧИЛА ACPI
SSDT это вроде как раз и есть динамический довесок к DSDT.
> нарисовать деревце
Эти таблицы же не совсем таблицы, это ебучий байткод (ASL), который исполняется ядром оси. И список девайсов, который будет описан в этой "таблице", может зависеть от версии операционки(!) (у меня так линукс на ноуте умер из-за того, что виндой 8.1 прикинулся).
Разумеется. Но я сейчас не про термаильные зоны, а про построение дерева устройств и их методы.
>>Ну описали и описали. Тебе мешает?
Я пытаюсь понять: действительно-ли физически видеядро находится по ту сторону PCI-Express?
Если я попрошу у руткомплекса сделать энумирацию -- он действительно мне найдет GFX0?
>>оно и по нормальной енумерации находится.
..а тада зачем пейсать?
может, ради того чотбы навести всякие методы типа
?
Ну типа через PCI же их не экспортнешь.
>>это вроде как раз и есть динамический довесок
тогда ок, тогда я все понял
>>операционки
да, это когда там написана проверка что Os Windows2009, я понимаю.
Вот тебе говнеца из моей таблички
Окей, идею построения дерева нахуй.
А есть хороший юзерфрендли туториал кроме спеки и доки по ACPICA?
Мне чото стало интересно лучше понять это говно
о, aida64 engineer умеет деревце по acpi
Проконсула?
Пришли другие коллеги, не стали разбираться, и навалили сверху говна, гостылей, и sleep(3).
Рейс затаился.
Что-то во вселенной поменялось, и рейс проснулся опять, и валит тесты.
Теперь уже никто не может понять, что происходит. Наступила технологическая сингулярность.
Она вот тут интересное написала
https://pbs.twimg.com/media/GyV5JjZXcAADROi?format=jpg&name=medi um
Мне конечно стало очень интересно: как это Ася будет заниматься сексом с наскомыми. А с лягушкой как?
Какая-то ТП с ЧСВ овер 9000, ОБВМ и СПГС, считает себя всезнайкой и пишет книжки ни о чём.
а, там же атомная станция рядом.
https://www.phoronix.com/news/Linux-6.17-RISC-V-Rejected