![]() |
преимущества Windows с точки зрения системного программирования
Прошу не читать эту тему и высказываться ярых юниксоидов.
А теперь вопрос. Расскажите, пожалуйста, кто знает, о преимуществах программирования под форточки перед юниксовыми системами на С . Одкуда появился такой вопрос. В моем университете один преподаватель решил рассказывать детям не только СПО под юниксы, но и под форточки , обучение должно вестись в виде сравнения этих систем. Ну и не может же все быть в винде плохо, должно быть что то хорошее. Так вот мне необходимо найти это хорошо и выразить в небольших кусках кода, которые бы это наглядно показывали. Вот что мне дали на рассмотрение - конструкция __try{...} __finally {...}. На сколько я разобрался (Джеффри Рихтер "WINDOWS для провессионалов" 23 глава )эта конструкция поддерживается только виндой, в С есть конструкция try{...} catch{...}, но это немного другое. Подходит ли мне этот пример или нет ? Заранее спасибо. |
Честно говоря не вижу связи между конструкцией try {...} __finally {...} и Windows. Как известно блок finally предназначен для исполнения вне зависимости от возможного появления исключения внутри блока try и последующего выхода из функции (например для освобождения выделенных ресурсов). Наличие этой конструкции - это скорее вопрос конкретной реализации компилятора и его соответствия стандарту.
|
Переношу в "Программирование"
|
вот, что по этому поводу говорит MSDN
[cuote]The structured exception handling and termination handling mechanisms are integral parts of the system; they enable the system to be robust. You can use these mechanisms to create consistently robust and reliable applications.[/cuote] http://msdn.microsoft.com/library/de...n_handling.asp т.е. __try -- механизм системы ( против try, который стандартный ) но не факт что чего-то подобного нету в никсах |
Можешь ещё поискать почитать про waitable objects, например про такие функции как WaitForSingleObject() в винде и про select() в posix threads (читай в линукс). Например, если быть более конкретным, попробуй найти аналог той же WaitForSingleObject() в линуксе... :)
|
для того, чтобы сравнивать - нужно иметь нехилый опыт кодинга-шмодинга под обе оси... А также представлять себе, хотя бы в общих чертах, как устроено ядро каждой из операционок и как они работают с событиями на разных уровнях и с процессами... Сомневаюсь (ИМХО), что этот преподаватель на необходимом уровне ориентируется в данном вопросе... Единственный пример, который я мог бы привести - это GUI - ну как ни крути - на сях под винду имеется на вооружении гигантский набор ГУИ АПИ... а вот в юниксах и линуксах ГУИ до сих пор тормознуууутый :biggrin:
ПыСы И вообще - все на кроссплатформенные языки! |
GUI это не системное программирование ( это раз )
на никсах тот же Х11 довольно шустро бегает ( это если ты про граф. подсистему говорил ) а KDE -- так вообще песня, а не стол ( это два ) |
2 /7y3uK
GUI тут точно не причем. К тому же что значит в линуксе ГУИ тормознутый? Ничего подобного не заметил. И что значит "игантский набор ГУИ АПИ"? само виндовское графическое АПИ не таккое уж и большое. ВСе дело в библиотеках. А их и в линуксе навалом X11, GTK+, wxWidgets и что-то еще. А что касается СПО то на эту тему нужно смотреть не то как работать с семафаорами и мьютексами, потоками, сигналами и т.п. а то как эти вещи реализованы в каждой ОС. |
тогда встречный вопрос - что в вашем понимании значит системное программирование?
|
Систе́мное програ́ммное обеспечение - это набор программ, которые управляют компонентами вычислительной системы, такими как процессор, коммуникационные и периферийные устройства, а также которые предназначены для обеспечения функционирования и работоспособности всей системы.
Большинство из них отвечают непосредственно за контроль и объединение в единое целое различных компонентов аппаратного оборудования вычислительной системы. Системное програмное обеспечение противопоставляется прикладному програмному обеспечению, которое напрямую решает проблемы пользователя. Конкретные виды системного програмного обеспечения включают загрузчики, операционные системы, драйверы устройств, инструментальные программные средства, компиляторы, ассемблеры, компоновщики, утилиты. |
Воот !!! :)
Я лично не понимаю, а причем тут тогда цпп для линукса и для винды? такая фурмулировка предполагает унифицированный подход к программированию. В такой формулировке вы не можете вообще использовать какие-либо преимущества конкретных систем при кодинге. В такой фурмулировке надо кодить на языке процессора и железа - на "голом" асме ПыСы вы уж извините мну за возможный уход во флуд, я в последнее время исключительно кроссплатформенным кодингом занимаюсь... |
хотя бы потому, что винда написана на сях. хотя бы потому что дефрагментаторы пишут на плюсах. аналогично с компиляторами...
|
Цитата:
|
Цитата:
Цитата:
|
естественно про джаву такого никто не слышал, ибо все только про CORBA совместимые приложения, про апплеты, да про игрушки знают, а вот что в современных роботах используются хардварные джавамашины, которые напрямую с байткодом работаю - это почему-то никому не интересно, равно как и в микротехнологиях используют, вот сейчас какие-то чипы, которые будут под кожу вставлять тестируют... ладно, собсно не я первый джаву помянул :)
А по поводу того, что операционки на сях пишут - ну с учетом того, что операционки на асме писать - это жутко долго и листинга на 10 70-ти тонных вагонов, соответственно :) Ясен пень, что асм в исходниках операционки присутствует, но не везде, а только в самых ответсвенных в плане контроля и оптимизации местах... Но я в упор не пойму - чего там сравнивать то? ПыСы а Ява - это такой остров и такие сигареты советские... |
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Цитата:
харе флудить :) |
Цитата:
Цитата:
Цитата:
|
| Часовой пояс GMT +4, время: 04:08. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.