@rchM@stUrb@t0r |
|
Темы:
22
Сообщения:
74
Участник с: 21 декабря 2023
|
Здарова форумчане. Учу Си уже 2 год. Инструмент на руках есть, а умение им пользоваться - нет. Писал недавно аналог команды cp. Не мог понять, почему он занял у меня пару строк, хотя в github репозитории coreutils там наплевано большое количество макросов, инклудов, и.т.д. К чему я. Я хочу создавать утилиты для Linux и учавствовать в разработке модулей для него. Хочу в будуще учавствовать в создании веток репозитории ядра. Какие знания я при себе имею? Ну например про архитектуру x86 (регистры, кеш, обращения, и.т.д.), как хранится информация в памяти (представление отрицательных чисел в памяти). да и базовый курс информатики отлично знаю. умею базово работать с компилятором. У меня такое чувство, что я учил все вразброс. Люди добрые, поделитесь советом. Обоснуйте как сможете, как двигаться? Если мой вопрос неккоректен, просьба к модераторам - переведите тему в /dev/null |
cucullus |
|
Темы:
268
Сообщения:
3562
Участник с: 06 июня 2007
|
@rchM@stUrb@t0rЧто там два года то учить? Тем более, что это ну не тупик, конечно, но только стартовая площадка к современному программированию. В чём вопрос-то? Почему в coreutils макросы? Потому, что это взаимосвязанный пакет из многих утили, наверное, а не просто cp. Да и posix всякие требования накладывает. Или вопрос как писать модули ядра?
такие дела.
|
@rchM@stUrb@t0r |
|
Темы:
22
Сообщения:
74
Участник с: 21 декабря 2023
|
cucullus Вопрос в том, как выйти из тупика? Я знаю Си, но написать утилиту не могу. Например аналог Vim или Gparted. Какие доп.знания я должен приобрести? Вот в чем вопрос |
grayich |
|
Темы:
235
Сообщения:
2266
Участник с: 08 января 2009
|
@rchM@stUrb@t0rэто уже не утилиты нужно просто брать и делать, поставить себе задачу и реализовывать её вопросы которые появляются, решать через поисковики\чатботы не зацикливаться на использовании тех или иных библиотек\фреймворках, брать что-то популярное и не морочиться главное не останавливаться и решить поставленную задачу, плохо или хорошо значение не имеет если же искать варианты, как делать, на чём делать, какие оптимальные решения\алгоритмы использовать .. то это всё превратится в прокрастинацию не нужно искать идеальное решение, нужно просто делать теми инструментами что есть под рукой когда наберётся опыт, тогда можно уже начать искать другие-лучшие решения, но заниматься этим изначально, значит всё похоронить и ничего не сделать. так же полезны будут специфические книги типа The Linux Kernel Module Programming Guide |
AZJIO |
|
Темы:
48
Сообщения:
597
Участник с: 05 января 2021
|
@rchM@stUrb@t0rВообще написать редактор текста или прямой доступ к жёсткому диску нужны знания не только программирования, но и устройство жёсткого диска, формат данных на нём, файловые системы. Система имеет свой API и может предоставлять функции. Например lsblk, blkid, inxi, df, fdisk могут вывести информацию, из них fdisk выводит адреса начала и конца дисков. Я даже писал fdiskGUI. Чтобы написать движок редактора, тоже потребуются неимоверные усилия. К примеру возьми Scintilla, так только изучать готовый движок потребуется ещё 2 года. Более актуально сначала использовать чужой движок, чтобы понять как он работает, какие форматы поддерживает и как он с ними работает и только потом, если появится желание и понимание что можешь написать лучше, чем команда гениев в течении нескольких лет, тогда пиши своё. Плюс к сказанному нужно учить GTK3, его API, чтобы создавать элементы окна. Но это будет привязка к Linux, а например если напишешь на PureBasic, то можно компилировать и на Windows и на MacOS. Как сказал автор PureBasic язык Си это несколько низкоуровневых функций. С помощью которых не напишешь программу, нужны модули кем то написанные. К примеру в своём My_Notepad_Sci использовал 2 больших модуля - Scintilla и Модуль вкладок, также мелкий автораспознавание кодировки |
cucullus |
|
Темы:
268
Сообщения:
3562
Участник с: 06 июня 2007
|
В общем нужно чтобы была необходимость или большой энтузиазм в создании чего-то конкретного да ещё и в обозримый срок. А уж от учебников и примеров чего угодно и на любых языках интернет трескается.
такие дела.
|
RusWolf |
|
Темы:
11
Сообщения:
2813
Участник с: 16 июля 2016
|
AZJIOСтесняюсь спросить, зачем, когда есть давно cfdisk ? Или это был, чисто спортивно-научный эксперимент? |
@rchM@stUrb@t0r |
|
Темы:
22
Сообщения:
74
Участник с: 21 декабря 2023
|
grayich https://ruvds.com/wp-content/uploads/2022/10/The-Linux-Kernel-Module-Programming-Guide-ru.pdf этот норм? |
papados |
|
Темы:
17
Сообщения:
228
Участник с: 11 апреля 2013
|
дак ведь он @rchM@stUrb@t0r, и этим всё сказано, пускай определится сначала.
ThinkPad X390
|
grayich |
|
Темы:
235
Сообщения:
2266
Участник с: 08 января 2009
|
@rchM@stUrb@t0rнорм забей в яндекс "системное программирование linux pdf" так же маны никто не отменял, там вся справочная инфа по системному и прочему |