Как стать автором
Обновить
166
1.8
Руслан @checkpoint

Old-time Unix hacker

Отправить сообщение

Хорошая подборка, не знал про неё, спасибо. Про ж/д, заводы, пароходы... всё так! :)

Да, неваляшки в магазинах не залёживались. ;)

Но вы не представляете сколько я извел газет на силитровые ракетке. Дома, простите, ж#пу подтирать нечем было. ;)

Этот ваш порох - баловство для мажоров. Настоящее счастье советского пионера выглядело так:

  1. Два болта + гайка + коробок спичек.

  2. Cилитра + газета "Правда".

  3. Шарик для игры в настольный теннис.

  4. Кукла "невяляшка" (вариант на п. 3).

  5. Пустая банка от дихлофоса + карбид.

  6. Не совсем пустая банка от дихлофоса.

  7. Не совсем пустая банка от лака для волос.

  8. Пустой тюбик от зубной пасты.

  9. Краска "серебрянка" (порошок).

  10. Магниевые колёсные диски + напильник.

  11. Перманганат калия AKA "марганцовка".

  12. Медная трубка + гвоздь + резинка о трусов + коробок спичек.

  13. Асфальт + гвоздь + кирпич + коробок спичек.

  14. Спица от велосипеда + коробок спичек.

  15. Старый автомобильный (свинцовый) аккумулятор.

  16. Банка керосина.

  17. Цельный электропровод сечением 2.5мм2 + резинка от трусов.

  18. Медицинский жгут + брусок дерева + два болта.

  19. Ветка орехового дерева + капроновая веревка + сварочный электрод.

  20. Конденсатор на 600В + два коротких проводника.

  21. Лампочка накаливания 6В + напильник + коробок спичек + батарейка на 4.5В.

  22. "Стартер" от ламп дневного освещения.

  23. Много "стартеров".

  24. Старый огнетушитель.

  25. Использованный балончик от сифона.

  26. Неиспользованный болончик от сифона.

  27. труба + дихлофос + картошка.

Это только часть того, что вспомнилось и было опробовано. :-) А современные дети кроме питарды ничего не видели. Скукотища!

Кто мешает в yeild() сделать сохранение errno на ряду с другими параметрами контекста ? В общем-то это уже давно сделано за вас.

Откуда Вы это взяли ? errno is thread safe очень давно. Никаких проблем с нитями у errno нет.

Всё тоже самое можно отнести и к try/catch, и к описанному в статье решению.

Достоинство дедовского метода состоит в том, что он не требует никакого синтаксического сахара, а код локаничен и понятен. В таком включе можно писать на любом языке, хоть на макроассемблере. Изобретатели же новых языков находятся в постоянном поиске, они придумывают конструкции которые только усложняют жизнь.

есть только целочисленный код ощибки, в который подробностей не впихнуть.

А зачем Вам подробности ? В подавляющем случае достаточно просто знать была ошибка при выполнении какого-то промежуточного шага программы или нет. Код в errno вполне самодостаточен достаточен.

А можно я попробую. Чисто дедовскими методами, без всяких try/catch и прочих непонятных операторов, без скрытых переменных и лишних скобок захламляющих код. Почти Python. ;)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

extern int errno;

int main(int argc, char *argv[]) {
	long a, b, c;

	if(argc < 4)
		return 255,
		printf("Usage: %s <long> <long> <long>\n", argv[0]);

	a = strtol(argv[1], NULL, 0);
	b = strtol(argv[2], NULL, 0);
	c = strtol(argv[3], NULL, 0);

	if(errno)
		return errno,
		printf("Error: %s\n", strerror(errno)); 

	printf("Result: %ld\n", a + b + c);

	return 0;
}

rz@butterfly:~ % cc -Wno-unused-value a.c

rz@butterfly:~ % ./a.out 1 2
Usage: ./a.out <long> <long> <long>

rz@butterfly:~ % ./a.out 1 2 3
Result: 6

rz@butterfly:~ % ./a.out 1 2 -4
Result: -1

rz@butterfly:~ % ./a.out 1 2 0xffff
Result: 65538
  
rz@butterfly:~ % ./a.out 1 2 fsck
Error: Invalid argument

rz@butterfly:~ % ./a.out fsck 2 3
Error: Invalid argument

rz@butterfly:~ % ./a.out 1 fsck 0
Error: Invalid argument

rz@butterfly:~ % ./a.out 1 3 444444444444444444444444444444444444444444444444
Error: Result too large

Ок, спасибо за ответ. С нетерпением жду Вашу статью обьясняющую принципы работы GPGPU.

Правильно ли я понял, что под GPGPU Вы имеете в виду массив из более сложных вычислительных ядер с OoO, предсказателем ветвлений и кэшами нескольких уровней ?

