LINUX.ORG.RU

Реализация системных вызовов работы с сокетами в ядре Linux. Создание сокета.


0

0

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

>>> Подробности

anonymous

Проверено: Shaman007 ()


inode == "индексный дескриптор"? звучит IMHO как-то не так :-/ в конце-концов инода она и есть инода.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

всю жизнь inode был индексным дескриптором или вы из киргизии?

anonymous
()

А не судьба была сделать у картинки счетчика рамблера всё по нулям, дабы не лицезреть надпись Rambler's Top100 на верху страницы?

pento ★★★★★
()
Ответ на: комментарий от pento

>А не судьба была сделать у картинки счетчика рамблера всё по нулям, дабы не лицезреть надпись Rambler's Top100 на верху страницы?

причем тут статья? или ее содержание?

или Вы материал изучаете по счетчикам рамблера?!

anonymous
()
Ответ на: комментарий от pento

2pento * (*) (17.09.2007 11:09:06)

вообще-то там счетчик внизу.

anonymous
()
Ответ на: комментарий от borisych

>прочел, написана редкая белеберда

а где не белеберда?

Deleted
()
Ответ на: комментарий от pento

2pento * (*) (17.09.2007 11:09:06)

>А не судьба была сделать у картинки счетчика рамблера всё по нулям, дабы не лицезреть надпись Rambler's Top100 на верху страницы?

такое ощущение, что вы изучаете материал стоя на голове или посавив монитор вверх тормашками! оригинально

anonymous
()
Ответ на: комментарий от pento

2pento * (*) (17.09.2007 11:09:06)

>А не судьба была сделать у картинки счетчика рамблера всё по нулям, дабы не лицезреть надпись Rambler's Top100 на верху страницы?

такое ощущение, что вы изучаете материал стоя на голове или посавив монитор вверх тормашками! оригинально

anonymous
()
Ответ на: комментарий от borisych

>прочел, написана редкая белеберда

можно прочесть Ваши статьи по ядру, где написана не белебирда

и еще Вашу методику в студию о том как не писать билеберду

anonymous
()
Ответ на: комментарий от anonymous

>> прочел, написана редкая белеберда
> можно прочесть Ваши статьи по ядру, где написана не белебирда
> и еще Вашу методику в студию о том как не писать билеберду

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

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от anonymous

>можно прочесть Ваши статьи по ядру, где написана не белебирда

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

borisych ★★★★★
()
Ответ на: комментарий от klalafuda

2klalafuda ** (*) (17.09.2007 11:52:07) это твои все аргументы или еще есть?

anonymous
()
Ответ на: комментарий от borisych

2borisych *** (*) (17.09.2007 11:51:51)

