NEW CHAT :)

Bojan970

Well-known member
Joined
Jan 12, 2021
Messages
640
Reaction score
362
Ali zasto imas problem sta god da imam od telefona kada prikljucim na linux mint koji mi je trenutno na masini 19.3 vidi sve bez problema a kao sto rece El Comandante moras na Androidu da setujes odrecena podesavanja.
I to bi bilo to.
Ja sam sa onim drugim imao problema sistemom koji je vlasnicki sa Linuxom ne.
Primer imam sada prastari LG G4S konektujem ga na racunar pod linuxom on lepo pokaze sve.
 

Branimir_Maksimovic

Well-known member
Joined
Nov 22, 2018
Messages
928
Reaction score
370
i macOS je vlasnicki pa sam se primio ko mladi na njega, dok mi Windows smeta u radu.
Mnogo toga mi rade iza ledja,a to ne volim.
ionako na WIndows koristim samo GNU software 😛
i ono sto je besplatno kao VS, sve ostalo placa FIRMA
 
Last edited:

Zoran_Jankov

Member
Joined
Nov 27, 2018
Messages
59
Reaction score
23
Na primer Windows sa aktivnim direktorijumom ima daleko superiorniji menadžment indentiteta od GNU/Linux-a. Takođe NTFS obezbeđuje mnogo precizniju kontrolu pristupa nad resursima.
 

Branimir_Maksimovic

Well-known member
Joined
Nov 22, 2018
Messages
928
Reaction score
370
Nisam primetio. Na Windows-u se jos koristi drive letter, a taj “Active” to ti je LDAP.
Znam Windows dobro da programiram evo ti recimo kako sam uglavio this da bude
prvi parametar u WindowProc u svom frameworku.
Code:
#include "Window.h"

class Window::Thunk{
    friend class Window;
public:
    Thunk(Window*);
    void SetDestroyed(){ destroyed_ = true; }
    void AddRef()
    {
        ++ref_;
    }
    void ReleaseRef(bool dest = false)
    {
        --ref_;
        if(ref_ <= 0)
            if(dest)delete this;
            else destroyed_=true;
    }
    ~Thunk(){ delete[] code_; instances_--;}
private:
    static void Destroy();
    Thunk(const Thunk&);
    Thunk& operator=(const Thunk&);
    BYTE* code_;
    bool destroyed_;
    int ref_;
    class Test{
    public:
        ~Test(){ if (Thunk::instances_)MessageBox(NULL,"THUNK INSTANCES","",MB_OK);}
    };
    static Test test;
    static int instances_;
};

Window::Thunk::Test Window::Thunk::test;
Window::Test Window::test;

int Window::instances_ = 0;
int Window::Thunk::instances_ = 0;

Window::Window(bool isDlg)
:hwnd_(0),orig_proc_(0),wnd_class_(0),thunk_(0),ref_(1)
{
    thunk_ = new Thunk(this);
    wnd_proc_ = (WNDPROC)thunk_->code_;
    instances_++;
}

Window::~Window()
{
    instances_--;
    if(IsWindow())
    {
        if(orig_proc_)
            SetWindowLongPtr(GWLP_WNDPROC,(LONG_PTR)orig_proc_);
        else
            SetWindowLongPtr(GWLP_WNDPROC,(LONG_PTR)DefWindowProc);
        DestroyWindow();
    }
    if(wnd_class_)::UnregisterClass((LPCTSTR)wnd_class_,(HINSTANCE)GetWindowLongPtr(GWLP_HINSTANCE));
    if(thunk_)thunk_->ReleaseRef(true);
}

void Window::Create(DWORD dwExStyle,
                    LPCTSTR lpClassName,
                    LPCTSTR lpWindowName,
                    DWORD dwStyle,
                    int x,
                    int y,
                    int nWidth,
                    int nHeight,
                    HWND hWndParent,
                    HMENU hMenu,
                    HINSTANCE hInstance,
                    LPVOID lpParam
                    )
               
{
    if(hwnd_)
    {
        MessageBox(NULL,"Window already created","",MB_ICONEXCLAMATION | MB_OK);
        return;
    }
    if(!lpClassName && !wnd_class_)
    {
        WNDCLASSEX wincl = RegisterClass(wnd_proc_);
        if (wnd_class_ = ::RegisterClassEx (&wincl),!wnd_class_)
        {
             DWORD error = GetLastError();
            char buf[4096];
            FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, error, 0, buf, sizeof buf,NULL);
            throw std::runtime_error(buf);      
        }
    }

    hwnd_ = ::CreateWindowEx(dwExStyle,
                            lpClassName?lpClassName:(LPCTSTR)wnd_class_,
                            lpWindowName,
                            dwStyle,
                            x,
                            y,
                            nWidth,
                            nHeight,
                            hWndParent,
                            hMenu,
                            hInstance,
                            lpParam);
    if (!hwnd_)
    {
        DWORD error = GetLastError();
        char buf[4096];
        FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, error, 0, buf, sizeof buf,NULL);
        throw std::runtime_error(buf);
    }
    WNDPROC proc = (WNDPROC)SetWindowLongPtr(GWLP_WNDPROC,(LONG_PTR)wnd_proc_);
    if (proc != wnd_proc_)orig_proc_ = proc;
}