Вы пишите, что массив из простейших конвейерных вычислительных ядер снабженных SIMD будет пробуксовывать и его вычислительная эффективность будет низкой по сравнению с более "толстыми" ядрами. С другой стороны, если в качестве ядер использовать более продвинутые (с OoO и предсказателем), то таких ядер помещается существенно меньше на единицу площади кристалла и электроэнергии они потребляют больше. Проводилось ли какое-то моделирование эффективности выраженной в MFLOPS/мм2 (и MFLOPS/Ватт) этих двух вариантов ? Не может ли оказаться так, что кристалл усеянный большим числом меньших по размеру и более простых ядер покажет существенно более высокую производительность (и меньшее энергопотребление), даже учитывая простои конвейеров, за счет более высоких тактовых частот и существенно большего числа ядер на единице площади ? На сколько OoO ядра больше по площади чем не-OoO ?

Возможен ли вариант изготовления "полновафельной" системы (WSE под тип Esperanto) на существующих производтсвенных мощностях Микрона по 180нм ? Какова могла бы быть теоритическая производительность такого кристалла если в качестве ядер использовать конвейерные RV64I+RVV ? По некоторым прикидкам на пластину d=200мм может поместиться до 200 таких ядер с частотой тактирования 1000МГц. Не A100 конечно, но тоже что-то и своё. :-)

Молодцы мужики, но всё же хотелось бы подержать в руках готовое изделие и оценить его свойства.

Лебедев намазал нашим гелем собственные яйца.

В параллельной ветке обсуждают принципы SOSAL,PIDOR и т.д. В этой - мажут себе Ленинские места. Определенно на Хабре сегодня День Юмора. :)

© 2025 GOVNO Project. All rights reserved. how@govno.works

Адрес для контактов просто потрясающий.

Разумеется. Всё остальное это ловушка. Вы это поймёте через некотоорое время, но скорее всего будет уже поздно.

а Intel понадобилось несколько поколений процессоров, чтобы осознать всю бесперспективность своих оригинальных грабель.

Они до сих пор этого не осознали и упорно, вот уже в течении 30-ти лет, выдают "баг" за "фичу".

Возможно, с точки зрения своей архитектуры Intel 80386 и был революционным - в проектировании микросхем я не разбираюсь.

Революционность i386 состоит еще и в том, что это был первый микропроцессор полностью выполненный в софте. Т.е. вся аппаратура написана на HDL языке, симулирована и верифицирована, и только после этого был изготовлен "кремний". Интелу пришлось нанять каких-то студентов, чтобы те дописывали софт для симуляции. На эту тему у Кена тоже есть статья и она гораздо более интересная чем эта. Вообще, у этого автора можно переводить всё подряд - одна сплошная годнота. :-)

Статьи Кена Шерриффа безусловно заслуживают уважения, спасибо за перевод. Но хотелось бы сделать пару замечаний.

1. В переводе есть неточость которая противоречит схеме и тому что написано у Кена. Речь идет о ячейке, цитата:

Переходный транзистор H блокирует сигнал, пока из регистра происходит считывание.

В оригинале:

Transistor H is a pass transistor that blocks this signal until a read is performed on this register;

Перевод по смыслу получился строго противоположный (слово until переведено неверно). Это станет очевидным если посмотреть на схему 8T ячейки. Транзитор H в ней ничего не блокирует, он не выполняет функцию арбитража, как может следовать из перевода. Этот транзистор коммутирует ячейку к соответствующей линии шины данных, и всё. На мой вгляд, правильный перевод мог бы звучать так:

Переходный транзистор H блокирует распростарнение сигнала от ячейки до тех пор, пока не будет выполнена операция чтения.

Для представленой ячейке 8T операция чтения может выполняться одновременно с операцией записи, при этом считываться будет записываемый в ячейку сигнал (посмотрите на схему и проследите распространение сигнала), никакой блокировки тут нет.

2. Тут уже небольшая претензия к Кену. В описании всё той же ячейки T8 автор пишет, что как только подается сигнал чтения (на транзистор H), то налиниях Read bitline появляются данные из текущей ячеки. Причем ранее он говорит о том, что сама ячейка резделена тразитором G который он почему-то называет буферным. Транзистор G не является буферным, это обычный "open drain", он подтягивает к "земле" линию шины данных (Read bitline) если на выходе ячейки находится лог "1". Если линия скоммутирована (сигнал Read wordline подан), то эта лог "1" на выходе превратиться в лог "0" на линии данных (Read bitline), так как линия данных будет тоже подтянута к "земле". Но встает вопрос, а как тогда на линии данных должна появится лог "1" если на выходе ячейки присутствует лог "0" ? Ведь в этом случае транзистор G будет закрыт и ячейка будет отключена от линии данных!? Ответ прост - линии данных всегда подтянуты к положительному потенциалу через резистор подтяжки в несколько десятко в кОм, т.е. по-умолчанию на них всега присутствуют логические единицы, а лог "0" появляется только когда отпирается транзистор G (т.е. на выходе ячейки - лог "1"). Кен ничего не говорит о "потдяжках", видимо полагая, что читатель находится в курсе таких подробностей. В статье есть сноска на небольшое замечание про подтяжку шины данных без особого разъяснения.

