изначально я думал что лекция будет как везде в ютубе. одлнако ваши лекции всегда содержат много полезного, я такого нигде не слышал. пожалуйста записывайте лекции у вас очень хорошо получается. Много кто снимал видео на данную тему и попадался мне в сети обезьяны цирковые которые ничего не понимают. У вас лучше всех получается
@evgeniykochetkov2702
Жыл бұрын
Про make очень было бы интересно доп семинар посмотреть❤
@popcorn109i
Жыл бұрын
Присоединяюсь!
@neolord50pro77
6 ай бұрын
ну и cmake сразу - чего мелочиться то
@СекретныйКот-и1и
11 ай бұрын
Очень понятные уроки, круто что Си одновременно с Linux. Пожелание увидеть в курсе пример работы с какой-ниб. GUI библиотекой, не сложный, чтобы понять принципы.
@popcorn109i
Жыл бұрын
Я опять хочу прикопаться к историческим фактам и персонам :) 1:43:18 Сказано, "Си это то что сделали Керниган и Ритчи вместе ..." Но, сам Керниган неоднократно говорил (ссылку на интервью можно найти в англ. вики), что он не принимал участия в создании языка. Он сделал мануал по Си сначала для белл лабс, потом вместе с Ритчи сделали с него книгу К&R.
@tilir
Жыл бұрын
Для меня "язык" это "спецификация". Но конечно вы правы, роль Ричи была куда значительней. Керниган ему кофе носил.
@Stedmiel
Жыл бұрын
26:23 технически на винде тоже достаточно права на исполнение, расширение не важно. при этом cmd.exe требует, чтоб расширение было (любое). условное clang++ test.cpp -o test.txt && .\test.txt сработает. при этом из других шеллов (тот же zsh) или прямым CreateProcess можно запустить и файл без расширения, насколько помню.
@tilir
Жыл бұрын
Мне всегда казалось что в windows расширение вместо шебанга -- подсказывает кто исполняет.
@Stedmiel
Жыл бұрын
@@tilir не, там еще веселее в случае cmd.exe- оно сначала пытается исполнить его как pe exe, если обламывается- смотрит на расширение и запускает тем, что этому расширению прописано в реестре. емнип в случае CreateProcess просто всегда пытается как PE. *а вот в лиииинуксе binfmt есть, оно посмотрит внутрь файла, да...
@dymok2258
Жыл бұрын
@@Stedmielтоже неверно: CreateProcess умеет "запускать" bat и vdm-образы: если NtCreateUserProcess (сискол) возвращает соответствую ошибку, идёт попытка запустить другой тип выполнения
@DmitriNesterov
11 ай бұрын
Крутой сказочник! ❤
@alex_s_ciframi
10 ай бұрын
Константин, спасибо за лекцию. Эх, надо было эффектно завершить стрим, случайно запустив rm -rf / И экран гаснет :D
@tilir
10 ай бұрын
Лучше sudo rm -rf ))
@alex_s_ciframi
10 ай бұрын
а, то есть, так даже надёжнее? )
@jesse_roamsas
11 ай бұрын
Благодарю. Очень полезный и интересный семинар.
@Konstantin_Evdokimov
8 ай бұрын
По идее концептуально в линукс не папки, а каталоги поэтому возможны hard links. С папками не понятно как один и тот же файл может лежать в разных папках одновременно, а с каталогом в котором записана лишь информация о файле всё нормально - информацию можно в любое количество каталогов записать. Понятие папки скорее всего из графического интерфейса пришло которого в самом линукс нет.
@tilir
8 ай бұрын
Наоборот. В Unix всё есть файл и папка (directory file) это файл с файлами. Дальнейшие хаки вокруг разных типов линков это именно что хаки. Например можно иметь хардлинк на файл но не на папку, хотя папка тоже файл и т.д. Все эти линки редко используются, по разному поддержаны и в целом не нужны т. к. усложняют первичную превосходную идею древовидной структуры. Которая и восторжествовала.
@Konstantin_Evdokimov
8 ай бұрын
@@tilir Каталогам нужна древовидная структура, но хардлинки на обычные файлы никак древовидную структуру каталогов нарушить не могут. У того же g++ ещё три названия и у всех одинаковый inode.
@default-writer
Жыл бұрын
а еще bash-скрипты можно отлаживать
@Ali_Ibragimov_Jostkiy
4 ай бұрын
Вы арестованы
@DART2WADER
Жыл бұрын
Мой вопрос: а где вопросы? ))
@konstantinsamod1858
Жыл бұрын
-"а где вопросы? ))" Скажите, пожалуйста, А зачем читать семинары\лекции так, чтобы после оставались вопросы?
@b0ryakha
Жыл бұрын
вы очень интересный и увлекательный преподаватель, 1.5ч прошли не заметно, большое спасибо, что выкладываете такой интересный материал бесплатно.
@bonjovi8610
2 ай бұрын
А на оставшихся 26 мин. 36 сек. спали?)
@Backs1ashpro
23 күн бұрын
а вы попробуйте останавливать видео и конспектировать
@kudikokudiko
Жыл бұрын
Очень полезный семинар, спасибо. Узнал много нового о баше
@EvgenijFedotov
Ай бұрын
ВСЁ КРУТО!!! (извиняюсь, полное коллапсирование словарного запаса).. ))) Смотрю весь курс, всё шикарно!
@furjis-dev
11 ай бұрын
Замечательный допсеминар! Константин, спасибо!
@magicmetal8679
7 ай бұрын
Спасибо. Отличный цикл. Освежаю свой С, вгрызаюсь в Linux. С++ тоже обязательно прослушаю, если раньше KZitem у нас не прибьют. bash и прочие юзабельные команды очень кстати. Если я правильно понял, можно добавить ещё каплю феншуя в скрипт second, если использовать в теле цикла переменную folder вместо прямо прописанного названия папки myfolder.
@DrUlrih
Жыл бұрын
make +1
@artemavdienko9639
11 ай бұрын
Шикарный семинар, спасибо!
@АлексейОвчинников-г1с
5 ай бұрын
Разве awk не Aho w... Kernigan?
@lisenkoevg
11 ай бұрын
Вы упоминали Пайтон и Руби в качестве хороших скриптовых языков. А как вы относитесь к node.js в качестве скриптового языка?
@tilir
11 ай бұрын
Вы хотели спросить как я отношусь к javascript? Nodejs это не язык, это рантайм. С моей точки зрения если есть возможность не писать на js, писать на нём не надо.
@comradov3308
Жыл бұрын
28:38 на слайде ошибка. Во втором примере стоит "2>1", должно быть "2>&1". На 39:43 таже ошибка. Смотрю с удовольствием, спасибо за лекцию.
@tilir
Жыл бұрын
Нет, тут можно без амперсанда.
@ДенисСомин
Жыл бұрын
Здравствуйте, Константин Игоревич, подскажите пожалуйста, почему при редиректе стандартного вывода программы в файл с последующим открытием файла stdout и выводом в него, вывод всё равно осуществляется в файл, указанный для редиректа, а не в консоль? запуск: ./a.out > f_output программа: int fd = open("/dev/stdout", O_WRONLY); char msg[] = "Hello world! "; write(STDOUT_FILENO, msg, sizeof msg - 1); write(fd, msg, sizeof msg - 1); Т.е. по логике оболочка должна просто сделать дубликат дескриптора файла на 1 дескриптор через dup2, но почему это оказывает влияние на файл stdout, а не только на запись в таблице дескрипторов? Или я чего-то не понимаю?
@tilir
Жыл бұрын
Потому что вы перенаправили stdout. В норме это симлинк на /dev/tty1, во время вашей программы это симлинк на ваш файл. Чтобы добиться чего вы хотите (гарантированного вывода именно на консоль), используйте /dev/tty (или /dev/tty1). int fd = open("/dev/tty", O_WRONLY); Далее у вас всё будет работать. Ну и да, чтобы лишний раз не гонять open, лучше сначала посмотреть isatty и прочее.
@ДенисСомин
Жыл бұрын
@@tilir понял, спасибо огромное!
@hatiko8227
10 ай бұрын
Иногда хочется чтобы папка являлась именно тегом к файлу) По моему опыту расположение файлов по папкам чисто субъективная вещь и разные люди это делают по разному, где-то структура папок делается по типу файлов, где-то по фичам, а чаще в перемешку, и в таких ситуациях хочется чтобы файл именно что лежал в нескольких папках одновременно, чтобы когда я захочу поработать со всеми файлами типа .png я зашел в каталог images, а когда захотел поработать над определенной фичей, я зашел в каталог some-feature и увидел там как картинки, так и файлы с кодом, относящиеся к этой фиче. В unix, кстати, есть теги для файлов? В винде что-то такое вроде есть, но не видел что бы кто-то это юзал.
@tilir
10 ай бұрын
Представьте себе навигацию по такой системе. Вы не придумаете ничего лучшего чем линейный список тегов и линейный список файлов с каждым тегом. Но это же кошмар по сравнению с упорядоченной древовидной структурой. Общее правило такое -- если вы считаете что что-то в гениальной и сверхсовершенной идеологии Unix неправильно, значит заблуждаетесь именно вы, ищите у себя ошибку.
@hatiko8227
10 ай бұрын
Тут я скорее имел ввиду обычный граф, в котором в одну точку можно прийти через разные пути. Похожим образом расположена информация в нашей голове и мне кажется это было бы действительно удобно, так же например работают заметки в obsidian'е, если знакомы. Другой вопрос чего будет стоить реализация и переход на такую систему.@@tilir
@Yuriy39412
6 ай бұрын
Спасибо, у меня вопрос, есть ли где-то видео по кросс компиляции на C/C++ (желательно с clang)? Уже очень долго мучаюсь, но толковых инструкций не нашел.
@tilir
6 ай бұрын
Я иногда упоминаю про кросс-тулчейны, например можете посмотреть kzitem.info/news/bejne/2Y-VtJlvk6yffWk Но именно целевая лекция про кросс-компиляцию пока не вышла.
@Yuriy39412
6 ай бұрын
@@tilir Спасибо Большое!
@popcorn109i
Жыл бұрын
16:55 Насколько все же я знаю, основатель Unix, это не Денис Ритчи, а Кен Томпсон. Ритчи бесспорно очень повлиял на Unix как минимум тем, что она была переписана с ассемблера на язык который придумал Ритчи, язык С. Или не с ассемблера, а с языка В, котрый придумал (сократив BCPL) Томпсон. Тут точно не помню. Ну, тоесть они вместе работали над Unix, но оригинальный автор и идея пренадлежит Томпсону.
@tilir
Жыл бұрын
Unix это экосистема языка C.
@popcorn109i
Жыл бұрын
@@tilir Возможно, с этим не буду спорить. Но первая версия Unix была написана, когда языка С еще не существовало. И была написана не Д.Ритчи, а Томпсоном. Тоесть, это все же разные вещи, которые сплелись в очень успешном тандеме, как по мне. Но не буду сильно с Вами спорить. Спасибо большое за лекции!
@tilir
Жыл бұрын
@@popcorn109i если бы Unix остался в первой версии он никому бы не был нужен. Когда я говорю "Unix" я имею в виду "То Unix, который покорил мир", разумеется.
@ИванРазинкин-д6в
Жыл бұрын
Очень полезная лекция, Константин, благодарю! Только слово окружение вы произнесли неправильно, там не произносится буква r, как и в слове iron =)
@tilir
Жыл бұрын
У меня есть систематические ошибки. Также люди замечали их в словах vehicle, scent, actually и других. Во многом поэтому я не записываю лекций на английском. Надо как нибудь позаниматься с репетитором, поставить фонетику.
@ИванРазинкин-д6в
Жыл бұрын
@@tilir При этом, я более чем уверен, что технической подготовки вам с головой хватит, чтобы выступать на английском)
@AlphaBrox
Жыл бұрын
какое окружение? если environment, то там произносится r
@andreygurenkoff2721
Жыл бұрын
@@tilirинтересно, а Вы сами не пробовали в качестве репититора работать? Готовить к собесам))
@tilir
Жыл бұрын
@@andreygurenkoff2721 нет, у меня пока что слишком много другой работы. Может быть в старости. Но к слову, я бы не хотел "готовить к собесам" это звучит туповато. Просто в индивидуальном порядке учить программированию.
Пікірлер: 60