Как стать автором
Обновить
49
1

Пользователь

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

А нужен ли тебе английский, раз не интересно и нет надобности в знании языка? Язык - всего лишь инструмент. Кто-то владеет им лучше, ну и что с того :)

Если хочется поупражняться, почитай то, что прочел на русском и понравилось, что знакомо.

Хоббит или Путешествие Туда и Обратно
Хоббит или Путешествие Туда и Обратно

Но когда покупаешь, не ведись на обложку, обязательно полистай :) А то я однажды схватил, думал Лавкрафта в оригинале почитаю... открыл, а там "Адаптация текста...", краткое изложение, и 2/3 книги - словарь и справочник грамматики.

(НЕ) Зов Ктулху
(НЕ) Зов Ктулху

Должно быть, и это не предел :)

Файл kernel/kernel после сборки с отладочной информацией занимает 258Кб. Секции кода и данных занимают 135Кб.

$ objdump -h kernel/kernel | less

kernel/kernel:     file format elf64-little

Sections:
Idx Name          Size      VMA               LMA               File off  Algn
  0 .text         00008000  0000000080000000  0000000080000000  00001000  2**4
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .rodata       00000840  0000000080008000  0000000080008000  00009000  2**3
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  2 .data         00000044  0000000080008840  0000000080008840  00009840  2**3
                  CONTENTS, ALLOC, LOAD, DATA
  3 .got          00000010  0000000080008888  0000000080008888  00009888  2**3
                  CONTENTS, ALLOC, LOAD, DATA
  4 .got.plt      00000010  0000000080008898  0000000080008898  00009898  2**3
                  CONTENTS, ALLOC, LOAD, DATA
  5 .bss          000194b0  00000000800088b0  00000000800088b0  000098a8  2**4
                  ALLOC
  6 .riscv.attributes 00000057  0000000000000000  0000000000000000  000098a8  2**0
                  CONTENTS, READONLY
  7 .comment      0000001f  0000000000000000  0000000000000000  000098ff  2**0
                  CONTENTS, READONLY
  8 .debug_info   00012748  0000000000000000  0000000000000000  0000991e  2**0
                  CONTENTS, READONLY, DEBUGGING, OCTETS
  ...
echo 'obase=10;ibase=16; 8000 + 0840 + 44 + 10 + 10 + 0194B0' | bc
138580

Стек процесса требует 2 страницы памяти, NPROC=64, итого 64 * 4 * 2 = 512 Кб.

Каждый процессор выполняет поток планировщика - еще 8Кб на каждый.

$ objdump -h user/_sh

user/_sh:     file format elf64-little

Sections:
Idx Name          Size      VMA               LMA               File off  Algn
  0 .text         000012fc  0000000000000000  0000000000000000  00001000  2**1
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .rodata       00000d00  0000000000001300  0000000000001300  00002300  2**3
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  2 .data         00000010  0000000000002000  0000000000002000  00003000  2**3
                  CONTENTS, ALLOC, LOAD, DATA
  3 .bss          00000088  0000000000002010  0000000000002010  00003010  2**3
                  ALLOC
  4 .debug_info   000025ad  0000000000000000  0000000000000000  00003010  2**0
                  CONTENTS, READONLY, DEBUGGING, OCTETS
...
echo 'obase=10;ibase=16; 12FC + 0D00 + 10 + 88' | bc
8340

Программа sh занимает 8 КБ памяти. Init - еще меньше.

$ objdump -h user/_init

user/_init:     file format elf64-little

Sections:
Idx Name          Size      VMA               LMA               File off  Algn
  0 .text         00000884  0000000000000000  0000000000000000  00001000  2**1
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .rodata       00000778  0000000000000888  0000000000000888  00001888  2**3
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  2 .data         00000010  0000000000001000  0000000000001000  00002000  2**3
                  CONTENTS, ALLOC, LOAD, DATA
  3 .bss          00000020  0000000000001010  0000000000001010  00002010  2**3
                  ALLOC
  4 .debug_info   0000117e  0000000000000000  0000000000000000  00002010  2**0
                  CONTENTS, READONLY, DEBUGGING, OCTETS
...
echo 'obase=10;ibase=16; 0884 + 0778 + 10 + 20' | bc
4140

Итого: 135 + 512 + 8 * 3 + 8 + 4 = 683 Кб. Меньше 1 мегабайта.

Да, будут pdf и epub.

Хабр не раскрашивает блоки кода в Markdown.

#include <stdio.h>

void main(void) {
  return 0;
}

Вы открыли новый смысл термина "политкорректность" - для программирования :) Потоки не портят данные, фу как грубо, они данные только изменяют.

Представьте, поток вмешался в денежные расчеты другого потока и изменил ячейку памяти, а другой поток подмены не заметил и ошибка пошла в результат вычислений. Так данные изменены или испорчены?

"Могут испортить" или "испортят" - невелика разница. Текст учит, как защищать данные от конкурентного доступа. Раз есть вероятность порчи, нужно защищаться - в этом идея.