Кстати, "подтяжки" на кристаллах обычно реализованы в виде таких же транзисторов. Если затвор планарного N-канального полевого транзистора соединить с истоком, то он будет всегда заперт и в таком состоянии его сопротивление составляет десятки-сотни кОм, что и требуется для подтяжек. Конденсаторы, о которых говорит Кен, это тоже транзисторы - емкость создается затвором по отношению к стоку или истоку. А ячейка динамической памяти это один транзистор с высокой паразитной ёмкостью затвора.

3. Об архитектуре x86. Кен справедливо змечает:

Причём схема регистров i386 также раскрывает проблему обратной совместимости. Архитектура x86 поддерживает доступ к 8-битным регистрам для совместимости с другими процессорами из 1971 года. Эта совместимость требует дополнительной схемы, в частности сети перетасовки и чередующихся регистров. Глядя на схему процессоров x86, не могу не отметить преимущества архитектуры RISC, которая избегает многих особенностей таких процессоров.

А также дополнительных линий управления для доступа к дробным частям большого регистра. Если в 32-х битной архитектуре i386 на один регистр требуется пять линий упрвления, то в современной 64-х битной их, очевидно, стало еще больше. То есть всё это "легаси" это не просто "дополнительный микрокод" как многие наивно полагают, оно поедает драгоценное пространство на площади кристалла и серьезно усложняет схемотехнику. И все это добро Интел продолжает тянуть на своих полечах в светлое будущее.

Мне кажется, что пока еще достаточно мобильника со "своей" открытой ОС чтобы не попадать в ловушки слива личных данных.

Не смотрел, хороший наверное фильм.

Придерживаюсь Ваших принципов уже много лет, даже более того:

  1. Чатами не пользуюсь, ни телеги, ни вайбера на моём мобильнике нет. Только электронная почта на собственном сервере. Мне всегда проще позвонить и поговорить с человеком. Если голосом не получается - пишу электронные письма.

  2. Мобильником пользуюсь только для звонков и просмотра web страниц. Иногда пишу SMS. Приложений менее чем на одну страницу.

  3. Банковских приложений на мобильнике тоже нет - пользуюсь только web версией и дебитной картой.

  4. Дисконтными картами, кроме пожалуй "пятерочки", и дисконтными приложеньицами не пользуюсь и на вопрос "не хотите ли завести" устраивают продавцу лекбез на заданную тему. Пусть подумает на досуге.

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

  6. Еду по доставке не заказываю. В магизин хожу пешком, пакеты с продуктами ношу сам.

  7. Придерживаюсь принципа "всё своё ношу с собой". Никаких облаков. Моя инфа на моём ноутбуке или на моих конторских серверах, которые физически расположены в соседней комнате.

  8. Чатом ГПТ не пользуюсь. Пробовал запускать болванчика на своём сервере, побаловался и выключил. Смысла в этом пока не вижу никакого. Работа доставляет удовольствое только тогда, когда ты сам решаешь сложную задачу, а не какоё-то электронное чудо насоветовало тебе бредовых решений с которыми ты будешь разбираться на порядок дольше, чем своей головой дойдешь с самого начала.

Жить таким образом становится всё сложенее. Во многие службы дозвониться голосом до человека стало невозможно - только чат с роботом, проблемы остаются нерешенными. В школе учителя норовят давать домашнее задание детям через чаты, что создает проблемы родителям. Пытаюсь учителей наказывать за такое халатное отношение к своим обязанностям (дневник у школьника никто не отменял), но всё это приобретает массовый характер и заставить неподчиняющихся мне лентяев работать я уже не могу. Заказчики пытаюся найти меня в вайберах и телеграммах, приходится долго и упорно обьяснять свою позицию, не все готовы её принять. Жена и дети поуши в чатах и соцсетях. Пытался проводить разъяснительную работу о том, что выкладывать информацию о себе в сети это не безопасно - не понимают и не принимают.

Спасибо за перевод.

Статья конечно огонь, навивает слезу и ностальгию. В СССР было всё примерно то же самое, только на 8-10 лет позже. Сразу после падения железного занавеса в стране началось массовое появление компьютерных клубов при дворцах пионеров и школах. Доступ рядовых граждан к большим ЭВМ тщательно охранялся жрецами, но на каждом рынке был уголок торгашей платами и микросхемами для сборки всевозможных клонов Радио-86РК. Кооперативы и Посылторг. Дефицит компонентов и информации. Распечатки программ и документации по языкам программирования на перфорированной бумаге. Бесплатный обмен софтом на кассетах и дискетах. Чуть позже - BBS и Fidonet. Чудесное было время. Потом пришли коммерсы, сделали персональный компьютер и коммуникации массовым явлением и всё подмяли под себя. Но сейчас и того хуже - всё унесло в облака, а у компьютеров даже нет клавиатуры. Кругом сплошной вендор-лок и обман (обмен личных данных на бусы).

Интересно, возможен ли подобный феномен в наше время или же такое бывает раз в 1000 лет ? IMHO, тема с развитием нейросетей и выходом их в опенсорс чем-то напоминает историю с персональными компьютерами.

1
23 ...

Информация

В рейтинге
1 347-й
Дата рождения
Зарегистрирован
Активность