>нельзя, поскольку статьи не пишу, а читаю. от вашей статьи ( в глазах рябит от "сокет", "протокол"

так и скажите, что вы делитант

anonymous
()

Публика на LOR, как всегда, блещет не умом, но плебесцитом... Когда нечего сказать по сути, начинают обсуждать счётчики.

fnm
()
Ответ на: комментарий от fnm

2fnm (*) (17.09.2007 11:57:44)

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

anonymous
()
Ответ на: комментарий от klalafuda

2klalafuda

Так вот, знайте, в простонародье, персоналию, которая выливает грязь на другую персоналию, при этом не аргументирую свои слова, называют - ТРЕПЛО!!!

Прежде чем просто без аргументов орать везде что это отстой, подумайте о том, что про вас будут считать.

anonymous
()
Ответ на: комментарий от anonymous

У нас что, день гнусных ананумусов на ЛОРе???

fdn
()

Лично я из статьи узнал много нового для себя, нормально написано. ЗЫ: Человек свое время на вас потратил, а вы его грязью поливать. Так нельзя, таварищи.

anonymous
()
Ответ на: комментарий от anonymous

> такое ощущение, что вы изучаете материал стоя на голове или посавив монитор вверх тормашками! оригинально

любая точка зрения имеет право на существование

kto_tama ★★★★★
()

Дизайн какой-то макоподобный. И с русским там не дружат. Такое впечатление, что данный сайт создан микрософтом для того, чтобы просто позорить линукс.

P.S. выложите ещё раз великое "резюме" автора linuxkernel.ru

anonymous
()
Ответ на: комментарий от anonymous

> Так вот, знайте, в простонародье, персоналию, которая выливает грязь на другую персоналию, при этом не аргументирую свои слова, называют - ТРЕПЛО!!!

> Прежде чем просто без аргументов орать везде что это отстой, подумайте о том, что про вас будут считать.

btw я отнюдь не утверждаю, что статья - отстой. да, есть IMHO некоторая скажем так сумбурность в изложении, но это в принципе не страшно. AFAIU автор не собирается на этом останавливаться -> посмотрим, что будет дальше.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от anonymous

>Лично я из статьи узнал много нового для себя, нормально написано. ЗЫ: Человек свое время на вас потратил, а вы его грязью поливать. Так нельзя, таварищи.

А кто поливает? Один аристократ выискал орфографическую ошибку и из-за нее презрительно назвал всю статью белибердой. Другому дегенерату не понравилось, после N-ной дозы лизергина он увидел только большой счетчик рамблера вверху и не смог найти статьи на странице.

А аргументов привести никто не смог, значит наверно хорошая статья.

anonymous
()

школа, блин.

откровенно говоря, мне не понятно назначение этой статьи.
Тот кому это нужно (по работе/просто интересно/etc)
вполне способен сам это раскопать
за очень небольшое время

int_0dh
()
Ответ на: комментарий от anonymous

> socket(AF_INET, SOCK_STREAM, 0); -------P---------- PF_INET вообще то

http://www.opengroup.org/onlinepubs/009695399/functions/socket.html

#include <sys/socket.h>

int socket(int domain, int type, int protocol);

The socket() function shall create an unbound socket in a communications domain, and return a file descriptor that can be used in later function calls that operate on sockets.

The socket() function takes the following arguments:

domain
Specifies the communications domain in which a socket is to be created.
type
Specifies the type of socket to be created.
protocol
Specifies a particular protocol to be used with the socket. Specifying a protocol of 0 causes socket() to use an unspecified default protocol appropriate for the requested socket type.

The domain argument specifies the address family used in the communications domain. The address families supported by the system are implementation-defined.

Symbolic constants that can be used for the domain argument are defined in the <sys/socket.h> header.

http://www.opengroup.org/onlinepubs/009695399/basedefs/sys/socket.h.html

The <sys/socket.h> header shall define the following macros, with distinct integer values:

AF_INET
Internet domain sockets for use with IPv4 addresses.
AF_INET6
[IP6] [Option Start] Internet domain sockets for use with IPv6 addresses. [Option End]
AF_UNIX
UNIX domain sockets.
AF_UNSPEC
Unspecified.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от anonymous

> Так вот, знайте, в простонародье, персоналию, которая выливает грязь на другую персоналию, при этом не аргументирую свои слова, называют - ТРЕПЛО!!!

> Прежде чем просто без аргументов орать везде что это отстой, подумайте о том, что про вас будут считать.

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

Когда вы покупаете в магазине протухшую селёдку, вы её тоже съедаете, говоря, что вот люди её выловили, посолили, привезли в магазин? Или если исключить деньги — вы покупаете в магазине пиво и вам в подарок дают протухшую селёдку?

annoynymous ★★
()
Ответ на: комментарий от anonymous

2anonymous >я думаю что, те у кого есть какие-либо сложности в жизни, >возможно, с женщинами или размером, или еще чем, здесь >обсираюет все и вся, чтобы себя хоть как-то морально >удовлетворить. Показать самим себе что они хоть на что-то >спопобсны и могут огрызаться. Все. Прорались. Подняли сами в >своих глазах виртуальную планку и _удовлетворились__. Ну пусть >хоть так удоволетворятются.

Таки и вы есть тот засранец, которому стоит просратся

anonymous
()

Еще одна быдло-статейка для быдло-lsocket-программистов. Че-нибудь поинтереснее не могли написать.

anonymous
()
Ответ на: комментарий от annoynymous

>Товарищ, а также остальные онанизмусы, вы идиоты? Если человек выставляет своё произведение на всеобщее обозрение, он должен быть готов принять дозу критики.

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

anonymous
()
Ответ на: комментарий от anonymous

Я с того-же сайта прочитал дипломную работу http://linuxkernel.ru/store/knm.pdf "Разработка ядра Linux". Если сейчас такие дипломные работы пишут, то чему тогда в институтах учат?

laune
()
Ответ на: комментарий от anonymous

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

Было слово «белиберда», слова «говно» не было. Статья действительно хреново написана:

1) Стилистика (сложно-сложно-деепричастно-подчинённые предложения не рулят)