Консистентность операций в принципе является проблемой и не только записи, но и чтения

Здорово, что вы погружены в тему и легко читаете на английском, но мне кажется, вы не кое-что упустили, когда читали :) Даже в оригинале написано точнее - at least one access is a write

A race is a situation in which a memory location is accessed concurrently, and at least one access is a write. A race is often a sign of a bug, either a lost update (if the accesses are writes) or a read of an incompletely-updated data structure.

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

Dmitri-D
То что сказано относится только к исключительным блокировкам (mutual locks), как корректно написано в оригинале.
Сущесвуют еще и разделяемые блокировки (shared locks)

Да, вы правы, существуют, но о них здесь не рассказывают :) Прочтите оригинал внимательно. Я понимаю, вы круто разбираетесь в видах блокировок, но эта глава не рассказывает о mutual и shared блокировках и проблеме конкурентных readers и writers - это отдельная тема.

The usual way to avoid races is to use a lock. Locks ensure mutual exclusion, so that only one
CPU at a time can execute the sensitive lines of push

Не можно, а нужно :) Муравьиный шрифт pdf тяжело читать на электронной книге.

Да, пожалуй, лучший способ защитить программу - не копировать ее на компьютер пользователя, а предоставлять как веб-сервис :) Но если заказчик требует, чтобы данные в интернет не ходили - программа работает локально - замечательному веб-приложению откажут.

Если программа подключается к серверу только для проверки лицензионного ключа, тогда цель остается та же - изменить флаг "программа зарегистрирована" с 0 на 1. Только бороться будем с сетевыми функциями :)

Спасибо за ссылку, теперь знаю, где достать UNIXv6 :)

Да, это круто - запустить древнюю ОС на древнем железе - чувствуешь себя археологом, некрофилом некромантом. Помню, нашел в библиотеке руках древнюю методичку по ассемблеру PDP-11 и трепетно листал :)

А можно пойти еще дальше - завести Multics под DPS8M, почитать мануалы и программировать для Multics на PL/1 :)

Авторы xv6 - преподаватели курса ОС в MIT - учили студентов на UNIXv6 и PDP-11 еще до того как написали xv6. Их UNIX был написан на древнейшем диалекте Си - еще до выхода книги "Язык программирования Си". Авторы поручили студентам писать новую ОС для Intel x86 - Jos. Затем авторы решили, что их курс - по ОС, а не архитектуре, поэтому в 2006-м написали xv6 для x86. Сегодня авторы перевезли xv6 под RISC-V 64.
https://h0rr0rr-drag0n.blogspot.com/2011/02/xv6-6828-mit.html

Пока только две главы перевел из семи :) Как закончу перевод, соберу главы в pdf.
Оригинал на английском в pdf

Xv6 учит не работе с Linux, а разработке Unix-подобной операционной системы.

QEMU - не симулятор Linux, а эмулятор компьютерного железа. На виртуальном железе вы можете запускать различные ОС.

Xv6 работает на плате RISC-V VirtIO board - в нее входят процессор, оперативная память, ПЗУ с кодом загрузчика ОС, последовательное подключение к клавиатуре и экрану и жесткий диск.

Сборка кода легко выполняется командой make. Сборка кода и запуск xv6 под эмулятором - командой make qemu.

Xv6 работает на RISC-V, поэтому для его сборки нужны RISC-V версии инструментов: QEMU 5.1+, GDB 8.3+, GCC, и Binutils. Инструкция поможет поставить инструменты.

Ваша ссылка на старую версию 2018 года для архитектуры x86, авторы ее уже не поддерживают.

