Всем привет!
Уже давно были предложения о создании специальной темы IT-специалистов и специалистов около IT-индустрии, но они не увенчались успехом. В связи с жесточайшим оффтопом в "кампутерной" теме, в котором и я участвовал, решил собрать нас, оффтоперов, приближенных к IT-сфере, в одной теме - этой.
В принципе, назначение темы - не предоставление возможности облить друг друга грязью, а обмен опытом, обсуждение новостей, обмен ссылками на интересные статьи и другие материалы. Хотелось бы, чтобы тема была популярна, что вполне вероятно, ибо людей, интересующихся данной сферой, на этом форуме не мало, и их количество постоянно растет, судя по тому, что пишут в теме "Профессии".
Собственно, начну обмен полезными ссылками ссылкой, полезной для пользователей/администраторов *nix-like систем:
http://cb.vu/unixtoolbox.xhtml
Даже страшно как-то заходить. :o
Да не был он "жесточайшим", почирикали немного, придерживаясь темы. За ссылку спасибо, добавил в букмарки.
Куда страшно заходить?)
Ага, "легкий оффтоп" - криков на 2-3 странице с полным игнором топикстартера)) Страшно представить, что такое "жесткий оффтоп")
Чисто для поржать можно почитать комментарии:
http://www.linux.org.ru/news/bsd/7669861
Цитата: GhOsT_MZ от 25 мая 2012, 14:35:56
Куда страшно заходить?)
В тему/АйТи-курилку.
:offtopic:
Добрался таки до книжки CCNA. Читаю про serial-интерфейсы. Не могу понять одного - какая скорость работы возможна? Пытался порыться в википедии, и что-то не увидел подобной информации... Может кто в курсе, какая максимальная скорость достижима на этом интерфейсе? И хотелось бы узнать природу опций clock rate, bandwidth в настройках этих интерфейсов на маршрутизаторах cisco...
Стоим. Курим. :smoke: Специализируюсь на юзабилити и рекламе. Есть чо? ;D
Есть ли тут народ, знающий Си? Есть вопрос, по идее простой, но самому разобраться не удается...(
Цитата: GhOsT_MZ от 02 апреля 2013, 21:35:50
Есть ли тут народ, знающий Си? Есть вопрос, по идее простой, но самому разобраться не удается...(
Давай. :)
Оке. Расклад такой. Есть фря. У нее есть несколько утилит для выключения/перезагрузки системы: fastboot, fasthalt, reboot, halt, poweroff, shutdown.
Первые 4 - это одно и тоже, собираются из одного исходника, но в Makefile есть параметр LINKS, который "тиражирует" этот файлик. MD5-хзши само собой совпадают.
Аналогичная ситуация и с poweroff/shutdown - они тоже идентичны.
А теперь самое интересное. В shutdown.c есть такой код:
Цитировать
126 if ((p = rindex(argv[0], '/')) == NULL)
127 p = argv[0];
128 else
129 ++p;
130 if (strcmp(p, "poweroff") == 0) {
131 if (getopt(argc, argv, "") != -1)
132 usage((char *)NULL);
133 argc -= optind;
134 argv += optind;
135 if (argc != 0)
136 usage((char *)NULL);
137 dopower = 1;
138 offset = 0;
139 (void)time(&shuttime);
140 goto poweroff;
141 }
Тут понятно, смотрим какой экземпляр запустили и выполняем действие. Своего рода "эмуляция" наличия ключей командной строки.
А вот как оно работает для reboot?
Есть такая штука:
Цитировать
74 if (strstr((p = rindex(*argv, '/')) ? p + 1 : *argv, "halt")) {
75 dohalt = 1;
76 howto = RB_HALT;
77 } else
78 howto = 0;
79 lflag = nflag = qflag = 0;
80 while ((ch = getopt(argc, argv, "dk:lnpq")) != -1)
81 switch(ch) {
82 case 'd':
83 howto |= RB_DUMP;
84 break;
85 case 'k':
86 kernel = optarg;
87 break;
88 case 'l':
89 lflag = 1;
90 break;
91 case 'n':
92 nflag = 1;
93 howto |= RB_NOSYNC;
94 break;
95 case 'p':
96 howto |= RB_POWEROFF;
97 break;
98 case 'q':
99 qflag = 1;
100 break;
101 case '?':
102 default:
103 usage();
104 }
105 argc -= optind;
106 argv += optind;
То есть, мы проверили halt ли мы и все, а дальше перебираем параметры командной строки, как ни в чем ни бывало.
Более того, функция usage выглядит так:
Цитировать223 usage(void)
224 {
225
226 (void)fprintf(stderr, dohalt ?
227 "usage: halt [-lnpq] [-k kernel]\n" :
228 "usage: reboot [-dlnpq] [-k kernel]\n");
229 exit(1);
230 }
То есть, кроме halt и reboot ничего не предусмотрено. Но, как же fast*? Дань наследия труЪ-юникс или я что-то не досмотрел? Да и смотрел начиная с первых версий фрей (1994 год), нету там fasthalt/fastboot.
Собственно, сорсы тут:
http://svnweb.freebsd.org/base/release/9.1.0/sbin/reboot/reboot.c?revision=243808&view=markup
Так ты сделай fastboot -? и посмотри что он выведет.
Если
usage: reboot [-dlnpq] [-k kernel
то и вопросы все отпадут. :)
P.S. По твоим кускам кода, проверяется только halt, все остальное будет расцениваться как reboot.
А вот что такое во фре fastboot и fasthalt не знаю.
Цитата: BRE от 02 апреля 2013, 22:01:03
Так ты сделай fastboot -? и посмотри что он выведет.
Если
usage: reboot [-dlnpq] [-k kernel
то и вопросы все отпадут. :)
P.S. По твоим кускам кода, проверяется только halt, все остальное будет расцениваться как reboot.
А вот что такое во фре fastboot и fasthalt не знаю.
Ну как я и предполагал, да и уже нашел что это) Это оказывается такая забавная штука, как alias) Надо было ман внимательней читать) Хотя, по поводу манов вопрос далеко не однозначный, сейчас сопоставляю ман по reboot с исходниками, что-то оно там не сходится...
Цитата: GhOsT_MZ от 02 апреля 2013, 22:04:30
Ну как я и предполагал, да и уже нашел что это) Это оказывается такая забавная штука, как alias) Надо было ман внимательней читать) Хотя, по поводу манов вопрос далеко не однозначный, сейчас сопоставляю ман по reboot с исходниками, что-то оно там не сходится...
man'ы часто далеко отстают от софта. :)
Цитата: BRE от 02 апреля 2013, 22:11:25
man'ы часто далеко отстают от софта. :)
Ну не настолько же))
Цитировать-n The file system cache is not flushed. This option should proba-
bly not be used.
-q The system is halted or restarted quickly and ungracefully, and
only the flushing of the file system cache is performed (if the
-n option is not specified). This option should probably not be
used.
То есть, -q быстро завершает работу, но делает вызов sync(). -n - не дает делать sync().
По коду:
Цитировать108 if ((howto & (RB_DUMP | RB_HALT)) == (RB_DUMP | RB_HALT))
109 errx(1, "cannot dump (-d) when halting; must reboot instead");
110 if (geteuid()) {
111 errno = EPERM;
112 err(1, NULL);
113 }
114
115 if (qflag) {
116 reboot(howto);
117 err(1, NULL);
118 }
.....
154 if (!nflag)
155 sync();
.....
212 reboot(howto);
То есть, если -q - мы сразу же после определения параметров выполним системный вызов reboot(), который потом убъет наш процесс и мы так и не дойдем до вызова sync(), который так обещали... То есть, мы надеемся, что не проипем инфу на винте, сделав reboot -q, а тут на тебе, синка нету, и мы получаем фарш вместо последних записанных данных)
Цитата: GhOsT_MZ от 02 апреля 2013, 22:17:32
То есть, мы надеемся, что не проипем инфу на винте, сделав reboot -q, а тут на тебе, синка нету, и мы получаем фарш вместо последних записанных данных)
Ну а кто не ошибается... :)
Цитата: BRE от 02 апреля 2013, 22:34:07
Ну а кто не ошибается... :)
Аргумент))) Особенно для продакш систем))
Цитата: GhOsT_MZ от 02 апреля 2013, 22:35:55
Аргумент))) Особенно для продакш систем))
Ты венду сразу вспоминай, вот где продакшен... :)
Цитата: BRE от 02 апреля 2013, 22:39:10
Ты венду сразу вспоминай, вот где продакшен... :)
Не, ну почему, если грамотно настроить, то оно работоспособно. Но, как показывает практика, это могут сделать далеко не все (я не в числе тех, кто может).
Кстати, как-то были косяки с работой сети, помогал по аське чуваку. Меня убил вывод ipconfig /all. Когда спросил, кто это сделал, сказали, что сертифицированный специалист)
Собственно, вывод ipconfig для поржать (даже сохранил, ибо без пяти минут мем):
ЦитироватьC:\Documents and Settings\Administrator.ural>ipconfig /all
Windows IP Configuration
Host Name . . . . . . . . . . . . : nt007
Primary Dns Suffix . . . . . . . : ural.ru
Node Type . . . . . . . . . . . . : Hybrid
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
DNS Suffix Search List. . . . . . : ural.ru
Ethernet adapter Local Area Connection 2:
Connection-specific DNS Suffix . : ural.ru
Description . . . . . . . . . . . : Intel(R) PRO/1000 EB Network Connection with I/O Acceleration #2
Physical Address. . . . . . . . . : 00-1D-60-D6-07-21
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
IP Address. . . . . . . . . . . . : 172.16.3.75
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 172.16.3.1
DHCP Server . . . . . . . . . . . : 172.16.3.3
DNS Servers . . . . . . . . . . . : 172.16.3.3
172.16.3.4
172.16.3.5
Primary WINS Server . . . . . . . : 172.16.3.3
Lease Obtained. . . . . . . . . . : 22 сентября 2011 г. 16:06:17
Lease Expires . . . . . . . . . . : 26 сентября 2011 г. 16:06:17
Ethernet adapter Local Area Connection:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Intel(R) PRO/1000 EB Network Connection with I/O Acceleration
Physical Address. . . . . . . . . : 00-1D-60-D6-07-20
DHCP Enabled. . . . . . . . . . . : No
IP Address. . . . . . . . . . . . : 172.16.3.3
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 172.16.3.1
DNS Servers . . . . . . . . . . . : 172.16.3.3
Primary WINS Server . . . . . . . : 172.16.3.3
Внимательно смотрим DNS-сервера по интерфейсам и как и где интерфейсы получают адреса)
Эх... IT-шники уже не те пошли... обиднамана аж
http://forum.lissyara.su/viewtopic.php?f=53&t=39357