2) Опечатки

3) Почему часть кода раскрашена, а часть нет?

По содержанию:

4) Зачем Ассемблер?!

5) Какова целевая аудитория?

На орфографию и пунктуацию закроем глаза. Но вот на это я закрыть глаза не могу:

…В виду нынешней дикой занятости, просто нет времени облечь все материалы в подобающей того вид.… // А того вид ещё подобающей?

…Мы все должны быть благодраны Артему…

…Артем, написал введение, изменил местами стиль, исправил ошибки и отмакетировал.… // А, ещё, Артём, любит, запятые, пихать, везде.

…Из данного участка кода видно, что если значение аргумента protocol было указано отлично от нуля (т.е. IPPROTO_IP), то не искать соответствие пары тип/протокол для данного семейства протоколов, т.е. интернет, с целью определения протокола, для которого нужно создать сокет… // это вообще выше моего сознания

И так далее, всё описывать нет ни времени, ни желания. Если автор хочет писать статьи, то пусть хотя бы почитает книги и статьи других авторов, чтобы понять, как же именно должно быть выстроено повествование, как нужно оформлять код и как отсекать лишнее.

annoynymous ★★
()
Ответ на: комментарий от annoynymous

>Я с того-же сайта прочитал дипломную работу http://linuxkernel.ru/store/knm.pdf "Разработка ядра Linux". Если сейчас такие дипломные работы пишут, то чему тогда в институтах учат?

песцед, говно!

выжимка из O`reily "Understanding Linux kernel". или около того. Но убило больше всего то, что сделан этот pdf в Ворде!!! ндаааа.......

scyld
()
Ответ на: комментарий от scyld

что касается статьи автора:

Автор разбирается в ассемблере, но по данной статье судить о степени знаний в этой области нельзя, т.к., кроме asm-i386 есть ещё x86-mmx/sse/sse-ii, x86_64, не говоря уже о других архитектурах, типа MIPS или ARM.

Так же автор хорошо понимает как происходит системный вызов в архитектуре x86. Но какое отношение это имеет к socket в ядре - непонятно.

Хорошо было бы, если бы автор рассмотрел написание модуля ядра, поддерживающего socket (по-русски - гнёзда). Хотя бы на примере простенького IRDA-socket модуля mcs7780.

Непонятно выраение автора "во многих книгах написано.... но это неверно..." Непонятно, почему неверно: потому, что это расходится со стандартом, или потому, что такова реализация в ядре linux ??

А вобщем, статья на хорошем уровне, выше чем многие другие статьи, большинство из которых описывают "танцы с бубном".

scyld
()

ОК, на орфографические ошибки тут уже до меня
указывали, но эту никто не заметил, в то время
как я от неё долго смеялся:
---
Код функции sock_create распложен в файле net/socket.c Эта функция
вызывает __sock_create, расположенную в том же файле, указывая в
качестве последнего параметра нулю.
---
Ну что, будем и дальше нулю всем показывать в
качестве последнего параметра? :)

Ну а если по делу...
Вот это, к примеру, что:
---
container_of является макросом, который расширяется препроцессором в
расширение gcc и определяется в include/linux/kernel.h
Речь о gcc extention пойдет в отдельной статье.
---
Типа, очень умно сказано? Вот только дальше приводится
текст этого самого container_of, и никакого отношения
к расширениям gcc он явно не имеет. Или я вижу плохо?

anonymous
()

Как же сложно написано. Честно и усердно пытался вникнуть в ход мыслей автора -- хоть убей, не получается. Все-таки, необходима методичность в деле написания статей. А то получается а-ля "Благодарим за то, что мы, несмотря ни на что."(с)

balodja ★★★
()
Ответ на: комментарий от scyld

> выжимка из O`reily "Understanding Linux kernel". или около того. Но убило больше всего то, что сделан этот pdf в Ворде!!! ндаааа.......