NOTE: we have stopped maintaining the x86 version of xv6, and switched
our efforts to the RISC-V version
(https://github.com/mit-pdos/xv6-riscv.git)

Вы бы хоть название книги перевели, стало бы понятнее о чем речь

Справедливое замечание, поправил.

Xv6 - учебная Unix-подобная операционная система. Авторы написали xv6 для курса по операционным системам, который преподают в MIT. Вот заметка о том, как xv6 появилась.

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

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

Тебя забыл спросить что мне делать.
А Вы мне не тыкайте, я с Вами водку не пил.

Н-А-Л-О-Г-И
IT-бизнес в России освободили от налога на прибыль.

Мне мои разработки и команда приносят деньги.
В том и дело - Вы видите угрозу только своей выгоде, деньги граждан Вас не волнуют?

Законы пишутся теми, кто не в курсе реального положения дел.
А у Вас есть опыт борьбы с мошенниками, оперативной работы в органах или гос.управления? Может, Вы - акула бизнеса, но с чего решили, что все остальные баклуши бьют? Прокуратура, МВД, Росстат, суды - все это так, фикция? Лишь бы Ваш бизнес процветал?

Я написал - веб разработка и инфо сайты.
Вам Django или Bootstrap скачать не дают? Что за инфопорталы, без которых российский бизнес жить не способен?

Мне тоже спамят, но почему-то местные номера.

На экране может отображается и местный номер, это ни о чем не говорит. Беда с мошенничеством в Интернете такова, что отследить, поймать и вернуть деньги почти нереально.

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

Очень "хорошо" с дефицитом мидлов. Все идет по плану, ага.

Вот возьмите и откройте школу программистов, воспитывайте мидлов, чем не бизнес?

То есть Вы хотите продолжать работать с зарубежными сервисами, которые Вас же и кинули, заблокировали.

Я уже написал, мне нужны и нейронки просто потому что облегчают жизнь, и софт, и зарубежные сайты и порталы

Чем занимается Ваш бизнес и чем он полезен людям в России? Лично Ваши мотивы понятны - это облегчает Вам жизнь. А кто потребитель Ваших услуг, на кого работаете, кому это выгодно, кроме Вас?

Обратите внимание на цифры:

Число преступлений, совершенных с использованием сети Интернет и средств мобильной связи, выросло в 2023 году на 39,3% по сравнению с аналогичным периодом прошлого года.
...
В январе-июне 2023 года зарегистрировано более 210,8 тыс. различных мошенничеств
https://tass.ru/obschestvo/18417795

В 2023 году число попыток телефонного мошенничества в отношении россиян достигло 8,6 млн в сутки против 5 млн в 2022-м. Об этом сообщил зампред правления Сбербанка Станислав Кузнецов.
«Основная угроза — это телефонное мошенничество, доля которого в общем объеме кибермошенничества составляет 90%.
https://www.kommersant.ru/doc/6043349

Прокуратура Москвы опубликовала статистику преступлений, совершенных за семь месяцев 2023 года телефонными мошенниками. По данным прокуратуры аферисты обманом заставили продать 11 квартир и несколько автомобилей. Ущерб причинен более, чем на 156 млн рублей.Возраст потерпевших от 63 до 84 лет.
https://vk.com/wall-181039325_1472

Как Вы считаете, это допустимая цена за то, чтобы Вы могли поиграться с нейросетями?

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

Вы так и не рассказали, что у Вас за бизнес и проекты, что жить не могут без зарубежных порталов. В чьих интересах Вы работаете?:) Если Вы спите и видите свой бизнес за рубежом, почему Вас заботят законы в России? Может, Вы действительно правы и Вам стоит съездить на заработки в КНДР, Польшу, Финляндию, Францию, США, воплотить мечту, построить, наконец, свой бизнес. По закону Вас даже гражданства российского лишить не могут, чего Вам бояться. Действуйте - это лучше, чем сидеть на месте и жаловаться на обстоятельства.

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

Разработчиком в РФ становится быть просто невозможно.

Вы уж определитесь, хотите быть разработчиком или бизнесменом? Это Ваше частное эмоциональное мнение. В IT полно специальностей и вакансий полно. Вдохните, успокойтесь и решите, что делать лично Вам. А панику провоцировать в российском IT-сообществе не нужно, у нас тут все хорошо :)

Как теперь мне регистрировать аккаунты для нейронок?

А чем это таким занимаются Ваши нейронки, что им необходима анонимность?)

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

Tor, знаете ли тоже для бизнеса используют - торгуют наркотой и оружием.

Можно было бы обязать сервисы по продаже виртуальных номеров запрашивать данные

А как же закон о защите персональных данных? Сервисам этим придется свои сервера арендовать в России. А оно им выгодно?) В итоге сервисы станут трясти и блокировать за неисполнение законов. А пока возимся с бюрократией, мошенники воруют.

Интересно посмотреть статистику - а кто потребитель виртуальных номеров? 99% не мошенники ли? Тогда зачем нам в России такие сервисы?

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

Говорят, если ученый не может пояснить ребенку, чем он занимается, значит, он шарлатан :) Расскажите, чем Вы занимаетесь, это интересно.

Можно ведь обойтись без временных файлов - склеивать строки в памяти мы умеем https://stackoverflow.com/questions/2250131/how-do-you-append-to-an-already-existing-string

Ничего не поделаешь - Хабр не дает удалить комментарий :)

если правильно настроены права доступа ... если вы знаете что делаете ... если удалённый репозиторий правильно настроен

Увы, закон Мерфи все еще работает :) Хорошо не всё и не всегда.

У вас винты на локальной машине никогда не умирали?

Моим винтам умирать строго воспрещается :) А если серьезно, то у нас пушили по несколько раз в день, но предельно осторожно.

У вас с веткой всегда 1 разработчик только работает?

Да, одна ветка - одна фича.

Как оттестировать промежуточные результаты, если пушить нельзя, а тесты запускаются на сервере?

Мы тесты локально запускали перед коммитом.

Вашу мысль я понял, просто у нас разной величины проекты, команды и раздача полномочий к репозиторию. Мы работали без rebase, мержили локально.

1

Информация

В рейтинге
1 494-й
Зарегистрирован
Активность