LRESULT CALLBACK Window::WindowProc(Window* pThis,HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
    LRESULT rc;Thunk* pThunk=pThis->thunk_;
    if(pThis->hwnd_ != hwnd)pThis->hwnd_ = hwnd;
    try
    {
        AutoRef<Thunk> apThunk(pThunk);
        apThunk->AddRef();
        rc = pThis->ProcessMessages(hwnd,message,wParam,lParam);
    }catch(...)
    {
        if(pThunk->destroyed_)delete pThunk;
        throw;
    }
    return rc;
}

__declspec(naked) LRESULT CALLBACK Window::CodeProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
    Window* pThis;Thunk* pThunk;
    LRESULT rc;
    __asm
    {
        mov eax, end;
        sub eax, begin; // eax == size
        mov ebx, tag;
        sub ebx, begin; // ebx == tag offset
        mov ecx, begin;
        ret;
    }
    begin:
    __asm
    {
        push ebp;
        mov ebp,esp;
        sub esp,__LOCAL_SIZE;
    }

    __asm  mov dword ptr [pThis],0x0;
    tag:
    pThunk = pThis->thunk_;
    __asm // rc = WindowProc(pThis,hwnd,message,wParam,lParam);
    {
        push dword ptr[lParam];
        push dword ptr[wParam];
        push dword ptr[message];
        push dword ptr[hwnd];
        push dword ptr[pThis];
        mov edx, dword ptr[Window::WindowProc];
        call edx;
        mov dword ptr[rc], eax;
    }
   
    if(pThunk->destroyed_)
    {
        __asm
        {
            mov eax, dword ptr[rc];
            mov ecx, dword ptr[pThunk];
            mov esp,ebp;
            pop ebp;
            mov edx, dword ptr[Window::Thunk::Destroy];
            jmp edx; // we don't wont Destroy to return since this function will be deleted
        }
    }

    __asm
    {
        mov eax,dword ptr [rc];
        mov esp,ebp;
        pop ebp;
        ret 0x10; // __stdcall stack cleanup
    }
    end:;
}

Window::Thunk::Thunk(Window* pThis):destroyed_(false),ref_(1)
{
    instances_++;
    size_t lsize,lmod,lbegin;
    __asm
    {
        call Window::CodeProc;
        mov dword ptr[lsize], eax;
        mov dword ptr[lmod], ebx;
        mov dword ptr[lbegin], ecx;
    }
    code_ = new BYTE[lsize];
    void *pDst = code_;
   
    __asm //memcpy(pDst,code,lsize);
    {
        mov esi, dword ptr[lbegin];
        mov edi, dword ptr[pDst];
        mov ecx, dword ptr[lsize];
        cld;
        rep movsb;
    }
    __asm // modify mov var,0 to mov var,address
    {
        mov eax, dword ptr[pThis];
        mov ebx, dword ptr[pDst];
        add ebx, dword ptr[lmod];
        mov dword ptr[ebx-4], eax;
    }
    DWORD oldprotect;
    if(!VirtualProtect(code_, lsize, PAGE_EXECUTE_READWRITE, &oldprotect))
    {
        DWORD error = GetLastError();
        char buf[4096];
        FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, error, 0, buf, sizeof buf,NULL);
        delete code_;
        throw std::runtime_error(buf);
    }
    FlushInstructionCache(GetCurrentProcess(), code_, lsize);
}

__declspec(naked) void Window::Thunk::Destroy()
{
    Thunk* pThunk;
    __asm
    {
        push ebp;
        mov ebp,esp;
        sub esp,__LOCAL_SIZE;
        push eax; // save rc
        mov dword ptr[pThunk],ecx
    }
    delete pThunk;
    __asm
    {
        pop eax; // restore rc
        mov esp,ebp;
        pop ebp;
        ret 0x10; //// __stdcall stack cleanup from code proc
    }
}
 

Zoran_Jankov

Member
Joined
Nov 27, 2018
Messages
59
Reaction score
23
Ja ti to govorim sa pozicije Sistem Administratora. Dok GNU/Linux koristi user/group/other rwx obrazac dozvola pristupa, NTFS ima daleko granularniji i širi način definisanja prava pristupa. LDAP je samo servis za pristup AD-u. I Linux ima OpenLDAP. Ja govorim o samom AD-u i Kerberus autentikaciji.

I ne vididim ništa loše u Drive Letter mount-ovanju. I u Windows-u možeš da mount-uješ diskove na folder isto kao na GNU/Linux-u.
 
Last edited:

Branimir_Maksimovic

Well-known member
Joined
Nov 22, 2018
Messages
928
Reaction score
370
I u Windows-u možeš da mount-uješ diskove na folder isto kao na GNU/Linux-u.
Добро јутро, чему онда служи drive letter?