LDD к примеру то-же явно не в LaTeX писан и что с того? как раз это не имеет никакого значения.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от scyld

> socket (по-русски - гнёзда)

Сам ты гнездо, иди гнездись. Гыгыгы. Сокет он и в африке сокет, а протокол они и есть протокол, так что всем гуманитариям, борцам за чистоту русского языка вперед апстену.

Давно не видел таких тупых докопок.

anonymous
()

Даааа. С русским языком автор не дружит совсем.

По содержанию: стиль "что вижу то и пою". В одну кучу зачем-то свалено описание механизма вызова syscall'ов и работы сокетов.

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

execve
()
Ответ на: комментарий от execve

2execve * (*) (18.09.2007 1:54:13)

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

anonymous
()
Ответ на: комментарий от anonymous

> этот студент реализовал, на сколько я знаю, два больших коммерческих проекта по ядру.

Названия проектов в студию.

> И студентом он был когда ты еще на двченок муструбировал.

Тем хуже для него.

execve
()
Ответ на: комментарий от execve

> Названия проектов в студию.

один не помню, вернее не знаю.

Если у тебя комплексы, напиши человеку, спроси. Но, на сколько я его знаю, они лишь посмеется в ответ на такое предложение. Мериться письками удел слабых. А взрослые умом люди никому ничего не доказывают, а вообще предпочитают оставаться в тени чтобы не светиться. А парни в том году конечно за пол года проект сбацали............. ну в общем, давай, уважаемый, execve, призанем что статья - слабая, автор - слабак. Ты парень - солидный, профи. Одним взглядом можешь составить психологический портрет человека по статье. Ресурс LinuxKernel.ru для слабаков. Никому не нужен.

Да, я принимаю твою точку зрения. Ты спец. Все что не для тебя - плохо. Хочешь, спроси сам у автора. Я спорить с тобой больше не буду. А то опять скажут, что я воздух просто так сотрясаю............. на очередной линукс пати :)

anonymous
()
Ответ на: комментарий от anonymous

> Если у тебя комплексы, напиши человеку, спроси. Но, на сколько я его знаю, они лишь посмеется в ответ на такое предложение. Мериться письками удел слабых. А взрослые умом люди никому ничего не доказывают, а вообще предпочитают оставаться в тени чтобы не светиться. А парни в том году конечно за пол года проект сбацали............. ну в общем, давай, уважаемый, execve, призанем что статья - слабая, автор - слабак. Ты парень - солидный, профи. Одним взглядом можешь составить психологический портрет человека по статье. Ресурс LinuxKernel.ru для слабаков. Никому не нужен.

> Да, я принимаю твою точку зрения. Ты спец. Все что не для тебя - плохо. Хочешь, спроси сам у автора. Я спорить с тобой больше не буду. А то опять скажут, что я воздух просто так сотрясаю............. на очередной линукс пати :)

Ну, прямо Бэтмен какой-то из Шервудского леса.

annoynymous ★★
()
Ответ на: комментарий от klalafuda

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

мощно. а сейчас ты нам начнешь пеарить "квадрат Малевича", любитель поотстаивать сомнительные прелести вантуза?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.