Сеть & ассемблер
Есть идея. Отдать ее на растерзание в институт в образовательных целях =)
Есть еще идея, - добавить в нее работу с сетью. Слышал о NetBios но не знаю подойдет ли мне это, так же пока не знаю как с этим нетбиосом работать. Вообще идея такая. ОС должна быть небольшим сервером. Отдавать страницы по запросу.
Написал сервер под Windows. Есть один вопрос. В программе при создании сервера он просто сканирует 80й порт на присутствие "GET /..." ?
А как тогда отличать "подключился" "запросил страницу" "передает файл на сервер" "закрыл соединение" ?
Ассемблер + сеть на низком уровне (без DOS) - поисковики не знают. Надеюсь на помощь. Спасибо!
Запросил страницу - уровень HTTP
передается файл - HTTP
Зарыл соединение - TCP.
Ищите, например, реализацию TCP с нуля...
Ну не скажите. В первую очередь это было для самообразования. Сомневаюсь что открыв и посмотрев исходники данной оси я приобрел бы те знания. Да и там еще попробуй разобраться..
Не ну вот куда мы катимся...
Ну давайте.. Кинем километровым куском кода студентам и пусть хаваютЪ. Знаете, я тут на курсы ходил.. повышения квалификации..Сидит баба и рассказывает про загрузку ОС. "сначало POST, потом BIOS, а потом Ubuntu начинает считывать файл и устанавливать приложения" (с)., Да чтоб вывести какой нить пУксель надо здорово пропердеть перед компом! А она сразу фаЕл!!! Это сильно удручает. при чем про этот файл она рассказывала оставшуюся лекцию. О чем идет речь я так и не догнал. Извините господа, но это же полный пи*дец! Так нельзя. И если ей дать этот миникс и сказать "учи студентов" то хер она будет что-то делать..
Другое дело написать минимум, и рассказать хотя бы как происходит начальная загрузка. Ведь некоторые вообще не знают как работает компьютер, хотя бы принцип.
К чему эта тирада? Некомпетентных людей хватает везде.
Многим (если точнее, то абсолютному большинству) эти принципы даром не нужны, а для тех, кому интересно, написано предостаточно специальной литературы.
Опять же, чтобы понять принципы работы ОС совсем не обязательно закапываться в исходники реальных систем, можно вполне обойтись реализацией моделей управления многозадачностью, файловой системы и т.п.
Сервер:
- создает сокет; //нужна реализация "сокетной" системы в ОС (далее - сс)
- связывает сокет-адрес (адрес Internet и номер порта) с сервисной программой: "binding"; //вместо этого собственная реализация "сс" (демон/сервис/драйвер/итд)
- переводит себя в состояние "прослушивания" входящих соединений; //реализация в "сс"
- для каждого входящего соединения: //соединения реализованы на уровне протокола tcp/ip в "сс"
- принимает соединение (создается новый сокет с теми же характеристиками, что и исходный);//это спорный вопрос - либо драйвер tcp/ip посылает сигнал о новом соединении либо (если реализация без него) "сс" посылает приложению через callback(как один из вариантов не мешалобы сделать систему сокетов такого плана: каждый сокет приложения - набор callback и call'ов для приёма сообщений от "сс" (типа подключен, передал данные, отключился) и call'ов приложения (отключить считать передать), хотя можно и как в винде по запросу приложения)
- считывает и записывает на новый сокет;
- закрывает новый сокет.
Я тоже так думал, пока не пошел на курсы.
Оказывается народу интересно, но почему то лень набрать в google "уроки html" или "css". Они упорно продолжают уныло просить преподавателя "скинуть" им книги на почту по 100Мб =)))
Некоторые вообще качают видеоуроки по joomla по 5Гб (Вдумайтесь в ЭТО! ))))
И при этом видно что пиплам интересно..начинают задавать вопросы, чето спорить, но самим все лень? Что это? Отупление? Или лень высшей меры проявления? Для меня это загадка.
А теперь по делу.
arrjj , спасибо конечно, но это структура стандартной программы в С. А вот как работать с сетевой картой на низком уровне я пока не знаю (хотя признаюсь честно я в пассивном поиске документации на данный момент).
Ну давайте.. Кинем километровым куском кода студентам и пусть хаваютЪ. Знаете, я тут на курсы ходил.. повышения квалификации..Сидит баба и рассказывает про загрузку ОС. "сначало POST, потом BIOS, а потом Ubuntu начинает считывать файл и устанавливать приложения" (с)., Да чтоб вывести какой нить пУксель надо здорово пропердеть перед компом! А она сразу фаЕл!!! Это сильно удручает. при чем про этот файл она рассказывала оставшуюся лекцию. О чем идет речь я так и не догнал. Извините господа, но это же полный пи*дец! Так нельзя. И если ей дать этот миникс и сказать "учи студентов" то хер она будет что-то делать..
Другое дело написать минимум, и рассказать хотя бы как происходит начальная загрузка. Ведь некоторые вообще не знают как работает компьютер, хотя бы принцип.
Да Вам не каждый махровый Ынженер из соотв. области, причем мирового класса, расскажет как происходит та же загрузка в деталях, а о биосе с мемори трейнингами и прочей лабудой я уж совсем молчу. Если он Вам логическую схему компа. нарисует это уже будет достижение. А Вы про студентафф и их преподавателей...
arrjj , спасибо конечно, но это структура стандартной программы в С. А вот как работать с сетевой картой на низком уровне я пока не знаю (хотя признаюсь честно я в пассивном поиске документации на данный момент).
"программирование на аппаратном уровне . специальный справочник ." - автор :Владимир Кулаков . издательство "Питер" .
глава 9 : "NE2000 - совместимые сетевые адаптеры ."
Когда-то, в эпоху 8-битных компьютеров, я писал одной левой пяткой программы на ассемблере, в основном игры. Сейчас пишу в основном на C#. Спрашивается, пригождается ли мне прошлый опыт и знания? На 90% нет.
Хотя, конечно, в ряде случаев косвенно это сказывается положительным образом.
Заставлять рядовых пользователей учить низкоуровневые вещи, это примерно то же самое, что водителей автомобилей учить способам смесеобразования в дизелях (мой конёк!), или поваров учить органической химии (мол, еда - это же органика).
Некоторые вообще качают видеоуроки по joomla по 5Гб (Вдумайтесь в ЭТО! ))))
И при этом видно что пиплам интересно..начинают задавать вопросы, чето спорить, но самим все лень? Что это? Отупление? Или лень высшей меры проявления? Для меня это загадка.
Думаю, тут сказывается весь опыт обучения начиная с детского садика. Нас учат люди. В процессе личного общения. А Гугл, книги, обучающие сайты - они не живые, с ними не так интересно (большинству). И главное - книге не задашь вопрос, если что-то непонятно.
В первую очередь любых учащихся следует обучать пользоваться поисковыми системами, будь то гугл, яндекс, рамблер и т. п.
Кстати, тут напрашивается вывод, зачем нужны андроиды. В одной из тем Общалки давеча этот вопрос поднимался. Учитель-андроид более привычен, понятен, и потому более эффективен, для большинства людей, по сравнению с учебником-книгой или даже видеокурсом.
[COLOR="gray"]Прошу прощения за оффтоп.[/COLOR]
Этим вопросом занимаются в Колибри, он актуален и решается, что немаловажно.
Если не сильно доставать RTFM-ными вопросами, на форуме и подскажут, и разговор поддержат. Но будь готов спрашивать на английском: несмотря на то, что Колибри -- проект в целом русскоязычный, разработкой сетевого стека внезапно занимается фламандец hidnplayr.
Хотя, конечно, в ряде случаев косвенно это сказывается положительным образом.
Косвенную пользу от опыта оценить вообще трудно, особенно в тех случаях, когда опыт есть. Мне кажется, что его склонны недооценивать. А знакомство конкретно с ассемблером ещё никому не мешало.
а потом Ubuntu начинает считывать файл и устанавливать приложения" (с)., Да чтоб вывести какой нить пУксель надо здорово пропердеть перед компом! А она сразу фаЕл!!! Это сильно удручает. при чем про этот файл она рассказывала оставшуюся лекцию. О чем идет речь я так и не догнал.
А файл случайно не inittab называется?
Пытаться рассказать в одной лекции про ассемблер, защищенный режим процессора и работу с видеокартой бессмысленно.
Полагаю это была лекция про начальную загрузку линукса. И любому человеку, использующему линукс, весьма полезно про этот файл знать. Жалко, что вы не поняли о чем речь.