Nego macOS mountuje readonly root particiju ne moжеш ништа да обришеш.
Одем у БИОС, ремоунтујем рв обришем иТунес и КуицкТајм, али опет се
волшебно врате. Не могу да провалим одакле и где им је оригинал,
јер очигледно бришем са снапшота. Пробао да искључим са мреже
јок, није у томе фора. мацОС не може да се сруши никако.
 

Zoran_Jankov

Member
Joined
Nov 27, 2018
Messages
59
Reaction score
23
Na Windows sistemima možeš da podešavaš NTFS dozvole kako hoćeš, još kad to radiš preko GPO polisa…

Kažeš na GNU/Linux-u možeš samo da radiš mount na foldere, a na Windows-u možeš i tako i na drive letter. Kako je po tebi dodatna mogućnost mana?
 

Branimir_Maksimovic

Well-known member
Joined
Nov 22, 2018
Messages
928
Reaction score
370
подешаваш дозволе? Па оно ко још подешава дозволе на Њиндоњс ЧП
 

Zoran_Jankov

Member
Joined
Nov 27, 2018
Messages
59
Reaction score
23
Pa čim sam na početku rekao da je Windows bolji za menadžment identiteta od GNU/Linux-a, očigledno da sam govorio o poslovnoj sredini.

Ti tvrdiš da je Windows u tehničkom pregledu u svakom smislu lošiji od GNU/Linux-a, što očigledno nije istina. Što se tiče tehničkog pregleda svaki OS ima svoje mane i prednosti. Za nešto je GNU/Linux bolji za nešto Windows.

Glavna razlika između tih sistema jeste u licenci, i tu GNU/Linux jeste nemerljivo bolji od Windows-a, jer poštuje prava korisnika. Dok Microsoft uskraćuje prava korisnika i sadrži spyware i backdoor funkcionalnosti na štetu korisnika.
 
Last edited:

Commander

Well-known member
Staff member
Joined
Jan 13, 2012
Messages
9,235
Reaction score
530
Dok Microsoft uskraćuje prava korisnika i sadrži spyware i backdoor funkcionalnosti na štetu korisnika.
I jos kazes da pored ovog Windoza ima neke prednosti? 🙂

Bilo nekada, sada sto kaze Brane guraju se u WSL ne bi li uzeli deo kolaca na Azure preko Linux-a, mada Docker kao govno radi na Windozi i narocito ako treba neka dublja integracija sa socketom/WSL-om nedao ti bog tu patnju.
 

Branimir_Maksimovic

Well-known member
Joined
Nov 22, 2018
Messages
928
Reaction score
370
Ne mozhe biti bolji zato shto kaskaju za razvojem Linux kernela, ponekad i vishe od 20 godina.
Recimo zswap, kada su uveli, a kada je Linux?
 
Last edited:

Zoran_Jankov

Member
Joined
Nov 27, 2018
Messages
59
Reaction score
23
Ja nisam rekao da je sve bolje. Naveo sam kao primer jednu stvar Windows bolji. Previše emotivno reagujete na činjenice.
 

Branimir_Maksimovic

Well-known member
Joined
Nov 22, 2018
Messages
928
Reaction score
370
Pa nije emotivno, radim sa Windows ali me smara shto je spor i shto moram mnogo
da thcekam. Ali shta tju, moram. Nego macOS je po nekom principu zliji od MS-a,
a sa njime sad radim jer me ne smara, naprotiv, dok Linux koristim kao server.
 

Vlad

Well-known member
Joined
Feb 13, 2012
Messages
2,258
Reaction score
238
Нешто ми вечерас успорено ради интернет, а и споро претражује Дак Дак Го (Паткица), плус такође Гугл претраживач споро претражује, ондак се теже учитава Јутјуб, те Фејсбук приказује да “нема странице” (не приказује ништа осим натписа, мада нису наивни Фејсбук корисници по натпису текста да искључују “ватрени зид”), плус кажу не раде неке мобилне платформе и сл. Овај, теоретичари завере указују да се ради о “увођењу некакве контроле интернета” и сл., мада неко указује на “нападе хакера” и сл. (а не, није “Скајнет-ов рођак” и сл.) :pen:

А и јесте да је на данашњи дан лансиран Спутњик сателит који је кружио око орбите планете Земље давне 1957. године, али то је нека сада друга прича. :artificial_satellite: 📝

Мада за дивно чудо нормално ради Википедија (па добро, она представља “слободу” коришћења софтвера, а и више се састоји од текста и помало слика). 😇
 
Last edited:

Branimir_Maksimovic

Well-known member
Joined
Nov 22, 2018
Messages
928
Reaction score
370
Da nisi na supernovi, krpe bakar jedno mesec dana pa je krsh internet 😛
JA sam im trazhio da donesu ruter ali su na kraju morali da priznaju da je problem kod njih 😛
 
Top